基本情報技術者 2018年 春期 午前(科目A) 問47
問題文
開発プロセスにおいて、ソフトウェア方式設計で行うべき作業はどれか。
選択肢
ア:顧客に意見を求めて仕様を決定する。
イ:ソフトウェア品目に対する要件を、最上位レベルの構造を表現する方式であって、かつ、ソフトウェアコンポーネントを識別する方式に変換する。(正解)
ウ:プログラムを、コード化した1行の処理まで明確になるように詳細化する。
エ:要求内容を図表などの形式でまとめ、段階的に詳細化して分析する。
🔒 解説は解答すると表示されます
ソフトウェア方式設計【午前解説】
正解の理由
正解:イ
選択肢イは、要件(要求)の内容を最上位レベルの構造で表現し、ソフトウェアコンポーネントを識別することを述べており、これがまさに方式設計(ソフトウェアアーキテクチャ設計、基本設計レベル)の役割です。方式設計はシステムをどのような部品(モジュール・コンポーネント)に分け、それらがどのように連携するかを決める工程であり、非機能要件の考慮やインターフェース設計も含みます。したがって選択肢イが正解です。
選択肢イは、要件(要求)の内容を最上位レベルの構造で表現し、ソフトウェアコンポーネントを識別することを述べており、これがまさに方式設計(ソフトウェアアーキテクチャ設計、基本設計レベル)の役割です。方式設計はシステムをどのような部品(モジュール・コンポーネント)に分け、それらがどのように連携するかを決める工程であり、非機能要件の考慮やインターフェース設計も含みます。したがって選択肢イが正解です。
解法ステップ
- 問題文のキーワードを確認:「方式設計」「最上位レベル」「ソフトウェアコンポーネント」等を探す。
- 各選択肢の作業粒度を判定:顧客折衝(要件定義)、構造化・コンポーネント識別(方式設計)、コードレベル(詳細設計/実装)、図表での分析(要求分析など)。
- 用語の対応をマッピング:方式設計=アーキテクチャ/基本設計、詳細化=詳細設計/実装、顧客意見=要件定義。
- 最も用語と役割が一致する選択肢を選ぶ(この問題ではイ)。
選択肢別の誤答解説
- ア: 顧客に意見を求めて仕様を決定する。
→ これは要件定義や要求獲得の作業であり、方式設計とは別工程です。方式設計は与えられた要件を基に設計方針を決めます。 - イ: ソフトウェア品目に対する要件を、最上位レベルの構造を表現する方式であって、かつ、ソフトウェアコンポーネントを識別する。
→ 正解。方式設計の目的と作業範囲を正確に表しています。 - ウ: プログラムを、コード化した1行の処理まで明確になるように詳細化する。
→ これは詳細設計や実装レベルの話で、方式設計の粒度(アーキテクチャレベル)を超えています。 - エ: 要求内容を図表などの形式でまとめ、段階的に詳細化して分析する。
→ 分析手法としては妥当ですが、方式設計固有の「構造化してコンポーネントを識別する」という限定条件を満たさないため不適切です。要件分析や機能分解の説明により近いです。
よくある誤解
- 要件定義と混同してしまう:顧客から仕様を詰める作業(選択肢ア)は要件定義/要求整理の範囲であり、方式設計とは役割が異なります。
- 詳細設計と混同する:プログラムの1行処理まで落とす作業(選択肢ウ)は詳細設計や実装段階であり、方式設計の粒度ではありません。
- 図表化=方式設計と思い込む:図表でまとめる行為(選択肢エ)は分析手法一般を指し、方式設計とは必ずしも一致しません。方式設計は構造化した「ソフトウェア構成の決定」が本質です。
補足コラム
方式設計(ソフトウェア方式設計)は組織や教材によって「基本設計」や「アーキテクチャ設計」と呼ばれることがあります。主な成果物はソフトウェア構成図、モジュール一覧、インターフェース一覧、コンポーネント責務表、性能・信頼性等の非機能要求に関する設計方針などです。V字モデルでは要件定義の下流に位置し、詳細設計・実装・テストへ橋渡しする重要工程です。設計時にはモジュール分割の原則(凝集度・結合度)、再利用性、保守性、スケーラビリティを意識すると良いでしょう。
FAQ
Q1: 方式設計と詳細設計の明確な違いは何ですか?
A1: 方式設計は「何をどのような部品で実現するか(構造とコンポーネント)」を決める上位設計。詳細設計はその各コンポーネントを「どう実装するか(アルゴリズム、データ構造、コードレベル)」を定めます。
A1: 方式設計は「何をどのような部品で実現するか(構造とコンポーネント)」を決める上位設計。詳細設計はその各コンポーネントを「どう実装するか(アルゴリズム、データ構造、コードレベル)」を定めます。
Q2: 図表化すれば方式設計と言えますか?
A2: 図表化は手段であり目的ではありません。方式設計は図表を用いて構造とコンポーネントを決定することが重要で、単なる一覧化や段階的分析だけでは不十分です。
A2: 図表化は手段であり目的ではありません。方式設計は図表を用いて構造とコンポーネントを決定することが重要で、単なる一覧化や段階的分析だけでは不十分です。
Q3: 方式設計で考える非機能要件の例は?
A3: 性能(応答時間・スループット)、信頼性(フェイルオーバー方針)、可用性、保守性、運用性、セキュリティなどです。
A3: 性能(応答時間・スループット)、信頼性(フェイルオーバー方針)、可用性、保守性、運用性、セキュリティなどです。
関連キーワード: ソフトウェア方式設計、方式設計、ソフトウェアアーキテクチャ、コンポーネント設計、基本設計、詳細設計、モジュール分割、インターフェース設計、要件定義、非機能要件、V字モデル、凝集度と結合度

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

