エンジニアの知識

詳細設計書とは?SE&PGそれぞれに必要な設計書!

「SE(システム・エンジニア)」は、システム開発において、顧客と開発者を結びつける重要な存在です。もちろん、SEだけではシステムは作れませんし、「PG(プログラマー)」だけでも作れません。両者の連携があってこそ、システム開発は成り立ちます。

その際に必要となるのが、今回説明する「詳細設計書」です。そこで今回は、詳細設計書に関連する、以下の事項を解説します。

この記事でわかること

  • 「詳細設計書」とは何か?
  • 「詳細設計書」は誰がいつ作るのか?
  • 「詳細設計書」はどんな内容を書くのか?

詳細設計書とは? 誰がいつ作るの?

詳細設計書」とは、「ウォーターフォール型開発」(Waterfall Model)において、基本設計を終えた後におこなう設計工程です。ウォーターフォールにおいては前から3番目におこなう工程であり、本工程から下流工程となります。

ウォーターフォールやその他の設計書に関しては、以下に示す記事をご参照ください。

また詳細設計書は「内部設計書」と呼ばれることもあります。

詳細設計書は、SEが主導し作成しますが、場合によっては開発を担当するPG(プログラマー)を迎えて作成することもあります。

詳細設計書にはどんな内容を書くの?

詳細設計書は、主に2つの役割があります。

詳細設計書の役割

  • システムを実際に開発する上で、必要なルールを決定する
  • システム内の機能を実現するための方法を定義する

なお、詳細設計書も要件定義書や基本設計書などと同様に、統一された書式や形式はありません。しかしながら、多くの場合、詳細設計書には以下の内容を記載します。

代表的な詳細設計書の成果物に絞ってピックアップします。

詳細設計書の成果物

  • ファイル仕様書、ネーミング規約、コーディング規約
  • 処理機能(IPO)、レコード定義書、SQL定義体
  • クラス図、シーケンス図、アクティビティ図

規約類 - ファイル仕様書、ネーミング規約、コーディング規約

詳細設計書は、実際にシステムを開発するため、様々な規約(ルール)が必要です。

  • ファイル仕様書
    システムで使用するファイルやフォルダを定義するものです。ファイル名やアクセス権限、最大容量にバージョン管理なども決定します。サーバーサイド・プログラミングなどでは、「ビュー」(View、Web技術等を利用した画面を構築するファイル)や「テンプレート」(雛形)のファイル名も定義します。

  • ネーミング規約
    システムを開発する際に、業務やある機能に名前を割り当てる際の法則を決定づけます。プログラムのファイル名や変数名であったり、「DB」(Database、データベース)のテーブル名やカラム名、制約名などに適用します。

  • コーディング規約
    コーディング(ソースコードを書くこと)において使用する、体裁や方針のルールです。なお、最近では「フォーマッター」(自動書式ツール)を用いることが多く、どのフォーマッターを使うかや、その際の設定などを記載することも増えています。

データ - 処理機能(IPO)、SQL定義体

  • 処理機能(IPO)
    各機能や画面などで入出力されるデータ(Input Process Output:IPO)を定義したものです。入力=Input、処理=Process、出力=Outputの頭文字をとってIPOと呼ばれます。
    IPOは機能の「Input(入力パラメータ)」⇒「Process(処理)」⇒「Output(出力パラメータ)」の流れを文章で記載して作成します。図だけでは、細かい部分が伝わり辛く、最終的には文章をもって処理の流れを表現していきます。
  • SQL定義体
    処理機能(IPO)」で定義された項目を取得/更新するためのSQLを定義します。場合によってはストアドプロシージャ(SQLの内容がサーバ側に格納されているもの)を呼び出すことが前提のこともあります。

OOP - クラス図、シーケンス図、アクティビティ図

最近では「オブジェクト指向プログラミング」(OOP)の普及により、OOPと親和性の高いUMLのドキュメントを作成することが増えています。

  • クラス図
    OOPの基本となるクラスの構成を図示したものです。必要となるクラスがわかるため、システム全体を見通すことが容易になりますし、スケジュール管理にも役立ちます。

    シーケンス図
    「シーケンス図」や「アクティビティ図」は。各エンティティ(人間や開発するクラスなど)がやり取りをする内容やその内部の処理を定義します。これによりどのクラスがどのエンティティと課関係があるか把握できますし、処理の内容が定義できます。

よく読まれている記事

1

Shellとは? Shellとは、人間の理解できる言葉を機会へ伝えるプログラムです。 Linux環境でコマンドプロンプト画面を開いているとき、常にShellは起動している状態です。 「Shell」とは ...

2

Linuxは主にサーバー用として利用されるOSです。大規模な基幹システムの開発者、ロボットや家電開発等の組み込み系エンジニア、ネットワーク機器やデータベースに携わるインフラエンジニアは触れることが多い ...

3

プログラミング言語を習得しようと思った時、必ずと言っていいほど候補として挙げられるのが「Java」というプログラミング言語です。 「Java」は、現在日本で最も使われている言語であり、非常に人気のある ...

4

この記事は、Linuxについて勉強している初心者の方向けに「Shellスクリプト」について解説します。最後まで読んで頂けましたら、Shellスクリプトはどのような役割を担っているのか?を理解出来るよう ...

-エンジニアの知識