マナティ

熱血!藤井講師の基本情報技術者試験 合格講座

合格講座:第19回「テクノロジ系~ソフトウェア方式設計」

2016年(平成28年)秋の[基本情報技術者試験]に合格するための重要ポイント、システム設計におけるソフトウェア方式設計分野を解説します。モジュールの設計内容のテーマは頻出です。

55864_ext_02_0.jpg

ソフトウェア方式設計分野への対応と攻略ポイント

システム設計におけるソフトウェア方式設計分野において、モジュールの設計内容をテーマとして、モジュール分割の概念、モジュールの独立性の尺度における最も強いまたは弱い強度または結合度が頻出です。

本試験出題例

基本情報技術者 平成28年春期問題 午前:問47
※リンク先はIPAサイトの過去問(PDFファイル)になります。

モジュールの独立性を高めるには、モジュール結合度を低くする必要がある。モジュール間の情報の受渡し方法のうち、モジュール結合度が最も低いものはどれか。

 共通域に定義したデータを関係するモジュールが参照する。
 制御パラメタを引数として渡し、モジュールの実行順序を制御する。
 データ項目だけをモジュール間の引数として渡す。
 必要なデータを外部宣言して共有する。

モジュール分割の手法と評価尺度

プログラム設計工程において、ソフトウェアの最小単位となるモジュールの分割基準には、プログラムの機能に着目する方法、データ構造や流れに着目する方法など、次のようにさまざまな種類があります。このうち、機能に着目する共通機能分割とは、複数のプログラム中で共通する機能を抽出しモジュールとして独立させる最も基本的な分割法です。

【分割の着眼点と代表的な分割法例】
●機能に着目して分割…共通機能分割
●データ構造に着目して分割…ジャクソン法ワーニエ法
●データの流れに着目して分割…STS分割トランザクション(TR)分割

データ構造に着目するジャクソン法とワーニエ法

ジャクソン法とは、入出力データの構造に着目して分割する技法です。これは、基本・連続・選択・繰り返しの4つの単位を基準として階層構造化し、モジュールに分割します。一方、ワーニエ法とは入力データの構造に着目した技法であり、順次構造・選択構造・繰り返し構造の3の単位を基準として分割します。処理内容の繰り返し(ループ)における処理回数を重視し、プログラム構造図・ワーニエ図を作成して構造化する点に特徴があります。

データの流れに着目するSTS分割とトランザクション(TR)分割

STS分割は、入力データと出力データの流れに着目して分割する技法です。入力されたデータ(源泉:Source)が変換(Transaction)され、出力データ(吸収:Sink)として処理される3段階の過程に区分して分割します。一方、トランザクション分割(TR分割)は、入力されたデータの種類ごとにユーザから見た処理の内容(トランザクション)単位で分割する技法です。STS分割は、未集計データを整列・計算して業務に役立つ形式に加工するような処理、TR分割は給与計算業務を基本給の計算・割増賃金の計算・社会保険料等の控除などの単位に分割することをイメージすると理解しやすいでしょう。

モジュールの独立性の尺度

モジュールどうしが適切に分割されているかどうかを確認する指標として、個々のモジュールの独立性の尺度にモジュール強度モジュール結合度があります。モジュール強度とは、単体のモジュールの機能的な強さを7段階で表現します。機能的強度が最も強い=独立性が高い、として理想的とされます。一方モジュール結合度とは、モジュール間の関係性の強さを5段階で表現し、弱いほど理想的であるとされます。

機能的強度…モジュール強度が最も強い理想状態。単体のモジュールが1つの機能だけを実現するまとまりで構成されている。
暗号的強度…モジュール強度が最も弱い好ましくない状態。互いの関係性が低い複数の機能を備え、モジュール単体としての存在目的が明確でない状態。
データ結合…モジュール結合度が最も弱い理想状態。処理に要するデータをパラメタ(引数)として受け渡すだけのモジュール間の関係性が低い状態。
内容結合…モジュール結合度が最も強い好ましくない状態。他のモジュールの内容(内部データ)を直接参照するモジュール間の関係性が強い状態。

fe_comic19.png

解答と解説

正解:

データ項目だけをモジュール間の引数として渡す方法が、最も弱い結合度となります。この状態がデータ結合です。なお、モジュール結合度は、主にデータの受け渡し方法によって、データ結合→スタンプ結合→制御結合→外部結合→共通結合→内容結合の順に区分されます。
:共通域に定義したデータを関係するモジュールが参照する方法は共通結合です。
:制御パラメタを引数として渡しモジュールの実行順序を制御する方法は制御結合です。
:必要なデータを外部宣言して共有する方法は外部結合です。

著者プロフィール

藤井淳夫(著者)
事務官として防衛庁に入庁し、システム開発及びシステム管理業務に従事。1998年に独立、IT系社会保険労務士としてITコンサルティング、ITを駆使した人事労務管理及び情報処理技術者育成事業を展開する。大学・企業等における講義講演時間数が1万時間を超える「カリスマ講師」。著書多数。
ホームページ:http://www.ilovepc.jp
平井太朗(イラスト)
元大手IT企業サラリーマン。あっさり辞めて漫画家/イラストレーター業を20年ほど続ける。20世紀終盤からPCとペンタブレットで漫画を描き始める。多々多々気の向いた仕事を続ける風来坊なので詳細は http://heytaroh.com/