UML 2 オブジェクト図の概要
by Scott
W. Ambler, Copyright 2003
UMLオブジェクト図(インスタンス図と呼ばれることもあります)は、オブジェクトおよびオブジェクト間の関係の「実際の」例を調べるときに役に立ちます。UMLクラス図を使って同じ情報を正確に記述することができるのですが、クラス図は抽象的すぎて分かりづらいという人もいます。その場合、クラス間の複雑な関係を説明するには、UMLオブジェクト図を使うと便利です。
たとえば図1のオブジェクト図は、学生がゼミに出席したり、ゼミの順番待ち名簿に名前を載せたり、ゼミで講師の助手を務めたりできるという考え方を調査したものです。この図は、ジョン・スミスとサリー・ジョーンズが2人ともCSC 100aを受講していて、サラ・マクグラスは助手を務めていることを表しています。サラはCSC 100bの助手もしていて、スコット・アンブラーはそのゼミを受講中、エド・マロニーは順番待ちです。このダイアグラムから、この2つのゼミがどちらも「コンピュータ科学入門」というコースの講義であることも分かります。このダイアグラムによって、学生とゼミの間の3つの関係と、ゼミとコースとの関係が、非常に明確になっています。
図1 オブジェクト図
UMLオブジェクト図の表記法は非常に単純です。オブジェクトとオブジェクト間の接続を書くだけです。オブジェクトを書くときには、インスタンスとして他と区別できるだけの情報を含める必要があります。そのため私は、インスタンスの記述形式として、1つの区画の箱に名前を書く方法(「サラ マクグラス: 学生」など)と、2つの区画の箱に「属性 = 値」という書式で他と区別できるだけの属性値を明示する方法(「名前="コンピュータ科学入門"」など)のいずれかを使っています。オブジェクト間の接続は直線で表し、オプションでロール(「講義助手」など)を付けます。
図を見ると分かりますが、UMLオブジェクト図の表記法は実際のところ、UMLコミュニケーション図の表記法のサブセットになっています。ただし、オブジェクト図が構造を検討するためのものなのに対して、コミュニケーション図は振る舞いを検討するためのものです。オブジェクト図にメッセージを追加してコミュニケーション図に発展させることはよくあります。
アジャイルさを保つ
私は通常、オブジェクト図をホワイトボードに書いて、オブジェクト間の関係を調べます。その関係の検討が終われば、分かったことをクラス図やソースコードなどふさわしいところに反映し、オブジェクト図は消してしまいます(「一時的なモデルは捨てよう」)。忘れないで欲しいのですが、たいてい価値があるのはモデリングという作業であって、モデル自体ではありません。オブジェクト図が複雑なビジネスルールの記述の一部として保持されているのを見たことがありますが、私の経験ではそれはごく稀なケースです。
注: この成果物の説明は『The Object Primer 3rd Edition: Agile Modeling Driven Development with UML 2』より抜粋しました。本ではより詳しく説明しています。
アジャイルモデリング(AM)について詳しく知るにはこの本をお薦めします。
Ronin
International, Inc. continues to help numerous
organizations to learn about and hopefully adopt agile
techniques and philosophies. We offer both
consulting and
training offerings. In addition we
host several sites - Agile
Modeling, Agile
Database Techniques, UML
Modeling Style Guidelines, Enterprise
Unified Process (EUP) - that you may find of value. You
might find several of my books to be of interest,
including
The Object Primer, Agile
Modeling, The
Elements of UML Style, and Agile
Database Techniques. For more information please
contact Michael Vizdos at 866-AT-RONIN (U.S. number) or via e-mail (michael.vizdos@ronin-intl.com).
visits since June 8, 2004.
|