デザインスキーム\解剖学的フレームワーク\記事を書くための効果的なツールUML視覚言語

この記事では、UML の一般的な内容を簡単な言語で記録します。UML を学ぶために本を読みたい. これらの本のほとんどは、UML を書くだけでなく、オブジェクト指向設計などの他の知識も含み、UML の知識と組み合わせて、内容の半分と半分を占めています. 私の意見では、UML を学ぶことでシステムの概要を理解することができます.たとえば、Spring フレームワークを学ぶときは、絵を描くことでそのデザインのアイデアをよりよく理解したり、図の観点から Spring フレームワークを理解したりすることができます.技術的な計画を書くと、計画の内容がより豊かになり、計画が同僚に伝わりやすくなり、思考がより明確になります。

1. UML が必要な理由

UML 定義: 統一モデリング言語。システム アーティファクトを記述、構築、および文書化するためのビジュアル言語

UML のオブジェクト指向図を使用して、プロジェクトの構築アイデア、プロジェクト構造、実行順序などの論理的思考をより明確かつ明確に表現します。

ダイアグラムは、パノラマをより便利に観察し、ソフトウェア要素と分析の間の接続を発見し、側面の詳細を無視または非表示にするのに役立ちます。

1.1 UMLの目標

  • UML は、実際の状況や必要なスタイルに従ってシステムを視覚化するのに役立つ単純なモデリング メカニズムとして定義されています。

  • システムの構造または動作を指定する方法を提供します。

  • システムの構築をガイドするテンプレートを提供します。

  • 私たちが行う決定を文書化します。

2、UMLの基本要素

2.1 3 つの基本モジュール

トランザクション、関係、図。

  • モノ: UMLモデルの最も基本的な構成要素は、クラス、インターフェース、ユースケース、ノード、相互作用、コンポーネント、パッケージ、注釈などの代表的なコンポーネントの抽象化です。モノと呼ばれます

  • 関係: 関係は物事を結びつける

  • グラフ: グラフは、物と関係を視覚的に表現したものです

2.2 4 種類の関係

  1. 頼る

  2. 仲間

  3. 達成

  4. 一般化

2.3 10種類のグラフ

  • 静的モデル図:システムの静的構造を説明します

      クラス図、オブジェクト図、パッケージ図、配置図、コンポーネント図

  • 動的モデル図:システム動作の側面を説明する

      ユースケース図、アクティビティ図、状態図、シーケンス図、コラボレーション図

三、UML図

3.1 クラス図

クラス図は、主に、システム内のクラスとインターフェース、およびそれらの間の静的構造と関係を表示するために使用される静的モデルです。

オープンソースのフレームワークを解釈したり、新しいシステムに触れたりする場合は、フレームワークやシステムの研究に適しています。

クラス図では、次の関係が一般的です。

  • 【汎化関係】とは継承関係であり、サブクラスが親クラスの特徴や振る舞いをすべて継承することを意味します。

  • 【実装関係】とは、クラスとインターフェースの関係であり、クラスがインターフェースのすべての特性や振る舞いを実現したものであることを示します。

  • 【連想関係】とは、あるクラスが別のクラスのプロパティやメソッドを知る、一種の所有関係です。【コード実施例】メンバー変数

    • 【集合関係】とは、全体と部分の関係です。そして、部分は全体から独立して存在することができます。集約関係は、強い関連関係である関連関係の一種であり、関連と集約は構文的に区別できません。【コード実施例】メンバー変数

    • 【結合関係】とは、全体と部分の関係です。しかし、全体がなければ部分は独立して存在することはできず、結合関係は一種の連合関係であり、集合関係よりも強い関係です。【コード実施例】メンバー変数

  • [依存関係] は使用関係、つまり、クラスの実装には別のクラスの支援が必要です。

アイデア開発ツール、生成されたクラス図

3.2 オブジェクト図

UML オブジェクト図は、ある時点のオブジェクトとオブジェクト間の関係を示します。

UML オブジェクト図はクラス図のインスタンスであり、クラス図とほぼ同じ表記を使用します。

オブジェクトのライフサイクルにより、UML オブジェクト図はシステム内に一定期間しか存在できません。

上記の Company はクラスです. コロンの前の ci は、クラスがオブジェクトにインスタンス化された後のオブジェクトの名前です. オブジェクトの中に変数名があり、blueFire の値が割り当てられています. オブジェクト図はそれだけでなく、通常の使用頻度も非常に低いです。

3.3 パッケージ図

コンセプト: システムの構造設計をパッケージ レベルで説明します。

目的: パッケージとパッケージ間の依存関係を表すために使用されます。

大きなパッケージには小さなパッケージを含めることができ、点線の矢印のテキストは、パッケージ間に依存関係と呼び出し関係があることを示しています。パッケージ図はとてもシンプル

3.4 配置図

配置グラフは、ノードとノード間の関係で構成されます。ノードは、少なくとも 1 つのプロセッサ、メモリ、および場合によってはその他のデバイスを備えた処理要素です。一般に、サーバーとクライアントはノードと呼ばれます。

配置図は、実行時のシステムの構造を説明し、ハードウェアの構成とそのソフトウェアがネットワーク構造にどのように配置されるかを示します。

配置図は、分散システムを理解するためによく使用されます。

主にノード、コンポーネント、直線で構成され、ノード間およびノー​​ドとコンポーネント間は直接接続されます。一部の本では、コンポーネントをアーティファクトと呼んでいます。

自分たちで開発したコードや小さなプログラムをコンポーネントと呼んでいます. コンポーネントという言葉には明確な境界線はありません. 上図のように, 自分たちで開発したjarパッケージはコンポーネントであり, 自分たちで書いたPythonスクリプトの一部です.サーバーにデプロイされたコンポーネントは、コンポーネントと呼ばれることもあります。

2 つのノードまたはコンポーネント間の通信に使用されるプロトコルは、http プロトコル、TCP プロトコルなどの直線接続線で識別できます。

配置図は、通常、新しいシステムの設計が完了した後、システムがオンラインになる前に決定されるため、配置されているサーバーの数、サーバー構成など、システムの実際の配置が明確にわかります。構造の調整や新機能の追加があれば、それに応じて展開図を調整します。システムがオンラインになった後、基本的に変更はほとんどありません。

テキスト「UML and Pattern Application (原書第3版)」の配置図:

3.5 コンポーネント図

一般的に使用されない、無視する

3.6 ユースケース図

概念: ユース ケース図は、アクター、ユース ケース、境界、およびそれらの間の関係で構成されるシステム機能を記述するために使用されるビューです。

ユース ケース図には、次の 3 つの関係が含まれています。

包含関係には「include」という記号を使用しており、一覧をご覧になりたい場合はログインが必要です。

拡張関係は「拡張」という記号を使用し、オーダーリストを照会する機能をベースに、データをエクスポートする機能を追加できます

汎化関係。子ユース ケースは、親ユース ケースのすべての構造、動作、および関係を継承します。

3.7 アクティビティ図

概念: 特定のビジネス ユース ケースの実装プロセスについて説明します。

楕円はアクションまたはコード ロジックを表し、ひし形は条件判断を表し、黒の実線の円は開始を表し、黒の実線の円と外側の円は終了を表し、赤の太い実線は並列アクションの存在を表します。

3.8 状態図

概念: 状態図は、単一オブジェクトの動作をモデル化し、オブジェクトがそのライフ サイクル全体でさまざまなイベントに応答して関連するイベントを実行する順序を示します。

目的: ライフサイクル全体のさまざまなイベントに応じて、指定されたオブジェクトのさまざまな状態を表すために使用されます。

支払いビジネス注文ステータス図:

上記は、注文フロー中にイベントがトリガーされた場合のステータス変更です。

四角は状態を表し、黒色の実線の円は注文フローの開始を表し、状態は実線の矢印で接続され、矢印上のテキスト説明はイベント トリガーを表します。

状態図からわかる重要な情報は次のとおりです。

1. 最終状態とは? 通常、最終状態に移行した注文は継続して移行することはできません。

2. 注文のすべてのフロー ステータスとトリガーされたイベント

3. 新しい状態が追加された場合、フローにどのような影響がありますか?

3.9 タイミング図

概念: シーケンス図は、時系列に従ってオブジェクトがどのように連携するかを示します。ユースケースの特定のシナリオで、オブジェクトが他のオブジェクトとどのように相互作用するかを示します。

目的: オブジェクト間でメッセージが送信される時系列の順序を記述することにより、複数のオブジェクト間の動的コラボレーションを示すこと。

Mingchu Liangzao マーチャントとデバイス バインドのシーケンス図:

悪役は参加者、通常はキャラクターを表します。

点線の上部にある長方形は、システム、コンポーネント、またはサービスを表します。

点線上の長方形のバーはメソッドまたはアクションを表し、その長さはこのメソッドのライフライン、つまりメソッドの実行に必要な時間の長さ、およびこの時間の長さの間に呼び出される他のアクションまたはメソッドを表します.

実線の矢印は、アクションの開始を表します。アクションには括弧があり、括弧内には、テキスト メッセージ (携帯電話番号、テキスト メッセージの内容) の送信などのパラメータの説明がある場合があります。破線の矢印は、戻り値。

シーケンス図は、アウトラインまたは詳細に描くことができます. アウトラインは、一般的に、要件全体の一般的なプロセスとステップを表します. 点線の上部にある長方形は、システムとシステム間の相互作用を表すことができます. 詳細は一般的に.大規模な要件内の特定のロジック部分 長方形は、特定のサービス クラス、MQ、データベース、およびその他のコンポーネント間の相互作用を表すことができます。

メイクダウンエディタのコード記述シーケンス図 

論理的な判断もシーケンス図に反映させることができ、例えば上図のoptはコードのif判断、altはif elseの判断、loopはforやwhileのループを表します。

3.10 コラボレーション図

一般的に使用されない、無視する

四、私の使い方

  1. 技術提案書を書く

  2. ソースコードを読んでフレームワークを分析する

五、UMLツール

  • 飛州ドキュメンテーション

  • マイクロソフト ビジオ

  • プロセスン https://www.processon.com/

  • マークダウン エディター

  • OmniGraffle

6. 結論

UML は単なる標準的なビジュアル モデリング言語であり、その内外を知っていても、オブジェクトの観点から考える方法を教えてくれるわけではありません。

オブジェクト指向の設計原則: 単一責任の原則、開始と終了の原則、合成の再利用の原則など。

おすすめ

転載: blog.csdn.net/lihuayong/article/details/126174826