楽水

人々の創造が自由に表現できる舞台づくり

UML コミュニケーション

UMLとは

投稿日:

なお、UMLについての動画もあるので参考にしてください。

UMLとは?

UMLとはUnified Model Languageの頭文字をとったもので、統一モデリング言語と訳されています。
UMLはモデルを記述する言語ですが、そもそもモデルとは何でしょうか。
モデルといえばプラモデルの模型や、きらびやかな衣装をまとったモデルさんを思い出す方もいらっしゃるでしょう。
また、ビジネスモデルや数理モデルなど××モデルという使い方もされます。
ここでいうモデルとは、
現実のシステムの特別な一面を簡略化した形で表したもの
のことです。
なお、システムとは、複数の構成要素が互いに関係した総体のことです。
なので、建物の設計図など、システムを簡略化して表したものであればすべてモデルと言うことができます。
UMLは、標準化団体のOMG(Object Management Group)が1997年に採用し、現在はISO/IECがISO/IEC 19505-2:2012 として UML 2.4.1 を世界標準として採用しています。

いつUMLを使うのか?

もともと、UMLはオブジェクト指向型開発でソフトウェアを分析・設計するときの言語として使われていました。
つまり、ソフトウェアの設計図を描くための表記法だったのです。
しかし、システムを広く捉えると、ソフトウェアだけでなくビジネスなど他の領域のモデルを記述するときも使うことができるため、現在では、主に、
ビジネスモデリング、および、ソフトウェア開発の要求定義、分析、設計
で使われています。

UMLを使うメリットは何か?

それでは、UMLを使うメリットは何でしょうか?
結論から言うと、
コミュニケーションの効率化
です。
例えば、ソフトウェア開発のプロジェクトを考えると様々な利害関係者が登場します。プログラマー、システムエンジニア、プロジェクトマネージャー、ユーザー、オーナーなど。これら様々な立場の人々が会話すると、なかなか仕様が決まらないというのは容易に想像できるでしょう。なぜか、それぞれ関心事、視点が異なるからです。そのようなときにUMLが効果を発揮するのです。
UMLには以下の3つの特徴があります。
言語仕様が定義されている
様々な図が揃っており表現力が豊か
グローバルスタンダード

まず、言語仕様が定義されているということは、個人による表現のブレがなく、頭の中の概念を正確に伝えることができるということです。
つぎに、様々な図が揃っているということは、様々な切り口で頭の中の概念をわかりやすく伝えることができるということです。
さらに、グルーバルスタンダードということは、頭の中の概念を世界中の多くの人に伝えることができるということです。
つまり、UMLを使うことにうよって、頭の中の概念を
正確に
わかりやすく
多くの人に

伝えることができるのです。

UMLの種類には何があるか

UMLには様々な図がありますが、これを
動的視点・静的視点
物理視点・論理視点

で整理することができます。
動的視点とは「動いている状況を、視点を移動させながら見る」という視点です。静的視点とは「動いている途上の断面を見る」あるいは「様々な状況を一貫して見る」という視点です。
物理的視点とは「物理法則にかなっている対象や様子を見る」という視点で、論理的視点とは「論理(物事の間にある法則、筋道)にかなっている様を見る」という視点です。論理的視点で見る場合、筋道が通っていればよく、必ずしも物理法則にかなっている必要はないということです。
さて、UMLの図をこれらの視点のマトリクスで整理すると次のようになります。

もう一つ、大事な視点があります。それは、
型(タイプ)か実例(インスタンス)か
という視点です。
集合と、それを構成する要素で考えると、集合を構成する具体的な要素が「実例」で、実例を分類した集合が「型」になります。

UMLの図でいうとクラス図を構成する「クラス」が「型」になりオブジェクト図を構成する「オブジェクト」が「実例」になります。
先ほど、静的視点には「動いている途上の断面を見る」視点と「様々な状況を一貫して見る」視点があると書きましたが、「動いている途上の断面を見る」図がオブジェクト図で、「様々な状況を一貫して見る」図がクラス図になります。
オブジェクト図は、動いている実例のスナップショットをとったもので、クラス図は様々なスナップショットをまとめた不変的な図になります。
なお、動的な視点の図でいうとユースケース図は型の図になりますがシーケンス図など残りの図は実例の図になります。

それでは、代表的なユースケース図、クラス図、アクティビティ図についてみていきましょう。

ユースケース図

ユースケース図については次の動画を御覧ください。

クラス図

クラス図については、記事「クラス図を使った概念モデルの作り方」

を参照してください。

アクティビティ図

次の図はアクティビティ図の例です。

アクティビティ図については次の動画を御覧ください。

-UML, コミュニケーション
-,

執筆者:


  1. […] 上記販売業務領域の論理データモデルの例(図)や販売管理システムの物理データモデルの例(図)は、オブジェクト指向型スキームの表記法UMLを使ってデータモデルを記述しています。 […]

  2. […] 体験」 が、課題を解決する価値提案になります。 この事業ドメインをUML(Unified Modeling Language:統一モデリング言語)のユースケース図で描くと以下のようになります。 フィットネスバ […]

  3. […] 何かを計測、説明するオブジェクトで不変性、等価性を持ち、交換可能なものは値オブジェクトとして実装し、それらの性質を保証します。 値オブジェクトは、交換可能(置換え可能)なので、参照透過です。 値オブジェクトは、他のオブジェクトに組み込み可能(@Embeddable)で、直列化可能(Serializable)かつ複製可能(Cloneable)なオブジェクトとして実現します。 直列化可能(Serializable)にしておくことでバイト配列として保存することができます。 @Embeddable public class FullName implements Serializable, Cloneable{ } 不変性を実現するためには、private、あるいは、protectedなセッターを使って、状態変数であるフィールドを初期化します。 これを自己カプセル化といいます。 public FullName(String firstName, String lastName) { this.setFirstName(firstName); this.setLastName(lastName); } なお、JPAの@Entityで値オブジェクトを使用する(@Embedded)ためにはデフォルトのコンストラクターが必要です。 protected FullName() {} 等価性を実現するためには、clone()で複製可能にし、equals()を参照の比較(==)ではなく、内容の比較(equals)で行うように実装し、JUnitで、その検証ができるようにします。 Email、FullName、Address、URLなど、データドメイン(属性の定義域)が明確であるオブジェクトは、値オブジェクトとして実装してドメインを保証するようにします。 値オブジェクトをモデル化するときは、次の図のように、UMLのクラスのステレオタイプを使います。 […]

関連記事

クラス図を使った概念モデルの作り方

ここでは、UMLのクラス図を使& …