UMLのポテンシャルを探るFTP Online(5/5 ページ)

» 2004年06月25日 15時30分 公開
[Craig Larman,FTPOnline]
前のページへ 1|2|3|4|5       

インタラクティブモデリング

 今日におけるソフトウェアエンジニアリングの痕跡が示すように、ウォーターフォールのライフサイクルと価値観が推奨した、プログラミングに先行して行われる「完璧」の創造への試みと、確実なモデルと仕様の作成は最大級の失敗と欠陥および最低の生産性を伴った最悪のプラクティスである。しかし、いくつかのUMLとOOA/Dモデリングの根源は、無分別で尊大なモデリングへの試みを現在でも推奨している。

 われわれがいま行うべきことは、ユニファイドプロセスやFDD、およびほかの方式により推奨される、反覆と進化の精神によるライトウェイトなインクリメンタルモデリングである。また、それはJavaによるプログラミングに先行し、完璧なユースケースモデルやドメインモデルの作成を試みるものでもない。というより、time-boxed反復型開発の流れの中で、われわれは手軽に(数時間か1日程度で終わる)分析と設計の作業を行うべきである。それは、2〜3週間で完了する反覆作業に対して選ばれる要件に関連し結び付けられるユースケース、もしくはドメインモデルの小さな領域を埋めることだ。続いて、部分的かつ不完全で、少しだけモデリングを行った翌日に、開発中の不完全なヒントとしてラフスケッチされたモデルを用いた、反復的なコードの開発とテストへと移行すべきなのだ。

 その後、ソフトウェアのテストおよびデモンストレーション、顧客と開発者やツールからのフィードバックを通じて、われわれはモデルにおいて表現される不可避な考え違いを明らかにし、発展させていく。コードの記述とテスト実行だけが、ソフトウェアプロジェクトにおける真実を表すものだ。モデルは誤りの面を持ち、ダイアグラムとテキストドキュメントは正確であるように思わせておいてわれわれを容易に欺く。

 しかし、短時間におけるホワイトボード上でのビジュアルモデリングが無駄だと仄めかすようなコメントは、誤って解釈されるべきではない。そのようなことは断じてないのだから。パートナーと共に、マーカーやホワイトボード、デジカメを用いて、デザイン領域の重要なポイントにおける変化を端的に調査する、このUML的なデザイン手法は非常にクリエイティブなものであり、コードだけを対象にした場合とは比較にならないスピードで調査できることになる。

 最終的に、第一段階の反覆によるソフトウェアは完成し、第二段階の反覆が始まる。第一段階の反覆から得られたフィードバックをベースにしたモデルを用いて、また、第二段階で選択された新たな要件を進めるために、再び短い時間を費やす。 れに続くモデリングセッションの前に、コードをUMLダイアグラムへと展開するリバースエンジニアリングを私は薦める。具体的には、コードを大きなプロッターで印刷し、更なるスケッチの出発点として、それらを利用するのである。このプロセスが反覆による反覆を繰り返すことで、数週の間の数時間を、UMLを用いた進化するモデリングに割り当てる。

進化的なモデリング

 スコット・アンブラー氏の書籍にも記述されるアジャイルモデリングは、多くのベストプラクティスを獲得している。それは、ユニファイドプロセスやFDD、Extreme Programmingなどの反覆手法を用い、アジャイルで進歩的な精神におけるモデリングの芸術を、熟練したモデル作成者が応用し、進化させたものである。アジャイルモデリングは、ドキュメントや仕様の方式ではないが、理解とコミュニケーションを速める手段として、モデルを描き記述するための目的を示す。それは、効果的なUMLモデリングにおける重要な価値である。

 アジャイルモデリングの一部を、筆者は「ローテク・ハイタッチ・モデリング」とも呼んでいるが、これはフロー作成の促進というよりも、邪魔にならないシンプルなツールを使ったモデリングである。この概念が第一義に意味するのは(UMLケースツールも含めて)コンピュータツールではなく、ホワイトボード上でのモデル化であり、デジカメを用いたわれわれのスケッチのキャプチャである。

 発表においては、筆者は通常ケースツール、もしくはドローイングツールを使用してダイアグラムを明示する。しかし、そうすることは、私がコンサルティング期間の1週間で開発チームを指導し、彼らと作業する時に悪い印象を与える。プラクティスにおいて、常にマーカーペンを使い、取り散らかったスケッチを行う。そしてアジャイルモデリングのプラクティスを行う時、筆者は常に3人が無理であれば2人でモデリングを行うことを勧める。われわれは、作業調整のために共同プロジェクトルームを使うが、そこには家具が無く、すべての壁が剥き出しになっているのだ。プロジェクト情報をスケッチし、表示するためには壁を最大限に活用している。

 もう1つのチップスを示す。もしホワイトボードが足りない場合には、Avery Dennison(注:米国の事務用品などのメーカー)などから提供される、貼り付けシートも効果的である。それは、壁に貼り付けることができるホワイトボードであり、書き込むことと消すことが可能だ。これを使えば、壁面をホワイトボードとして利用できる。

 UMLおよびビジュアルモデリングは、要件の調査と迅速な設計のための素晴らしい創造環境となり得る。しかし悲しいかな、それは趣味の範囲でしかなく、ビジネス用とにおいては、あまり使い物にはならない、大学でのエクササイズとして浸透していて、現実のJavaソフトウェアの作成との関連はわずかである。現在は、多くの人々がアジャイルな精神におけるUMLとパターンの応用を学んでおり、ソフトウェア開発者としてのメインテーマである美しく実用的なコードの開発を、進歩的なモデリングが補足するのだ。

執筆者について
 Craig Larman氏は、Applying UML and Patterns(Prentice-Hall,1997)の著者である。同書はOOA/Dおよび反復型開発、そしてUMLに関する世界的なベストセラーとなっている。同署は各国語に翻訳されており、世界中の産業界と大学で活用されている。また、彼はJava 2 PerformanceとIdiom Guide(Pearson Education, 1999)の共著者でもあり、最も新しい著作は「Agile and Iterative Development: A Manager's Guide」(Addison-Wesley, 2003)だ。彼は20年近くに渡り、OOA/Dの教育開発チームと共に活動している。またCraig氏は、インターナショナルコンサルティンググループであるValtechのチーフサイエンティストとしても活動している。Craigへのコンタクトは craig@craiglarman.com まで。
前のページへ 1|2|3|4|5       

© Copyright 2001-2005 Fawcette Technical Publications

注目のテーマ