システム開発において、設計工程の成果物である「詳細設計書」は、実装に携わるエンジニア・プログラマを主な対象とした、専門的な内容を記述したドキュメントです。
当記事では、詳細設計書の概要・必要性から、詳細設計書作成に便利な各種テンプレート、作成上のポイント、作成上の課題と解決法までを幅広く解説します。
詳細設計書の作成・管理の工数削減や業務効率化に役立つおすすめのツールも紹介しているため、ぜひ参考にして下さい。
詳細設計書とは?
一般的なシステム開発の工程は、「要件定義>設計>開発>テスト>納品」の順に進められます。
この中の設計工程は、基本設計と詳細設計という2つのフェーズに分けられます。詳細設計書とは、基本設計で決められたシステムの動作を、どのように実現するかを示したドキュメントです。
基本設計書は、外から見たシステムの動きを記すのに対し、詳細設計書はシステムの内部まで詳細に示すため、内部設計書とも呼ばれています。
また、基本設計書は専門知識を持たないクライアントやユーザーが見ても分かる内容でありますが、詳細設計書は実装に携わるエンジニア・プログラマが参照する専門性の高いドキュメントであるという特徴を持っています。
詳細設計書の必要性
近年、アジャイル開発といったスピードを優先した開発手法も多く用いられるようになり、詳細設計書の必要性について疑問視される意見もあります。
しかし、詳細設計書は、システムに実装する機能の内部構造を整理し、見える化します。そのため、開発工程に進む前に詳細設計書を作成することは、不明瞭な部分を無くし、スムーズな実装へとつなげることになるため、品質確保・生産性確保から保守性や管理性の向上など数多くのメリットをもたらします。
短期リリース・スピード重視といった特殊な事情が無い場合は、情報の整理を兼ねて詳細設計書を作成した方がいいと言えるでしょう。
また、堅牢なシステムを構築する場合や、品質を重視した開発を行う場合においては、詳細設計書の作成は必要不可欠であるといえます。
詳細設計書と基本設計書の違い
基本設計書と詳細設計書は、その名称から前者は「大まかな設計」で後者は「細かい設計」と解釈している方もいますが、誤った解釈です。
基本設計書と詳細設計書の違いは以下の通りです。
・基本設計書 要件定義で決定した内容を基に、システムを外から見た動きを設計する |
・詳細設計書 基本設計で決定した内容を、システム内部でどのように実現するかを設計する (エンジニア向けに詳細化する) |
基本設計書と詳細設計書は、上記のように明確に異なる役割があるからこそ区別されており、それぞれに作成する目的が存在します。
上記設計書に対して「大まか」「詳しい」といった曖昧な解釈を持っていると、設計書の趣旨を取り違える可能性があるため、基本設計書と詳細設計書の違いについてはきちんと理解しておきましょう。
詳細設計書の成果物テンプレート
詳細設計書のテンプレートを活用することで、書式を統一して標準化を図ったり、作業の工程を省いて効率化を図ったりすることができるため、生産性向上が期待できます。
ここでは、詳細設計の成果物である詳細設計書の各種テンプレートをご紹介します。詳細設計書を作成する機会がある方は、ぜひ参考にしてみて下さい。
クラス図のテンプレート
クラス図は、システムを構成するクラスを図示したドキュメントのことで、近年主流となっているオブジェクト指向プログラミングの基本となる図です。
クラス図の基本的な書き方は、他の資料も用いて必要なクラスの洗い出しを行い、クラス名・属性・操作をワンセットで記述したボックスを配置して、矢印でクラスの関係性を表現します。
システムの全体像を整理して把握できるため、プログラミング作業を行う際の役割分担やスケジュール管理に役立てることができます。
クラス図のサンプル
アクティビティ図のテンプレート
アクティビティ図とは、ユーザーの操作とシステム処理の流れを図示したドキュメントです。同図の一般的な書き方は、ユーザーの操作やシステム処理を記述したテキストを枠で囲み、フローチャートのように矢印で繋げて処理の流れを表現します。
アクティビティ図を作成することで、システム処理の流れを視覚的に理解できるだけでなく操作に対する処理を実装する場所も把握できるため、実装箇所が複数に分かれるシステム開発では重宝します。
アクティビティ図のサンプル
シーケンス図のテンプレート
シーケンス図は、クラスやオブジェクト間で行われる処理のやり取りや処理構造を時間軸で図示したドキュメントです。アクティビティ図と類似していますが、シーケンス図はシステム内部の処理をより詳しく記述した図となります。
シーケンス図の基本的な書き方は、横軸にオブジェクトを、縦軸に時間軸が書かれた図に、オブジェクト間のやり取りが視覚的に理解できるように矢印で表現します。作成にあたっては基本設計書とクラス図が必要です。
シーケンス図は、システムの処理構造を明確に把握して定義するために用いられるため、非常に重要性の高いドキュメントです。
シーケンス図のサンプル
モジュール構造図のテンプレート
モジュール構造図とは、システム全体のモジュールの構造や関係性を図示したドキュメントです。モジュールを活用したシステム開発を行う際に使用されます。
モジュール構造図の書き方は、基本設計書を基に各機能を実現するための処理を、上位の処理から下位の処理に向けて記述していく流れとなります。
モジュールを用いたシステム開発では、モジュールの構造や関係性を明確化することや、共通部分を見いだすことが重要です。
そのため、大規模かつ複雑なプロジェクトであるほど、モジュール構造図を作成する必要性も高くなります。
モジュール構造図のサンプル
IPOのテンプレート
IPOとは、システムの各種機能や操作画面に入出力されるデータを分かりやすく定義したドキュメントです。「Input(入力)」「Process(処理)」「Output(出力)」の項目から構成されるため、各処理の頭文字を取ってIPOと呼ばれています。
IPOの書き方は、「Input(入力)」>「Process(処理)」>「Output(出力)」の順に、処理の流れが視覚的に分かるように端的なテキストで記述します。
しかし、IPOは図表だけでは理解が難しい性質を持つため、補足として細かい処理の流れを文章でも説明することが特徴です。
詳細設計書の作成ポイント
詳細設計書は、実際にプログラム設計や実装の工程に使用される専門的な内容を記述した設計書であるため、実用性・有用性を重視して作成する必要があります。
ここでは、詳細設計書を作成する際に意識すべきポイントについてご紹介します。どのようなポイントを意識すれば、いい設計書を作成できるかを確認しておきましょう。
曖昧な表現は避ける
詳細設計書は複数人の開発メンバーと複雑な情報を共有するドキュメントであるため、曖昧な表現や難解な表現を避けて、簡潔・明確に記述することが重要です。
文章表現以外にも、視認性や読解性を高めるために以下のような点を意識するといいでしょう。
|
図や表を活用する
詳細設計書はシステムの内部構成や処理の流れなど、テキストのみでは説明が難しい内容が多いことが特徴です。そのため、適宜図や表を活用して、誰が見ても分かりやすいドキュメントを作成することが重要なポイントです。
図や表を上手に活用すれば、複雑な内容や分かりにくい内容も一目で理解できることも多くあります。詳細設計書を作成する際には、上質なサンプルや事例を参考にして、図や表の活用方法を事前に検討しておくといいでしょう。
変更履歴の記載方法を統一する
変更履歴は、詳細設計書の記述内容のなかでも複雑で分かりにくくなりやすい部分です。そのため、変更履歴を記載する際には、記載方法を統一することや、色分けを行って読解性を高める工夫を行なうことがポイントとなります。
変更履歴はメンバー間での齟齬が起こりやすいため、スムーズな情報共有を行うためにも記載方法の統一やルール付けは必ず実施しましょう。
詳細設計書の作成・管理における課題
従来は詳細設計書の作成にはWord・Excelなどの汎用ツールを用いることが一般的でした。現在でも汎用ツールで詳細設計書を作成している現場は多くあります。
しかし、汎用ツールを用いた詳細設計書の作成では、作成時にも管理時にもいくつか懸念される点があります。当記事でご紹介したテンプレートの活用などである程度回避可能ですが、根本的な解決には至らないため注意が必要です。
ここでは、汎用ツールで詳細設計書を作成する際に発生する課題について解説します。
作成工数がかかる
汎用ツールで詳細設計書を作成する際の典型的なデメリットが、作成工数がかかるという点です。
汎用ツールは操作が簡単で手軽にドキュメントを作成できるイメージがありますが、実際にはすべて手作業でレイアウト・図表の挿入・テキストの記入を行わなければならないため、手間と時間が多くかかります。
近年では、設計書作成支援機能や自動化機能が搭載された設計用CADツールもリリースされており、製品の機能・性能による差はありますが、汎用ツールよりは圧倒的に作成工数を短縮することが可能です。
汎用ツールしか使用したことが無い方は、作成工数が多くかかっていることに違和感を感じていない場合もあるため、一度立ち止まって他の作成方法にも目を向けて見ることが重要です。
変更発生時の工数負担
詳細設計書は、開発現場で参照したメンバーからのフィードバックにより、修正や変更が次々と発生することが多いドキュメントです。その際、汎用ツールで作成した詳細設計書をメンバーに配布していると、修正・変更を加えたドキュメントを再度共有する必要があるため、多くの手間と時間がかかります。
また、注意して修正・変更と再配布を行ったつもりでも、ミスや抜け漏れが発生していると、変更箇所や影響範囲を手作業で調査しなければならない懸念もあります。
このような課題を解決するには、専用ツールを導入して設計情報をデータベースで一元管理することがおすすめです。メンバー全員が常に修正・変更を加えた最新のドキュメントを参照できるため、修正・変更発生時にもスムーズに対応することができます。
属人化が発生する
システム開発に使用する各種ドキュメントは共通の作成ルールが存在しないため、作成者により品質や精度が異なる属人化と呼ばれる現象が発生するケースが多く見られます。
属人化が発生すると、作成者でしか分からない内容が出てきたり、作成者が変わるたびに設計書の品質や精度が異なったりといった問題が起こるため、開発現場の混乱や負担増の原因となるのです。
特に、詳細設計書は実装工程で直に参照されるドキュメントであるため、属人化による影響も大きくなりやすい点に注意が必要だといえます。
属人化の課題を解消するためには、設計専用ツールの活用により、フォーマットや作成フォームを統一してドキュメントを標準化する方法がおすすめです。
詳細設計書の作成・管理の課題を解決!「SI Object Browser Designer」
前章で挙げた詳細設計書の作成・管理に関する課題をまとめて解決したい場合は、弊社の設計用CADツール「SI Object Browser Designer」を導入することがおすすめです。
「SI Object Browser Designer」は、以下のような特徴・機能により、詳細設計書の課題解決に貢献することができます。
|
詳細設計書の課題解決はもちろん、システム開発に使用するドキュメント全般に対して活用することができます。
設計業務・設計書作成業務ならびに設計書管理業務を効率化・合理化したい方、作業工数を削減したい方、不要なトラブルを低減したい方は、ぜひ弊社の「SI Object Browser Designer」をご検討下さい。
まとめ
詳細設計フェーズの成果物である詳細設計書は、システム開発に携わるエンジニアが参照する専門的なドキュメントです。汎用ツールで設計書作成を行う場合においても、当記事でご紹介したテンプレートを活用することで効率化・工数削減が期待できますが、汎用ツール特有の課題の根本的な解決には至りません。
詳細設計書を含むシステム開発で使用する各種ドキュメントの作成・管理を効率化・合理化したい場合は、設計専用ツールの活用がおすすめです。弊社の「SI Object Browser Designer」であれば、詳細設計書ならびに各種ドキュメントの作成・管理に関する多くの課題を解決できるため、ぜひご検討下さい。
- カテゴリ: