UML(Unified Modeling Language:統一モデリング言語)は、オブジェクト指向の方法論で使われている図式表現を統一したものです。情報システムの現状、開発すべき情報システムを設計するため、可視化するための表記としての標準です。UMLの1.4.2版が ISO/IEC 19501 、JIS X4170 になっています。
1990年代初頭から、オブジェクト指向設計が普及するのに伴い、多数の方法論が開発されましたが、Booch、Rumbaugh、Jacobsonにより統合されてUMLとなり、OMG(Object Management Group)によって標準として認定され、広く用いられるようになりました。
その後、UMLは発展しました。各種の図を作成するツール、図の相互関係を分析し矛盾や不足を指摘するツール、さらにはUMLからJavaのプログラムを自動生成するツールが開発されてきました。そのため、UMLは情報システムの開発基盤になってきたのです。将来は、プログラムはプログラミング言語で記述するのではなく、このような開発基盤により作成するようになると期待されています。
●体系による図の一覧
UMLは、次の13の図法があります。そのうち、重要なものに★をつけました。なお、この表の説明はかなり簡略しており厳密性を欠いています。≒印は似ている従来の図法です。
構造図
(静的構造)
★クラス図 業務で用いられる情報の構造を図示≒ERD
オブジェクト図 クラス図をオブジェクトのレベルで図示
インスタンス間の関係を表現
コンポジット構造図 構造を持つクラス等の内部構造の協調関係を図示
コンポーネント図 プログラムやリソースファイルの構成を図示
(実装)
パッケージ図 データやプログラムをパッケージとしてまとめて図示
配置図 ハードウェアなど物理的構成を図示
振る舞い図
(要求)
★ユースケース図 システムが外部に提供する機能と、利用者や外部システムとの関係を表現
(相互作用図)
相互作用概要図 以下の相互作用の図をまとめたもの
★シーケンス図 オブジェクト間の相互作用(情報の流れ)を時間的に図示≒業務分析図
コミュニケーション図 オブジェクト間のリンク関係を図示
(以前はコラボレーション図といっていました)
タイミング図 時間を横軸にとり、システムの動作の開始や終了を図示
(その他の振る舞い)
★アクティビティ図 ある振る舞いから次の振る舞いへの制御の流れを表現する≒DFD
(ユースケースを行う処理の流れを図示)
ステートマシン図 オブジェクト生成~消滅をイベント発生や時間経過による状態変化≒状態遷移図
(以前はステートチャート図といっていました)
●開発プロセスとの関係
システム開発のプロセスと対応させると次のようになります。しかし、開発の仕方により異なりますし、部分的に他のプロセスでも用いることがありますので、厳密なものではありません。
システム化の対象となる業務フローの現状やあるべき姿などを示します。
ユースケース図は、システムがもつべき機能(これをユースケースという)と利用者(アクターという)の関係を示す図です。要件定義の段階で作成し、開発するシステムの全体像を、発注者と開発者が誤解なく理解することが目的です。
ユースケース図では、アクターを人の形、ユースケースを楕円で表現します。
クラス図とは、システムで取り扱うクラスと、クラス間の関連を表した図です。従来から利用されていたERD(Entity-Relationship Diagram)を拡張したような図法です。情報の流れの順序などは表現していないので、静的構造といいます。
シーケンス図とは、システムの動的な振る舞いを表現する図です。処理の流れに沿って、 メッセージを上から下(時系列)に配置して表します。アクティビティ図と似ていますが、アクティビティ図では業務向けの外部設計を対象にしているのに対して、シーケンス図はオブジェクト間の相互作用を示したもので、内部設計に用いることを目的にしています。