UML に関する QA Q. なぜ UML は変化するのか?  普通,記法というのは変化しないものではないだろうか? A. 青写真のように変わらない手法もあるが,天気図などは,近年,目覚しく変わっ ている.元々線引きだけだったものが,テレビなどのメディアに合わせて色付けや 衛星による雲の動きなども見せている.このように,記法によっては,変わるもの もある.  UML は記法としてはまだ若く,現在も成長している.UML2 は新しい記法を導入す るが,今あるものはほとんど変わらないし,これからはほとんど変わることはない だろう. Q. COBOL の開発に UML を使える?オブジェクト指向言語でないとダメ? A. UML はオブジェクト指向のコンセプトを使っているが,必ずしもオブジェクト指 向プログラミング言語を必要とするわけではない.古い FORTRAN のプログラムでも, それがオブジェクト指向と同様の考えで作られていると感じたことがある.手間は 余分に必要だが,使おうと思えば使えるだろう. Q. UML を段階的に導入する方法は?経験なしに一度に移行するのはリスクが大きい ので,段階的に導入したい. A. ひとつのアドバイスとして,だが. ・システムの一部分を取り出し,プロジェクトの他の部分とは分離する.  データ構造や操作が豊富で,後で要求が変化しそうな場所などを選ぶ. ・その部分では UML を完全に使う.  non-OO な部分,UML を使ってない部分ときっちり区別すること. ・全体で少しだけ UML を使う,ということはしないほうがよい.  システムの一部だけでよいので,そこで完全な UML を使う. Q. デザインパターンの本によっては,UML で書かれていないが,どうしてUMLで 書いてくれないのだろう. A. ほとんどは既に UML を使っているが,古い本は UML の先祖(OMT など)を使っ ている.たとえば次の二冊. Gamma, Design Patterns Buschmann, Pattern-Oriented Software Architecture ただ,UML と OMT は似ているので概ね問題ないと思う.また,これらの本も第2版 からは UML に変わっている.次のような,新しい本のほとんどは UML を使用して いる. Fowler, Refactoring Larman, Applying UML and Patterns Metsker, Design Patterns Java Workbook Carey, SanFrancisco(TM) Design Patterns UML2 でさらに内部構造の表現などのサポートがよくなっているので,また変わるか もしれない. Q. なぜUMLはペトリネットを採用しないのか? また,Ramadge-Wonham Framework についてはどう思うか. A. Activity Modeling(UML2),Action Semantics などはペトリネットをベースにし ている.Ramadge-Wonham Framework については,よく知らないので,簡単にインター ネットで調べてみた.そのときの感想だけだが,理論的な側面が強くて,ビジュア ルモデル言語としてはあまり適してない印象がある.現段階ではもっと進んでいる かもしれないが. Q. UML は儲かるか? A. いきなり退職できるほどは儲からない.しかし,これのおかげで私は色々なとこ ろに旅行する機会をもらった. Q. UML の勉強はどこから始めればよいか?学ぶものが多すぎて,どこから手をつけ てよいかわからない. A. まず,オブジェクト指向について学ぼう.古い本の多くはまだ役立つ.たとえば 次の二冊. Rumbaugh, Object-Oriented Modeling and Design Booch, Object-Oriented Analysis and Design  オブジェクト指向言語,Java や C++ についても学んだほうがよい.Smalltalk は あまり使われないのでお勧めできない.  UML の基本について,本を読むべきだ.たとえば次の二冊. Fowler, UML Distilled Booch, UML User Guide  そして,グラフィカルなツールで UML を実際に使ってみよう.Rational 社の製 品がそうだ. Q. UML を開発プロセスに導入するには? A. UML そのものはモデリング言語なので,多くの開発プロセスで利用可能だ. ラショナル統一プロセス (Rational Unified Process; RUP) も,UML を ベースにした iterative な開発プロセスなので,お勧めだ. Q. UML本が"言語"(いわゆる外国語)コーナーで売られていた!どう思う? A. They have been translated into many languages Japanese, Korean, Chinese, French, ... So it is a 2-dimensional problem! Q. オブジェクト指向言語でも UML と一対一でマッピングできないけれど,そこを ラショナルではどう扱っているのか?  また,アスペクト指向に関して,UML のダイアグラムはそのまま使えるのか,根 本的に変えてしまうのか? A. レベルの違う二つのビューをどう整合させるか,という問題は設計プロセスを どんな言語,環境でも同等の「変換作業」と考えて,整合を試みる.まだ,一般的 に適用できる考えではない.  アスペクト指向についてだが,アスペクトは様々なダイアグラムで表現される異 なるビューだ.ダイアグラムそのものに関しては既存の同じダイアグラムでいいと 思う.ただ,完全なシステムを得るためには様々なビューをいかにミックスするか が問題となるので,そのミキシングのやり方が分かれば,大きな貢献となるだろう. Q. UML の適用方法として「"システムの一部"に完全に適用する」と言っていたが, システム全体のクラス図を完璧に描くのと,ほんのちょっとの範囲にユースケース 図とかシーケンス図とかを全部書くの,どちら? A. あるサブシステム内部では,UML のみに統一する,という意味.他の手法とは 混ぜないほうがよい. Q. 要件分析段階で,ユースケース図を書くの苦手なのだが,何かアドバイスみたい なのは? A. ユースケースの書き方については,いくつか本が出ている.ユーザの観点で,ユー ザがどのようにシステムを使うか,ということで書くことが基本だ.ただし,これ は一般的な助言なので,やはり専門家と一緒に仕事をして,その人からアドバイス をもらうとよい.