UML図:特徴、図、種類

⚡ スマートサマリー

UML図は、ソフトウェアシステムをモデル化するための標準化された視覚言語を提供します。ping 開発チームは、オブジェクト指向設計を文書化し、複雑なアーキテクチャ上の決定事項を明確に伝え、実装開始前にすべてのプロジェクト関係者の認識を一致させる。

  • 📐 コア定義: 統一モデリング言語(UML)は、ソフトウェアシステムのオブジェクト指向設計、構造、および動作を、図解を用いて表現するISO認定規格です。
  • 🏛️ 2つのカテゴリー: UML図は、構造図(コンポーネントの静的なビュー)と振る舞い図(相互作用とワークフローの動的なビュー)に分けられます。
  • 🗂️ 構造図: クラス図、オブジェクト図、パッケージ図、コンポーネント図、およびデプロイメント図は、システム要素間の静的なアーキテクチャと関係性を表します。
  • ⚡ 行動図: アクティビティ図、ユースケース図、およびステートマシン図は、システムの流れ、ユーザーとのやり取り、および時間の経過に伴う状態遷移を捉えます。
  • 🛠️ ツールとAI: ツール StarUMLVisio、および Lucidchart UML図を視覚的に生成する。AI搭載ツールを使えば、プレーンテキストの説明やソースコードから正確な図を自動的に生成できるようになった。
  • 📅 バージョン履歴: UMLはバージョン1.1(1997年)から2.5.1(2017年)まで進化を遂げており、各リリースで図の種類が追加され、意味論が改善され、仕様が簡素化されてきた。

UML図

ソフトウェアシステムは急速に複雑化し、アーキテクチャを視覚化できないチームは設計上の決定事項を伝えるのに苦労する。UMLは、コードを書く前に共有できる視覚的な表記法を提供する。

UML を使用する理由完全な歴史

1990 年代は、次のようなオブジェクト指向言語が開発された時代でした。 C++これらのオブジェクト指向言語は、複雑だが魅力的なシステムを作成するために使用されました。

開発されたシステムは理解するのが複雑だったため、システムの導入後に直面する設計と分析の問題につながりました。 他人にシステムを説明するのが難しかった。

UML が導入されるとすぐに、システムを分析するというこのような困難なタスクを簡素化するために、多くの革新的な実験やアプローチが行われました。

UML はオブジェクト指向の統合モデリング言語です。 これは、1994 年から 1995 年にかけて、Rational ソフトウェアの優秀なソフトウェア エンジニアである Grady Booch、Ivar Jacobson、James Rumbaugh によって発明されました。1996 年まで開発が続けられました。

UMLの発明者であるグラディ・ブーチ、アイヴァー・ジェイコブソン、ジェームズ・ランボーはそれぞれ、複雑さを軽減する言語を設計するという素晴らしいアイデアを持っていた。

  • Booch の方法は、オブジェクトの設計と構築中に非常に柔軟に使用できました。
  • Jacobson の方法は、ユースケースを回避する優れた方法を提供しました。 また、高レベルの設計に対する強力なアプローチも備えています。
  • Rumbaugh の方法は、機密性の高いシステムを扱う際に非常に役立つことが判明しました。

Later 以降、David Harel によって発明された UML に動作モデルと状態図が導入されました。

UML は、1997 年にオブジェクト管理グループ (OMG) によって標準として認められました。オブジェクト管理グループは、UML が標準として採用されて以来、UML の管理を担当しています。

2005 年に、国際標準化機構は UML を ISO 標準として承認しました。 オブジェクト指向モデルを作成するためにさまざまな業界で使用されています。

最新の UML バージョンは 2.5.1 で、2017 年 XNUMX 月にリリースされました。

UML バージョン

日付 学校区概要
1997年11月 1.1 UML はオブジェクト管理グループによって採用されました。 これが UML の最初のバージョンでした。
2000年3月 1.3 既存のモデルにマイナーアップグレードが行われ、セマンティクスに大きな変更が加えられました。 記法、UML のメタモデル。
2001年9月 1.4 この時期は UML のメジャーアップデートの時期でした。 さまざまな拡張機能を提供することで UML を拡張しました。 可視性、アーティファクト、ステレオタイプが図に導入されました。
2003年3月 1.5 プロシージャ、データ フロー メカニズムなどの機能が UML に追加されました。
2005年1月 1.4.2 UML は ISO によって標準として受け入れられました。
2005年8月 2.0 オブジェクト、パッケージ、タイミング、インタラクションなどの新しい図が UML に追加されました。 アクティビティ図とシーケンス図に新しい機能が追加されました。 コラボレーション図はコミュニケーション図に名前変更されました。 既存の図に複数の機能と変更が導入されました。
2006年4月 2.1 UML 2.0に修正が加えられました。
2007年2月 2.1.1 Upgradeは UML 2.1 で導入されました。
2007年11月 2.1.2 UML 2.1.1 が再定義されました。
2009年2月 2.2 UML 2.1.2 のバグが修正されました。
2010年5月 2.3 UML 2.2 が改訂され、コンポーネント図に若干の変更が加えられました。
2011年8月 2.4.1 クラス、パッケージ、ステレオタイプが変更されました。 UML 2.3 は拡張機能を追加して改訂されました。
2015年6月 2.5 UML 2.4.1は、軽微な変更を加えて改訂されました。UMLは以前よりも簡素化され、迅速な動作とより効果的なモデルの生成が可能になりました。時代遅れの機能は削除され、モデルやテンプレートは補助的な構成要素として廃止されました。

UMLの特徴

  1. これは汎用化されたモデリング言語です。
  2. などのソフトウェアプログラミング言語とは異なります。 Python、C、 C++, etc.
  3. これは、強力なモデリング要素を生成するために使用できる絵画言語です。
  4. オブジェクト指向の設計と分析に関連しています。
  5. ソフトウェア業界以外でも無限に応用できます。 工場のワークフローを可視化するために活用できます。

概念モデル

UML の概念を始める前に、概念モデルの基本を理解する必要があります。

概念モデルは相互に関連する様々な概念から構成されており、理解するのに役立ちます。

  • オブジェクトとは何ですか?
  • プロセスを実行するためにどのような対話が行われるのでしょうか?

UML では概念モデルが必要です。 実際にシステムをモデル化する前に、エンティティとエンティティ間の関係を理解する必要があります。

UML を開始するには、次のオブジェクト指向の概念が必要です。

  • オブジェクトこれは現実世界に存在する実体です。単一のシステム内に複数のオブジェクトが存在します。UMLの基本的な構成要素です。
  • CLASSクラスとは、オブジェクトとその関係性を管理するコンテナに他なりません。
  • 腹筋trac生産: 実装の詳細を表示せずにエンティティを表現するメカニズムです。オブジェクトの動作を視覚化するために使用されます。
  • 継承: 既存のクラスを拡張して新しいクラスを作成する仕組みです。
  • ポリモーフィズム: 異なる目的に使用される複数の形式を持つオブジェクトを表現するメカニズムです。
  • カプセル化: オブジェクトとデータを XNUMX つのユニットとしてバインドする方法です。 これにより、オブジェクトとデータ間の緊密な結合が保証されます。

上記は、とも呼ばれます 基本的な構成要素 UMLの。

UML図とは何ですか?

UML図 は、統一モデリング言語の出力です。 これは、クラス、オブジェクト、およびそれらの間の関係を図で表現したものです。 UML 図はシステムの一部を記述するモデルです。 システムの機能や設計を定義するために使用されます。 図は、見る人がすぐに理解できるように、明確かつ簡潔でなければなりません。

UML 図は、次の XNUMX つの異なるカテゴリに分類されます。

  • 構造図
  • 行動図
  • 相互作用図

UML の構造図

構造図は、システムの静的なビューを表すために使用されます。 システムの構造を構成するシステムの一部を表します。 構造図には、システム内のさまざまなオブジェクトが示されています。

UML のさまざまな構造図を以下に示します。

  • クラス図
  • オブジェクト図
  • パッケージ図
  • コンポーネント図
  • 展開図

UML の動作図

現実世界のシステムは、静的形式でも動的形式でも表現できます。 システムは、静的方法と動的方法の両方で表現される場合に完全であると言われます。 動作図はシステムの機能を表します。

システムの静的な部分を扱う UML 図は構造図と呼ばれます。 システムの移動部分または動的部分を扱う UML 図は、動作図と呼ばれます。

UML のさまざまな動作図を以下に示します。

  • アクティビティ図
  • ユースケース図
  • ステートマシン図

UML の相互作用図

インタラクション図は動作図のサブセットにすぎません。 これは、システムのさまざまなユースケース要素間のフローを視覚化するために使用されます。 相互作用図は、XNUMX つのエンティティ間の相互作用と、それらのエンティティ内でデータがどのように流れるかを示すために使用されます。

UML のさまざまな相互作用図を以下に示します。

  • タイミング図
  • シーケンス図
  • 連携図

上の図の詳細な説明は、後のチュートリアルで説明されます。

構造UML図と振る舞いUML図

以下の表は、チームが適切なタイプを選択するのに役立つよう、2つのUML図のカテゴリを比較したものです。

属性 構造図 行動図
表示 静的 ダイナミック
フォーカス 構成要素とその関係性 システムの動作と相互作用
例 クラス、オブジェクト、パッケージ、コンポーネント、デプロイメント アクティビティ、ユースケース、ステートマシン
主な用途 Archi構造とデータベース設計 ワークフロー、ユーザー体験、状態遷移
作成日時 システム構造を事前に定義する 実行時動作とビジネスロジックのモデリング

UML ツール

UML ダイアグラムを生成するためのツールは市場に数多くあります。デスクトップ ベースのものもあれば、オンラインで使用できるものもあります。以下は、UML モデルの作成に使用できるツールの厳選リストです。

使用します StarUML UML図を生成するためのアプリケーション。

インストール手順: リンクを開きます: http://staruml.io/download

お使いの PC の仕様に応じて、アプリケーションの任意のバージョンをダウンロードします。ここでは、Windows オプションを選択します。

StarUML 設置

アプリケーションをダウンロードしたら、すべてのデフォルトオプションでインストールしてください。インストール後、 StarUML お使いのPCにアプリケーションをインストールしてください。

次のウィンドウが表示されます。

StarUML 設置

これで、UML 図の作成を開始できます。

よくあるご質問

📊 UML 2.x では、2 つの主要グループに分かれた 14 種類の公式図が定義されています。7 つの構造図 (クラス、オブジェクト、コンポーネント、デプロイメント、パッケージ、複合構造、プロファイル) と 7 つの振る舞い図 (ユースケース、アクティビティ、ステート マシン、シーケンス、コミュニケーション、タイミング、相互作用の概要) です。

🗄️ UML図はオブジェクト指向ソフトウェアシステムをモデル化し、構造と動作の両方を網羅します。エンティティ関係(ER)図は、データベーススキーマとデータエンティティ間の関係に特化しています。UMLクラス図はデータベーステーブルを表すことができますが、ER図にはないオブジェクト指向のセマンティクスも保持しています。

🏢 はい。UMLは、エンタープライズアーキテクチャ、組み込みシステム、金融や医療などの規制産業において、依然として広く使用されています。アジャイルチームは、クラス図やシーケンス図といったより簡略化されたサブセットをよく使用しますが、大規模なシステム設計や政府プロジェクトでは、完全なUMLスイートが依然として一般的です。

🤖 はい。ChatGPTやGitHub CopilotなどのAIモデルは生成できます PlantUML または、プレーンテキストの説明やソースコードからのマーメイド構文。 Lucidchart Visioには、自然言語による指示に基づいてクラス図、シーケンス図、ユースケース図を数秒で作成するAIアシスタントが組み込まれています。

🛠️ 主要なAI搭載UMLツールには以下が含まれます LucidchartのAI図生成器、 Microsoft Visio Copilot、Eraser.io、およびDraw.ioにChatGPTプラグインを組み合わせたもの。 PlantUML 大規模な言語モデルと組み合わせることで、開発者は図をコードとして記述できるようになり、GitLabやGitHub Copilotは既存のリポジトリからクラス図をリバースエンジニアリングできます。

⭐ クラス図とシーケンス図は最も広く使用されている図です。クラス図は静的な構造とコードアーキテクチャをモデル化し、シーケンス図はオブジェクトが時間とともにどのように相互作用するかを捉えるため、アジャイル開発チームやエンタープライズチームにおける設計ドキュメントで広く用いられています。

🔍 クラス図は、システムの設計図(クラス、属性、メソッド、および関係)を定義します。オブジェクト図は、特定の時点におけるそれらのクラスの実際のインスタンスのスナップショットを、実際の値とともに示し、実行時に構造がどのように見えるかを示します。

🎓 いいえ。UMLは視覚的なモデリング表記法であり、プログラミング言語ではありません。そのため、初心者でもコーディングスキルがなくても学習できます。オブジェクト、クラス、関係性といった基本的なオブジェクト指向の概念を理解すれば、簡単なUML図の作成を始めるのに十分です。