平成24年度 秋期 ITパスポート試験 問32 解説 システム開発プロセスにおける設計
図32 のプロセスでシステム開発を進める場合、システム方式設計に含まれる作業とし て、適切なものはどれか。
- ア システムの機能及び処理能力の決定 ✓ 正答
- イ ソフトウェアの最上位レベルの構造とソフトウェアコンポーネントの決定
- ウ ハードウェアやネットワークの構成の決定
- エ 利用者インターフェースの決定
解説
システム開発プロセスにおける「システム方式設計」の段階で実施される作業を特定する問題です。図に示されている開発プロセスは「システム要件定義」→「システム方式設計」→「ソフトウェア要件定義」→「ソフトウェア方式設計」…という流れになっています。この流れを理解し、各設計段階の役割を把握しているかが問われています。
システム開発の段階と設計の役割
システム開発は、一般的に以下のような段階を経て進められます。
- システム要件定義: ユーザーがシステムに何を求めているのか、システムが満たすべき機能や性能、制約条件などを明確にする段階です。
- システム方式設計: システム要件定義で明確になった要求を実現するために、システム全体の構成、機能、処理能力、ハードウェア・ソフトウェアの概要などを大まかに決定する段階です。ここでは、システムが「何をするか」だけでなく、「どのように実現するか」の全体像を描きます。
- ソフトウェア要件定義: システム方式設計で定義されたソフトウェアに関する要求を、より詳細に定義する段階です。
- ソフトウェア方式設計: ソフトウェアの全体構造、モジュール分割、各モジュールの機能、インターフェースなどを設計する段階です。
- ソフトウェア詳細設計: ソフトウェア方式設計で定義された各モジュールについて、具体的なアルゴリズムやデータ構造などを詳細に設計する段階です。
- プログラミング: 詳細設計に基づき、実際にプログラムを作成します。
- テスト: 作成されたプログラムが仕様通りに動作するかを確認します。
- 結合テスト・総合テスト: 複数のプログラムやシステム全体を連携させて、期待通りに動作するかを確認します。
- 運用・保守: システムを実際に稼働させ、継続的に保守・改善を行います。
この問題は、システム開発の初期段階である「システム方式設計」に焦点を当てています。
問題の解き方:各選択肢の照らし合わせ
システム方式設計は、システム全体の「大枠」を決める段階です。これを踏まえ、各選択肢を見ていきましょう。
- ア システムの機能及び処理能力の決定: システムがどのような機能を持つべきか、また、どれくらいの速さ(処理能力)で処理を行う必要があるのか、といったシステム全体の性能目標を定める作業です。これは、システム全体が満たすべき要求を具体化し、その実現に向けた大まかな方針を決めるシステム方式設計の根幹をなす作業と言えます。
- イ ソフトウェアの最上位レベルの構造とソフトウェアコンポーネントの決定: これは、システム方式設計で大枠が決まった後、ソフトウェアに落とし込む際の設計段階(ソフトウェア方式設計)で行われる作業です。システム全体ではなく、ソフトウェアという特定の要素に焦点を当てています。
- ウ ハードウェアやネットワークの構成の決定: システム方式設計でも、ハードウェアやネットワークの概要レベルでの検討は含まれますが、この選択肢が指す「構成の決定」は、より詳細なハードウェア選定やネットワーク設計といった、システム方式設計よりも後の工程、あるいは並行して進む詳細設計の領域に踏み込む可能性があります。システム方式設計では、あくまで「どのような種類のハードウェアやネットワークが必要になりそうか」といった大まかな方向性を定める段階です。
- エ 利用者インターフェースの決定: 利用者インターフェース(UI)の設計は、システム方式設計で機能が決まった後、あるいはソフトウェア設計と並行して行われることが多いですが、システム全体の大枠を決めるシステム方式設計の主要な作業というよりは、より具体的な設計段階(特にUI/UX設計など)で詳細化されます。
したがって、システム方式設計として最も適切に位置づけられるのは、システム全体の機能と処理能力という、システムが満たすべき本質的な要件を具体化し、その達成に向けた方向性を定める作業である「ア」となります。
開発プロセスにおける「方式」の意味
「方式」という言葉は、システム開発においては「どのように実現するか」という全体的な方法論や設計方針を指します。
- システム方式設計では、システム全体として「何をするか」という要件を、「どのような手段で実現するか」という大まかな設計に落とし込みます。「システム全体の機能」とは、要件定義で挙げられた機能要求を、システムとしてどのように実現するかの粒度で捉え直すことです。「処理能力」とは、例えば「1秒間に何件のデータを処理できる必要があるか」といった性能目標を、システム全体としてどう達成するかを検討することです。
- 対して、ソフトウェア方式設計では、システム方式設計で決定された「どのように実現するか」という方針に基づき、ソフトウェアを構成する要素(モジュール)に分解し、それらの関係性や役割を設計します。これは、より具体的なソフトウェアの構造設計にあたります。
この区別を理解することが、この問題の鍵となります。システム方式設計は、システム全体を一つのブラックボックスとして捉え、その入出力、機能、性能といった「外から見た振る舞い」を定義し、それを実現するための大まかな構成要素(ハードウェア、ソフトウェア、データ、ネットワークなど)の概要を決定する段階と言えます。
知識の活用例
この知識は、実際のシステム開発プロジェクトにおいて、各工程でどのような成果物を作成すべきかを理解するために不可欠です。例えば、プロジェクトマネージャーであれば、各フェーズで担当者がどのような作業を行っているのか、その進捗状況を把握するために、各工程の役割と成果物を正確に理解している必要があります。また、開発者であれば、自分が担当する工程の役割を理解し、その前の工程の成果物を正しく引き継ぎ、次の工程に引き渡すための基礎となります。
ITパスポート試験では、このようなシステム開発ライフサイクル(SDLC: System Development Life Cycle)の各段階の名称とその主な活動内容を問う問題が頻繁に出題されます。この問題は、まさにその典型例と言えます。