11-6 ソフトウェア設計技法

モジュール分割

 モジュール分割とは、コンピュータプログラムを設計する際に、プログラム全体を何らかの基準に基づいて複数の部品(モジュール)に分割することです。
 これらの部品は、それぞれ特定の機能や構造を表す適切な大きさのプログラムのまとまりであり、これらを組み合わせることでプログラム全体が構成されます。

データの流れに着目する方法STS分割データの流れ(入力をSource、変換をTransform、出力をSinkと定義)に着目して、プログラムを3つのモジュール構造に分割する手法です。機能が順に並んでいる(データの流れが一直線である)場合によく用いられる。
TR分割対象となるデータの種類と、そのデータに対する関連する一連の処理をトランザクションという単位にまとめ、プログラムをトランザクション単位で分割していく手法で、データの種類などによって処理の流れが複数に分岐する場合によく用いられる。
データの構造に着目する方法ジャンクソン法プログラムの入力データと出力データの対応関係を把握し、入力から出力が得られるようプログラムの構造を決定していく。その際、データやそれを扱うモジュールを、基本、連接、選択、反復の4つの要素を組み合わせて表現する。
ワーニエ法ワーニエ法では、データがいつ、どこで、何回使われるかを分析し、これを元に、順次(連結)、選択、 繰り返しの3種類の制御構造を組み合わせて制御の流れを決めていく。これを図示したものをワーニエ図という。

モジュール間のインターフェイス

 分割後のモジュール階層構造において、どのモジュール間でどのようなデータの受け渡すかという取り決めをモジュール間インターフェイスといいます。

モジュール評価の指標

 よいモジュール分割とは、モジュールの独立性が高くなるように行われた分割です。モジュールの独立性は、モジュールが互いに影響する範囲のことで、この違いは、システム修正や改良のしやすさに大きく関わります。
 モジュール分割を行う際には、それぞれのモジュールの設計を切り離して行うために、「それぞれのモジュールが独立するような分割方法」、具体的には、

  • それぞれのモジュールが明確である
  • 入出力データが明確である

の2点を満たすようにモジュールを分割する必要があります。
そこで、どれくらいモジュールが独立しているか(モジュールの独立性)を測る尺度として、

  • モジュール強度
  • モジュール結合度

の2つが使われるようになりました。

(1)モジュール強度

 モジュール内にある機能の関連の強さを表す基準となるのがモジュール強度です。
 具体的に言うと、モジュールがどれくらい単一の機能に特化して設計されているかの度合いを表します。モジュール強度には、以下の7段階があります。

(2)モジュール結合度

 モジュール間の結合(関連)の度合いを表す基準となるのがモジュール結合度です。
 具体的には、モジュール同士がどれだけ独立に or 関連して設計されたかの度合いを表します。モジュール結合度には、以下の6段階があります。

レビュー

 システム要件定義や設計などにおいても、各工程ごとにレビューを実施します。設計に関するレビューをデザインレビューともいいます。レビューはミーティング形式の評価活動で、作業に関わりのあるさまざまなメンバが出席し、それぞれの立場から成果物(設計仕様書やソースコード)に評価を下します。
 効果的なレビューを行うためには、次の点に留意します。

レビュー実施の留意点

・資料の準備
 資料はあらかじめ用意し、参加者は事前に目を通す
・短時間での実施
 一般的に2時間以内
・エラー検出に専念
 進捗などは話題にしない、検出したエラーは担当者に任せる
・人的評価を持ち込まない
 評価や責任追及の場にしない、管理者の参加を拒むこともある

レビューの種類

ウォークスルー
 開発メンバによるレビュー、担当者自ら成果物の内容を説明し、意見を求める
インスペクション
 ウォークスルーに比べると形式的、レビュー実施訓練を受けたモデレータ(調停者)が進行する
ラウンドロビン
 各参加者が担当を分担し、持ち回りで行う