コンポーネント図は、ソフトウェアシステムの構築に欠かせないものです。UML 作図ソフトウェアでこの図を作成することで、既存のシステムの構造の理解や新たなシステムの構築がスムーズになります。以下では、コンポーネント図について詳しく説明しています。
UML コンポーネント図とは?
コンポーネント図の目的は、システム内のさまざまなコンポーネント間の関係を示すことにあります。UML 2.0 において、「コンポーネント」という用語は、システムの他の部分とインターフェイスを介した接続が可能な独立したシステムやサブシステムを示すクラスのモジュールを指します。
コンポーネント周辺に展開する包括的な開発アプローチに、コンポーネントベース開発 (CBD) があります。このアプローチでは、システム全体が想定する機能を果たすよう、開発者がさまざまなコンポーネントを識別できるようにコンポーネント図を利用します。
より一般的なオブジェクト指向のプログラミングアプローチでは、ソフトウェア開発をより高次的に概観できるよう、上級開発者が、共通の目的に基づいてクラスをグループ化するためにコンポーネント図を利用します。
コンポーネント図の利点
一見するとコンポーネント図は複雑なものに見えますが、システム構築にはとても有用な図です。以下の方法でコンポーネント図を役立てることができます。
- システムの物理的な構造を想像する。
- システムの構成要素と要素間の関連に注意を向ける。
- インターフェイスに関連するサービスの動作を強調する。
コンポーネント図の使用方法
UML コンポーネント図は、ソフトウェアシステムを俯瞰する上で役立ちます。ソフトウェアの各部が提供するサービスの動作を正確に理解することで、開発者としてのスキルアップにつなげることができます。コンポーネント図は、あらゆるプログラミング言語や様式で実行されるソフトウェアシステムの記述に利用することができます。
UML とは、オブジェクト指向の図のための一連の規則であり、多彩な用途を持ちます。コンポーネント図においては、アセンブリコネクタと移譲コネクタを示す線でコンポーネントとパッケージが接続される様を統一モデリング言語 (UML) が記述します。UML とその用途ついての詳細は、チュートリアル「UML とは?」をチェックしてみましょう。
コンポーネント図の図形と記号
単純で高次的なものから詳細で複雑なものまで、コンポーネント図の内容は多岐にわたります。どちらの図を作成する場合でも、まずは作図に用いられる UML 記号について知っておくことが大切です。以下では、コンポーネント図の作成や閲覧時に登場する一般的な図形を紹介しています。
| コンポーネント記号 | ステレオタイプの機能を実行するために必要な実体を指します。コンポーネントはインターフェイスや他のコンポーネントを通じて動作を提供し、消費します。コンポーネントはクラスの型として捉えることができます。UML 1.0 において、コンポーネントは側面から2つの小さな長方形が突き出た長方形のブロックとして示されます。UML 2.0 では、コンポーネントは、旧型のコンポーネント図の図形の小さな画像を含む長方形のブロックとして示されます。 | |
| ノード記号 | コンポーネントよりも高次のハードウェアやソフトウェアを示します。 | |
| インターフェイス記号 | コンポーネントが受領または提供する入力データや材料を示します。テキストメモやロリポップ、ソケット、ボール/ソケット記号によりインターフェイスを表すこともできます。 | |
| ポート記号 | コンポーネントと環境間の別の相互作用ポイントを指定します。ポートは小さな正方形で示されます。 | |
| パッケージ記号 | システムの複数の要素をグループ化するもので、Lucidchart ではファイルフォルダーで示されます。ファイルフォルダーが複数のシートをまとめるのと同様に、いくつかのコンポーネントの周囲にパッケージを描画することができます。 | |
| メモ | 開発者がコンポーネント図にメタ分析を付与することができます。 | |
| 依存関係記号 | システムの一部が他の部分に依存することを示します。依存関係は、1つのコンポーネントや要素を他のコンポーネントや要素にリンクする破線で示されます。 |
コンポーネント図形と記号の使用方法
コンポーネントの名称区画を作成する方法でよく使われるものには3つあります。コンポーネントのテキストは、常に二重山括弧かコンポーネントのロゴで囲みます。内部に名称のみが含まれる長方形は分類子 (クラスの要素) にしか使えないため、必ずこのように区別します。
クラスの表記と同様に、コンポーネントにもオプションでインターフェイスを記載できるスペースがあります。記載方法はクラスの表記に属性やメソッドを追加するのと同じです。インターフェイスは、コンポーネント内のクラスのグループが他のシステムコンポーネントと交信する場所を示します。また、インターフェイスは、コンポーネントボックスから記号を伸ばす形でも表現することができます。以下では最も一般的に使用される記号を簡単にまとめています。
| 提供インターフェイス: コンポーネントボックスから伸びる直線に円を付けたもので、他のコンポーネントの要求インターフェイスに使用される情報を生成するコンポーネントを持つインターフェイスを示す記号です。 | |
| 要求インターフェイス : コンポーネントボックスから伸びる直線に半円を付けたものです。開いた矢印に破線で表す場合もあります。あるコンポーネントがその適切な機能を果たすために情報を要求するインターフェイスを示す記号です。 |
UML において、コンポーネント図はあるソフトウェアシステムと他のシステムとの関連を視覚的に示します。コンポーネント図の作成には、Lucidchart のカスタムコンポーネント図の図形ライブラリを使用してみましょう。コンポーネント図は以下の内容を表します。
- システムのスコープ
- ソフトウェアシステムの全体的な構造
- システムが支援する、人間または人間以外の実体 (アクター) の達成目標
コンポーネント図の例
UML コンポーネント図を利用することで、高度で複雑なプロセスでもシンプルに理解することができるようになります。以下の例では、UML コンポーネント図で特定のプロセスの動作をマッピングする方法を紹介しています。
図書館管理システムのためのコンポーネント図
世界で最初に包括的にコンピューター管理されるようになったシステムの1つに、図書館システムがあります。現在では、これらのシステムの多くが、内部ではなくサードパーティ製サービスによりクラウド上で管理されています。一般的に、「図書館システム」という名から思い浮かぶのは書籍管理のためのシステムですが、今日の図書館システムが整理する対象にはユーザーが貸出・返却を行うあらゆるデータが含まれます。
こうしたやり取りにより、図書館システムのコンポーネントに関連のネットワークが形成されます。これらの連携の仕組みやシステム全体の機能を理解するには、以下の UML 図を見てみましょう。この図はテンプレートとしても利用できます。
ATM システムのためのコンポーネント図
任意のシステム内の項目の相互関係を示すという点でコンポーネント図とクラス図は似ていますが、コンポーネント図は、クラス図の大半に比較してより複雑で多様な接続を表すものです。
以下の図では、コンポーネントがそれぞれ小さなボックスに収められています。矢印付きの点線は、コンポーネントの一部の他のコンポーネントへの依存関係を示しています。例えば、カードリーダー、ウェブページ、クライアントデスクトップや ATM システムはすべて、銀行のデータベースに依存しています。終端に円の付いた点線、別名「ロリポップ」記号は、実現関係を示します。
UML でコンポーネント図を作成する方法
コンポーネント図は時に難解です。そのため、UML による作図の基礎を理解しておくことが重要です。まだ見たことがない方は、コンポーネント図チュートリアルに加え、こちらの UML 基本ガイドを一度確認してみることをおすすめします。いずれも、UML とコンポーネント図の基礎となる原則を掴むのに役立つページです。
1. Lucidchart の利用を開始
まず、Lucidchart アカウントに登録し、新規文書を作成します。Lucidchart の UML 図形ライブラリの有効化が必要となる場合もあります。これらの図形を有効化するには、エディターの左上の [図形] アイコンをクリックします。その後、[UML] ボックスにチェックを入れてすべての UML 図形ライブラリを有効化します。キャンバスの左側にこれらの図形が表示されます。
2. 図形を追加
コンポーネント図はコンポーネント図形を中心に形成されます。この図形は、ツールボックス内ですぐに見つかります。キャンバスへドラッグし、図形をクリックして入力し、ラベルを追加します。Lucidchart では、右側のドックと上部のプロパティバーからすべての図形のサイズを変更し、別のフォントや色で図形の書式設定を変更することができます。
システム構造の輪郭を描き出す
システムやアプリケーション内の主要な機能ユニットがすべて揃うまで、コンポーネント図の追加を続けます。コンポーネントを細かくグループ化すれば、後で文書を再配置したり、更新する際に便利ですし、理解を深める上でも役立ちます。コンポーネント図はすべて、大小のグループで構成されます。フレーム、パッケージや大型のコンポーネント図形内にコンポーネントをネストすることもできます。
インターフェイスの追加
各コンポーネントにメモや記号の形でインターフェイスを追加します。インターフェイスは、入力と出力の内容と方法をモデル化します。例えば、コンポーネントは、他のコンポーネントからの情報を受け取ったり、エンドユーザーへサービスを提供する役割を担います。インターフェイスはこうしたプロセスがどう起こるかを示します。また、これまで見逃していた問題を見つける上でも役立ちます。
UML 記法で提供インターフェイスと要求インターフェイスを表示する方法には、コンポーネント図形の2番目の区画を使う方法と、対象のコンポーネントに接続されたロリポップ/ソケット記号を使う方法の2通りがあります。ロリポップ図形は提供インターフェイスを示し、ソケット記号は要求インターフェイスを示します。これらの図形を描画する際には、依存を示す矢印 (クラス図や展開図など、他の多くの UML 図で使用) を併用します。1つのコンポーネントやノードが他のものに依存することを表す依存関係は、矢印を終端とする破線で示されます。
ポートの追加
コンポーネントに、コンポーネントと環境間の別の相互作用ポイントを示すポートを追加することが必要な場合もあります。ポートは、コンポーネント図形の側面の小さな正方形で示されます。各ポートにラベルを追加するには、テキスト図形をドラッグして引き出し、その中に入力します。コンポーネントやポートを始めとする図内の要素は、必要に応じて、依存関係やインターフェイス記号で接続することができます。
ノードの追加
モデル化対象となるシステムやアプリケーション内のノードを追加して図を完成させます。ノードは三次元のボックスのような形状で、UML 成果物からのコマンドを実行する PC、印刷機器やサーバーなどの計算資源を表します。
3. 公開、実行と共有
図をダウンロードするには、[ファイル] > [形式を指定してダウンロード] の順にクリックし、希望するファイル形式を選択します。権限のない他のユーザーに変更を加えられる心配なく、コンポーネント図を配布することができます。
コンポーネント図を共同編集者と共有すれば、各自が必要な変更を加えることができ、ダイナミックな協業が実現します。Lucidchart ユーザー/非ユーザーと文書を共有するには、ウィンドウ右上隅のオレンジ色の [共有] ボタンをクリックします。このメニューから、各ユーザーの編集アクセス権限の調整、文書へのリンクの生成やソーシャルメディアでの共有を行うことができます。
Lucidchart のコンポーネント図
Lucidchart では、UML でゼロから複雑なコンポーネント図を作成することも容易です。これは、以下の手順で行えます。
- 空白の文書を開くか、またはテンプレートを使って作成を開始します。
- ERD 図形ライブラリを有効化します。エディターの左側の [図形] をクリックし、図形ライブラリマネージャーの [UML] にチェックを入れ、[保存] をクリックします。
- 追加したライブラリから希望の図形を選択し、ツールボックスからキャンバスへドラッグします。
- 図形の間に線を描画し、プロセスフローをモデル化します。

図の作成に必要なすべて
Lucidchart を使えば、洗練された美しい図を無料で作成できます。どんな図にも対応できる機能を完備したツールで、今すぐアカウントを作成して図の作成を始められます。
無料ではじめる
