2012年5月9日水曜日

=== 平成23年秋 問45 ===


平成23年秋目次  前の問題  次の問題

問45

モジュール設計書を基にモジュール強度を評価した。適切な評価はどれか。

〔モジュール設計書(抜粋)〕
上位モジュールから渡される処理コードに対応した処理をする。処理コードが"I"のときは挿入処理,処理コードが"U"のときは更新処理,処理コードが"D"のときは削除処理である。

ア これは"暗合的強度"のモジュールである。モジュール内の機能間に特別な関係はなく,むしろ他のモジュールとの強い関係性をもつ可能性が高いので,モジュール分割をやり直した方がよい。

イ これは"情報的強度"のモジュールである。同ーの情報を扱う複数の機能を,一つのモジュールにまとめている。モジュール内に各処理の入口点を設けているので,制御の結びつきがなく,これ以上のモジュール分割は不要である。

ウ これは"連絡的強度"のモジュールである。モジュール内でデータの受渡し又は参照を行いながら,複数の機能を逐次的に実行している。再度見直しを図り,必要に応じて更にモジュール分割を行った方がよい。

エ これは"論理的強度"のモジュールである。関連した幾つかの機能を含み,パラメタによっていずれかの機能を選択して実行している。現状では大きな問題となっていないとしても,仕様変更に伴うパラメタの変更による影響を最小限に抑えるために,機能ごとにモジュールを分割するか,機能ごとの入口点を設ける方がよい。



解説

モジュール強度とは、モジュール内の関連性の強さを表す尺度で、モジュール強度が高いほど、機能的にまとまっており、良い設計といえる。
モジュール強度には次のような強度がある。
(上に行くほど強度が強い)

■機能的強度
1つの機能を実現するためだけのモジュール

■情報的強度
特定のデータを扱う複数の機能を1つのモジュールにまとめたもの

■連絡的強度
次の手順的強度に加え、Aで処理したデータをBで参照するなど、複数の機能の間で同じデータの受け渡しが行われるようなモジュール

■手順的強度 
逐次的に行う複数の機能をまとめて、実行するようなモジュール。たとえば、処理Aの機能の実行の後、処理Bを行わなければならないので、AとBの機能を実行するなどのモジュール

■時間的強度 
特定の時点で行う複数の機能をまとめたモジュール。たとえば初期化時に行う機能をすべてまとめるなど

■論理的強度 
論理的に関連のある複数の機能を1つにまとめ、引数の値によって、どの機能が実行されるか決定する

■暗号的強度
関係のない複数の機能を実現するモジュール


ここでは挿入処理、更新処理、削除処理という複数の機能を1つにまとめ、引数の値によって、どの機能が実行されるかを決定するようなモジュールになっているため、論理的強度のモジュールといえる





0 件のコメント:

コメントを投稿