Industrial Engineer Information Processing study materials
Industrial Engineer Information Processing study resources

Industrial Engineer Information Processing practice questions

One question at a time. Build your Industrial Engineer Information Processing understanding.

First 50 of 200 questions. Each one lists the choices, the correct answer, and an explanation. The checker at the top of this page saves progress in this browser when it is available.

Continue in the practice tool above to load more questions, 50 at a time.

Question 1Software Design

ソフトウェア設計における「関心の分離(separation of concerns)」の説明として最も適切なものはどれか。

  1. 機能ごとに独立したモジュールへ分割し、各モジュールが単一の責務に集中できるようにする Correct answer.
  2. 実行時の性能を最大化するために処理を並列化する
  3. すべての機能を単一のクラスにまとめて変更箇所を一か所に集約する
  4. テスト工程を省略するために設計書の記述量を削減する

Explanation

関心の分離は、システムを異なる関心事(責務)ごとに分割し、各モジュールの変更理由を一つに絞る設計原則である。これにより保守性や再利用性が高まり、変更の影響範囲を局所化できる。

Question 2Software Design

モジュール結合度(coupling)に関する記述として最も適切なものはどれか。

  1. 結合度とモジュールの独立性には関係がない
  2. 結合度が高いほどモジュールの独立性が高まり品質が向上する
  3. 結合度はモジュール内部の命令数の多さを表す指標である
  4. 結合度が高いほどモジュール間の依存が強く、保守や再利用が難しくなる Correct answer.

Explanation

結合度はモジュール間の依存の強さを表し、高いほど一方の変更が他方に波及しやすい。設計では結合度を低く保つことが望ましいとされる。

Question 3Software Design

オブジェクト指向設計において、サブクラスがスーパークラスの型で置き換え可能であることを保証する原則はどれか。

  1. リスコフの置換原則(LSP) Correct answer.
  2. 単一責任原則(SRP)
  3. オープン・クローズド原則(OCP)
  4. 依存性逆転原則(DIP)

Explanation

リスコフの置換原則は、派生クラスのインスタンスが基底クラスのインスタンスとして振る舞えることを要求する。これに違反すると多態性を利用したコードで予期しない動作が生じる。

Question 4Software Design

UMLのクラス図において、集約(aggregation)を表す関連の記述として正しいものはどれか。

  1. 全体側の端に塗りつぶしのひし形を付けて表し、部分の寿命は全体に依存する
  2. 依存関係を破線の矢印で表す
  3. 全体側の端に白抜きのひし形を付けて表し、部分は全体から独立して存在できる Correct answer.
  4. 汎化を白抜きの三角の矢印で表す

Explanation

集約は弱い「has-a」関係で、白抜きのひし形を全体側に付けて表す。部分オブジェクトは全体が破棄されても独立して存在できる点がコンポジションと異なる。

Question 5Software Design

GoFのデザインパターンのうち、アルゴリズムをカプセル化して実行時に差し替え可能にするパターンはどれか。

  1. Facadeパターン
  2. Strategyパターン Correct answer.
  3. Singletonパターン
  4. Observerパターン

Explanation

Strategyパターンはアルゴリズムをインタフェースの背後にカプセル化し、クライアントから独立して切り替えられるようにする。条件分岐の増加を抑えつつ振る舞いを柔軟に変更できる。

Question 6Software Design

アーキテクチャパターンの一つであるレイヤードアーキテクチャの特徴として最も適切なものはどれか。

  1. データ層とプレゼンテーション層のみに限定することを強制する
  2. すべての層が相互に自由に呼び出し合うことで性能を最大化する
  3. 上位層は下位層に依存し、各層は特定の責務を持ち上位層のみから呼び出される Correct answer.
  4. 層を設けず単一のモジュールで全体を実装する

Explanation

レイヤードアーキテクチャはシステムを責務ごとの層に分割し、上位層が下位層を利用する一方向の依存関係を基本とする。各層の責務を分離することで変更の影響を局所化できる。

Question 7Software Design

マイクロサービスアーキテクチャの設計上の課題として最も適切なものはどれか。

  1. サービス間の通信やデータ整合性の管理が分散システム特有の難しさを持つ Correct answer.
  2. 単一のデプロイ単位でしかリリースできないため変更が困難になる
  3. サービス数が増えるほど全体の結合度が下がり運用が単純になる
  4. 各サービスが同じデータベースを共有することが必須となる

Explanation

マイクロサービスではサービスが独立したプロセスとして動作するため、通信の遅延や障害、分散トランザクションによるデータ整合性の管理が課題となる。設計ではこれらの分散系の難しさを考慮する必要がある。

Question 8Software Design

モジュール強度(凝集度)のうち、最も望ましいとされる種類はどれか。

  1. 機能的強度 Correct answer.
  2. 暗号的強度
  3. 論理的強度
  4. 時間的強度

Explanation

機能的強度はモジュール内の各要素が単一の機能を達成するために協調している状態で、凝集度が最も高い。凝集度が高いほどモジュールの独立性が高く保守しやすい。

Question 9Software Design

あるモジュールが他のモジュールの内部データ構造を直接参照して値を書き換えている。この結合の種類として最も適切なものはどれか。

  1. スタンプ結合
  2. 制御結合
  3. 共通結合
  4. 内容結合 Correct answer.

Explanation

内容結合は一方のモジュールが他方の内部に直接依存し、内部データやコードを参照・変更する最も強い結合である。保守性の観点から避けるべき結合とされる。

Question 10Software Design

UMLのシーケンス図の主な用途として最も適切なものはどれか。

  1. オブジェクト間のメッセージのやり取りを時系列に沿って表現する Correct answer.
  2. データベースのテーブル構造を表現する
  3. クラス間の静的な関連や属性を表現する
  4. システムの状態遷移を表現する

Explanation

シーケンス図は相互作用図の一種で、オブジェクト間で交わされるメッセージを時間軸に沿って表す。処理の流れや呼び出し順序を明確にするのに用いられる。

Question 11Software Design

モジュール設計において、モジュールの扇入(fan-in)が大きいことの意味として最も適切なものはどれか。

  1. モジュール間で共有するグローバル変数の数が多い
  2. そのモジュールを呼び出す上位モジュールの数が多い Correct answer.
  3. モジュール内部の命令数が多い
  4. そのモジュールが呼び出す下位モジュールの数が多い

Explanation

扇入はあるモジュールを呼び出す側のモジュール数、扇出はそのモジュールが呼び出す側の数を表す。扇入が大きいモジュールは再利用性が高い一方、変更時の影響が広範囲に及ぶ。

Question 12Software Design

オブジェクト指向設計で、あるクラスが自身のデータを公開せず、操作を通じてのみアクセスさせる考え方を何と呼ぶか。

  1. 継承
  2. 汎化
  3. 多態性
  4. カプセル化 Correct answer.

Explanation

カプセル化はデータとそれを操作する手続きを一つにまとめ、外部からは公開された操作を通じてのみアクセスさせる考え方である。内部実装の変更が外部に影響しにくくなる。

Question 13Software Design

インタフェース分離原則(ISP)の説明として最も適切なものはどれか。

  1. クラスの変更理由を複数持たせることで拡張性を高める
  2. 上位モジュールが下位モジュールの具象クラスに直接依存することを推奨する
  3. クライアントが利用しないメソッドへの依存を強いられないよう、インタフェースを小さく分割する Correct answer.
  4. すべての機能を一つの大きなインタフェースに集約して実装を単純化する

Explanation

インタフェース分離原則は、利用者が必要とする操作だけを持つ小さなインタフェースに分割することを求める。不要なメソッドへの依存を避けることで、変更の影響を減らし結合度を下げられる。

Question 14Software Design

ファクトリメソッドパターンを用いる主な目的として最も適切なものはどれか。

  1. 生成するオブジェクトのクラスをサブクラスに委ね、生成処理をクライアントから分離する Correct answer.
  2. 複雑なサブシステムへの単一の窓口を提供する
  3. 既存オブジェクトのコピーを生成する
  4. インスタンスが常に一つであることを保証する

Explanation

ファクトリメソッドパターンはオブジェクトの生成をサブクラスに委ね、クライアントが具体的なクラスを知らずに済むようにする。生成の変更が利用側に波及しにくくなる。

Question 15Software Design

状態遷移図(ステートマシン図)が特に有効な設計場面として最も適切なものはどれか。

  1. 複数オブジェクト間のメッセージ順序を表現する場合
  2. クラスの属性と関連の静的な構造を表現する場合
  3. システムの配置構成を表現する場合
  4. イベントに応じて状態が変化する制御ロジックの振る舞いを表現する場合 Correct answer.

Explanation

ステートマシン図は、あるオブジェクトが取り得る状態と、イベントによる遷移を表現するのに適している。状態に依存する複雑な制御ロジックの設計に向く。

Question 16Software Design

ソフトウェア設計における「抽象化」の効果として最も適切なものはどれか。

  1. 処理速度を向上させるために命令数を削減する
  2. 実装の詳細をすべて公開して透明性を高める
  3. 本質的な特徴のみを抽出して詳細を隠蔽し、変更に強い設計を可能にする Correct answer.
  4. テストケースの数を自動的に削減する

Explanation

抽象化は対象から本質的な特徴を抽出し、不要な詳細を隠すことで、全体像を単純化する。実装の詳細が変わっても上位の設計への影響を抑えられる。

Question 17Software Design

オブザーバパターンを適用する状況として最も適切なものはどれか。

  1. あるオブジェクトの状態変化を、依存する複数のオブジェクトへ自動的に通知したい場合 Correct answer.
  2. オブジェクトの生成手順を段階的に組み立てたい場合
  3. 既存クラスに手を加えず機能を追加したい場合
  4. 複雑なアルゴリズムを実行時に切り替えたい場合

Explanation

オブザーバパターンは、被観察オブジェクトの状態変化を購読者へ一対多で通知する仕組みを提供する。通知先を動的に追加・削除でき、被観察側と購読側の結合を弱められる。

Question 18Software Design

クライアントサーバ方式と比較した場合の三层アーキテクチャ(プレゼンテーション・業務ロジック・データ)の利点として最も適切なものはどれか。

  1. データベースを廃止して業務ロジックでデータを保持できる
  2. すべての処理をクライアントに集約できるためサーバが不要になる
  3. 業務ロジックをプレゼンテーションから分離でき、画面変更の影響を業務ロジックに及ぼしにくい Correct answer.
  4. 層を増やすことで通信回数が必ず減少する

Explanation

三层アーキテクチャは責務を層ごとに分離するため、プレゼンテーションの変更が業務ロジックへ波及しにくい。層ごとに独立した開発や再利用がしやすくなる。

Question 19Software Design

デザインパターンのうち、既存のオブジェクトに動的に責務を追加するために用いられるものはどれか。

  1. Adapterパターン
  2. Proxyパターン
  3. Decoratorパターン Correct answer.
  4. Compositeパターン

Explanation

Decoratorパターンは、元のオブジェクトを包む形で機能を追加し、実行時に責務を積み重ねられる。継承による組合せ爆発を避けつつ機能拡張できる。

Question 20Software Design

ソフトウェア設計レビューの目的として最も適切なものはどれか。

  1. テストの実行結果を記録して品質を証明する
  2. 実装済みのコードの性能を実測して最適化する
  3. 設計上の欠陥やリスクを早期に発見し、後工程での手戻りを減らす Correct answer.
  4. 本番環境の運用監視を自動化する

Explanation

設計レビューは設計段階で関係者が成果物を確認し、欠陥やリスクを早期に摘出する活動である。早期発見により後工程での修正コストを抑えられる。

Question 21Software Design

依存性逆転原則(DIP)に従った設計として最も適切なものはどれか。

  1. 業務ロジックが具体的なデータベース実装ではなく抽象インタフェースに依存するようにする Correct answer.
  2. 業務ロジックが特定のデータベース製品のAPIを直接呼び出すようにする
  3. 上位モジュールが下位モジュールの具象クラスを直接生成して利用する
  4. すべてのクラスを単一の具象クラスに統合する

Explanation

依存性逆転原則は、上位モジュールも下位モジュールも抽象に依存すべきとする。抽象インタフェースに依存させることで、実装の差し替えが容易になり結合度が下がる。

Question 22Software Design

モジュール分割の指針として、モジュールの扇出を大きくしすぎる場合に生じる問題として最も適切なものはどれか。

  1. モジュール間の結合度が必ずゼロになる
  2. モジュール内部の凝集度が自動的に高まる
  3. 下位モジュールの管理が複雑になり、上位モジュールの責務が過大になりやすい Correct answer.
  4. 上位モジュールの再利用性が必ず向上する

Explanation

扇出が大きいと一つのモジュールが多くの下位モジュールを制御することになり、管理や理解が難しくなる。一般に扇出は適度に抑え、階層を整理することが望ましい。

Question 23Software Design

UMLのコンポジット構造図が表す内容として最も適切なものはどれか。

  1. システムの物理的な配置を表現する
  2. オブジェクトの状態遷移を表現する
  3. アクターとユースケースの関係を表現する
  4. クラスの内部構造と、内部の部品間の接続関係を表現する Correct answer.

Explanation

コンポジット構造図は、クラスやコンポーネントの内部構造と、内部の部品(パート)同士の接続を表す。内部設計の構造を可視化するのに用いられる。

Question 24Software Design

ソフトウェア設計で用いられる「関心の分離」を実現するための手法として最も適切なものはどれか。

  1. すべてのクラスにログ出力処理を直接記述する
  2. 共通処理を各モジュールに重複して実装する
  3. 設計書を一枚の図に集約して詳細を省略する
  4. アスペクト指向設計により横断的関心をモジュールとして分離する Correct answer.

Explanation

ログやセキュリティのような横断的関心は複数モジュールにまたがりやすい。アスペクト指向設計ではこれらをアスペクトとして分離し、本体の責務を純粋に保てる。

Question 25Software Design

MVCアーキテクチャにおけるモデルの責務として最も適切なものはどれか。

  1. 画面のレイアウトと表示形式を担当する
  2. 利用者からの入力を受け取りモデルとビューを仲介する
  3. 業務ロジックとデータの保持・更新を担い、表示には依存しない Correct answer.
  4. データベースの物理的な記憶領域を管理する

Explanation

MVCのモデルは業務ロジックとデータを保持し、表示に関する関心事から独立している。ビューやコントローラが変わってもモデルへの影響を抑えられる。

Question 26Software Design

ソフトウェア設計のレビューにおいて、設計書の記述内容が要求仕様を満たしているかを第三者が検証する観点として最も適切なものはどれか。

  1. 単体テストの実施
  2. 性能測定
  3. ソースコードの自動整形
  4. 設計の妥当性検証 Correct answer.

Explanation

設計レビューは成果物である設計書を対象に、要求仕様との整合性や設計方針の妥当性を机上で検証する活動である。実装後のテストや性能測定はレビューの役割ではなく、設計段階で欠陥を摘出して手戻りを減らすことが目的となる。

Question 27Software Design

UMLのクラス図で、集約(aggregation)の関係を表す記号として最も適切なものはどれか。

  1. 白抜きのひし形 Correct answer.
  2. 塗りつぶしのひし形
  3. 破線の矢印
  4. 中空の三角矢印

Explanation

UMLのクラス図では、集約は全体と部分の関係のうち部分が独立して存在しうる弱い関係を表し、白抜きのひし形を全体側に付けて表現する。塗りつぶしのひし形はより強いコンポジションを表す点と区別する必要がある。

Question 28Software Design

ソフトウェアの品質特性のうち、ISO/IEC 25010で定義される「保守性」に含まれる副特性として最も適切なものはどれか。

  1. 暗号化強度
  2. モジュール性 Correct answer.
  3. 可用性
  4. 応答性

Explanation

ISO/IEC 25010の保守性には、モジュール性、再利用性、解析性、修正性、試験性といった副特性が含まれる。保守性は変更のしやすさに関する品質であり、可用性や応答性は信頼性や性能効率に分類される。

Question 29Software Design

構造化設計で用いられるモジュール分割の指針のうち、モジュール間の結合度を最も低く抑える結合の種類はどれか。

  1. 外部結合
  2. 制御結合
  3. 共通結合
  4. データ結合 Correct answer.

Explanation

結合度はモジュール間の依存の強さを表し、データ結合は引数として単純なデータのみをやり取りする最も弱い結合である。制御結合、外部結合、共通結合はいずれも依存が強く、変更の影響が広がりやすい。

Question 30Software Design

MVCアーキテクチャにおいて、モデルの責務として最も適切なものはどれか。

  1. 利用者からの入力を受け付けて振り分ける
  2. 画面遷移の順序を制御する
  3. 画面への表示形式を整える
  4. 業務ロジックとデータの保持を担う Correct answer.

Explanation

MVCのモデルは、業務ロジックの実行とデータの保持を担当する中核部分である。ビューは表示、コントローラは入力の受付とモデルやビューへの振り分けを担い、責務が分離されている。

Question 31Software Design

インタフェース分離原則(ISP)の説明として最も適切なものはどれか。

  1. 上位モジュールは下位モジュールの実装詳細に依存すべきである
  2. 一つのクラスは一つの責務のみを持つべきである
  3. 継承よりも委譲を優先して実装を再利用すべきである
  4. 利用者が必要としないメソッドへの依存を強いる大きなインタフェースを避け、小さく分割する Correct answer.

Explanation

インタフェース分離原則は、利用者ごとに必要な操作だけを持つ小さなインタフェースへ分割することを求める原則である。不要なメソッドへの依存を避けることで、変更の影響を限定し、実装の負担を減らす。

Question 32Software Design

状態遷移図(ステートマシン図)が特に有効な設計場面として最も適切なものはどれか。

  1. イベントに応じて状態が変化する制御対象の振る舞いを設計する Correct answer.
  2. 画面レイアウトの配置を設計する
  3. クラス間の静的な関連を設計する
  4. データベースの表構造を設計する

Explanation

ステートマシン図は、対象が取りうる状態と、イベントによる遷移、遷移を起こす条件や動作を表現する。状態に依存して振る舞いが変わる制御系や通信プロトコルの設計に適している。

Question 33Software Design

モジュール設計において、モジュールの扇出が大きくなりすぎる場合に生じる問題として最も適切なものはどれか。

  1. 制御の流れが複雑になり、保守や試験が困難になる Correct answer.
  2. モジュールの再利用が自動的に促進される
  3. モジュール間の結合度が必ず低下する
  4. モジュールの凝集度が必ず高くなる

Explanation

扇出はあるモジュールが直接呼び出す下位モジュールの数であり、大きすぎると制御の流れが複雑化して理解や試験が難しくなる。一般に扇出は適度に抑え、上位ほど小さく下位ほど大きくする形が望ましいとされる。

Question 34Software Design

依存性逆転原則(DIP)に従った設計として最も適切なものはどれか。

  1. 業務ロジックが具体的なデータベース実装ではなく抽象インタフェースに依存するようにする Correct answer.
  2. すべてのクラスを単一のモジュールに統合して依存をなくす
  3. 上位モジュールが下位モジュールの内部実装を直接参照するようにする
  4. 業務ロジックが特定のデータベース製品のAPIを直接呼び出すようにする

Explanation

依存性逆転原則は、上位モジュールも下位モジュールも抽象に依存し、具体実装に依存しない設計を求める。業務ロジックが抽象インタフェースに依存すれば、データベース実装の差し替えが容易になる。

Question 35Software Design

ソフトウェア設計で用いられる「段階的詳細化(トップダウン設計)」の進め方として最も適切なものはどれか。

  1. 最上位の機能を抽象的なまま定義し、下位の処理を順に具体化して詳細を埋めていく Correct answer.
  2. 完成済みの下位モジュールを寄せ集めて上位の機能を組み立てる
  3. 対象システムの全モジュールを並行して作り、最後に全体の整合性を確認する
  4. 各モジュールの処理時間を測定してから機能の割り当てを決める

Explanation

段階的詳細化は、まず最上位の機能を抽象度の高い手順として記述し、その内部を順次より具体的な処理へと分解していく設計手法である。抽象から具体へ一方向に詳細化することで、全体構造を保ちながら各階層の責務を明確にできる。

Question 36Software Design

UMLのシーケンス図を用いて表現するのに最も適切な内容はどれか。

  1. オブジェクト間で時系列に沿って交換されるメッセージのやり取り Correct answer.
  2. システムが保持するデータの物理的な格納位置
  3. クラス間の静的な継承関係の階層構造
  4. モジュール間の呼び出し回数の統計値

Explanation

シーケンス図は相互作用図の一種であり、複数のオブジェクト間で送受信されるメッセージを時間軸に沿って並べて表現する。処理の順序や呼び出しの流れを設計段階で確認する目的に適している。

Question 37Software Design

あるモジュールが他のモジュールの内部データ構造を直接参照して値を書き換えている。このモジュール間の結合として最も適切なものはどれか。

  1. 制御結合
  2. 内容結合 Correct answer.
  3. スタンプ結合
  4. データ結合

Explanation

内容結合は、あるモジュールが他のモジュールの内部データや内部ロジックに直接依存して参照・変更する結合であり、結合度が最も高い。保守性の観点からは避けるべき結合であり、公開されたインタフェースを介した受け渡しに改める必要がある。

Question 38Software Design

顧客ごとに異なる帳票出力形式を追加する予定があり、将来の形式追加のたびに既存の出力処理を修正しない設計としたい。この要件を満たす設計方針として最も適切なものはどれか。

  1. 帳票出力を抽象インタフェースとして定義し、形式ごとの実装クラスを差し替え可能にする Correct answer.
  2. 帳票の出力形式を設定ファイルに文字列として記述し、実行時に動的評価する
  3. 帳票出力処理を一つの巨大な関数にまとめ、条件分岐で形式を切り替える
  4. 形式ごとに出力処理のコピーを作成し、それぞれを独立して保守する

Explanation

出力処理を抽象に依存させ、形式ごとの差異を実装クラスに閉じ込めれば、新しい形式の追加はクラスの追加だけで済み既存コードの修正を避けられる。これは開放閉鎖原則に沿った設計方針である。

Question 39Software Design

ソフトウェアのモジュール設計において「情報隠蔽(information hiding)」を実践する方法として最も適切なものはどれか。

  1. モジュールの内部実装や内部データを外部から見せず、公開インタフェースのみを介して利用させる Correct answer.
  2. モジュールの仕様書を社外秘として配布を制限する
  3. モジュール内の全変数を公開し、他モジュールから自由に参照できるようにする
  4. モジュールのソースコードを難読化して第三者が読めないようにする

Explanation

情報隠蔽は、変更されやすい内部の実装やデータ構造をモジュールの外に見せず、公開されたインタフェース越しにのみ利用させる設計原則である。内部を隠すことで、実装変更の影響をそのモジュール内に局所化できる。

Question 40Software Design

在庫管理システムで、引当処理と出荷処理が同一トランザクション内で在庫数を更新する設計を検討している。デッドロックの発生リスクを下げる設計上の対策として最も適切なものはどれか。

  1. 処理の同時実行数を増やして待ち時間を短くする
  2. デッドロック発生時に利用者へエラーメッセージを表示するだけにする
  3. 両処理が在庫レコードを更新する順序をシステム全体で同一に統一する Correct answer.
  4. 在庫数の更新をすべて非同期のバッチ処理に置き換える

Explanation

デッドロックは複数のトランザクションが互いに相手の保持する資源を待つ循環待ちによって起こるため、資源を獲得する順序を全処理で統一すれば循環待ちの形成を防げる。設計段階でロック順序を規定することが有効な予防策となる。

Question 41Software Development

In a software development lifecycle model, which phase immediately follows requirements analysis in the classical waterfall model?

  1. Maintenance
  2. System design Correct answer.
  3. Unit testing
  4. Deployment

Explanation

The waterfall model proceeds sequentially: requirements analysis, then design (basic and detailed design), then implementation, testing, and maintenance. Design follows requirements because the requirements must be translated into architecture and module specifications before coding begins.

Question 42Software Development

Which software process model is characterized by short fixed-length iterations producing a potentially shippable increment at the end of each iteration?

  1. V-model
  2. Spiral
  3. Scrum Correct answer.
  4. Waterfall

Explanation

Scrum organizes work into fixed-length sprints, each ending with a potentially releasable product increment. The waterfall and V-model are sequential with a single delivery, and the spiral model is risk-driven with repeated prototyping rather than fixed sprints.

Question 43Software Development

A development team wants to reduce the risk of discovering integration defects late. Which practice most directly addresses this in an iterative project?

  1. Continuous integration with automated builds Correct answer.
  2. Freezing the architecture after design
  3. Writing a longer requirements document
  4. Increasing the number of manual review meetings

Explanation

Continuous integration merges code frequently and runs automated builds and tests, so integration defects surface within hours rather than at the end. Longer documents, frozen architecture, and more meetings do not shorten the feedback loop on integration errors.

Question 44Software Development

Which UML diagram is most appropriate for showing the dynamic behavior of a single object across a use case, including message ordering over time?

  1. Component diagram
  2. Deployment diagram
  3. Class diagram
  4. Sequence diagram Correct answer.

Explanation

A sequence diagram shows interactions among objects arranged in time order with lifelines and messages, making it suited to dynamic behavior of a scenario. Class, component, and deployment diagrams are structural views describing static organization.

Question 45Software Development

In object-oriented design, which relationship best describes a class that inherits attributes and operations from a more general class?

  1. Aggregation
  2. Dependency
  3. Association
  4. Generalization Correct answer.

Explanation

Generalization is the UML relationship where a subclass inherits from a superclass, capturing an is-a relationship. Aggregation and association are whole-part or linkage relationships, and dependency is a weaker using relationship.

Question 46Software Development

Which design principle states that a module should have only one reason to change?

  1. Liskov substitution principle
  2. Interface segregation principle
  3. Open-closed principle
  4. Single responsibility principle Correct answer.

Explanation

The single responsibility principle assigns one responsibility per class or module, so only one kind of requirement change forces modification. The open-closed principle concerns extension without modification, Liskov substitution concerns subtype substitutability, and interface segregation concerns narrow interfaces.

Question 47Software Development

A function must compute a monthly service fee from a plan type and usage amount. Which design choice best supports future plan types without editing existing code?

  1. Hard-code the fee formula inside the caller
  2. Store plan names in a global variable
  3. Introduce a polymorphism-based strategy for fee calculation Correct answer.
  4. Use a larger switch statement with all plan cases

Explanation

A strategy or polymorphic hierarchy lets new plan types be added as new classes, following the open-closed principle. Extending a switch statement or embedding formulas in callers requires modifying tested code each time a plan type is added.

Question 48Software Development

Which software testing level verifies the interaction between two or more completed modules?

  1. Unit testing
  2. Integration testing Correct answer.
  3. Regression testing
  4. Acceptance testing

Explanation

Integration testing checks interfaces and data flow between combined modules after unit testing. Unit testing targets individual modules, acceptance testing validates against user needs, and regression testing re-runs existing tests after changes.

Question 49Software Development

A tester designs cases for a function that accepts an integer age from 1 to 120. Using boundary value analysis, which set is the most appropriate?

  1. 30, 60, 90
  2. 0, 60, 121
  3. 1, 60, 120
  4. 0, 1, 120, 121 Correct answer.

Explanation

Boundary value analysis tests values at, just below, and just above each boundary, so 0, 1, 120, and 121 cover both edges. The other sets omit one or both boundaries or test only interior values.

Question 50Software Development

In white-box testing, what does statement coverage measure?

  1. The percentage of decision outcomes exercised by tests
  2. The number of defects found per test case
  3. The percentage of executable statements exercised by tests Correct answer.
  4. The percentage of requirements traced to tests

Explanation

Statement coverage counts executed statements divided by total executable statements. Decision or branch coverage measures outcomes of conditions, and requirement traceability is a separate coverage concern.