統合モデル化言語(UML)図
統合モデル化言語(UML)は、ソフトウェア工学においてシステムの設計を描写するために使用される標準的で汎用的な視覚的モデリング言語です。プログラミング言語ではなく、仕様の策定、視覚化、構築、ソフトウェアシステムのアーティファクトの文書化を支援する視覚的言語です。

なぜUMLを使うのか?
- 協働:複雑なアプリケーションでは、複数のチーム間で明確なコミュニケーションが必要です。UMLは技術的・非技術的ステークホルダーの間の溝を埋めるのに役立ちます。
- 理解:経営者やシステムアーキテクトは、UMLを通じてシステムの重要な要件、機能、プロセスを理解できます。
- 時間の節約:プロセスとシステムの静的構造を視覚化することで、後続の段階で時間とリソースを節約できます。
UML図の種類
UML図は広く二つのカテゴリに分類されます:構造的および行動的。
1. 構造的UML図
1.1. クラス図
- クラス、そのメソッド、属性を使用して、システムの静的構造を描写します。
- 異なるクラスやオブジェクト間の関係を特定するのに役立ちます。
- Visual Paradigm UMLツール:クラス図
1.2. 組み合わせ構造図
- クラスの内部構造およびシステムの他の部分とのインタラクションポイントを表現します。
- クラス図に似ていますが、個々の部分に詳細に焦点を当てます。
- Visual Paradigm UMLツール:組み合わせ構造図
1.3. オブジェクト図
- 特定の時点におけるクラスの具体的なインスタンスおよびそれらの間の関係を描写します。
- クラス図に似ていますが、実際の分類子とその関係を示します。
- Visual Paradigm UMLツール:オブジェクト図
1.4. コンポーネント図
- システム内の物理的コンポーネントの構成方法を表現します。
- 計画された開発によって機能要件がカバーされているかどうかを理解するのに役立ちます。
- Visual Paradigm UMLツール:コンポーネント図
1.5. デプロイメント図
- システムのハードウェアとそのソフトウェアを表します。
- システムアーキテクチャと、ソフトウェアアーティファクトが分散されたターゲットにどのように配布されているかを示します。
- Visual Paradigm UMLツール:デプロイメント図
1.6. パッケージ図
- パッケージおよびその要素がどのように構成されているかを示します。
- 異なるパッケージ間の依存関係およびパッケージの内部構成を示します。
- Visual Paradigm UMLツール:パッケージ図
2. ビヘイビアラルUML図
2.1. ステートマシン図
- 時間の経過や変化する外部刺激に対するクラスの動的動作を表します。
- 有限の状態遷移を使用して、時間の有限な時点におけるシステムの状態をモデル化します。
- Visual Paradigm UMLツール:ステートマシン図
2.2. アクティビティ図
- システム内の制御の流れを示します。
- 順次的および並行的な活動をモデル化し、ワークフローの視覚的表現を提供します。
- Visual Paradigm UMLツール:アクティビティ図
2.3. ユースケース図
- システムまたはシステムの一部の機能を表します。
- 機能要件とシステムと外部エージェント(アクター)との相互作用を示します。
- Visual Paradigm UMLツール:ユースケース図
2.4. シーケンス図
- オブジェクト間の相互作用を順序立てて描写する。
- システム内のオブジェクトがどのように機能し、どのような順序で機能するかを説明する。
- Visual Paradigm UMLツール:シーケンス図
2.5. コミュニケーション図
- オブジェクト間で交換される順序付きのメッセージを示す。
- 主にオブジェクトとその関係性に注目する。
- Visual Paradigm UMLツール:コミュニケーション図
2.6. 時間図
- 時間枠にわたるオブジェクトの振る舞いを描写する、シーケンス図の特殊な形式。
- オブジェクトの状態や振る舞いの変化を制御する時間および期間の制約を示す。
- Visual Paradigm UMLツール:時間図
2.7. インタラクション概要図
- アクションの順序をモデル化し、複雑な相互作用を単純な出来事に簡略化する。
- アクティビティ図とシーケンス図の混合。
- Visual Paradigm UMLツール:インタラクション概要図
UML図で使用されるオブジェクト指向の概念
- クラス:オブジェクトの構造と機能を定義する。
- オブジェクト:大きなシステムを分解し、モジュール化するのを助ける。
- 継承:子クラスは親クラスの特性を継承する。
- 抽象化:関係のない詳細を無視し、システムの本質的な側面に注目する。
- カプセル化:データをまとめて結合することで、外部からのアクセスから保護する。
- ポリモーフィズム: 関数やエンティティが異なる形で存在できることを可能にする。
UML図のベストプラクティス
- 対象となる読者を理解し、そのニーズに合わせて図を調整する。
- 図をシンプルに保ち、システムの特定の側面に焦点を当てる。
- 一貫した命名規則と標準的なUML表記を使用する。
- 適切な表記とラベルを使用して、関係性を明確にする。
- 価値の提供と柔軟性の維持のため、アジャイル開発とモデリングのバランスを取る。
UML図を作成する手順
- 図の目的を特定する。
- 重要な要素と関係性を特定する。
- 適切なUML図の種類を選択する。
- ざっくりとしたスケッチを作成する。
- UMLモデリングツールを選択する(例:Visual Paradigm)).
- 図を作成する。
- 要素のプロパティを定義する。
- 注釈やコメントを追加する。
- 検証とレビューを行う。
- 改善と反復を行う。
UMLモデリングの一般的な課題と利点
- 課題:時間のかかる、過剰な文書化、要件の変化、協働の問題。
- 利点:標準化、コミュニケーション、可視化、文書化、分析、設計。
UMLとアジャイル開発
- UML図はアジャイル開発における効果的なコミュニケーションツールとして機能する。
- ユースケース図はユーザーストーリーを捉え、ユーザーアクションをモデル化できる。
- UMLにおける反復的モデリングは、アジャイルの反復的開発アプローチを支援する。
- アジャイルさとモデリングのバランス:適応型モデリング、チームの権限付与、そして動作するソフトウェアの価値を重視する。












