要件定義と基本設計は何が違うの? 各工程を正しく理解しよう!

システム開発の基礎知識

システム開発の基礎知識

一般的にシステム開発は、「工程」と呼ばれる複数のステップに分けて進めていきます。
どのステップも重要ですがシステム開発を成功させるうえで、上流工程と呼ばれる要件定義と基本設計は、特に重要な位置付けです。

では、なぜ要件定義と基本設計は、そんなに重要なのでしょうか?要件定義と基本設計とは、どのような違いがあるのでしょうか?
本記事では、要件定義・基本設計・詳細設計について、その役割と違いを解説します。

1. 要件定義とは

要件定義とは、これから開発するシステムに関わる要望やニーズをヒアリングし、その要望などを実現するために、実装する機能や性能を決めて文書に落とし込んでいく工程です。
システム開発を任されたベンダーだけで行うのではなく、システム開発を依頼したユーザー企業も一緒に要件定義を行います。
要件を落とし込んだ要件定義書の作成は、ベンダーが行うことが多いですが、要件を洗い出すにはユーザー企業の意見が必須となります。
さらに、要件を明確化するために、ユーザー側は、情報システム関連部門だけでなく、実際にシステムを使う部門にも協力してもらうことで、よりニーズに寄り添ったシステムを開発することにつながります。
通常、要件定義を進めるためには、ユーザー企業とベンダーで定例会議を行います。
要件定義の工程で、いかに要件を洗い出し切れるかがポイントになるため、認識に齟齬がないように、週2回1時間、長いときには2時間など、しっかり行うことが多くあります。
また、顧客の要望を適切に汲み取るためには、一定以上の技術力やコミュニケーションスキル、タスク管理スキルなどといった、さまざまなスキルが求められます。
そのため、ベンダー社内で上流工程の経験が豊富なエンジニアがアサインされるケースが多いでしょう。

成果物

要件定義では、「要件定義書」というドキュメントを成果物として作成します。
要件定義書は、システム開発プロジェクト全体を通して、適宜参照されます。
よって、適切な要件定義・要件定義書の作成を行うことで、品質が高いシステムを開発することにつながり、後々の手戻りを防ぐことができます。

2. 基本設計とは

基本設計とは、要件定義工程で作成した要件定義書を基に、どういった方法で実現させるのか、どういった機能を作らなければならないのか等を決めていく工程を指します。
システム全体の構造や主要な機能の設計を行い、その後の工程にスムーズに移行するための指針を提供します。
基本設計で、システムの全体像や主要な機能を明確に定義することで、開発工程に進んだ際の無駄を減らし、効率的な開発を実現します。
また、設計の不備や見落としが後の工程で発覚することを防ぎ、プロジェクト全体のリスクを低減させるという役割も担っています。
基本設計を進めていく過程では、ある程度、画面や業務フローなどのイメージが明確化されたタイミングで、ベンダーとユーザー企業でレビューを行います。
随時レビューの機会を設けることで認識の齟齬を防ぎ、ユーザー企業が納得できてベンダーが対応できる範囲のシステムを開発につながります。

成果物

基本設計では、「基本設計書」というドキュメントを成果物として作成します。
成果物の作成を通じて、システム開発が進行するための基盤がしっかりと築かれます。それにより、後続の詳細設計や実装フェーズでのトラブルや手戻りを防ぐことができます。

3. 詳細設計とは

詳細設計とは、開発(製造工程)に入る前段階に行う工程で、これまで行ってきた要件定義や基本設計を基に、システムの具体的な構造などを設計します。
詳細設計は、実際に開発を担当するエンジニアやプログラマーに向けて行います。
コーディングしていく指針になるため、システムの品質に大いに影響を与えます。
そのため、詳細設計工程においても、これまで行ってきた要件定義や基本設計との矛盾はないかなど、問題点がなくなるまでレビューと修正を繰り返すことで、高品質なシステムを開発することが可能になります。

成果物

詳細設計では、システム開発の各コンポーネントや機能を具体的に設計するためのドキュメント類を作成します。
成果物は、システムの各部分を詳細に設計し、実装フェーズにおけるガイドラインとしての役割を果たします。
正確で詳細な設計文書は、後続フェーズでの不明点を減らし、開発の効率や質の向上につながります。

4. 各工程(要件定義・基本設計・詳細設計)の違い

ここまで解説した、要件定義・基本設計・詳細設計はどの工程も、システムを開発するうえで欠けてはならない重要な工程です。
では各工程は、一体何が違うのでしょうか?

要件定義と基本設計の違い

要件定義は「Why」や「What」に焦点を当てていて、基本設計は「How」に焦点を当てた工程であるといわれることが多いです。
具体的な考え方を見ていきましょう。

要件定義(Why・What)

要件定義では、ユーザーがなぜ問題であると感じているのか?何を課題であると考えているのか?また、課題だと考えていることを解決するためには、何が必要なのか?といったことを洗い出していきます。

基本設計(How)

基本設計では、要件定義で考えた「何が課題であるのか?何が必要なのか?」に対して、どうやったら解決できるのか?という方法を考えていきます。
基本設計工程から、システム全体の構成や機能などを設計していきます。

基本設計と詳細設計の違い

詳細設計は、基本設計にて検討した「どうやって?」を実現するための具体的な計画を進めていきます。
基本設計を具体化して詳細を定めて、開発担当者が円滑にコーディングなどの開発を実施できるように定義する必要があります。

5. まとめ

要件定義、基本設計、詳細設計について理解は深まりましたか?
各工程に違いはありますが、要件定義→基本設計→詳細設計と、全てのプロセスはつながっています。
どの工程であっても疎かになったり欠けたりしたら、ユーザーが求めるシステムを開発することは難しくなります。
要件定義でシステムニーズを洗い出し、基本設計でどうやって実現すればいいのかを検討し、詳細設計で具体的な方法を落とし込んでいくことで、ようやく開発まで辿りつけるのです。
システムエグゼでは、本記事で説明した要件定義、基本設計、詳細設計、さらに開発、運用保守に至るまでをトータルでご提案が可能です。
特定の製品やサービスにこだわることなく、実際にお客様の環境を確認させていただいたうえで、最適なご提案をいたします。
「社員が快適に仕事できるように新しいシステムが欲しいけど、コストが気になる」だったり、「来年度用の予算を取りたいから費用感を知りたい」など、お気軽にシステムエグゼにお問い合わせください!