システムアーキテクト試験 2009年 午前206


モジュール設計書を基にモジュール強度を評価した。適切な評価はどれか。
【モジュール設計書(抜粋)】  上位モジュールから渡される処理コードに対応した処理をする。処理コードが”I”のときは挿入処理、処理コードが“U”のときは更新処理、処理コードが”D”のときは削除処理である。
これは“情報的強度”のモジュールである。同一の情報を扱う複数の機能を、一つのモジュールにまとめている。モジュール内に各処理の入口点を設けているので制御の結びつきがなく、これ以上のモジュール分割は不要である。
これは“暗合的強度”のモジュールである。モジュール内の機能間に特別な関係はなく、むしろほかのモジュールとの強い関係性をもつ可能性が高いので、モジュール分割をやり直した方がよい。
これは“論理的強度”のモジュールである。関連した幾つかの機能を含み、パラメタによっていずれかの機能を選択して実行している。現状では大きな問題となっていないとしても、仕様変更に伴うパラメタの変更による影響を最小限に抑えるために、機能ごとにモジュールを分割するか入口点を設ける方がよい。(正解)
これは“連絡的強度”のモジュールである。モジュール内でデータの受け渡し又は参照を行いながら、複数の機能を逐次的に実行している。再度見直しを図り、必要に応じて更にモジュール分割を行った方がよい。

解説

モジュール強度の評価問題【午前2 解説】

要点まとめ

  • 結論:処理コードで機能を切り替える設計は「論理的強度」に該当し、機能ごとに分割や入口点設置が望ましいです。
  • 根拠:論理的強度は関連機能をパラメータで選択実行する形態であり、仕様変更時の影響範囲が広がるため保守性が低下します。
  • 差がつくポイント:モジュール強度の種類を正確に理解し、パラメータによる機能選択が論理的強度であることを見抜く力が重要です。

正解の理由

この問題のモジュール設計書では、処理コード("I"、"U"、"D")によって挿入・更新・削除の処理を切り替えています。これは複数の関連機能を一つのモジュールにまとめ、パラメータで実行機能を選択する典型的な「論理的強度」の特徴です。論理的強度は関連機能をまとめる利点はあるものの、パラメータの変更がモジュール全体に影響を及ぼしやすく、保守性や拡張性の観点からは機能ごとに分割するか入口点を設けることが推奨されます。したがって、選択肢エが最も適切な評価です。

よくある誤解

論理的強度を「情報的強度」や「連絡的強度」と混同しやすいですが、パラメータによる機能選択がある場合は論理的強度と判断します。単にデータを扱うだけでは情報的強度とは言えません。

解法ステップ

  1. モジュール設計書の処理内容を確認し、機能の切り替え方法を把握する。
  2. 処理コードによる機能選択があるため、複数機能を一つのモジュールで扱っていることを認識する。
  3. モジュール強度の定義を思い出し、パラメータで機能を選択する形態が「論理的強度」であることを確認する。
  4. 保守性や影響範囲の観点から、機能ごとに分割や入口点設置が望ましいと判断する。
  5. 選択肢の説明と照らし合わせて、最も適切なものを選ぶ。

選択肢別の誤答解説

  • ア: 暗合的強度はモジュール内の機能間に特別な関係がなく、他モジュールとの強い結びつきがある場合。今回の設計は関連機能をまとめているため該当しません。
  • イ: 情報的強度は同一データを扱う複数機能をまとめるが、制御の結びつきがなく入口点が複数ある場合。今回の設計は入口点が一つでパラメータ制御なので違います。
  • ウ: 連絡的強度はモジュール内でデータの受け渡しや参照をしつつ逐次的に複数機能を実行する形態。今回の設計は逐次実行ではなくパラメータで機能を選択しているため該当しません。
  • : 論理的強度は関連機能をパラメータで選択実行する形態で、今回の設計に最も合致します。

補足コラム

モジュール強度はソフトウェアの保守性や再利用性に大きく影響します。強度が高いほどモジュール内の結合度が強く、変更の影響範囲が狭くなります。論理的強度は関連機能をまとめる利点はあるものの、パラメータの変更がモジュール全体に影響するため、可能な限り機能ごとに分割し、入口点を設ける設計が望ましいとされています。

FAQ

Q: 論理的強度と情報的強度の違いは何ですか?
A: 論理的強度は関連機能をパラメータで選択実行する形態で、情報的強度は同一データを扱う複数機能をまとめたもので入口点が複数ある点が異なります。
Q: モジュール強度が低いとどんな問題がありますか?
A: 低い強度はモジュール内の結合度が弱く、変更時に影響範囲が広がりやすく保守性が低下します。

関連キーワード: モジュール強度, 論理的強度, ソフトウェア設計, 保守性, モジュール分割
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ