UMLコンポーネント図は、オブジェクト指向システムの物理的側面をモデル化するために使用されます。コンポーネントベースのシステムを可視化、仕様化、文書化するだけでなく、前向きおよび逆方向のエンジニアリングを通じて実行可能なシステムを構築するためにも使用されます。コンポーネント図は、システムのコンポーネントに焦点を当てた特殊化されたクラス図であり、システムの静的実装ビューをモデル化するために使用されます。

コンポーネント図の概要
コンポーネント図は、開発中の実際のシステムをさまざまな高レベルの機能に分解します。各コンポーネントはシステム内での明確に定義された目的を担当し、必要に応じて他の主要な要素とのみやり取りを行います。

上記の例は、より大きなコンポーネントの内部コンポーネントを示しています:
- データ(口座番号および振込番号)は右側のポートを通じてコンポーネントに入り、内部コンポーネントで使用可能な形式に変換されます。右側のインターフェースは「提供インターフェース」と呼ばれます。これは、コンポーネントがその責任を果たすために必要なサービスを表しています。
- その後、データはさまざまな接続を通じて他のコンポーネントへと渡され、左側のポートを通じて出力されます。左側のインターフェースは「要求インターフェース」と呼ばれます。これは、コンポーネントが提供するサービスを表しています。
- 内部コンポーネントがより大きな「ボックス」で囲まれている点に注意が必要です。このボックスはシステム全体そのものである場合(その場合、右上にコンポーネント記号は表示されません)またはシステムのサブシステム/コンポーネントである場合(その場合、ボックスはコンポーネント自身を表します)です。
コンポーネント図の基本概念
コンポーネントは、システムのモジュール的な部分を表し、その内容をカプセル化し、環境内で置き換え可能な振る舞いを持つものです。UML 2では、コンポーネントは縦方向にスタックされたオプションのコンパートメントを持つ矩形として描かれます。UML 2におけるコンポーネントの高レベルな抽象的なビューは、以下の通りモデル化できます:
- コンポーネント名を含む矩形
- コンポーネントアイコンを含む矩形
- スタereotypeテキストおよび/またはアイコンを含む矩形

インターフェース
以下の例に示すように、コンポーネントインターフェースには2種類があります:
「提供インターフェース」という記号は、コンポーネントが提供するインターフェースを示しています。この「ラムネ瓶」記号は、インターフェース分類子の実装関係を簡略化して表す記法です。
「要求インターフェース」という記号は、コンポーネントが必要とするインターフェースを示しています(いずれの場合も、インターフェース名は記号の近くに配置されます)。

コンポーネント図の例 – インターフェースの使用(注文システム)

サブシステム
サブシステム分類子は、コンポーネント分類子の特殊化されたバージョンです。したがって、サブシステムの表記要素は、コンポーネント表記と同一のルールを継承します。唯一の違いは、サブシステムの記号要素が「component」の代わりにキーワード「subsystem」を使用することです。

ポート
ポートは、コンポーネントまたはシステムの端縁に沿って正方形で表されます。通常、コンポーネントの必要なインターフェースおよび提供されるインターフェースを公開するために使用されます。

関係
グラフィカルに、コンポーネント図は頂点と弧の集合であり、通常、コンポーネント、インターフェース、および依存関係、集約、制約、一般化、関連、実現などの関係を含みます。また、ノートや制約を含むこともあります。
| 関係 | 記号 |
|---|---|
関連:
|
|
構成:
|
|
集約:
|
|
制約:
|
|
依存関係:
|
|
一般化:
|
ソースコードモデリング
- 前向きまたは逆方向のエンジニアリングを通じて関心のあるソースコードファイルの集合を特定し、ファイルとして構成されたコンポーネントとしてモデル化する。
- より大きなシステムでは、パッケージを使用してソースコードファイルのグループを表示する。
- ソースコードファイルのバージョン番号、作成者、最終更新日などの情報を表すためにタグ付き値を含めるように検討する。これらのタグ付き値の値を管理するためにツールを使用する。
- これらのファイル間のコンパイル依存関係をモデル化するために依存関係を使用する。同様に、これらの依存関係の生成と管理を支援するツールを使用する。
コンポーネントの例 – Javaソースコード

コンポーネント図の例 – バージョン管理付きC++コード

実行可能リリースのモデリング
- モデル化したいコンポーネントの集合を特定する。これは通常、ノード上の一部またはすべてのコンポーネント、またはシステム内のすべてのノードに分散されたこれらのコンポーネントを含む。
- この集合内の各コンポーネントのスタereotypeを検討する。ほとんどのシステムでは、異なるコンポーネントタイプが少数(例:実行可能ファイル、ライブラリ、テーブル、ファイル、文書)存在する。これらのスタereotypeに対して視覚的ヒント(ヒント)を提供するために、UMLの拡張メカニズムを使用できる。
- この集合内の各コンポーネントについて、その隣接コンポーネントとの関係を検討する。多くの場合、あるコンポーネントによってエクスポートされたインターフェース(実装)が、他のコンポーネントによってインポートされる(使用される)ことを含む。システム内の接合部を明示したい場合は、これらのインターフェースを明示的にモデル化する。より高レベルの抽象化を望む場合は、コンポーネント間の依存関係のみを表示することで、これらの関係を排除する。

物理データベースモデリング
- 論理データベーススキーマを表すモデル内のクラスを特定する。
- これらのクラスをテーブルにマッピングする戦略を選択する。また、データベースの物理的配置も考慮する必要がある。マッピング戦略は、デプロイされたシステム内でデータをどこに永続化したいかによって影響を受ける。
- マッピングを可視化、指定、構築、文書化するために、テーブルとして構成されたコンポーネントを含むコンポーネント図を作成する。
- 可能な限り、ツールを使用して論理設計を物理設計に変換するのを支援する。
今すぐUMLコンポーネント図を描いてみましょう
今、コンポーネント図とは何か、そしてどのように描くかを学びました。自分の図を作成する時です。無料の Visual Paradigm Community Editionという無料のUMLツールを入手し、無料の コンポーネント図ツールを使って自分だけの図を作成しよう。使いやすく、直感的です。
関連リンク
- 統合モデリング言語とは何か?
- プロフェッショナルなUMLツール
- Visual Paradigm. (n.d.). コンポーネント図の描き方? Visual Paradigm. https://www.visual-paradigm.com/support/documents/vpuserguide/94/2581/7292_drawingcompo.html 42.
- Visual Paradigm. (2018年5月11日). コンポーネント図とは何か? Visual Paradigm. https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-component-diagram/ 43.
- Visual Paradigm. (n.d.). UMLにおけるコンポーネント図の描き方? Visual Paradigm. https://www.visual-paradigm.com/tutorials/how-to-draw-component-diagram-in-uml/ 44.
- Visual Paradigm. (n.d.). コンポーネント図 – UML 2 図 – UMLモデリングツール。 Visual Paradigm. https://www.visual-paradigm.com/VPGallery/diagrams/Component.html 45.
- Visual Paradigm. (n.d.). Visual Paradigmにおけるコンポーネント図。 Visual Paradigm. https://www.visual-paradigm.com/support/documents/vpuserguide/94/2581_componentdia.html 46.
- Visual Paradigm Community Circle. (2018年5月11日). 7. コンポーネント図。 Visual Paradigm. https://circle.visual-paradigm.com/docs/uml-and-sysml/component-diagram/ 47.
- Visual Paradigm Online. (n.d.). 無料のコンポーネント図ツール。 Visual Paradigm. https://online.visual-paradigm.com/diagrams/solutions/free-component-diagram-tool/ 48.
- Visual Paradigm Online. (n.d.). コンポーネント図チュートリアル。 Visual Paradigm. https://online.visual-paradigm.com/tutorials/component-diagram-tutorial/ 49.
- Visual Paradigm. (2022年9月2日). UMLクラス図チュートリアル。 Visual Paradigm. https://www.visual-paradigm.com/guide/uml-unified-modeling-language/uml-class-diagram-tutorial/ 50.
- Visual Paradigm Online. (n.d.). オンラインUML図ツール。 Visual Paradigm. https://online.visual-paradigm.com/diagrams/features/uml-tool/ 51.





