統一モデリング言語(UML)の意味や目的とは?具体的なダイアグラムも解説!
2024.08.22更新
機電系エンジニア必見!!貴重なフリーランス案件はこちら ▶大規模なシステムの開発には統一モデリング言語、通称UMLを使いこなすのがオススメです。しかしシステム開発に携わったことがなければ、UMLについてあまり詳しく知らない、そもそも聞いたことがない、という方も多いはず。そこで今回は、UMLの言葉の意味や活用の目的、具体的な構造図について解説していきます。プログラミングをこれから学びはじめる方にとっても役立つ内容のため、ぜひ最後まで読んでみてください。
統一モデリング言語はシステム設計を可視化する言語
オブジェクト指向のプログラミング言語を使用して大規模システムの開発を行う場合、ユーザーが求める仕様が開発者にうまく伝わらず、想定と異なるシステムになる恐れがあります。また、たとえ仕様が明確になったとしても、各アプリケーション同士の振る舞いや授受するデータが不明確だと、全体として無駄の多いシステムが出来上がる可能性も考えられます。
そこで、ユーザーや開発者の相互理解を助長し、コミュニケーションの円滑化や勘違いを防ぐ目的で使用されるのが統一モデリング言語(UML:Unified Modeling Lnaguage)です。UMLはオブジェクト指向の業界の標準言語となっていて、個々のアプリケーションの動作要件だけでなくアプリケーション同士の繋がりや構成、システム全体の挙動などを視覚的に表すのに使われます。
UML設計に必要なオブジェクト指向とは
オブジェクト指向システムを開発するのに適したUMLを理解するべく、オブジェクト指向の考え方そのものについても触れておきます。オブジェクト指向とはシステムで役割を持つモノをオブジェクトとして定義し、振る舞いや特徴を決めて各種プログラム動作に使用する考え方のことです。
オブジェクトが持つ特徴は属性と呼ばれ、例えばテーブルなら脚と天板がある、自転車であればブレーキや2つのタイヤがあるなどの特徴が属性に該当します。そして、各オブジェクトの振る舞いや動作はメソッドと呼ばれ、自動車の例で言えばアクセルを踏んだら前に進む、ブレーキを踏んだら止まるなど、所定の要求に対して行うべきアクションのことです。
UMLでは現実世界に存在する物事をオブジェクトとして定義してシステムを設計します。システムに関係する物事の特徴を属性として、各種オブジェクトに指示やデータを与えればどう振る舞うのかをメソッドとして、それぞれ定義してシステムの挙動を構築します。
UMLのダイアグラムは構造図と振る舞い図に分けられる
UMLではオブジェクトの属性やメソッドを分かりやすく表記するために、ダイアグラムという図を用いて設計に使用します。ダイアグラムは構造図と振る舞い図という2つに大別され、振る舞い図の一つである相互作用図には、更に細かく種類が分かれています。
構造図の例
構造図とはシステムにおける各オブジェクトの特徴やオブジェクト同士の繋がり、構造、位置関係などを表した図のことです。例えば以下の3種類が代表的な構造図と言えます。
- クラス図:大規模なシステムの図式化が得意でシステムを構築するクラスの中身とクラス同士の相互関係を表す図
- コンポーネント図:システム内のソフトウェコンポーネントの関係を図式化し、インターフェイスを通じてどのように繋がりがあるかを示す図
- オブジェクト図:ある時点におけるオブジェクトの状態や相互関係を示す図
他にも様々な種類が存在しますが、例として紹介した図は特に使用頻度が高いので、しっかりと理解しておきましょう。
振る舞い図の例
静的な図式である構造図に対し、システム全体やオブジェクトの動作、オブジェクトへの入出力情報などを図式化したものは振る舞い図と呼ばれます。よく使われる振る舞い図には以下の3種類があります。
- ステートマシン図:ある時点でのシステムの状態について、内部オブジェクトの初期状態、時間や外部入力に対する状態遷移、最終状態などを示す図
- アクティビティ図:ステートマシン図の代替図として、システムのワークフローの一部の挙動を表す図
- ユースケース図:システムを利用するユーザー(アクター)とシステム間で、アクターに対して提供するサービスやアクターの操作内容を示す図
また、振る舞い図の中にはオブジェクト同士の双方向のやり取りに特化した相互作用図と呼ばれる図も存在していて、更に複数の種類に分かれています。
相互作用図は更に細かい種類がある
システム内のオブジェクト間の相互作用に特化して図式化した相互作用図には、シーケンス図やタイミング図、コミュニケーション図などの種類があります。例えばシーケンス図であれば、オブジェクト間のメッセージのやり取りを時系列的に表したもので、時間と処理の流れが視覚的に分かりやすいです。
タイミング図は更に処理のタイミングや処理時間に特化した図で、コミュニケーション図はオブジェクト間の命令や情報の流れに特化した図のことです。相互作用図は複数のオブジェクトの相互動作に特化した図であるため、オブジェクト数の多い複雑なシステムの設計にこそ積極採用すると良いでしょう。
UMLに対する批判もある
システムの動作が視覚的に分かりやすいUMLですが、一部否定的な意見があることも覚えておきましょう。まずUMLが用意している言語や図面、アーキテクチャなどが肥大化し過ぎていて、かえって設計負荷が上がっていることを懸念する声があります。先に説明した図以外にも様々な図が用意されているものの、ほとんど使われないものも多く、UML自体の習得難易度が上がっていることが原因です。
また、 UML自体がオブジェクト指向で設計するため、オブジェクト指向以外の言語によりシステムを設計するには不向きだという声もあります。
まとめ
今回はシステム開発で役立つ統一モデリング言語、通称UMLについて解説してきました。UMLを使いこなすにはそれなりの勉強が必要にはなるものの、うまく使いこなせれば強力なツールとなります。採用することで生じるデメリットも正しく理解し、システムの規模や設計にかけられるリソースなどを見ながら総合的に採用判断を下すのがベストと言えるので、気になった方はさらに深ぼって勉強してみては如何でしょうか。
フリーランス×機電系エンジニア!高単価求人はこちら ▶機電系求人はこちら
-
設計技術者(樹脂、金属部品)
-
- 単価
-
40~50万円
-
- 職種
- 機械設計
-
詳細を見る
-
-
FPGAの設計開発:電気電子設計
-
- 単価
-
70~80万円
-
- 職種
- 電気電子設計
- スキル
- ・FPGA論理設計、RTLコーディング、論理検証環境構築、論理検証・RTLコード:VHDL・論理検証ツール:Siemens製Questa/ModelSIM
- 地域
- 東京
- ポイント
- #高単価
-
詳細を見る
-
-
UI画面の設計業務:電気電子設計
-
- 単価
-
64〜万円
-
- 職種
- 開発
- 電気電子設計
- スキル
- 必要スキル: ・電源回路は複数回経験し、設計動作確認など、一人でもある程度やるべきことが分かる。 ・数十頁のデータシートを読み、要求仕様(タイミング/電圧など)が理解できる ・その他左記の回路の種類の中で、回路設計の実務経験が1回以上ある。 ・回路修正ができる(半田付け、ジャンパー処理)
- 地域
- 関西
- ポイント
- #業務委託#駅近
-
詳細を見る
-
-
【急募】工作機械メーカーにおける自社製品の制御設計
-
- 単価
-
40~50万円
-
- 職種
- 電気電子設計
- スキル
- 基本的なPCスキル産業用機械・装置の電気設計経験
- 地域
- 山梨県
- ポイント
- #業務委託
-
詳細を見る
-