スタートページWeb教材一覧システムの調達

モジュール分割技法

キーワード

モジュール、モジュール分割、モジュール階層、制御領域、影響領域、粒度、再分割、サブルーチン、STS分割、TR分割、共通機能分割、ワーニエ法、NSチャート、ジャクソン法


モジュール分割の概要

共通事項

モジュール分割技法の種類


STS分割

STSとは、入力・源泉(Source)、処理・変換(Transform)、出力・吸収(Sink)の意味です。
 入力から出力に至る主要なデータフローが1つの時に効果があります。

プログラム中でのデータの流れに着目し、
  入力:プログラムへのデータの入力、他プログラムからのファイル読込、入力パラメータなど
   最大抽象入力点:これ以降は入力データが発生しない区切点
  変換:出力データを作成するための、データの計算や加工、変換など
   最大抽象出力点」こり以降は出力データが発生しない区切点
  出力:データの出力や表示、印刷、書き出しなど
の大きなモジュールに分割。それらを下位のノジュールに分割します。

HIPO(Hierarchy plus Input Process Output)

DFDと同様の、ソフトウェア設計技法の一つで、機能を階層的に表現した図式目次(Hierarchy)と、データの入力(Input) - 処理(Process) - 出力(Output)に着目したIPOダイアグラムを作成します。このIPOがSTSに相当します。

TR分割(トランザクション分割)

対象となるデータの種類と、そのデータに対する関連する一連の処理をトランザクションという単位で分割する手法です。  主要なデータフローがデータの種類ごとに分岐するとき、個々の主要なデータフローをトランザクションといいます。
 例えば、注文データが発生したとき、在庫を調べて、在庫があるときと、ないときの処理の2つのトランザクションになり、それぞれのモジュールに分割します。

共通機能分割

STS分割やTR分割を行った後で、共通的に含まれる機能を探し、それを共通機能として1つのモジュールにします。
STS分割やTR分割では、大きな上位モジュールを複数の小さな下位モジュールに分解するので、木構造になります。それに対して、共通機能分割では、基本となる共通機能は単一機能のモジュールであり、それらが集まって大きなモジュールになるという順序になる(例えば、「注文を受ける」や「在庫を調べる」などの共通機能を合わせると「受注処理」という大きなモジュールができる)ので逆木構造になります。

仕入発注量の増減と出荷量の増減のように、物理的な観点では別個の機能であっても、「増減」という抽象的な見方をすると共通機能になることがよくあります。また、そうすることにより、このモジュールを他のシステムで使うことができます、

ワーニエ法

入力データを中心に,データが「いつ,どこで,何回」使われるかを3種類の制御構造(順次,選択,繰返し)でモジュールかする方法です。

NSチャート

ワーニエ法では、構造化プログラミングを前提にしており、それを図で表現するにはNSチャート(Nassi-Shneiderman chart)を用います。下図のように、矢印や線を使用せず、四角い枠の組み合わせで表現します。

ジャクソン法

入力データ構造と出力データ構造の対応関係からモジュールに分割する方法です。
 入力から出力が得られるようプログラムの構造を決定していきます。その際、データやそれを扱うモジュールを、基本、連接、選択、反復の4つの要素を組み合わせて表現します。
 入力データと出力データの構造は木構造になります。その二つの木構造の対応関係を作成します。それを図示したものをジャクソン木といいます。そしてその対応を写像と考えてモジュールとします。データ構造の上下関係がそのままモジュールの上下関係となります。