平成24年度 秋期 ITパスポート試験 問38 解説 システム開発プロセス
システム開発プロセスを、要件定義、外部設計、内部設計の順審で実施するとき, 内部設計で行う作業として、適切なものはどれか。
- ア 画面応答時間の目標値を定める。
- イ システムをサブシステムに分割する。
- ウ データベースに格納するレコードの長さや属性を決定する。 ✓ 正答
- エ 入出力画面や帳票のレイアウトを設計する。
解説
ユーザーから見える部分を設計するのが外部設計、開発者がコンピュータに対してどのように実装するかを設計するのが内部設計である、という視点で選択肢を切り分けます。選択肢の中で「データの物理的な構成」というコンピュータ内部の処理に踏み込んでいるものを選び出すのが正解への最短ルートです。
ユーザー視点からシステム視点への移行
システム開発のプロセスは、抽象的な「やりたいこと」を段階的に具体的な「プログラムの作り方」へと落とし込んでいく作業です。
まず要件定義では、ユーザーがそのシステムを使って何を実現したいのか、どのような性能が必要なのかという要望をまとめます。
次に続く外部設計(基本設計)は、ユーザーの視点に立った設計工程です。システムの操作画面や出力される帳票のレイアウト、システムの全体構成など、ユーザーが直接目にしたり触れたりする部分を決定します。この段階では、中身がどのようなプログラムで動くかよりも、ユーザーにとっての使い勝手や機能の網羅性が重視されます。
そして、今回の問題のポイントである内部設計(詳細設計)へと進みます。ここでは外部設計で決まった内容を、プログラミングができるレベルまで詳細化します。データの保持形式やアルゴリズム、モジュール間の細かな情報の受け渡しなど、コンピュータが効率よく、かつ正確に処理を行うための仕組みを設計します。
選択肢の分類と判断の根拠
各選択肢がどの工程に該当するかを整理することで、内部設計の役割を明確にできます。
ア 画面応答時間の目標値を定める。 これはシステムの性能に関する取り決めであり、要件定義や外部設計の段階で行われます。ユーザーが「どのくらいの速さで動いてほしいか」を合意するプロセスであり、内部の作り方を決める作業ではありません。
イ システムをサブシステムに分割する。 システム全体の構造を定義する作業であり、外部設計で行われます。大規模なシステムを管理しやすい単位(在庫管理、顧客管理など)に切り分ける、大枠の設計作業です。
ウ データベースに格納するレコードの長さや属性を決定する。 これが正解です。データベースの物理的な構造、つまり「1件のデータは何バイトにするか」「数値型か文字型か」といった具体的な定義は、プログラムがデータを処理するために不可欠な情報です。ユーザーからは見えない、コンピュータ内部の実装に直結する作業であるため、内部設計に該当します。
エ 入出力画面や帳票のレイアウトを設計する。 ユーザーが直接確認するインターフェースのデザインであるため、外部設計で行われます。ユーザーの承認を得てから、その画面を実現するためのプログラム設計(内部設計)に移るという順番が一般的です。
開発工程を分ける理由と実務での価値
なぜこのように工程を細かく分けるのかという背景を知ると、知識がより定着しやすくなります。
もし外部設計と内部設計を分けずに一気に進めてしまうと、画面のデザインについてユーザーから修正が入った際、すでに作り込んでしまった複雑なプログラムの内部構造まで大幅に修正しなければならなくなります。まずユーザーと「見える部分」の合意をとり(外部設計)、その後に「見えない部分」の作り込みに入る(内部設計)というステップを踏むことで、手戻りのリスクを最小限に抑えています。
実務においては、この内部設計書がプログラマへの指示書となります。内部設計が適切に行われていれば、プログラマは「どのようなデータ形式で受け取り、どのような計算をして、どこに保存するか」に迷うことなく、効率的に実装を進めることができます。ITパスポート試験でこの違いが問われるのは、システム開発における「合意形成」と「実装準備」の境界線を正しく理解しているかを確認するためです。