連載第1回-2
UMLの基礎と応用

(株)NTTデータ 技術開発本部 副本部長
山本修一郎

UML図式

 それではUML図式の種類を見てみよう。UML図式は構造図、振舞い図、実装図の3種に分けることができる。

(1)構造図はシステムの静的な構造を表すために記述する図式である。構造図にはクラス図とオブジェクト図がある。クラス図ではシステムを構成するクラス間の関係を記述する。オブジェクト図ではシステムのある時点におけるオブジェクト間の関係を記述する。

(2)振舞い図はシステムの動的な構造を表すために記述する図式である。振舞い図には5種類の図式がある。ユースケース図では外部環境とシステムの機能との関係を記述する。シーケンス図ではオブジェクト間のメッセージの送受信関係を時系列で記述する。コラボレーション図では、オブジェクト間のメッセージの送受信関係を平面上で記述する。状態図では、オブジェクトの状態遷移を記述する。アクティビティ図では、一連の作業を構成するアクティビティ間の関係を記述する。

(3)実装図はシステムの物理的な構成を表すために記述する図式である。実装図にはコンポーネント図と配置図がある。コンポーネント図では、ソフトウェアを構成するコンポーネント間の関係を記述する。配置図では、オブジェクトやコンポーネントの物理的な配置関係を記述する。

 上述したUML図式をまとめると表1のようになる。

表1 UML図式
表1 UML図式

UML図式の背景

 次にこれらのUML図式を構成する図式がどのような図式から発展して統一されたかを見てみよう。図1に示すようにUML 図式はオブジェクト指向のための図式だけでなく、ER図や状態遷移図、シーケンス図、ワークフロー図など既存のソフトウェア開発で用いられてきた図式を集大成したものである。

図1 UML 図式の関係
図1 UML 図式の関係



 UMLのユースケース図はOOSE法のユースケース図を引き継いでいる。UML図式のクラス図とオブジェクト図はBooch法、OMT法、OOSE法のクラス図やオブジェクト図を統合した図式である。状態図はもともと通信分野で用いられてきた状態遷移図をHarel が発展させたStatechartをBooch法やOMT法が引き継いで、UMLに取り入れている。シーケンス図も通信分野では一般的に用いられてきた図である。UMLではオブジェクト間のメッセージ交換の記述にシーケンス図を取り入れている。アクティビティ図は業務分析法で用いられていたワークフロー図を用いてオブジェクトのアクティビティ関係を記述する。コラボレーション図はHP社のFusion法で提案されたオブジェクト交信図を取り入れた図式である。コンポーネント図と配置図はBooch法のモジュール図とプロセス図を用いている。このようなUML図式の系統図を見ればUMLが従来の有用で定評のある分析設計図式をうまく取り込んでいることが良くわかる。この意味では既存の図式に慣れている開発者も自然にUMLを使うことができるようにしたことによりUMLがこれらの旧来の方法論コミュニティの賛同も得ることができ、一気にクリティカルマスを越えるだけの利用者を獲得したといえよう。ただ、杞憂をいえば、多種の図式を取り入れたことで仕様が大きくなったことである。現在のUML1.4の仕様書は約570ページもある。UML2.0では800ページを越える仕様書になるようである。初期のBooch法が対象としたAdaも、1980年代までのプログラミング言語やソフトウェア工学の成果を取り入れ信頼性の高い大規模システムの開発を効率化することを目的としてDODが開発したのである。ある時点であまりに多くの最新技術を取り入れようとすると、仕様が巨大になり拡張性や柔軟性にかける可能性があり、結局は時代の流れについていけなくなることが多いものである。UMLがオープンな組織で標準化されていること、仕様の拡張性を考慮してUML自身が図式の拡張機構を備えていることがこのような問題を避けて今後も発展していくことを期待したい。

UMLの構成

 UMLは表2に示すように、ビュウ、図式、モデル要素、一般機構から構成されている[7]

表2 UMLの構成
表2 UMLの構成


 ビュウでは複数の図式を用いて、ある観点に従ってシステムの持つ抽象的な構造を図式的に表す。UMLのビュウは、ユースケースビュウ、論理ビュウ、並行性ビュウ、コンポーネントビュウ、配置ビュウである。UMLでは図式によりビュウの具体的な内容を表現する。モデル要素は図式の構成要素である。ビュウで用いられるモデル要素をビュウ要素という。すべての図式に共通して用いられる一般的な表現機構として、モデル要素に対する名前の記述規約、注釈、プロパティがある。プロパティによりモデル要素に対する付加的な仕様を定義できる。UMLの利用者定義の拡張機構には、タグ値、制約、ステレオタイプの3種がある。タグ値はプロパティ名とその値の組により、既存のプロパティを拡張することができる。たとえばタグ値の例にはオブジェクトの属性に対する操作の事前条件や事後条件がある。制約によりモデル要素の使用法や意味を制限することができる。たとえば、契約伝票オブジェクトは発生時間によって伝票インスタンス間に自然な順序関係が存在することを図式上で明示できる。ステレオタイプにより既存のモデル要素に対して意味を追加できる。たとえば、JacobsonのOOSEで提案された制御クラス、エンティティクラス、境界クラスなどをクラスのステレオタイプとして指定できる。このような拡張機構を持つことにより、UMLでは図式の構造やアイコンを変えることなく、新しい意味や用途を追加していくことができるので、UMLの適用範囲を拡大していくことができるのである。

UMLのビュウ

 ユースケースビュウの目的は外部アクタの観点からシステムの機能を示すことである。ユースケースビュウを利用するのは顧客、分析者、設計者、開発者、試験担当者である。このことからもユースケースがUMLで非常に重要で幅広く利用されるビュウであることがわかる。論理ビュウの目的はシステムの静的な構成と動的な振舞いの観点からシステムの論理的な構成を示すことである。論理ビュウを利用するのは分析者、設計者、開発者である。オブジェクトモデルの中核となるビュウが論理ビュウであり6種の図式を用いて表現される。コンポーネントビュウの目的はシステムを構成するソフトウェア要素間の関係を示すことである。コンポーネントビュウは開発担当者が利用する。並行性ビュウは並行プロセスの観点からシステムの構成要素間の通信や同期関係を明らかにする。並行性ビュウは開発担当者とシステム統合担当者が利用する。並行性ビュウでは、システムの動的な振舞いや物理的な配置関係を表現するための6種の図式が用いられる。配置ビュウの目的は物理的な配置の観点からシステム構成要素間の関係を示すことである。配置ビュウの利用者は開発担当者、システム統合担当者、試験担当者である。ビュウと図式の関係をまとめると表3に示すようになる。

表3 UMLのビュウ
表3 UMLのビュウ

 今回は、UMLとは何かについて、9種の図式の起源やビュウとの関係などの観点から述べた。次回はUMLを構成する各図式の具体例を紹介しよう。

[参考文献]
[1] OMG、UML Resource Page 、http://www. omg.org/technology/uml/index.htm
[2] 日本語版UML(Unified Modeling Language)
ドキュメントver1.1,http://www.rational.co.jp/uml/
[3]オージス総研、UMLのチュートリアル、http://www.ogis-uml-university.com/tutorial/index.htm
[4] Rational Rose 、http://www.rational.co.jp/
[5] ダイクストラ、ホーア、ダール他、構造化プログラミング、サイエンス社、1975.
[6] 羽生田、オブジェクト指向モデリング言語UML(1)、情報処理、Vol.40, No.1,pp.76-82,1999.
[7] エリクソン、ペンカー著、杉本他訳、UMLガイドブック、トッパン(原著名UML Toolkit )、1998.

●執筆者にメールを出す
yamamotosui@nttdata.co.jp
・連載第1回

・連載第2回

・連載第3回

・連載第4回

・連載第5回

・連載第6回

・連載第7回

・連載第8回

・連載第9回

・連載第10回

・連載第11回

・連載第12回

・連載第13回

・連載第14回

・連載第15回

・連載第16回

・連載第17回