![UML 図についての画像](https://images.ctfassets.net/w6r2i5d8q73s/4FqnbdsGICuT5RLqLQ9X9S/f671209af8216954377f87c97b74dc98/diagramming_uml_diagram_hero_image_EN_standard_4_3.png?fm=webp&q=75)
UMLとは?図の種類から書き方の基本をわかりやすく解説
![UML 図についての画像](https://images.ctfassets.net/w6r2i5d8q73s/4FqnbdsGICuT5RLqLQ9X9S/f671209af8216954377f87c97b74dc98/diagramming_uml_diagram_hero_image_EN_standard_4_3.png?fm=webp&q=75)
システムやソフトウェア開発に携わった方やエンジニアを目指している人であれば、 UMLという言葉を聞いたことがあると思います。
UMLは「統一モデリング言語(Unified Modeling Language)」の略称であり、 システム・ソフトウェア開発において要素間の関係やシステムの流れ、構造を可視化する 設計図の役割があります。
しかし、一概にUMLといっても、さまざまな種類の図や設計ルールが存在するため、 UML図を作成する時は、これらの「オブジェクト指向型プログラミング」のルールを 覚えておくことが重要です。
この記事では、UMLの基本的な情報からUML図の種類一覧、書き方や作成するメリットに ついてわかりやすくご紹介しています。
記事の最後にはUML作成におすすめのツールやテンプレート、AI機能についても ご紹介しているので、ぜひご確認ください。
それでは、UMLについて見ていきましょう。
UML(統一モデリング言語)とは?
冒頭でも少し触れたように、UMLは「統一モデリング言語(Unified Modeling Language)」の略称であり、システム・ソフトウェア開発において要素間の関係や システムの流れ、構造を可視化したい時に作成される図です。
UMLを使うことでエンジニア間での設計方法を統一できるだけでなく、プログラミングに 知見がない人や部署がプロジェクトに参加していた場合でも、わかりやすくシステムの 構造を共有することができます。
UMLにはよく知られている「シーケンス図」や「クラス図」を含めて14種類の図が 存在し、2024年現在ではバージョン2.5.1まで公開されています。
オブジェクト指向型プログラミングについて
「オブジェクト指向型プログラミング」もUMLを設計する上でよく耳にする用語です。
オブジェクト指向型プログラミング(OOP:Object Oriented Programming)は、 ソフトウェア開発の考え方の一つであり、プログラムの要素をオブジェクト(モノ)として 認識し、これらのオブジェクトを組み合わせて1つのプログラムを作る考え方です。
例えば、車の製造プロセスを例に取った場合、車の部品を個々に作っておけば、他の種類の 車の改良や既存の性能の応用にこれらの部品が活用できます。
各車に必要な共通の性能は、同じ部品(オブジェクト)を使って作成し、各車に特有の 機能は、独自に作りこんで実装するという考え方がオブジェクト指向型プログラミングです。
UMLを活用するメリット
システム・ソフトウェア開発において最もポピュラーな手法がUMLです。
UMLを活用することでオブジェクト指向プログラミングのルールを組織や開発チームで 統一することができるため、母国語や理解度に関係なく情報の共有や認識のすり合わせを 行うことができます。
また、時間が経ってシステムの管理者や担当者が変わっても、UMLがあれば誰も仕様が わからないといった問題も未然に防ぐことができます。
特に、ユースケース図、シーケンス図といったシステムの流れを表す図は、プログラ ミングの知識や経験を持たない人でも一目で理解できるため、部門横断型のプロジェクト チーム内で情報を共有し合うにはうってつけのUML図だと言えるでしょう。
UML図の種類
上記でもご紹介したようにUML図には14種類の図があります。
ここではUML:バージョン 2.5.1に含まれている14種類の図の内、よく開発プロセスに 使用される10種類の図をご紹介します。
シーケンス図
シーケンス図は、システム内のクラスやオブジェクト間で発生する関係を記号や図を 使いながら時系列で表現する図です。
システム開発においてシステムの概要や仕様、処理の流れを表すことに役立つ図であり、 設計図としての役割だけでなく、開発・保守・運用フェーズを通してシステムの詳細を 把握するためにも役立つ図です。
▼ 関連ページ シーケンス図とは?書き方のポイントや構成要素・記号を例を使って解説
UMLシーケンス図がオンラインで作成できるツールはこちら →
クラス図
![](https://images.ctfassets.net/w6r2i5d8q73s/mVi8eGPv0vXqCkUp8WwNu/7638fe58a896abd4f66e7d6597bfab40/uml_class_diagram_product_image_EN_big_3_2.png?fm=webp&q=75)
クラス図を使うことで設計しているシステムの中にどのようなクラスが存在するのかや、 クラスとクラスの間にどんな関係があるのかを視覚的に洗い出すことができます。
クラス図を作成することで、プログラム内の変数の過不足や、 変数が所属するクラスの 妥当性を検討することができるので、システム設計に必要な構成要素が簡単に可視化できます。
ここでいう「クラス」とは、オブジェクト指向における「クラス」(プログラミングで つくるオブジェクトの設計図)のことであり、基本的に、UMLでは「上段:クラス名」 「中段:属性」「中段:属性」の階層を使ってクラスの構造や関係性を表します。
▼ 関連ページ UMLクラス図とは?書き方や作成のコツを例を使ってわかりやすく解説
ユースケース図
ユースケース図は、ユーザーの目線からシステム要件を分析する時に役立つUML図です。
ユーザーが開発するプロダクト・サービスをどのように利用するのかを示す「ユース ケース」を「誰が」「何に対して」「何ができる」などの要素に分解して明確な図として 表すことがこの図では可能です。
ユーザーやシステムを指す「アクター」と行動を指す「ユースケース」を線で結ぶだけの わかりやすい図なので、さまざまな開発プロジェクトで活用されています。
▼ 関連ページ UMLガイド | ユースケース図とは?書き方や気を付けたいポイントをわかりやすく解説
コンポーネント図
![](https://images.ctfassets.net/w6r2i5d8q73s/2BpgGVzZC7XJ7BBSnCb9PW/474f16dca78fbc8bc6b1bcf0da684912/Uml_component_diagram_tool_product_image_EN_big_3_2.png?fm=webp&q=75)
コンポーネント図は、ソフトウェアやシステム開発において物理的な構造をモデリング するために使用されるUML図の1つです。
コンポーネント図を作成することで、システムを構成する個々の部品やその部品が提供する インターフェース、部品間の接続や依存関係を表すことができ、各部品がどのように 相互作用するかの概要が明確になります。
▼ 関連ページ 作成ガイド | UMLコンポーネント図とは?書き方、活用する記号を詳しく解説
オブジェクト図
オブジェクト図は、クラス図と似たUML図です。
オブジェクト図では、クラス図を使って表したシステムが実際に稼働する時に具象化する オブジェクト間の関係を表現します。
クラス図よりもより具体的に情報が表せるので、システムをより理解しやすいように、 視覚化するために役立つツールです。
▼ 関連ページ UMLでのオブジェクト図とは?書き方やクラス図との違いを例を使って解説
配置図
![](https://images.ctfassets.net/w6r2i5d8q73s/67C4binCquws7nSZVMECvJ/8fee80272e215e5cd871c8c7d9874ea5/image__3_.png?fm=webp&q=75)
配置図は、システムの物理的な配置構造を示したいときに作成できる図です。
物理ハードウェア要素の依存関係や通信関係を理解するうえで役立ち、システム開発の 実装段階において、システムアーキテクチャーを設計する時によく活用されます。
配置図では、物理ハードウェア要素を直方体の「ノード」を使って表現し、ノード内には パッケージ名は記入され、ノード上で動作するコンポーネントやノードが入ります。
▼ 関連ページ UMLガイド | 配置図とは?書き方や作成するメリットを例を使ってご紹介
パッケージ図
パッケージ図は、クラス図を構成する要素の1つであり、グループ化されたクラス間の 依存関係を表すことに使用される図です。
パッケージ図を使ってクラスを整理することで、依存関係をキレイにまとめることができ、 スムーズに開発作業を進めることができるようになります。
▼ 関連ページ UMLガイド | パッケージ図とは?書き方や構成する要素を解説
コミュニケーション図
![](https://images.ctfassets.net/w6r2i5d8q73s/1VaG385GYbQOGawV5lrsOC/5adc63249a9f4ff5d07b7feaefc1e736/UML_communication_diagram_tool_hero_image_EN_standard_4_3.png?fm=webp&q=75)
コミュニケーション図は、システムがどのように動作するのかを特定の記号と定義を 使って記述するUML図です。
システムどうしの相互作用や関係、信号の流れを表すという点から「シーケンス図」と 似ていますが、シーケンス図ではこれらの関係を時系列で表記するのに対し、 コミュニケーション図ではオブジェクト間の関係に着目して表記します。
また、シーケンス図では、すべてのオブジェクトを横向きに並べますが、コミュニ ケーション図では、より自由に配置することができるので、オブジェクト間の関係が より表現しやすい図となっています。
▼ 関連ページ コミュニケーション図とは?書き方やシーケンス図との違いを解説
ステートマシン図
![](https://images.ctfassets.net/w6r2i5d8q73s/6i5BOuF8MIEVM5ryPyEWoa/0dfd268950a2d5f3061e0eb6be152b9c/diagramming_uml_hero_image_EN_standard_4_3.png?fm=webp&q=75)
ステートマシン図は、システム内のオブジェクトに起こるすべての状態遷移を視覚的に 表現することに使用されるUML図であり「状態遷移図」とも呼ばれることがあります。
実装型の図であるため、主にエンジニアが使用する図ですが、業務フローや組織内の プロセスにもステートマシン図を使うこことで、すべてのプロセスを合理的にまとめる ことができる、便利な図です。
昨今ではプロダクトデザインの情報化が進み、「状態遷移図」と「画面遷移図」の違いが 分かりににくなっていますが、ハードウェア開発では「状態遷移図」、ソフトウエア開発では 「画面遷移図」と簡単に分類するようにしましょう。
▼ 関連ページ 状態遷移図(ステートマシン図)とは?書き方や状態遷移表との違いを解説
オンラインでUMLステートマシン図が作成できるツールはこちら →
アクティビティ図
![](https://images.ctfassets.net/w6r2i5d8q73s/5ELmOctar4cXGoU1l6P3ri/114b2c34ce9442c3c7475fbb0a69f293/activity_diagram_tool_product_image_EN_big_3_2.png?fm=webp&q=75)
アクティビティ図では、一連の処理のプロセスや条件分岐を表現する時に使用される図です。
フローチャートとよく似た構造を持っているため、フローチャートを作成したことが ある人にとっては、簡単に作成できるUML図です。
アクティビティ図には「開始」と「終了」のノードがあるため、ステートマシン図と 誤解されることがありますが、1つの処理の「開始」と「終了」を表すため、 システム全体を表すステートマシン図とは異なる目的で使用されます。
▼ 関連ページ UMLガイド | アクティビティ図とは?書き方やメリットを例を使ってご紹介
なお、上記でご紹介した10種類のUML図は、システムの静的な構造を表す図「構造図」と システムの動的な挙動を表す図「振る舞い図」の2種類の図に分類することができます。
以下にこれらの分類をまとめています。
構造図
クラス図
コンポーネント図
パッケージ図
配置図
オブジェクト図
振る舞い図
シーケンス図
ユースケース図
アクティビティ図
ステートマシン図
コミュニケーション図
これらのUML図の特性を理解することで、システム・ソフトウェア開発のどのプロセスに どのようなUML図を使えばいいのかイメージしやすくなることでしょう。
まとめ
UMLは「統一モデリング言語(Unified Modeling Language)」の略称であり、 システム・ソフトウェア開発において要素間の関係やシステムの流れ、構造を可視化する 設計図の役割があります。
2024年現在では、UML:バージョン2.5.1まで公開されており、よく知られている 「シーケンス図」や「クラス図」を含めて14種類の図が利用できます。
UMLを使うことでエンジニア間での設計方法を統一できるだけでなく、プログラミングに 知見がない人や部署がプロジェクトに参加していた場合でも、わかりやすくシステムの 構造を共有することが可能です。
特にさまざまな背景を持つチームが参加する部門横断的な開発プロジェクトでUMLが 共通言語として役立つので、この記事で学んだことをぜひ今後のプロジェクトの応用して みてください。
UML図の作成には Miro がおすすめ
![](https://images.ctfassets.net/w6r2i5d8q73s/4FqnbdsGICuT5RLqLQ9X9S/f671209af8216954377f87c97b74dc98/diagramming_uml_diagram_hero_image_EN_standard_4_3.png?fm=webp&q=75)
イノベーションワークスペースである Miro では便利なツールやテンプレートを使って、 誰でもUML図を作成することができます。
また、PlantUMLやMarmeidアプリなども使えば、プログラム内のコードを使って Miro ボード内で設計でき、完成した図を再度コードとして開発するプログラムに入力する ことができるので、開発プロセスの効率化にも役立つツールです。
図の生成や情報の整理に役立つAI機能も充実しているので、新しい働き方が Miro で 実現できます。
完成した図もPDFや画像ファイル、ボードリンクなどを通して簡単に共有できるので、 プロジェクトチームやクライアントのニーズに合った方法でシステム・ソフトウェア 設計図の共有が可能です。
アカウント作成も無料で作成できるので、ぜひ Miro をお試しください。
以下のリンクから製品ページをご確認いただけます。
◆ Miro のUML図作成ツール ◆ Miro のシステム設計ツール ◆ Miro の図作成ツール ◆ Miro のUML図テンプレート ◆ Miro の作図テンプレート ◆ Miro アシスト(AI機能)について