詳細設計書は実装と結合テストのインプットとなる

詳細設計書は実装と結合テストのインプットとなる

プログラマ向けドキュメントを作成する工程は、詳細設計という名前で定義されます。この工程で作成される開発ドキュメントは、一般的に「詳 細設計書」と呼ばれます。詳細設計書は、プログラムをどのように作ればよいかを記述するとともに、結合テストのインプットとなるように作成する必要があり ます。

規模の大きな開発の場合、詳細設計から多くのプログラマが追加され、いくつかのチームに分かれて作業します。基本設計で分割された単位が各 チームに割り当てられ、次工程の実装も同じチームでそのまま作業することになります。各チームは、リーダ的存在となるプログラマ(以下、チーフプログラ マ)のもと、担当部分をプログラムとして完成させることを目指して作業します。主に詳細設計書を作成するのはチーフプログラマの役割です。ここでは、チー フプログラマが詳細設計書を作成する上で重要となるポイントを3つに絞って説明します。

Image

詳細設計書の3つのポイント

1つ目は「実装のルールを決め、それを説明する」ことです。チーフアーキテクトの役割を担う人がいれば、基本設計の段階で検討しておくこと が望ましいのですが、そのような人がいない場合でも、チーフプログラマ同士が連携して作成しなければなりません。チームが分割されていても、チーフプログ ラマ同士の連携はとても大切です。特にウォーターフォールモデルの場合はリファクタリングをする機会が少ないため、後で「こうしたい」と思っても、改善は 容易ではありません。後で自分たちが苦労しないためにも重要な作業ですので、しっかりと行い、詳細設計書に記述する必要があります(図2)。

2つ目は「実装視点で分割を行い、そのインターフェースを定義する」ことです。基本設計での分割は、外部に対する振る舞いの視点からのもの ですが、プログラマに作業を割り当てるためには、さらに実装の視点から分割する必要があります。基本設計のときと同様に「結合度を低く、凝集度は高く」な るように分割することができれば、プログラマ間の連携は最低限で済み、効率よくプログラミングが進みます。

また、結合したときに問題が起こらないようにそれぞれのインターフェースをしっかり決める必要があります。中身のコードが少々きたなくて も、インターフェースの仕様を満たしていれば結合はできます。中身はもちろん大切なのですが、優先度はインターフェースの方が上です。オブジェクト指向言 語では、言語仕様としてインターフェースが用意されています。先にインターフェースだけを実装してしまうことも効果的で、詳細設計書の一部としてもよいで しょう。

3つ目は「データベースに格納するデータの仕様を決める」ことです。データベースの論理設計に基づき、データをデータベースにどのように格 納すればよいかを考えます。論理設計がよくできていると、それをそのままテーブルにすればよいと思ってしまいがちですが、問題が起こることがあります。

データベースを使うソフトウェアのパフォーマンスが悪い場合、そのほとんどはデータベースの設計に原因があります。例えばインデックスの設 定を間違っただけで、パフォーマンスは数十倍も異なります。この段階から性能のことを考え、テーブルを設計しておく必要があるでしょう。

また、データベースの性能は本体だけの問題ではありません。プログラムから発行するSQLが不適切な場合もパフォーマンスが大きく低下しま す。この点に関しても、早い段階からルールを決めておく必要があります。詳細設計書はプログラムのことばかり書かれる傾向がありますが、データベースに関 しても記述しなければなりません。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30