基本設計と詳細設計の違いは?
公開日:2023.11.16 最終更新日:2023.11.16
「基本設計と詳細設計の違いが知りたい」
「基本設計ってどんなことが記載されているの?」
「詳細設計の成果物って何?」
このような疑問を抱えている人は多いのではないでしょうか。
基本設計と詳細設計はシステム開発に欠かせない設計書です。
それぞれの役割は単語の雰囲気から想像できますが、明確な役割まで理解している人は少ないでしょう。
ここからは、それぞれの違いについて紹介します。
よくある設計の課題についても紹介しているので、ぜひ最後までご覧ください。
システム設計とは
システム設計とは、システムを開発する前に必要な機能や仕様を決めた設計書のことです。
システム設計は大まかに2つの設計書から成り立っており、ここからはそれぞれの違いについて紹介します。
- 基本設計
- 詳細設計
基本的な知識のため、理解しておきましょう。
基本設計
基本設計とは、依頼者に向けて作成される設計書です。
そのため「外部設計」とよばれることもあります。
この基本設計は、最初のヒアリング時に作成した案件定義を元に作成し、開発者と依頼者との認識に差異がないかの最終確認の役割も含まれています。
システムに搭載する機能やシステムの構成図の記載もありますが、素人でもわかるような理解しやすい言葉で記載されているため、身構える必要はありません。
詳細設計
詳細設計とは、システムエンジニアやプログラマーが開発しやすいように作られた設計書です。
依頼者には提出しない設計書のため「内部設計」と呼ばれることもあります。
基本設計の内容を元に作成するため、基本設計の詳細バージョンと認識されがちですが、用途が異なるため注意しましょう。
作成内容は開発言語の指定や、データ処理の流れなど非常に細かい部分まで記載されている設計書です。
依頼者の目に触れることはないため、意識する必要はないでしょう。
基本設計の作成項目
ここからは、基本設計の作成項目について紹介します。
- 機能一覧表
- システム構成図
- 画面設計図
- 帳票設計図
- バッチ設計図
それぞれ見ていきましょう。
機能一覧表
機能一覧には、システム開発に必要な機能が記されています。
この一覧は案件定義書の内容をもとに作成するため、機能を追加することも可能です。
機能一覧に記載された内容を元に全体的なボリュームや開発期間、作業の振り分け等が決まります。
そのため、追加で依頼したい機能がある場合は早めに依頼しましょう。
一覧には、各機能の簡単な装備や仕様のほか、機能の重要度も記載されています。
システム構成図
システム構成図には、システム全体の構成が記されています。
図で記されているため、視覚で理解しやすいでしょう。
内容は、サーバーやネットワークシステムをどのように組み立てていくかがまとめられています。
一口にサーバーといっても種類は様々あり、多種多様です。
基本設計書は依頼者に提示する資料のため、サーバーに詳しくなくても理解できるように、難しい専門用語は使わないように配慮されています。
しかし、クラウドやIPアドレスといった基本的な知識を備えておくと安心でしょう。
画面設計図
画面設計とは、アプリやシステムを操作する際の、各ページを図に表したものです。
もし、勤怠システムの開発を依頼した場合、ホーム画面やユーザーが勤怠システムを入力する画面、入力が失敗したときのエラー画面など細かく提示してもらえます。
主に画面のデザインやボタンの大きさ、配置を確認するため、見やすさや使い勝手の良さが重要なポイントです。
ユーザーが直接触る部分のため、ユーザーになった気持ちで確認してみましょう。
帳票設計図
帳票設計図とは、システムが出力する帳票についてまとめたものです。
具体的には、その出力した帳票の出力形式や項目、レイアウトが記載されています。
たとえば、勤怠システムであれば、社員の有休を把握するためにシステムから有給取得情報を出力する可能性があります。
出力するときの形式はCSVかPDFか、帳票に氏名と有給取得日以外に記載することはあるかなど細かい部分まで記されている場合がほとんどです。
今後、その帳票をどのような場面で使いたいか、ある程度把握しておくと図の見方が変わるでしょう。
バッチ設計図
バッチ設計図には、バッチフローや処理の定義などが記されています。
バッチとは、決められた時間に自動で決められて動作を行うプログラムのことです。
たとえば、毎日夜間0時に社員の勤怠を集計するといったプログラムを指します。
この項目には、バッチをかける時間帯や目的、バッチの種類が記されていることがほとんどで、細かい処理フローまで記載はされていません。
詳細設計の成果物
ここからは、詳細設計の成果物について紹介します。
- クラス図
- アクティビティ図
- シーケンス図
これらの成果物はそれぞれ解説します。
クラス図
クラス図とは、システム同士の関係性を示した図です。
ドラマや漫画に出てくる登場人物の関係を表す相関図を思い浮かべるとイメージしやすいでしょう。
具体的にシステム同士の関連性やコンポジション、集約を記号で示します。
視覚で理解できるように、簡単なテキストと記号によって記されているため、技術者以外も理解できるところが特徴です。
そのため、プロジェクトマネージャーに専門的な知識がなくても、認識を合わせることができます。
また、クラス図はアクティビティ図やシーケンス図を書く元になる設計書です。
アクティビティ図
アクティビティ図は、システムが行う一連の処理手順を図面に書き起こしたものです。
アクティビティ図を作成することで一連の手順が把握できるため、無駄な手順に気付けるというメリットがあります。
具体的には、手続きが行われる条件や稼働してから終了するまでの手順がフローチャートのように記載されています。
シーケンス図
シーケンス図は、オブジェクト間にどのような作用が働くかを時系列でまとめたものです。
スケジュール帳のように時系列で並んでいるため、視覚的にシステム処理の把握がしやすい特徴があります。
そのため、大きい案件や複雑なプロジェクトで用いられる手法です。
チーム内で認識を合わせやすく、意思の疎通が取りやすいため、プロジェクトの規模が大きくなっても問題ないでしょう。
また、システムの不具合が見つかったときも、この図を用いることで修正箇所を把握しやすいメリットがあります。
しかし、作成コストや負担が大きいところがデメリットです。
よくある設計の課題
最後に、設計に関するよくある課題について紹介します。
- 設計の本質を理解していない
- 設計方法が統一されていない
- 標準化の仕組みが整っていない
それぞれ見ていきましょう。
課題①設計の本質を理解していない
設計の本質とは、依頼者が抱えている問題を解決することです。
そのためには、必要な機能を導入し、依頼者の意図を汲み取り、高品質のシステムを納品する必要があります。
依頼者の意図を汲み取るためには、依頼者への密度の濃いヒアリングが必要です。
そのため、案件定義作成時のヒアリングでシステムの良し悪しが決まると考えていいでしょう。
この本質が理解できていないと、満足度の高いシステムを開発することはできません。
課題②設計方法が統一されていない
設計方法が統一されていないと、属人化のリスクがあります。
属人化とは、特定のシステムエンジニアしかその業務を行えない状態のことです。
設計はチームで行うため、属人化が起こってしまうと一人にかかる負担が大きくなります。
さらに、そのシステムエンジニアがチームから外れたとき、その人が行っていた業務を引き継げなくなり、最悪の場合システムの再構築が必要になります。
そのため、プログラミング言語は個人的に開発した言語ではなく、世界標準の言語を利用しましょう。
課題③標準化の仕組みが整っていない
標準化の仕組みが整っていないと属人化を防げません。
属人化が横行してしまうと、生産性が大幅に下がり、追加費用がかかってしまう可能性があるからです。
仕組みを整えるためには組織間で一定のルールを定めたり、共通のツールを導入したりといった方法が存在します。
当たり前かと思うかもしれませんが、管理方法やフォーマットが統一されていない企業も珍しくありません。
そのため、まずは特定のフォーマット作成から着手するといいでしょう。
基本設計と詳細設計の違いは提示先の違い
基本設計と詳細設計の違いについて紹介しました。
基本設計は依頼者向け、詳細設計はシステムエンジニア向けに提示する資料です。
提示先が異なるため、記載内容も異なります。
それぞれの特徴を理解するだけで、開発会社とのやり取りがスムーズになるでしょう。
また、設計には様々な課題が残っています。
満足のいくシステムを開発してもらうためには、設計の本質を理解している開発会社に依頼するようにしましょう。
システム開発に悩んだ際にはEMEAO!へのご相談を一度ご検討ください。
この記事を書いた人
編集部員 濵岸
編集部員の濵岸と申します。コンテンツ作成と取材を主に担当しております。身長が低いため学生時代は「お豆」と呼ばれていました!豆らしく、皆様の役に立つ記事を「マメに豆知識を!」の意識で作成します!どうぞよろしくお願いいたします!