この記事では、UMLとはどういうものなのか、UMLを使うことでどういうことができるのか等、UMLに関する内容を簡単に紹介します。ソフトウェア開発の世界ではオブジェクト指向やUMLは広く扱われています。こうしたソフトウェア開発では、仕様や設計書を元に開発をしていきますが、UMLについてもこの設計の一種です。UMLを扱うことで、開発のしやすさやユーザーへの伝えやすさが向上します。
目次
UMLとはそもそも何?
UMLとは、簡単に言うと図の書き方を標準化したもので、UMLとして決められたルールに従って図を作成すると、だれが書いても誤解なく人に伝えることができます。ソフトウェアシステムの設計や仕様を図で表すことで視覚的に表現することが可能で、モデリング言語と呼ばれる言語の一種です。UMLは複雑なシステムを理解しやすくするために使われ、異なる図を使うことでシステムの構造やふるまい、相互作用を表現することが可能です。
・UMLの目的
UMLは過去様々な人たちにより提唱されてきたオブジェクト指向開発技法のモデル表記法を1つに統一したものです。UMLはもともとオブジェクト指向の開発技法で、提唱していた人たちの中の3人、「ブーチ」「ランボー」「ヤコブソン」がまとめたものが発端となっています。
・UMLのメリット
UMLを使用することによるメリットは次の通りです。
視覚的な表現 | システムやプロセスの流れを図に表現することで、人々とのコミュニケーションが容易になる。 |
共通の言語 | 標準化されたモデリング言語のため、共通の理解を得やすくなる。 |
システム設計の改善 | システムの要件や設計を体系的に整理でき、システムの品質が向上する。 |
ドキュメンテーションの効率化 | システムのドキュメントとして使用でき、長期的なプロジェクトにおいても有用である。 |
再利用性の向上 | システムの拡張や新しいプロジェクトでの再利用が容易になる。 |
以上がUMLを扱う上でのメリット及び特徴になります。
・UMLの使用用途
次の通り、様々な設計の場面で多く使われます。
システム設計とアーキテクチャ | システムの全体的な構造など、コンポーネント間の関係を視覚化するために使用される。 |
プロセスのモデリング | 業務プロセスなどを視覚的に表現することができるため、分析や改善が容易になる。 |
要求定義 | 要求定義の明確化をすることで、開発の初期段階で関係者間の共通理解を確立できる。 |
ソフトウェア開発のサポート | 設計図からコードを自動生成することで、開発効率を向上させることが可能である。 |
データベース設計 | データベース設計がより整理された形で進められる。 |
テスト設計と管理 | テストケースやシナリオを定義することで、プロセスの計画や管理を行える。 |
ドキュメント作成 | プロジェクトの設計や実装の詳細を文書化し、メンテナンスなどを容易にさせることができる。 |
コミュニケーションツール | 開発チーム内及びクライアントとのコミュニケーションを円滑にするための共通言語として機能する。 |
挙動モデリング | システムがどのように動作するかをシミュレートし、検証することができる。 |
ソフトウェア開発以外でも、UMLを利用することで得られる知識や技術は、設計を利用する分野であれば広く使われます。
UMLにおけるオブジェクトとモデル
UMLでは、基本的な概念としてオブジェクトやモデルといった概念が多々登場します。ここでは簡潔にUMLにおけるオブジェクト、及びモデルがどういうものなのかを紹介します。
・UMLにおける「オブジェクト」
UMLはオブジェクト指向の考え方と密に関係しており、その考え方でモデルを表現します。人間が認識できるもの、目に見えるもの、触れるものなど全て「オブジェクト」で、正確には「個々の具体的なもの」を指します。抽象的な表現として、人・会社などは「オブジェクト」ではありません。
その中で、オブジェクト指向とは「ソフトウェアをオブジェクトの集まりとして構成し、それらが協力し合ってプログラムを動かす」という考え方を指します。UMLはオブジェクト指向言語でプログラムを作る際の設計に多く用いられています。
・UMLにおける「モデル」
UMLにおけるモデルとは、簡潔に言うと「対象を単純化した模型(設計図)」という意味です。例えばプラモデルやその他模型もモデルです。要するに「対象を単純化したもの」と考えられます。
そもそもUMLにおけるモデルの概念は、開発の対象となる現実世界やシステムの一面を単純化したものになります。そもそもモデルが必要とされる理由としては、開発者のために他なりません。モデルを作ることにより、ソフトウェア開発がスムーズにできます。
UMLでは主に以下の3つのモデルが使用されます。
機能モデル | ソフトウェアの役割を表すモデル (ソフトウェアは何を行うためのものか、どのようなサービスを提供するのかを表す)
ダイアグラム : ユースケース図 , アクティビティ図 |
静的モデル | 静的構造を表すモデル (機能を実現するためのソフトウェアの構造を表す)
ダイアグラム : クラス図 |
動的モデル | ふるまいを表すモデル (機能がどのようにして動くかを表す)
ダイアグラム : 相互作用図 , ステートマシン図 |
これらのモデルを使い分けることで、ソフトウェア開発において重宝するUMLの作成ができます。
UMLにおけるダイアグラムについて
UMLはダイアグラムと呼ばれる13種類の図が存在します。
UMLにおけるダイアグラム(図)は大きく[構造図]と[振る舞い図]の2つに分類されます。構造図は6つに分類され、振る舞い図は4つに分類されます。そのなかの相互作用図は、さらに4つに分類されます。
区分けについては以下の通りです。
以上の各種ダイアグラムを使用することにより、場面に合わせて必要な設計図を提供することが可能です。
まとめ
ここまでUMLとは何か、UMLの目的とそのメリット、さらにUMLにおけるオブジェクトやモデルとは何か、またUMLのダイアグラムはどのようなものがあるのかを紹介しました。UMLは、ソフトウェア開発だけでなくコミュニケーションの場でも活用できるため様々な分野で重宝します。次回はダイアグラムのひとつ、オブジェクト図について紹介します。