要件定義・基本設計・詳細設計の違い。上流工程の重要性と比率

システム開発において、プログラミングも大切ですが、初期の設計・具体的には『要件定義・基本設計・詳細設計』といった重要な上流工程がかなり大切です。どのような作業が行われているのでしょうか。それぞれの実例をみていきましょう。

システム開発の流れ

システム開発やソフトウェア開発における工程の中で、実装すべき機能や性能を明確にする『要件定義』には、非常に難解なイメージを持っている人も多いのではないでしょうか?

要件定義の難易度は、IT導入に求められる要求の多様化複雑化に比例して、どんどん高くなっています。

システムやソフトウェアの開発は、『要件定義・基本設計・詳細設計』という流れで進んでいきますが、『システム開発の成功も失敗も、要件定義で決まる』といわれるほど、要件定義は重要なステップであると認識しておきましょう。

要件定義でクライアントの要望を確認

クライアントから要求を引き出し、実装すべき機能を整理する作業を『要件定義』といいます。その内容を基準に、業務フローとシナリオを作成し、クライアントの要求と認識に齟齬がないか、細かくチェックしていきましょう。

次に、その要求を実際にシステムでどう実現するのか、開発側は『機能要件』に落とし込んでいきます。

機能要件ではユースケースの一覧を作成し、システムのやりとりをパターン化したのちに行うのが『機能一覧の作成』です。精密化された実務フローで、実装まで問題がないか、改善がされているかなど、チェックしましょう。

基本設計でシステムの基本を決める

前工程で整理したクライアントの要件を、実際にシステムとして『見える化』させる作業が『基本設計』です。クライアントはもちろん、実装したときにユーザーから見える操作画面やデータ出力など、インターフェース部分の仕様を決定します。

具体的な作業は、画像やイメージ図など、ユーザーが理解しやすい要素を用意し、クライアントにも理解しやすい設計書の作成です。費用の検討をはじめ、セキュリティや運用規定もここで決めていきます。

『見える化』させる基本設計は、その特性から『外部設計』とも呼ばれます。

詳細設計でシステムの動作を決める

ユーザーやクライアント向けの基本設計と異なり、『詳細設計』はプログラマー向けの設計書作成がメインの作業です。詳細設計はSEの仕事であり、システムの内部の動作・機能・データベースの設計などを行います。

その設計書を見て、実際にプログラマーがプログラムを組める、非常に細かい部分まで落とし込んでいきますが、クライアントに見えない内部の設計を行うため、『内部設計』とも呼ばれます。

実際に行われる作業

その名称から『基本設計は大まかな設計』で、『詳細設定は細かな設定』と誤解している人もいますが、基本設計と詳細設計には、それぞれ異なった役割があります。

  • 『基本設計(外部設計)』は、ソフトウェアの動きを『外から』見たときの状態を決定
  • それに対し『詳細設計(内部設計)』は、基本設計で指定された内容を、どのように『システム内部で』実現するか

でそれぞれ役割が異なります。

それぞれの設計で行われる作業を比較してみましょう。

基本設計で行われる作業

前工程の要件定義にもとづいて、基本設計では画面レイアウトや帳票レイアウトなど、『外側から見て、システムがどのような動きをするのか』を確認します。

基本設計では、業務の流れを理解し機能を洗い出す『業務フロー』の作成や、開発範囲となる機能の一覧を示す『機能一覧表』がメジャーですが、ネットワークの構成・データベースのテーブルの定義・データベースのER図の作成といった作業もあります。

詳細設計で行われる作業

クライアントと一緒に閲覧することも多い基本設計と違い、次工程の詳細設計では、社内開発者がプログラマー向けに行う場合が多い作業です。

機能設計書では、機能ごとの処理をはじめ、フローチャートの記述や、画面や帳票の詳細項目の説明など、データベースの物理設計書を作成します。

まとめ

システム開発は、要件定義から設計が5割・プログラミングが2割・残り3割はテスト工程です。『要件定義・基本設計・詳細設計』といった重要な上流工程がきちんとされてこそ、その後のプログラミングやテストが円滑に進められ、良質なシステムが完成します。

開発の命を握る『要件定義』をしっかり行って、クライアントやユーザーだけでなく、自社にとっても最高のシステム開発をしてみませんか?

この記事をシェア

関連記事


副業・フリーランス

プログラミング

デザイン

インタビュー

お金

採用・組織

転職

イベントレポート