ようやくエンジニアとしての就職が決まり、SESとして働くことになりました。
「スキルシート」なるものを記入することになったのですが「基本設計と詳細設計ってどう違うんだっけ?」となったので、曖昧だった言葉の定義を調べてみました。
要件定義
システム開発などのプロジェクトを始める前の段階で、必要な機能や要求をわかりやすくまとめていく作業のことです。
要件定義でクライアントへのヒアリングを通じ、要求機能一覧や業務フローなどを作成していきます。
基本設計
基本設計は、要件定義の結果(WHAT)を「HOW」に落とし込むプロセスです。「外部設計」とも呼びます。
つまり、システムを外から見たときのふるまいを明らかにするのが基本設計のゴールです。
また、基本設計はエンドユーザにとっては「機能の説明書」のような役割を果たします。したがって、基本設計書はエンドユーザ向けの分かりやすい表現が求められます。
詳細設計
詳細設計では、基本設計で明確化された「HOW」をさらにプログラマー向けに詳細化します。
基本設計でざっくり考えた概要を元にして、実際のプログラムが作れるまで細かく落とし込む工程。
Vモデル
今回初めて知ったのですが、Vモデルとは、システム開発プロジェクトにおける開発工程とテスト工程の対応関係を表した1つのモデルだそうです。
下記の図は、Vモデルを一般的なイメージで表したものです。
ザックリまとめ
「要件定義」は開発するシステムに組み込む機能をまとめたもの。
「基本設計」はシステムを外から見た時の振る舞いを決定するもの。
「詳細設計」は要件定義や基本設計で決まった要件をプログラマー向けに詳細にしたもの。
調べた感想
今回まとめた内容は超基本的な事だと思いますし、以前にさらっと勉強したことあったのですが、「ぼんやり分かったつもりでいる」状態が一番危ないような気がして、改めて調べてみました。
また、スキルシートの作成に伴って、「自分が学習してきたこと、やったことを全然言語化できてない」と実感しました。
これからエンジニアの方々とコミュニケーションをとる際には言語化の能力は必須だと思うので意識してやっていこうと思います。
https://it-biz.online/it-skills/design-documents/
https://products.sint.co.jp/obdz/blog/system_design_flow
https://products.sint.co.jp/obdz/blog/basic-design-detailed-design#toc-0