応用情報技術者 模擬試験

応用情報技術者 午前 システム開発・ソフトウェア工学 問題10問|解説つき

結合度と凝集度、どっちが高いと良いの。ホワイトボックステストとブラックボックスの違いは。アジャイルとウォーターフォールはどう使い分ける。そんな迷いを感じたことはありませんか。

結論から言えば、システム開発・ソフトウェア工学は、応用情報の中でも「実務に直結し、午後でも深く問われる」中心分野です。午前では開発プロセスやテスト技法、設計の良し悪しを測る指標が毎回数問出題されます。そして午後では「システム開発」「組込みシステム開発」「情報システム開発」といった選択問題で、UMLの読み取りやテストケースの設計が題材になります。午前で用語の意味を正確につかんでおくと、午後の設計問題で迷いが減ります。

頻出テーマは、要件定義・開発プロセスモデル(ウォーターフォール/アジャイル)オブジェクト指向とUMLモジュール設計の結合度・凝集度テスト技法(ホワイトボックス/ブラックボックス)とレビュー、デザインパターンまで広がります。つまずきやすいのは、結合度は「低い」ほど良く凝集度は「高い」ほど良い、という方向の逆転と、テスト技法ごとに何を網羅するかの区別です。「なぜその設計が保守しやすいのか」を言葉で説明できるかが、選択肢を絞る決め手になります。1問ずつ確かめていきましょう。

応用情報レベルで問われやすいテーマを10問に集めました。迷った設問は、解説のリンク先にある開発分野の記事で考え方を補っておきましょう。

 

Q1. システム開発における要件定義の説明として、もっとも適切なものはどれですか?

回答

解説

正解は「B」です。

要件定義は、システムに求められる機能要件(システムが何を実現するか)と非機能要件(性能・可用性・セキュリティ・保守性など、品質や制約に関わる要求)を利用者と合意し、後続の設計・実装の土台として文書化する上流工程です。ここでの取り違えや漏れは後工程ほど修正コストが大きくなるため、利用者との認識合わせが重要になります。

A は内部ロジック記述(詳細設計・実装に近い)の説明、C は移行・運用の説明、D はハードウェア調達に限定した誤りで、いずれも要件定義の説明として適切ではありません。

UMLとは・モデリングを見る

 

Q2. ソフトウェア開発プロセスモデル(ウォーターフォール・プロトタイピング・スパイラル)の説明として、もっとも適切なものはどれですか?

回答

解説

正解は「D」です。

ウォーターフォールモデルは、要件定義・設計・実装・テストといった工程を上流から順番に進め、前工程の成果物を固めてから次へ移る方式です。プロトタイピングモデルは、早い段階で試作品(プロトタイプ)を作り、利用者に確認してもらって要求を具体化する方式です。スパイラルモデルは、リスク評価を伴いながら「計画・リスク分析・開発・評価」のサイクルを反復し、段階的にシステムを成長させる方式です。

A はウォーターフォールを反復前提と取り違え、B はプロトタイピングを試作なしと逆に説明し、C はスパイラルを反復なしと取り違えており、いずれも適切ではありません。

アジャイル開発とはを見る

 

Q3. アジャイル開発(スクラムなど)の考え方の説明として、もっとも適切なものはどれですか?

回答

解説

正解は「A」です。

アジャイル開発は、短い反復(イテレーション、スクラムではスプリント)ごとに動作するソフトウェアを少しずつ作り、利用者のフィードバックを取り込みながら、優先度の高い要求から段階的に実装していく進め方です。アジャイルソフトウェア開発宣言では、包括的なドキュメントより動くソフトウェアを、契約交渉より顧客との協調を、計画に従うことより変化への対応を重視する価値観が示されています。

B は変更を拒む点、C はドキュメント整備を実装より優先する点、D は顧客との対話を避ける点で、いずれもアジャイルの価値観に反するため適切ではありません。

アジャイル開発とはを見る

 

Q4. オブジェクト指向のカプセル化・継承・多態性(ポリモーフィズム)の説明として、もっとも適切なものはどれですか?

回答

解説

正解は「C」です。

カプセル化は、データ(属性)と操作(メソッド)を一つのオブジェクトにまとめ、内部の実装の詳細を外部から隠す(情報隠蔽する)考え方です。継承は、既存クラス(スーパークラス)の属性や操作を引き継いで、新しいクラス(サブクラス)を効率よく定義する仕組みです。多態性(ポリモーフィズム)は、同じメッセージ(メソッド呼び出し)に対して、受け手のオブジェクトの種類に応じて異なる振る舞いをさせる仕組みです。

A はカプセル化の説明に継承の内容を当てはめ、B は継承の説明に多態性の内容を当てはめ、D は多態性の説明にカプセル化の内容を当てはめており、いずれも用語と定義が対応していません。

オブジェクト指向プログラミングとはを見る

 

Q5. UMLの図に関する説明として、もっとも適切なものはどれですか?

回答

解説

正解は「B」です。

クラス図は、クラスの属性・操作と、クラス間の関連・継承・集約といった静的な構造を表す代表的な構造図です。シーケンス図は、時間の流れ(上から下)に沿って、オブジェクト間でやり取りされるメッセージの順序という動的な振る舞いを表す相互作用図です。なおユースケース図は、利用者(アクター)とシステムが提供する機能(ユースケース)の関係を表す図です。

A はクラス図にシーケンス図の説明を当てはめ、C はユースケース図にクラス図の説明を当てはめ、D はシーケンス図にユースケース図の説明を当てはめており、いずれも図の種別と説明が一致しません。

UMLとは・モデリングを見る

 

Q6. モジュール設計における結合度と凝集度の説明として、もっとも適切なものはどれですか?

回答

解説

正解は「A」です。

結合度はモジュール間の依存の強さを表し、凝集度はモジュール内部の要素のまとまりの強さを表します。保守性・再利用性の高い良い設計の指針は、モジュール間の結合度を低く(弱く)し、モジュール内部の凝集度を高く(強く)することです。結合度が低いほど一つの変更が他へ波及しにくく、凝集度が高いほどモジュールの役割が明確になります。

B は望ましい方向と逆、C は結合度は低いほど良いため誤り、D は結合度と凝集度の定義を取り違えており、いずれも適切ではありません。

オブジェクト指向プログラミングとはを見る

 

Q7. ソフトウェアテストのブラックボックステストとホワイトボックステストの説明として、もっとも適切なものはどれですか?

回答

解説

正解は「D」です。

ブラックボックステストは、プログラムの内部構造を意識せず、入力と出力の仕様に着目してテストケースを作る方式で、代表的な技法に同値分割(同じ結果になる入力をグループ化)や境界値分析(境目の値を重点的に確認)があります。ホワイトボックステストは、プログラムの内部構造(分岐や経路)に着目する方式で、命令網羅分岐網羅などの網羅基準でテストケースを作ります。

A はブラックボックスにホワイトボックスの説明を当てはめ、B はホワイトボックスにブラックボックスの説明を当てはめ、C は技法の所属が逆で、いずれも適切ではありません。

ソフトウェアテストの種類とはを見る

 

Q8. ソフトウェアレビューのインスペクションとウォークスルーの説明として、もっとも適切なものはどれですか?

回答

解説

正解は「C」です。

インスペクションは、モデレータ(進行役)が主導し、参加者の役割分担やチェックリストに基づいて、成果物の欠陥を体系的・公式に摘出する形式的なレビュー手法です。ウォークスルーは、作成者が主導し、参加者とともに成果物を順にたどりながら説明し、指摘を受ける比較的非公式なレビュー手法です。いずれもプログラムを実行しない静的な検証であり、上流工程で欠陥を早期に発見する目的で行われます。

A はレビューを動的検証とする誤り、B はインスペクションの特徴をウォークスルーに当てはめた誤り、D はインスペクションを自己チェックに限定する誤りで、いずれも適切ではありません。

ソフトウェアテストの種類とはを見る

 

Q9. UMLのクラス図で用いる関係(汎化・集約・コンポジション)の説明として、もっとも適切なものはどれですか?

回答

解説

正解は「A」です。

汎化は、スーパークラスとサブクラスの間の「is-a(〜は〜の一種である)」という一般化・特化の関係です。集約は、全体と部分の「has-a(〜は〜を持つ)」という関係を表します。コンポジション(合成集約)は集約のうち結びつきが強いもので、部分が全体に強く依存し、全体が消滅すると部分も存在できなくなる関係を表します。いずれもクラス図が表す静的構造の関係です。

B は汎化と集約の意味を取り違え、C はコンポジションを独立した関係と逆に説明し、D はこれらを動的な関係とする誤りで、いずれも適切ではありません。

UMLとは・モデリングを見る

 

Q10. オブジェクト指向設計におけるデザインパターン(GoF)の位置づけの説明として、もっとも適切なものはどれですか?

回答

解説

正解は「D」です。

デザインパターンは、オブジェクト指向設計でくり返し現れる問題に対する再利用可能な解決方法を、クラスやオブジェクトの構造・役割として整理し、名前を付けてカタログ化したものです。代表的なものに GoF(Gang of Four)の23パターンがあり、Singleton や Observer などが知られています。完成済みのライブラリそのものではなく設計の考え方・ひな型であり、開発者間で設計の意図を共有しやすくする利点があります。

A はライブラリそのものとする誤り、B はハードウェアの配線図、C はネットワークの物理配置とする誤りで、いずれもデザインパターンの説明として適切ではありません。

オブジェクト指向プログラミングとはを見る

 

関連するソフトウェア開発の基礎を確認したい時は、UMLとは・モデリングソフトウェアテストの種類とは も参考になります。