あなたは、システム開発における開発工程の一部である詳細設計ついて具体的にどのようなことをしているのか、どのように進めたら良いのか気になっているところではないでしょうか。よく比較されがちな要件定義や基本設計と何が違うのか、その辺りも含めてシステム開発会社として25年経つ会社に所属している私が解説します。
本記事を読んでいただき、システム開発における詳細設計について、少しでも理解に繋がる材料となれると幸いです。
目次
1.詳細設計とは?
システム開発の一連の流れの中で中流に位置する詳細設計。要件定義、基本設計でまとめたものを開発者向けに設計したものが詳細設計となります。そんな詳細設計について1章では概要を説明します。
1-1.詳細設計は、開発者のために整理すること
詳細設計は、基本設計まで取りまとめた内容を開発者向けに設計していくフェーズになります。開発者はこの詳細設計を見ながら開発を進めることになるので、開発者目線で整理する必要があります。詳細設計はクライアントが見ることはほとんどないので、専門用語でまとめても問題ないものとなります。基本設計まではクライアント向けに作って、詳細設計で開発者向けに作るイメージでいましょう。
どのような書き方をすれば開発者が齟齬無く開発できるか、考えながら整理していくのが良いかもしれません。
1-2.詳細設計は、中流工程に位置する
詳細設計はシステム開発工程の中でも中流工程に位置するフェーズになります。
- 画面一覧表
- 画面遷移図
- システム構造図(クラス図)
- プログラムの処理フロー図(シーケンス図)
- データベース処理の整理
- バッチ処理整理 等…
基本設計の内容をもと、外側(見える部分)だけでなく裏側(見えない部分)も設計する必要があります。実装するために必要な情報をまとめるイメージを持つと進めやすいかもしれません。
1-3.要件定義や基本設計との違い
良く比較されるのが、要件定義と基本設計の違いです。簡単に表にまとめると以下の通りです。
名称 | 工程 |
| 対象 | 内容 |
要件定義 | 最上流 | WHY (なぜ作るのか) | クライアント向け | システム導入する背景・課題、システム全般の概要 |
基本設計 | 要件定義の次 | WHAT (何を作るのか) | クライアント向け | システムの各機能、画面イメージ等具体化したもの |
詳細設計 | 基本設計の次 | HOW (どうやって作るのか) | 開発者向け | 基本設計を開発者向けにアレンジしたもの |
要件定義では、なぜシステムを開発するのか、基本設計ではそのシステムはどんな機能を持ったものなのか、詳細設計でそれをどうやって形にしていくのか、というフェーズに分けて開発を進めることになります。
2.詳細設計の進め方
2章では詳細設計を実際にどのように進めたら良いか紹介します。
2-1.基本設計書の確認
まずは、基本設計書を確認します。基本設計書はさらにその上の要件定義書をさらに細かく書いた設計書となります。システム開発の方向性や目的が書かれていますので、それを確認しながら詳細設計書を作成していくことになります。
2-2.詳細設計書の作成
ここからいよいよ詳細設計書を作成することになります。開発者はこの詳細設計書を見ながら開発を進めていくので、少しでも履き違いがあると手戻りが多くなってしまうので、確実な情報を分かりやすく伝えていく必要があります。開発だけでなく、テスト工程まで入れるようにしましょう。具体的な中身については長くなるので、次の3章で紹介します。
2-3.レビューの実施
詳細設計書ができたら、関係者/クライアントに共有して中身を確認します。ここで書いた人が気づかなかった欠陥や不足を補足することになります。品質向上のためにもこのレビューは必ず実施するようにしましょう。
3.詳細設計書に記載すべき項目
それでは、具体的に詳細設計書に記載すべき項目を3章では紹介します。
3-1.画面イメージ図、遷移図
基本設計書を確認しながら画面イメージとその遷移が分かるようにまとめましょう。基本設計書の時点である程度整理されていることもあります。
3-2.システム構造図(クラス図)
システム内のクラスの構造や仕様を表す図になります。1つのクラスの中に属性や操作を記載し、線でクラスとクラスの関係性を表現することになります。これでシステム全体の構造を可視化することができます。
クラス図の書き方は複雑で長くなってしまうので、以下の記事をご参照ください。
(参考)IT専科 クラス図
3-3.プログラムの処理フロー図(シーケンス図)
続いて、シーケンス図です。クラスとクラスの処理の流れを示す図面になります。シーケンス図は縦軸に時系列としての応答順序を入れることで、システムの動作を時系列に沿って可視化することができます。
こちらも書き方は複雑で長くなってしまうので、以下の記事をご参照ください。
(参考)IT専科 シーケンス図
3-4.データベース処理の整理
続いて、システムで扱うデータ(情報)は何があるのか?それぞれの構造やその管理方法、ファイルとして落とせるようにするのか等を整理します。扱うデータが複数ある場合は、それぞれのデータの関係性も分かるように図式する必要があります。ER図で整理することが多いです。
ER図については、解説を含めると長くなるので以下の記事をご参照ください。
4.詳細設計で失敗を避けるためのポイント
4章では詳細設計を進めるにあたって、気を付けておくべきポイントを紹介します。
4-1.開発者視点で考える
開発者のために整理するので、開発者視点で整理するようにしましょう。基本設計までは、クライアントが絡んでくるので非IT向けに整理されている可能性があります。それをより専門的な内容にまとめるようにしましょう。
4-2.要件定義との整合性を確認
詳細設計では、1つ1つの機能において詳細に整理する必要があります。つい、夢中になって気づいたら要件定義で定めたことから逸脱していることも少なくありません。夢中になるのは分かりますが、作成してから要件定義の内容を再度確認しましょう。ここで逸脱したまま進めてしまうと、完成品に対してクレームが入りかねません。
4-3.実現可能な内容になっているか
詳細設計までは机上論でのフェーズとなります。詳細設計の次に開発を進めることになりますが、内容が実現可能なものか精査する必要があります。実現不可なものにしては、空論の世界の話になってしまいます。
5.まとめ
システム開発における詳細設計について解説してきました。基本設計の次に位置する詳細設計ですが、基本設計まではクライアント向けにIT知識が乏しい人でも分かるように取りまとめてきましたが、詳細設計では開発者向けにまとめる必要があるので、言葉の使い方やまとめ方はこれまでとは変わってくるでしょう。開発者は詳細設計書をもとに開発を進めることになります。
詳細設計についてまとめてきましたが、弊社は会社を立ち上げたから25年が経ちます。長年の経験からシステム開発の手段について様々アドバイスできると思います。システム開発で行き詰った時には、どんな些細なことでも、お気軽にお問い合わせいただければと存じます。