コンポーネント図はコンポーネント間の論理的な関係を説明します。
デプロイメント図はこの基礎の上に、システムハードウェアの物理的なトポロジー構造とその上で実行されるソフトウェアをさらに詳しく記述します。
コンポーネント図は構成図とも呼ばれ、システム内のコンポーネント間、コンポーネントとインターフェース間の関係を表すモデル図です。コンポーネント図はコンポーネントベースの開発におけるシステムモデリングで重要であり、ユーザーがシステムの構造を理解するのに役立ちます。
コンポーネント図の役割:
1、システムのテスト担当者と開発者がシステムのすべての物理的な部品を全体的に理解できるようにする;
2、ソフトウェアアーキテクチャの観点からシステムの主要な機能を記述する;
3、プロジェクトチームのメンバーがシステムの構造と機能を理解しやすくする;
4、ソフトウェアの再利用を促進する。
複数ユーザーのリアルタイム共同編集と共有リンクによる即時情報伝達をサポート
テキスト入力から自動生成し、スタイルを自動最適化
組み込みテーマと完全カスタマイズ可能なデザイン
アイコン、画像、ラベル、LaTeX数式、コードブロック、リンク、添付ファイルなどをサポート
エクスポート: PNG, VISIO, PDF, SVG | インポート: VISIO, Mermaid
リアルタイムクラウド保存、マルチデバイス同期、バージョン履歴、データ保護
コンポーネント図はコンポーネント間の論理的な関係を説明します。
デプロイメント図はこの基礎の上に、システムハードウェアの物理的なトポロジー構造とその上で実行されるソフトウェアをさらに詳しく記述します。
コンポーネント:コンポーネントは良好なインターフェースを定義した、交換可能な物理的な実装単位であり、通常は実際に存在する物理的なオブジェクトを表し、左側に小さな矩形が2つ突出した矩形で表されます。
インターフェース:提供インターフェースはエクスポートインターフェースとも呼ばれ、コンポーネントが提供するサービスの集合であり、インターフェースとコンポーネント間の実装関係で表すことができます;要求インターフェースはインポートインターフェースとも呼ばれ、コンポーネントが他のコンポーネントに対応するサービスを要求する際に従うインターフェースであり、依存関係で表されます。
関係:コンポーネント間-->依存関係、2つのコンポーネントのクラスに汎化関係があるか使用関係がある場合、依存を追加できます;コンポーネントとインターフェース間-->依存または実装。
ポート:uml2.0で導入された概念で、ポートはコンポーネント上の1つのインタラクションポイントを指定し、このインタラクションポイントを通じて、コンポーネントは環境、他のコンポーネント、または内部コンポーネントと通信できます。コンポーネントの境界上の小さな矩形で表されます。
シンプルコンポーネント図:相互に協力するクラスを1つのコンポーネントに組織します。
ネストコンポーネント図:ネストされたコンポーネント図を使用してコンポーネントの内部構造を表します。
コンポーネント間はポートで接続され、ポート間はコネクタで接続されますが、一般的にはあまり使用されません。
コネクタは直接コネクタ、インターフェースコネクタ、委任コネクタの3種類に分けられます。
1,複数のチームで協力して開発
2,マイクロサービスまたはモジュール化アーキテクチャ
3,明確なインターフェース制約のあるシステム
4,デプロイが分離されたコンポーネント(フロントエンド、バックエンド、データベースなど)
1,モジュール化とデカップリングに注力すること、コンポーネント図の主な価値はシステムの階層と依存関係を明確に示すことです;
2,標準的な記号とインターフェースの注釈を使用することで、図の可読性と一貫性を高めることができます;
3,クラス図/デプロイメント図と組み合わせて使用することで、構造、動作、デプロイメントの完全なビューを提供します;
4,コンポーネント図をクラス図として描かないようにし、コンポーネント図はシステムの「構造」を表し、「実装の詳細」ではありません。
コンポーネント図は「誰が何をするか、誰が誰に依存するか」を答え、クラス図は「どうやって行うか」を答えます。
1、クラスはエンティティの抽象であり、コンポーネントはコンピュータ内の物理的な部品の抽象です。
2、コンポーネントはソフトウェアモジュールであり、論理モジュールではなく、クラスとは異なる抽象レベルにあります。
3、クラスは直接操作とプロパティを持つことができますが、コンポーネントはそのインターフェースを通じてアクセスできる操作のみを持ちます。
コンポーネントはシステム内の役割に応じて3つに分類されます:
1、デプロイコンポーネント:実行可能なシステムを構成するために必要なコンポーネント。
例:Java仮想マシン、データベース管理システム、EXEファイル、DLLファイル。
2、作業成果物コンポーネント:開発プロセスの中間成果物で、実行可能なシステムには直接関与しません。
例:ソースコードファイル、データファイル。
3、実行コンポーネント:実行時に作成されるコンポーネント。
例:インスタンス化されたServlets、COM+オブジェクト、XMLドキュメント。
コンポーネントとコンポーネント:依存関係
コンポーネントとインターフェース:依存関係または実装関係
コンポーネントの粒度を適切にコントロールするには、一般的に機能モジュールレベルをコンポーネントとして設定し、単一のクラスをコンポーネントとして設計しないでください。
左側のシンボルエリアから「インターフェース」を右側の作業エリアにドラッグし、その後、コンポーネントの一端をクリックしてマウスの左ボタンを押し続け、対応するインターフェースに移動してからマウスを離すと、コンポーネントに実装するインターフェースを指定できます。
いいえ、単純なコンポーネントには明示的なインターフェースがないこともあります。
提供インターフェースは円形で示され、このコンポーネントが外部に公開する機能(呼び出し可能)を指します。
必要インターフェースは半円で示され、このコンポーネントが他のコンポーネントの提供するサービスに依存することを指します。
可能です。コンポーネント間には一対多の依存、双方向の依存、または仲介コンポーネントを通じたデカップリングが存在し、複数の依存関係は複数の破線で示されます。