D4. コンポーネントとユニットを詳細設計する
ソフトウェアコンポーネント設計では、実装最小単位のユニットのみで構成される末端のコンポーネントとユニットを対象として、次の設計ができます。
- コンポーネント単位の静的構造図によるユニットの構成と関連性
- コンポーネント仕様に応じたユニット仕様
- ユニット間およびユニット内部のインタフェース
- シーケンス図・ステートマシン図・DFD・フローチャートによる動的振る舞い
以下では、ユースケースごとに、設計時の画面イメージと編集対象のモデル、利用するビューについて説明します。
なお、以下ではソフトウェアアーキテクチャ設計を「上位工程」、ソフトウェアコンポーネント設計を「本工程」と記します。
上位工程のコンポーネントと本工程のコンポーネント
- ソフトウェアコンポーネント設計では、上位工程で階層化されたコンポーネントのうち末端のコンポーネントを対象として、本工程のコンポーネントを設計します。
- 上位工程のコンポーネントと本工程のコンポーネントは別々のモデルとして扱い、導出関連によって対応関係を表します。
| ユースケース | 画面イメージ | モデルとビュー | 説明 |
|---|---|---|---|
| D4.1. アーキテクチャ設計からコンポーネントを導出する | ![]() | Ⓜメインエディタ ・モデル:[ソフトウェアアーキテクチャ設計グループ] ・ビュー:[コンポ・仕様一覧] Ⓢサブエディタ ・表示モード:[手動] ・モデル:[ソフトウェアコンポーネント設計グループ] ・ビュー:[ユニット・仕様一覧] | [ソフトウェアコンポーネント設計グループ] を追加したうえで、2画面構成で上位工程の [ソフトウェアコンポーネント] から本工程の [ソフトウェアコンポーネント] を導出できます。 [ソフトウェアコンポーネント] を個別に追加してから上位工程の [ソフトウェアコンポーネント] と関連付けることもできます。 |
| D4.2. 各コンポーネントを構成するユニットを設計する | ![]() | Ⓜメインエディタ ・モデル:[ソフトウェアアーキテクチャ設計グループ]、上位工程の [ソフトウェアコンポーネント] のいずれか ・ビュー:[コンポ・仕様一覧] Ⓢサブエディタ ・表示モード:[手動] ・モデル:[ソフトウェアコンポーネント設計グループ]、本工程の [ソフトウェアコンポーネント] のいずれか ・ビュー:[ユニット・仕様一覧] | サブエディタでもコンポーネントを構成するユニットを設計できます。ユニットは階層化できません。 |
| D4.3. アーキテクチャ設計からユニット仕様を導出する | ![]() | Ⓜメインエディタ ・モデル:[ソフトウェアアーキテクチャ設計グループ]、上位工程の [ソフトウェアコンポーネント] のいずれか ・ビュー:[コンポ・仕様一覧] Ⓢサブエディタ ・表示モード:[手動] ・モデル:[ソフトウェアコンポーネント設計グループ]、本工程の [ソフトウェアコンポーネント] のいずれか ・ビュー:[ユニット・仕様一覧] | 2画面構成で上位工程の [コンポーネント仕様] から本工程の [ユニット仕様] を導出できます。 [ユニット仕様] を個別に追加してから上位工程の [コンポーネ ント仕様] と関連付けることもできます。 |
| D4.4. ユニットのインタフェースを設計する | |||
| └ D4.4.1. インタフェースに必要な型を設計する | ![]() | Ⓜメインエディタ ・モデル:[ソフトウェアコンポーネント設計グループ]、本工程の [ソフトウェアコンポーネント] のいずれか ・ビュー:[型定義一覧] Ⓢサブエディタ ・表示モード:[詳細] | コンポーネントごとに型定義を追加できます。 |
| └ D4.4.2. アーキテクチャ設計からユニットのインタフェースを導出する | ![]() | Ⓜメインエディタ ・モデル:[ソフトウェアアーキテクチャ設計グループ]、上位工程の [ソフトウェアコンポーネント] のいずれか ・ビュー:[インタフェース一覧] Ⓢサブエディタ ・表示モード:[手動] ・モデル:[ソフトウェアコンポーネント設計グループ]、本工程の [ソフトウェアコンポーネント]、[ソフトウェアユニット] のいずれか ・ビュー:[インタフェース一覧] | 2画面構成で上位工程の [インタフェース関数] や [インタフェースデータ] から本工程のユニットのインタフ ェースを導出できます。 本工程のインタフェースを個別に追加してから上位工程のインタフェースと関連付けることもできます。 |
| └ D4.4.3. ユニットのインタフェースを設計する | ![]() | Ⓜメインエディタ ・モデル:[ソフトウェアコンポーネント設計グループ]、本工程の [ソフトウェアコンポーネント]、[ソフトウェアユニット] のいずれか ・ビュー:[インタフェース一覧] Ⓢサブエディタ ・表示モード:[詳細] | ユニットごとにインタフェース関数や内部関数、インタフェースデータ、内部データを追加し、それらの詳細を設計できます。 |
| └ D4.4.4. ユニット間でインタフェースを関連付ける | ![]() | Ⓜメインエディタ ・モデル:本工程の [ソフトウェアコンポーネント] ・ビュー:[静的構造図] Ⓢサブエディタ ・なし | ユニットのインタフェース間をコネクタで結線することでインタフェースを関連付けられます。 |
| D4.5. 動的設計を行う | |||
| └ D4.5.1. コンポーネント内部の振る舞いを設計する | ![]() | Ⓜメインエディタ ・モデル:本工程の [ソフトウェアコンポーネント] ・ビュー:[詳細] Ⓢサブエディタ ・表示モード:[詳細] ・ビュー:[シーケンス図]、[ステートマシン図]、[状態遷移表]、[DFD] のいずれか | コンポーネントに [動的設計] モデルを追加すると、最適な設計手法で動的設計ができます。 |
| └ D4.5.2. ユニットの振る舞いを設計する | ![]() | Ⓜメインエディタ ・モデル:[ソフトウェアユニット] ・ビュー:[詳細] Ⓢサブエディタ ・表示モード:[詳細] ・ビュー:[DFD] | ユニットに [動的設計] モデルを追加すると、DFDで動的設計ができます。 |
| └ D4.5.3. インタフェース関数・内部関数の振る舞いを設計する | ![]() | Ⓜメインエディタ ・モデル:本工程の [インタフェース関数]、[内部関数] のいずれか ・ビュー:[詳細] Ⓢサブエディタ ・表示モード:[詳細] ・ビュー:[フローチャート] | インタフェース関数・内部関数に対してフローチャートで動的設計ができます。 |









