詳細設計とは、システムを作る前に「どう作るか」を細かく決める工程です。
システムとは、パソコンやスマホで動く仕組みのことです。たとえば、会員登録画面、予約サイト、ネットショップなどもシステムの一つです。
詳細設計では、画面の動き、処理の流れ、データの扱い方などを決めます。作る人が迷わないようにするための、細かい設計図のようなものです。
ここだけ読めばOK
詳細設計とは、システムを「どう作るか」まで細かく決めることです。プログラムを作る前の、くわしい設計図のようなものです。
ほかのIT用語も知りたい方は、初心者向けのIT用語辞典もあわせてご覧ください。
詳細設計とは
かんたんに言うと、作る前の細かい設計図
詳細設計とは、システムを作る前に、細かい作り方を決める作業です。
プログラムとは、パソコンやスマホに「こう動いてください」と伝えるための指示です。詳細設計は、そのプログラムを実際に作る前に行います。
たとえば、ログイン画面を作る場合を考えてみましょう。メールアドレスを入力する場所、パスワードを入力する場所、ログインボタンを押した後の動きなどを決めます。
詳細設計はシステムを作る作業の中で行う
システムを作る作業では、いきなりプログラムを作るわけではありません。
まず「どんなものが必要か」を整理します。次に「どんな機能や画面にするか」を決めます。そのあとで、細かい作り方を決めるのが詳細設計です。
つまり詳細設計は、プログラムを作る直前に行うことが多い工程です。
詳細設計が必要な理由
詳細設計があると、作る人によって解釈が変わりにくくなります。
「ログインできるようにする」という大まかな指示だけでは、何を入力するのか、まちがえたときに何を表示するのかが分かりません。
詳細設計でそこまで決めておくと、作る人も、あとから確認する人も、同じ内容を見ながら進められます。
詳細設計の身近な例
家づくりで考える詳細設計
家を建てるとき、「2階建ての家を作る」だけでは工事はできません。
部屋の広さ、コンセントの位置、ドアの開く向き、水道の場所などを決める必要があります。
このように、実際に作るための細かい内容を決めることが、詳細設計のイメージに近いです。
ITではプログラムを作るための細かい指示になる
ITでの詳細設計は、プログラムを作る人に向けた細かい指示です。
たとえば、会員登録画面なら、名前、メールアドレス、パスワードをどう扱うかを決めます。
入力が空だった場合、文字数が多すぎる場合、同じメールアドレスがすでに使われている場合なども決めます。
詳細設計と基本設計の違い
基本設計は「何を作るか」を決める
基本設計は、システムの大まかな形を決める工程です。
たとえば、どんな画面を作るか、どんな機能を持たせるか、利用者がどのように使うかを決めます。
家づくりでいうと、部屋の数や大まかな間取りを決める段階に近いです。
詳細設計は「どう作るか」を決める
詳細設計は、基本設計で決めた内容をもとに、さらに細かく作り方を決めます。
たとえば、ログイン画面を作る場合、入力項目、入力内容の確認、エラー時の表示、データの保存方法などを決めます。
エラーとは、うまくいかなかった状態のことです。ITでは、入力ミスや保存失敗などもエラーとして扱うことがあります。
基本設計書と詳細設計書の違い
基本設計書は、利用者から見える画面や機能の内容を中心に書くことが多いです。
詳細設計書は、作る人が見て分かるように、処理の流れや条件を細かく書きます。設計書とは、決めた内容をまとめた資料のことです。
基本設計が大まかな設計なら、詳細設計は作業に入るためのくわしい設計です。
| 項目 | 基本設計 | 詳細設計 |
|---|---|---|
| 決めること | 何を作るか | どう作るか |
| 見る人 | 依頼者、作る人 | 主に作る人 |
| 内容 | 画面、機能、全体の流れ | 処理、条件、データ、エラー時の動き |
詳細設計書とは
詳細設計書に書く主な項目
詳細設計書とは、詳細設計で決めた内容をまとめた資料です。
会社や作るものによって形は違いますが、よく書く項目は次のようなものです。
| 項目 | 書くこと |
|---|---|
| 画面の項目 | 入力欄、ボタン、表示する文字など |
| 処理の流れ | ボタンを押したあと、どの順番で動くか |
| 入力チェック | 入力内容が正しいかを確認する条件 |
| データの扱い | どの情報を読み込み、どこに保存するか |
| エラー時の動き | うまくいかなかったときの表示や処理 |
画面・処理・データ・エラー時の動きを書く
画面とは、利用者が見るページや入力フォームのことです。
処理とは、ボタンを押したあとなどに、システムの中で行われる動きです。たとえば、入力内容を確認する、データを保存する、結果を表示するなどです。
データとは、名前、メールアドレス、注文内容など、システムで扱う情報のことです。
詳細設計書はどこまで書くべきか
詳細設計書は、細かければよいというものではありません。
大切なのは、作る人が迷わず作れることです。
人によって判断が分かれそうな内容は、省略しない方がよいです。
詳細設計の成果物
詳細設計の作業の結果としてできあがる資料やデータを、成果物と呼びます。
成果物とは、作業の結果としてできあがるもののことです。
詳細設計書
詳細設計の中心になる成果物は、詳細設計書です。
詳細設計書には、実際にプログラムを作るための情報をまとめます。
フローチャート
フローチャートとは、処理の流れを図で表したものです。
「入力する」「確認する」「保存する」などの流れを、矢印で分かりやすく示します。
文字だけでは分かりにくい処理も、図にすると理解しやすくなります。
シーケンス図
シーケンス図とは、やり取りの順番を表す図です。
たとえば、利用者、画面、データを保存する場所の間で、どんな順番で情報が動くかを示します。
シーケンス図は、UMLという図のルールの一つです。UMLとは、システムのしくみを図で表すための共通ルールのことです。
クラス図
クラス図とは、プログラムの部品同士の関係を示す図です。
ここでいう部品とは、プログラムの中で使うまとまりのことです。
クラス図もUMLの一つです。初心者のうちは「プログラムの部品の関係図」と考えれば十分です。
テーブル設計書
テーブル設計書とは、データをどう保存するかをまとめた資料です。
テーブルとは、データを入れる表のような場所です。Excelの表をイメージすると分かりやすいです。
たとえば、会員情報なら、名前、メールアドレス、登録日などをどの形で保存するかを決めます。
詳細設計書の書き方
基本設計書をもとにする
詳細設計書は、基本設計書をもとにして作ります。
基本設計で決めた内容から外れないように、細かい処理へ落とし込みます。
先に細かいことから考えると、全体の目的とずれることがあります。
処理の流れを順番に書く
詳細設計書では、処理の流れを順番に書くことが大切です。
たとえば、ログイン処理なら、入力を受け取る、空欄を確認する、登録情報と比べる、結果を表示する、という流れになります。
順番が分かると、作る人も確認する人も理解しやすくなります。
入力チェックやエラー時の動きも書く
入力チェックとは、入力された内容が正しいかを確認することです。
たとえば、メールアドレスの形になっているか、パスワードが短すぎないかを確認します。
エラー時の動きも大切です。まちがいがあったときに、どんなメッセージを出すかまで書いておくと分かりやすくなります。
作る人が迷わない細かさにする
詳細設計書は、作る人が読んで迷わないことが大切です。
ただし、すべてを細かく書きすぎると、読むのが大変になります。
そのため、決めるべきことは書き、だれが見ても分かることは簡潔に書くのがよいです。
詳細設計書の具体例
ログイン画面の詳細設計の例
ログイン画面では、メールアドレスとパスワードを入力します。
詳細設計では、次のような内容を決めます。
| 項目 | 詳細設計で決めること |
|---|---|
| メールアドレス | 必ず入力する。メールアドレスの形になっているか確認する。 |
| パスワード | 必ず入力する。文字数が足りない場合はメッセージを出す。 |
| ログインボタン | 入力内容を確認し、登録情報と合えばマイページへ移動する。 |
| エラー時 | 登録情報と合わない場合は、ログインできないことを知らせる。 |
入力チェックの詳細設計の例
会員登録画面では、入力内容が正しいかを確認します。
たとえば、メールアドレスが空の場合は「メールアドレスを入力してください」と表示します。
文字数が長すぎる場合や、使えない記号が入っている場合も、どう扱うかを決めます。
データ登録処理の詳細設計の例
データ登録処理では、入力された情報を保存します。
詳細設計では、どの情報を、どの場所に保存するかを決めます。
また、保存に失敗したときに、どう知らせるかも決めておきます。
詳細設計で初心者が間違えやすい点
基本設計と同じものだと思ってしまう
基本設計と詳細設計は、どちらも設計ですが役割が違います。
基本設計は大まかな内容を決めます。詳細設計は、実際に作るための細かい内容を決めます。
細かく書きすぎればよいと思ってしまう
詳細設計は細かく書く工程ですが、何でも書けばよいわけではありません。
読む人が必要な情報を見つけやすいことも大切です。
大事なのは、作る人が迷わないことです。
エラー時の動きを書き忘れる
正しく動く場合だけを書くと、うまくいかなかったときの動きが分かりません。
入力ミス、保存失敗、ネットにつながらない場合なども考えておくと、あとで確認しやすくなります。
プログラムを作る人だけが見るものだと思ってしまう
詳細設計書は、プログラムを作る人がよく見ます。
しかし、テストする人や確認する人も見ることがあります。
そのため、できるだけ分かりやすく書くことが大切です。
詳細設計で確認するポイント
詳細設計では、作った資料をあとから確認することがあります。
この確認作業をレビューと呼ぶことがあります。また、確認するポイントをレビュー観点と呼ぶことがあります。
基本設計と内容がずれていないか
まず、基本設計で決めた内容と合っているかを確認します。
詳細設計で新しい内容を勝手に足したり、必要な機能が抜けたりしていないかを見ます。
処理の流れがあいまいではないか
処理の流れがあいまいだと、作る人によって動きが変わることがあります。
「確認する」「保存する」「表示する」などの順番が分かるように書かれているかを見ます。
エラー時の動きが書かれているか
エラー時の動きは、見落とされやすい部分です。
入力ミスがあったとき、保存に失敗したとき、該当するデータがないときなどを確認します。
テストしやすい内容になっているか
テストとは、作ったものが正しく動くかを確認することです。
学校の試験ではなく、システムの動きを確かめる作業を指します。
どの条件で、どんな結果になるかが書かれていると、確認しやすくなります。
詳細設計に関するよくある質問
詳細設計の英語は何ですか?
詳細設計は英語で「Detailed Design」と表すことがあります。
「DD」と略されることもあります。ただし、略し方は会社や現場によって違うことがあります。
詳細設計は不要ですか?
小さな開発では、詳細設計書をかんたんにすることがあります。
ただし、作る内容や確認すべきことを何も残さないと、あとで分かりにくくなることがあります。
大切なのは、必要な内容を、必要な形で残すことです。
詳細設計と内部設計の違いは何ですか?
詳細設計と内部設計は、近い意味で使われることが多い言葉です。
ITの学習では、外部設計を基本設計、内部設計を詳細設計と近いものとして覚えると分かりやすいです。
ただし、会社や現場によって呼び方や範囲が少し変わることがあります。
詳細設計とプログラム設計の違いは何ですか?
プログラム設計は、プログラムの作り方により近い設計です。
詳細設計の中に、プログラム設計の内容が含まれることもあります。
どこまで分けるかは、会社や作るものによって変わります。
土木や建築の詳細設計とは違いますか?
はい、少し違います。
土木や建築でも「詳細設計」という言葉は使われます。ただし、この記事ではIT・システムを作る作業で使う詳細設計を説明しています。
まとめ|詳細設計とは、作る前に細かく決める大事な工程
詳細設計とは、システムを作る前に「どう作るか」を細かく決める工程です。
基本設計が「何を作るか」を決めるものなら、詳細設計は「どう作るか」を決めるものです。
詳細設計書には、画面の項目、処理の流れ、データの扱い、エラー時の動きなどを書きます。
作る人が迷わない内容にしておくことで、システムを作る作業や確認を進めやすくなります。
一言でいうと
詳細設計とは、プログラムを作る前に、細かい作り方を決めるための設計です。
