UMLとは?活用するメリットから代表的な8つの種類まで
エンジニアとして働いている人や、エンジニアを目指して勉強している人であれば、一度は「UML」という言葉を耳にしたことがあるでしょう。しかし、UMLとは何かを詳しく説明するように求められたとしたら、答えに窮してしまう人がほとんどではないでしょうか。
今回はUMLとは何かを解説したうえで、UML図の代表的な種類と概要を紹介します。UMLとは何かを詳しく知り、エンジニアとしての知識を増やしましょう。
1.UMLとは?
UMLとは、Unified Modeling Languageの略称です。日本語では「統一モデリング言語」と訳され、分析・設計・実装といったシステム開発の過程を図として表現するモデリング手法を指す言葉として用いられています。
UMLを使用する主な目的は、コミュニケーションの効率化です。複雑なシステムを言葉だけで説明し、十分な理解を得ることは、至難の業と言わざるを得ません。すべての情報が図式化されていれば、エンジニアとしての知識をほとんど持たない人にも、システムの仕組みや構造をスムーズに理解してもらいやすくなります。また、システムの全容から細部に至るまでを一目でチェックできるため、問題点を簡単に把握することが可能です。
1-1.UMLを活用するメリット
UMLができる前までは、オブジェクト指向言語の表現ルールは人や組織によって異なっていました。そのため、理解のすり合わせをする時間が余計にかかってしまったり、誤解によるミスが生じたりすることが少なくなかったと言います。
このような状況を打破するために生み出されたものが、UMLです。UMLの開発者はランボー・ブーチ・ヤコブソンの3人であり、「スリーアミーゴス」と称されています。
UMLの普及に一役買った組織は、オブジェクト指向技術の国際的な非営利コンソーシアムであるOMG(Object Management Group)です。OMGがUMLを標準化認定したことによってUMLが世界中に普及し、ソフトウェア開発者は母国語や理解度を問わずシステムを共有できるようになりました。
UMLは、表現方法がただ1つに統一されているモデリング手法です。そのため、読み方さえ押さえておけば、誰でも正確にシステムを把握できます。UMLを活用することで得られる最大のメリットは、保守性を高められる点にあると言えるでしょう。
2.UML図の代表的な種類と概要
UMLのダイアグラム、いわゆるUML図は「構造図」と「振る舞い図」の2つに大別することが可能です。
構造図 | システムの静的な構造を表す図 |
---|---|
振る舞い図 | システムの動的な挙動を表す図 |
以下より、代表的な8つのUML図について解説します。
2-1.【構造図】クラス図
クラス図は、オブジェクトの設計図であるクラスの定義や、クラス同士のつながりを示す図です。分析・設計・実装といったシステム開発の全段階において、システム全体の構成を可視化するために用いられます。
クラスの定義を表す図を構成する主な要素は、クラス名・属性・操作です。「関連」「誘導可能性」「集約」「コンポジション」「依存」「汎化」「実現」といったクラスの関係は、線形の種類によって見分けられます。また、多重度を定義することも可能です。
2-2.【構造図】コンポーネント図
コンポーネント図は、システムの構成要素であるコンポーネントの構造や、コンポーネント同士の関係を示す図です。システム開発の実装段階において、システムの内部構成を可視化するために用いられます。
各コンポーネントには、《component》というステレオタイプテキストか、コンポーネントを表すアイコンを記すことが原則です。各コンポーネントには、機能名のほか、提供インターフェイスや要求インターフェイスも記載できます。
コンポーネント同士の関係は、矢印を使って描くことが可能です。依存関係は依存先に向けての矢印、委譲関係は委譲先に向けての矢印で表現されます。
2-3.【構造図】パッケージ図
パッケージ図は、モジュール間やサブシステム間の構造や依存関係を示す図です。大規模なシステムにおいて、複雑なクラス図を簡略化するために用いられます。
各パッケージは、ファイルフォルダの形で表すことが原則です。各パッケージには、パッケージ名とパッケージ内のモデル要素が記載されます。
パッケージ同士の依存関係は、依存先に向けての破線矢印によって表現することが可能です。なお、パッケージ同士の重層的関係は、入れ子構造として描かれます。
2-4.【構造図】配置図
配置図は、システムの物理的な配置構造を示す図です。物理ハードウェア要素の依存関係や通信関係を理解するうえで役立ちます。システム開発の実装段階において、システムのアーキテクチャーを設計するために用いられることが一般的です。
配置図において、物理ハードウェア要素は「ノード」として表現されます。ノードは、直方体で表すことが原則です。ノード内にはパッケージ名が記載され、ノード上で動作するコンポーネントやノードを入れます。ノード同士の通信関係は、実線で表すことが可能です。また、多重度も定義できます。
2-5.【振る舞い図】ユースケース図
ユースケース図は、システムを使ってできることを利用者視点で示す図です。ユーザーのアクションに対し、システムはどのような挙動をするかを可視化するために用いられます。
ユースケース図を構成する主な要素は、システムを利用するユーザーを表す「アクター」と、システムがどのように利用されるかを表す「ユースケース」です。アクターは棒人間、ユースケースは楕円形で表現します。アクターとユースケースの関連は実線で、複数のユースケースを内包するシステムは「サブジェクト」として長方形で表します。
2-6.【振る舞い図】シーケンス図
シーケンス図は、オブジェクト同士の相互作用を時系列で示す図です。システムの設計段階において、システム処理の流れを可視化するために用いられます。
シーケンス図を構成する主な要素は、「ライフライン」「実行仕様」「停止」「メッセージ」の4つです。ライフラインは、オブジェクトを表します。実行仕様は、ライフラインが実行状態であることを表現するものです。停止は、ライフラインの消滅を示します。メッセージには「同期」「非同期」「応答」「ファウンド」「ロスト」の5パターンがあり、矢印の種類によって見分けることが可能です。
2-7.【振る舞い図】アクティビティ図
アクティビティ図は、システム実行の流れを示す図です。複雑なシステムをフローチャート形式でシンプルに表現できるため、システムの無駄を発見するうえで役立ちます。
アクティビティ図を構成する主な要素は、「アクティビティ」「開始ノード」「終了ノード」「判断ノード」「コネクター」の5つです。アクティビティは、角丸四角形で表現します。開始ノードは黒丸、終了ノードは内側の丸を黒く塗りつぶした二重丸で示すことが可能です。判断ノードは条件分岐する場所を指し、ひし形で表します。コネクターは、アクティビティの流れを示す矢印です。
2-8.【振る舞い図】ステートチャート
ステートチャートは、オブジェクトの状態が遷移する過程を示す図です。ステートチャート図とも呼ばれ、複雑な要件を整理する際、オブジェクトの動作が開始してから終了するまでを可視化するために用いられます。
オブジェクトの状態は、角丸四角形で表すことが原則です。状態遷移は、矢印で表現します。開始状態は黒丸、終了状態は内側の丸を黒く塗りつぶした二重丸で示すことが可能です。なお、ステートチャートは、UML2.0から「ステートマシン図」に変更されました。
まとめ
UMLは、エンジニア業界の世界共通語とも呼べるモデリング手法です。UMLを活用すれば、母国語や理解度を問わず、さまざまな人にシステムの仕組みや構造を正確に伝えられるようになります。また、システムの全容から細部に至るまでを一目でチェックできるため、問題点も容易に把握できるでしょう。
そうしたメリットがあることから、システムを共有・確認する際には、UML図を活用することをおすすめします。目的に応じてさまざまなUML図を使い分け、コミュニケーションの効率化を図ったり、システムの保守性を高めたりしてください。
KEYWORD