UMLの概要
UMLとは
- UML (Unified Modeling Language)
- グラフィカルな記法の一種 (モデリング言語)
- オブジェクト指向スタイルを使って構成するシステムの記述や設計において特に便利
UMLの使い方
- スケッチ、設計図面、プログラミング言語という3種類の局面のうち、スケッチのときに便利
- スケッチはフォワードエンジニアリングとリバースエンジニアリングに使用できる
- フォワードエンジニアリング:コードを記述する前にUMLダイアグラムを作成する
- リバースエンジニアリング:既存コードを理解する補助手段としてコードからUMLダイアグラムを作成する
- スケッチをする目的は、アイデアを他のメンバーに伝えること
※ UMLの使用方法については様々な立場があるものの、本記事ではUMLをスケッチとして利用する
※ バージョンはUML2
UMLのなんのダイアグラムを使うか
- UMLにはたくさんのダイアグラムがあるが、そのうち自分のプロジェクトに適していると思ったものを使う
- 最も一般的なダイアグラムは、クラス図とシーケンス図であり、本記事で紹介するのは左記2図
開発プロセス
UMLを開発プロセスに適合させる
要求分析
使用するUML技法 | 概要 |
---|---|
ユースケース | ユーザーとシステムの相互作用を記述する |
概念的観点から書かれたクラス図 | ドメインの厳密な用語体系を構築するのに便利 |
アクティビティ図 | 組織のワークフローを示し、ソフトウェアとユーザーアクティビティの対話方法を示す |
状態図 | 複雑なライフサイクルが概念の中に含まれている場合に使用すると便利 |
設計
使用するUML技法 | 概要 |
---|---|
ソフトウェア的観点から見たクラス図 | ソフトウェア内のクラスとその相互関係を示す |
一般的なシナリオのシーケンス図 | 最も重要なシナリオをユースケースから選び出し、ソフトウェアの動作を把握する |
パッケージ図 | ソフトウェアの大規模な構造を示す |
クラスの状態図 | 複雑に変化するクラスの状態を示す |
配置図 | ソフトウェアの物理的なレイアウトを示す |
クラス図
図はAddison Wesley - UML Distilled, 3rd Edより引用しています。
クラス
関連
誘導可能性 (関連の方向性)
多重度
汎化
ノート
依存関係
クラス図使用の方針
- 利用可能な表記をすべて使おうとせず、簡単な要素から始める
- 記法をできるだけ単純にする
- 主要なモデルに対してのみダイアグラムを作成する
シーケンス図
- シーケンス図は、1つのユースケースにおけるオブジェクト群の振る舞いを見たいときに使う
- シーケンス図が得意なのは、オブジェクト間のコラボレーションを示すことであり、振る舞いを正確に定義するには不向き