UMLのポテンシャルを探る:FTP Online(5/5 ページ)
効率的なJavaアプリケーション開発には、設計時にUMLを利用することが不可欠となっている。さまざまなモデル例を挙げ、UMLの使い方とその効果を解説しよう(日本語訳:澤田侑尚)。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
インタラクティブモデリング
今日におけるソフトウェアエンジニアリングの痕跡が示すように、ウォーターフォールのライフサイクルと価値観が推奨した、プログラミングに先行して行われる「完璧」の創造への試みと、確実なモデルと仕様の作成は最大級の失敗と欠陥および最低の生産性を伴った最悪のプラクティスである。しかし、いくつかのUMLとOOA/Dモデリングの根源は、無分別で尊大なモデリングへの試みを現在でも推奨している。
われわれがいま行うべきことは、ユニファイドプロセスやFDD、およびほかの方式により推奨される、反覆と進化の精神によるライトウェイトなインクリメンタルモデリングである。また、それはJavaによるプログラミングに先行し、完璧なユースケースモデルやドメインモデルの作成を試みるものでもない。というより、time-boxed反復型開発の流れの中で、われわれは手軽に(数時間か1日程度で終わる)分析と設計の作業を行うべきである。それは、2〜3週間で完了する反覆作業に対して選ばれる要件に関連し結び付けられるユースケース、もしくはドメインモデルの小さな領域を埋めることだ。続いて、部分的かつ不完全で、少しだけモデリングを行った翌日に、開発中の不完全なヒントとしてラフスケッチされたモデルを用いた、反復的なコードの開発とテストへと移行すべきなのだ。
その後、ソフトウェアのテストおよびデモンストレーション、顧客と開発者やツールからのフィードバックを通じて、われわれはモデルにおいて表現される不可避な考え違いを明らかにし、発展させていく。コードの記述とテスト実行だけが、ソフトウェアプロジェクトにおける真実を表すものだ。モデルは誤りの面を持ち、ダイアグラムとテキストドキュメントは正確であるように思わせておいてわれわれを容易に欺く。
しかし、短時間におけるホワイトボード上でのビジュアルモデリングが無駄だと仄めかすようなコメントは、誤って解釈されるべきではない。そのようなことは断じてないのだから。パートナーと共に、マーカーやホワイトボード、デジカメを用いて、デザイン領域の重要なポイントにおける変化を端的に調査する、このUML的なデザイン手法は非常にクリエイティブなものであり、コードだけを対象にした場合とは比較にならないスピードで調査できることになる。
最終的に、第一段階の反覆によるソフトウェアは完成し、第二段階の反覆が始まる。第一段階の反覆から得られたフィードバックをベースにしたモデルを用いて、また、第二段階で選択された新たな要件を進めるために、再び短い時間を費やす。 れに続くモデリングセッションの前に、コードをUMLダイアグラムへと展開するリバースエンジニアリングを私は薦める。具体的には、コードを大きなプロッターで印刷し、更なるスケッチの出発点として、それらを利用するのである。このプロセスが反覆による反覆を繰り返すことで、数週の間の数時間を、UMLを用いた進化するモデリングに割り当てる。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
進化的なモデリング
スコット・アンブラー氏の書籍にも記述されるアジャイルモデリングは、多くのベストプラクティスを獲得している。それは、ユニファイドプロセスやFDD、Extreme Programmingなどの反覆手法を用い、アジャイルで進歩的な精神におけるモデリングの芸術を、熟練したモデル作成者が応用し、進化させたものである。アジャイルモデリングは、ドキュメントや仕様の方式ではないが、理解とコミュニケーションを速める手段として、モデルを描き記述するための目的を示す。それは、効果的なUMLモデリングにおける重要な価値である。
アジャイルモデリングの一部を、筆者は「ローテク・ハイタッチ・モデリング」とも呼んでいるが、これはフロー作成の促進というよりも、邪魔にならないシンプルなツールを使ったモデリングである。この概念が第一義に意味するのは(UMLケースツールも含めて)コンピュータツールではなく、ホワイトボード上でのモデル化であり、デジカメを用いたわれわれのスケッチのキャプチャである。
発表においては、筆者は通常ケースツール、もしくはドローイングツールを使用してダイアグラムを明示する。しかし、そうすることは、私がコンサルティング期間の1週間で開発チームを指導し、彼らと作業する時に悪い印象を与える。プラクティスにおいて、常にマーカーペンを使い、取り散らかったスケッチを行う。そしてアジャイルモデリングのプラクティスを行う時、筆者は常に3人が無理であれば2人でモデリングを行うことを勧める。われわれは、作業調整のために共同プロジェクトルームを使うが、そこには家具が無く、すべての壁が剥き出しになっているのだ。プロジェクト情報をスケッチし、表示するためには壁を最大限に活用している。
もう1つのチップスを示す。もしホワイトボードが足りない場合には、Avery Dennison(注:米国の事務用品などのメーカー)などから提供される、貼り付けシートも効果的である。それは、壁に貼り付けることができるホワイトボードであり、書き込むことと消すことが可能だ。これを使えば、壁面をホワイトボードとして利用できる。
UMLおよびビジュアルモデリングは、要件の調査と迅速な設計のための素晴らしい創造環境となり得る。しかし悲しいかな、それは趣味の範囲でしかなく、ビジネス用とにおいては、あまり使い物にはならない、大学でのエクササイズとして浸透していて、現実のJavaソフトウェアの作成との関連はわずかである。現在は、多くの人々がアジャイルな精神におけるUMLとパターンの応用を学んでおり、ソフトウェア開発者としてのメインテーマである美しく実用的なコードの開発を、進歩的なモデリングが補足するのだ。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
関連リンク
- Agile Modeling: Effective Practices for eXtreme Programming and the Unified Process by Scott Ambler and Ron Jeffries(John Wiley & Sons, 2002)
- Object Models: Strategies, Patterns, and Applications by Peter Coad, David North, and Mark Mayfield(Prentice Hall, 1996)
- Writing Effective Use Cases by Alistair Cockburn(Pearson Education, 2000)
- Object-Oriented Development: The Fusion Method by Derek Coleman, with Patrick Arnold and Stephanie Bodoff(Prentice Hall Professional Technical Reference, 1993)
- Analysis Patterns by Martin Fowler (Addison-Wesley, 1996)
- Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma et al. (Addison-Wesley, 1995)
- Data Model Patterns by David C. Hay (Dorset House Publishing, 2000)
- "Architectural Bluebrints The '4+1' View Model of Software Architecture" Philippe Kruchten (IEEE Software 12[6], 1995)
- Agile and Iterative Development: A Manager's Guide by Craig Larman (Addison-Wesley, 2003)
- Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process, Second Edition by Craig Larman (Pearson Education, 2001)
- Java 2 Performance and Idiom Guide by Craig Larman and Rhett Guthrie (Pearson Education, 1999)
- Object-Oriented Methods: A Foundation by James Martin and James J. Odell (Pearson Education, 2002)
- Object Design: Roles, Responsibilities, and Collaborations by Rebecca Wirfs-Brock and Alan McKean (Pearson Education, 2002)
© Copyright 2001-2005 Fawcette Technical Publications