はじめに
「利用者が注文履歴を確認できるようにする」
この要件だけでは、注文履歴に何を表示し、どのような操作ができるようにするのかは決まっていません。こうした内容を決めずに開発を始めると、担当者によって異なる機能が作られてしまいます。
要件だけでは決まっていない部分を、具体的なシステム仕様にするのが基本設計です。
この記事で分かること
この記事では、基本設計の目的、基本設計で決めること、詳細設計との違いを説明します。
基本設計とは
基本設計の目的は、要件を具体化し、次の設計で何を作るのかが分かり、完成後に要件どおりか確認できる状態にすることです。
要件定義では「何を実現したいか」を決めます。基本設計では「どのようなシステムなら実現したといえるか」を決めます。要件を担当者ごとの解釈に任せず、関係者が同じ仕様を見て判断できるようにする工程です。
基本設計では何を決めるのか
基本設計で決めることは、大きく三つに整理できます。
画面に何を表示し、どんな機能を持たせるか
注文履歴では、商品名、個数、注文日、金額など、画面に表示する情報を決めます。
あわせて、日付や商品名で検索できるようにするのか、一覧から注文の詳細を開けるようにするのかなど、利用できる機能を決めます。
ここで決めるのは、利用者に見せる情報と、利用者が使える機能です。
必要な情報をどこから得るか
画面に表示する情報と機能が決まったら、それらに必要な情報をどこから得るのかを決めます。
注文日や個数は注文情報、商品名は商品情報から取得します。配送状況を表示する場合は、配送システムとの連携が必要になることもあります。
ここで決めるのは、機能に必要な情報と、関係する機能やシステムのつながりです。
エラーや権限、性能などの条件
画面が表示されるだけでは、機能が完成したとはいえません。
注文履歴がない場合には、そのことが分かるメッセージを表示します。情報の取得に失敗した場合は、履歴がないと表示せず、エラーとして伝える必要があります。
また、誰が閲覧できるのか、過去何年分を表示するのか、どの程度の時間で表示するのかも決めます。
ここで決めるのは、機能を正しく、安全に、実用的に使うための条件です。
基本設計をすると要件はどう変わるのか
基本設計前の要件は、次の一文でした。
利用者が注文履歴を確認できるようにする。
基本設計を行うと、例えば次のように具体化されます。
ログインした利用者は、自分の過去3年分の注文履歴を確認できる。一覧には商品名、個数、注文日、金額を表示し、日付や商品名で検索できる。
履歴がない場合はその旨を表示し、情報の取得に失敗した場合はエラーを表示する。他の利用者の注文履歴は閲覧できないようにする。
これで、開発者は何を作ればよいか判断できます。
完成後も、表示する情報や機能、エラー時の動きなどを確認すれば、要件どおりに作られているか判断できます。
基本設計と詳細設計の違い
基本設計では、利用者に見せる情報や機能、エラー時の動きなど、システムが満たす仕様を決めます。
詳細設計では、その仕様をどのような処理、データ構造、SQL、プログラムで実現するのかを決めます。
基本的には、基本設計は「何を作るか」、詳細設計は「どう作るか」を決める工程です。
まとめ
基本設計の目的は、要件を具体化し、何を作るのかと、完成後に何を確認するのかが分かる仕様にすることです。
そのために、画面に表示する情報と機能、必要な情報やシステムとのつながり、エラー・権限・性能などの条件を決めます。


コメント