システム開発の流れ
システム開発やソフトウェア開発における工程の中で、実装すべき機能や性能を明確にする『要件定義』には、非常に難解なイメージを持っている人も多いのではないでしょうか?
要件定義の難易度は、IT導入に求められる要求の多様化複雑化に比例して、どんどん高くなっています。
システムやソフトウェアの開発は、『要件定義・基本設計・詳細設計』という流れで進んでいきますが、『システム開発の成功も失敗も、要件定義で決まる』といわれるほど、要件定義は重要なステップであると認識しておきましょう。
要件定義でクライアントの要望を確認
クライアントから要求を引き出し、実装すべき機能を整理する作業を『要件定義』といいます。その内容を基準に、業務フローとシナリオを作成し、クライアントの要求と認識に齟齬がないか、細かくチェックしていきましょう。
次に、その要求を実際にシステムでどう実現するのか、開発側は『機能要件』に落とし込んでいきます。
機能要件ではユースケースの一覧を作成し、システムのやりとりをパターン化したのちに行うのが『機能一覧の作成』です。精密化された実務フローで、実装まで問題がないか、改善がされているかなど、チェックしましょう。
基本設計でシステムの基本を決める
前工程で整理したクライアントの要件を、実際にシステムとして『見える化』させる作業が『基本設計』です。クライアントはもちろん、実装したときにユーザーから見える操作画面やデータ出力など、インターフェース部分の仕様を決定します。
具体的な作業は、画像やイメージ図など、ユーザーが理解しやすい要素を用意し、クライアントにも理解しやすい設計書の作成です。費用の検討をはじめ、セキュリティや運用規定もここで決めていきます。
『見える化』させる基本設計は、その特性から『外部設計』とも呼ばれます。
詳細設計でシステムの動作を決める
ユーザーやクライアント向けの基本設計と異なり、『詳細設計』はプログラマー向けの設計書作成がメインの作業です。詳細設計はSEの仕事であり、システムの内部の動作・機能・データベースの設計などを行います。
その設計書を見て、実際にプログラマーがプログラムを組める、非常に細かい部分まで落とし込んでいきますが、クライアントに見えない内部の設計を行うため、『内部設計』とも呼ばれます。
実際に行われる作業
その名称から『基本設計は大まかな設計』で、『詳細設定は細かな設定』と誤解している人もいますが、基本設計と詳細設計には、それぞれ異なった役割があります。
- 『基本設計(外部設計)』は、ソフトウェアの動きを『外から』見たときの状態を決定
- それに対し『詳細設計(内部設計)』は、基本設計で指定された内容を、どのように『システム内部で』実現するか
でそれぞれ役割が異なります。
それぞれの設計で行われる作業を比較してみましょう。
基本設計で行われる作業
前工程の要件定義にもとづいて、基本設計では画面レイアウトや帳票レイアウトなど、『外側から見て、システムがどのような動きをするのか』を確認します。
基本設計では、業務の流れを理解し機能を洗い出す『業務フロー』の作成や、開発範囲となる機能の一覧を示す『機能一覧表』がメジャーですが、ネットワークの構成・データベースのテーブルの定義・データベースのER図の作成といった作業もあります。
詳細設計で行われる作業
クライアントと一緒に閲覧することも多い基本設計と違い、次工程の詳細設計では、社内開発者がプログラマー向けに行う場合が多い作業です。
機能設計書では、機能ごとの処理をはじめ、フローチャートの記述や、画面や帳票の詳細項目の説明など、データベースの物理設計書を作成します。
まとめ
システム開発は、要件定義から設計が5割・プログラミングが2割・残り3割はテスト工程です。『要件定義・基本設計・詳細設計』といった重要な上流工程がきちんとされてこそ、その後のプログラミングやテストが円滑に進められ、良質なシステムが完成します。
開発の命を握る『要件定義』をしっかり行って、クライアントやユーザーだけでなく、自社にとっても最高のシステム開発をしてみませんか?