UMLとは?|ダイアグラムの種類や用途について解説

編集部注:2024年3月12日にリンク切れを修正しました。

エンジニアをしているとUMLといった言葉を耳(目)にする機会が多いと思います。UMLについて「なんとなく知ってるけど…」って人も多いのではないでしょうか。

ここではUMLで使用するダイアグラムについて簡単に説明します。書き方など詳細は別の記事で、代表的なダイアグラムに絞って書いていきたいと思います。


対象・目的

ターゲットは新卒や、エンジニア初級者向けのコンテンツです。この記事をきっかけに若い世代にもUMLについて興味を持って頂くことを目的としています。UMLを理解することによってよりエンジニアとしての幅も広がることと思います。難しく考えずに積極的にトライしてみてください。


UMLとは?

UML

Unified Modeling Languageの頭文字を取ったもので、「統一モデリング言語」と言われています。言語の違いを統一するものがUMLではなく、人や言語の違いによる「表現の方法を統一する」ものがUMLなのです。

どういった場面で使われるのかというと、例えば、言葉の表現、言い回しって国や地域、人によってさまざまですよね。システムを作るための設計書が人によって書き方が違っていると読みづらいだろうし、非常に非効率だと思いませんか。

UMLは統一言語といいつつも、使われるものの殆どが図となっているため、言い回しの違いなどが起こらず、見方さえ覚えていれば誰でも簡単に共通認識で読むことが可能です。


UMLのメリット

先にも述べましたが、UMLには以下のようなメリットがあります。

UMLのメリット

01:表現方法が統一されている

UMLの読み方を理解しているエンジニアであれば比較的スムーズに設計書や仕様書などを正確に読むことが可能です。

02:ダイアグラム(図)での表現

基本的に図での表現が主流のため、エンジニアにとって理解しやすく、また、設計の変更が発生した場合においても把握しやすくなります。

以下によく使用されるダイアグラムの一部をご紹介します。


ダイアグラムの用途

UMLには、その時その時の用途に応じてダイアグラムを使い分けたりします。ここでは、そのダイアグラムの種類と用途についてご説明します。

クラス図

クラス同士の関係性を表現したダイアグラムです。システムの構成を視覚的に理解する時に使われることが多く静的な構成図となっています。

クラス図

引用:アジャイルモデリング(AM)公式サイト

パッケージ図

複数クラスの集合体がひとつのパッケージとして構成されていて、そのパッケージの関連性を表現したのがパッケージ図となっています。

パッケージ図

引用:Wikipedia

オブジェクト図

クラス図のように関係性だけを把握するものではなく実際にプログラムが動作した時に、どういった状態になるのかなども表現することができます。

オブジェクト図

引用:IT専科 ※現在はリンク切れになっています。

アクティビティ図

プログラムの処理の流れを表現するダイアグラムです。基本情報などでも出てくるような「フローチャート」をイメージして頂ければ理解が早いと思います。

アクティビティ図

引用:IT専科 ※現在はリンク切れになっています。

ユースケース図

システムの利用方法、手順のようなものを表現する時に用います。また、システムがどういった機能を提供しているのかといった表現をする時にも用います。

ユーズケース図

引用:IT Koara Navi

ステートチャート図

いわゆる、「状態遷移図」です。特定のオブジェクトのライフサイクルをモデリングする際に動的なモデルとしてよく使用されます。オートマトンを勉強された方なら直ぐに読むことができるのではないでしょうか。

ステートチャート図

引用:ITmedia エンタープライズ

シーケンス図

相互作用図と呼ばれるもので、UMLではこのシーケンス図と後に紹介するコラボレーション図があります。時系列に沿ってメッセージの順番を表現するのに用いられる図で、同期、非同期や細かいところを除くと非エンジニアの方でも読めてしまうような比較的読みやすく簡単な図になっています。

シーケンス図

引用:IT専科 ※現在はリンク切れになっています。

コラボレーション図(コミュニケーション図)

UMLのもう一つの相互作用図です。シーケンス図と非常に似ていますが、違いとしてはシーケンス図は上からメッセージを時系列に記述するのに対してコラボレーション図はメッセージを横に並べて記述します。

コラボレーション図

引用:オブジェクトの広場


まとめ

いかがだったでしょうか。UMLについてザッと簡単にまとめましたが、触りだけでも理解頂けたでしょうか。

読み方を知っているだけで仕様把握などは非常に円滑に進めることができ、また、認識の相違なども起こりにくく大変便利なツールです。

「読む」のと「書く」のとでは全然違いますので、理解を深めるためにも是非、積極的にシナリオをダイアグラムに書き起こしてみる訓練をしてみてください。UMLを知っているだけでエンジニアとしてのレベルもひとつ上がること間違いなしです。