システム開発会社 A 社は B 社の販売管理システムの開発を受注した。A 社はシステム要件をネットワーク機器などのハードウェアで実現するものと, 業務プログラムなどのソフトウェアで実現するものに割り振っている。現在 A 社はどの工程を実施しているか。
平成24年度 春期 ITパスポート試験 問33
この問題の解説と、これまでの解答の記録です。
問 33
- ア
正解 正解はア「システム方式設計」。共通フレーム (SLCP) では、システム開発を システム要件定義 → システム方式設計 → ソフトウェア要件定義 → ソフトウェア方式設計 → ソフトウェア詳細設計 → プログラミング と、対象範囲を段階的に絞りながら詳細化していく。このうちシステム方式設計は、システム要件定義で確定した一つ一つの要件について、それをハードウェア構成品目で実現するのか、ソフトウェア構成品目で実現するのか、あるいは人手による手作業で実現するのかを割り振り、システム全体の最上位の構成 (方式・アーキテクチャ) を確立する工程である。設問の A 社は、B 社の販売管理システムについて、確定したシステム要件を、ネットワーク機器などのハードウェアで実現するものと、業務プログラムなどのソフトウェアで実現するものに振り分けている。これはシステム方式設計の定義そのものであり、他の三つの工程では説明できない。ここで注目すべき手がかりは二つある。第一に、割り振る対象が「システム要件」と書かれていること。要件が既に存在するのだから、システム要件定義は完了している。第二に、ソフトウェアで実現する範囲がまさに今決まりつつあること。ソフトウェアの担当範囲が確定していない段階では、その範囲を前提とするソフトウェア要件定義もソフトウェア方式設計もまだ始められない。つまり A 社は、システム要件定義を終え、ソフトウェア側の工程に入る直前の位置にいる。この工程で ハードウェアで実現する部分 / ソフトウェアで実現する部分 / 手作業で行う部分 の境界を引くからこそ、次のソフトウェア要件定義では、ソフトウェアに割り当てられた部分だけを対象に、どのような機能や性能を備えるべきかを具体化できる。したがって現在実施している工程はアのシステム方式設計である。
不正解イ
システム要件定義は、利用者や発注者が求めることを整理し、これから作るシステムが備えるべき機能、性能、インタフェース、信頼性、セキュリティ、運用条件などを、実現手段には踏み込まずに定義して合意する工程である。本問でいえば、販売管理システムとして受注入力や在庫照会や売上集計ができること、同時に何人が使えること、といった要件を洗い出して確定させる段階に当たる。設問の A 社は、その「システム要件」を既に手元に持っていて、それをハードウェアとソフトウェアのどちらで実現するかを割り振っている。要件を作る側ではなく、確定した要件を実現手段に配分する側なので、システム要件定義ではない。工程順序でも、システム要件定義はシステム方式設計の一つ手前で、既に完了している。
不正解ウ
ソフトウェア方式設計は、ソフトウェア要件定義で確定したソフトウェアの要件を受けて、そのソフトウェアをどのようなプログラム (ソフトウェアコンポーネント) の組合せで構成するかを決め、各コンポーネントの機能分担、コンポーネント間のインタフェース、データベースの構造や画面・帳票の方式などを設計する工程である。対象範囲はあくまでソフトウェアの内部構造に閉じており、ネットワーク機器のようなハードウェアを割当先として扱うことはない。設問の A 社は、ソフトウェアが担当する範囲そのものをこれから確定させている段階であり、ソフトウェアの内部をコンポーネントに分割する段階にはまだ到達していない。工程順序でも、システム方式設計 → ソフトウェア要件定義 → ソフトウェア方式設計 と、二つ先の工程に当たる。
不正解エ
ソフトウェア要件定義は、システム方式設計でソフトウェアに割り当てられた部分について、そのソフトウェアが備えるべき機能や性能、画面や帳票などのインタフェース、データベースに保持する情報などを具体的に定義する工程である。前提として、システムのうちどこまでをソフトウェアで実現するのかが既に決まっている必要がある。設問の A 社は、まさにその ハードウェアで実現する部分 と ソフトウェアで実現する部分 の境界を引いている最中であり、ソフトウェアの担当範囲が確定していない。範囲が決まる前にその中身の要件を定義することはできないので、現在の工程はソフトウェア要件定義ではなく、その一つ手前のシステム方式設計である。
- システム方式設計の定義 — システム要件定義で確定した各要件を、ハードウェア構成品目で実現するもの、ソフトウェア構成品目で実現するもの、人手による手作業で実現するものに割り振り、システム全体の最上位の構成 (方式・アーキテクチャ) を決める工程。ハードウェアとソフトウェアの境界を引く作業が出てきたらシステム方式設計、と結び付けて覚える。
- 開発工程の順序と対象範囲 — システム要件定義 → システム方式設計 → ソフトウェア要件定義 → ソフトウェア方式設計 → ソフトウェア詳細設計 → プログラミング。前半 (システム〜) はハードウェアや手作業も含めたシステム全体が対象、後半 (ソフトウェア〜) はソフトウェアに割り当てられた範囲だけが対象。また各段階は 要件定義 = 何を実現するか、方式設計 = どう構成して実現するか という役割分担になっており、この二軸で選択肢を切り分けられる。