プログラム設計書とは?各設計書との違いから作成時によくある課題と解決策まで徹底解説!

 2021.07.30  株式会社システムインテグレータ

システム開発は、工程ごとに設計書を作成し、それを基に開発を進めてシステムの完成を目指します。システム開発に用いられる設計書は複数ありますが、プログラミング工程で必要になるのが「プログラム設計書」です。

当記事では、プログラム設計書の概要や必要性、書き方、作成上の課題と解決策、ならびに他のドキュメントとの違いについて解説します。

システム開発において、プログラム設計書の必要性・作成意義・活用方法について知りたい方や、プログラム設計書の作成方法・作成上のポイントについて知りたい方は、ぜひ参考にしてみて下さい。

プログラム設計書とは? 

プログラム設計書とは、プログラムをどのように書くかを詳しく記述した設計書のことで、厳密には後述する詳細設計書の一部です。簡単に説明すると、「指示通りにコードを書いていけばプログラムが完成する」という設計書です。

書式は決められていませんが、一般的なプログラム設計書では書くべきコードを全て日本語で記した内容となります。プログラム設計書をどの程度まで詳しく記述するかは、企業の方針により異なります。

プログラム設計書はプログラマが参照しながら作業を行います。システム開発に使用する各種設計書の中でも、最も実装工程に近いものといえるでしょう。

プログラム設計書の必要性 

Close up of business man hand working on laptop computer with social network diagram on wooden desk as concept-1

プログラム設計書を作成しておくとはプログラミング作業において大きなメリットがあります。

ここでは、プログラム設計書が存在することで、実際に開発現場のプログラミング作業にどのようなメリットがあるのかをご紹介します。

スムーズなプログラミング作業の実現 

プログラム設計書には、プログラミングの道標となる情報が、詳細かつ明確に記載されています。

そのため、設計書の内容を参照することで、プログラマはスムーズなコーディング作業を行うことができるのです。

また、プログラム設計書を読み込むことで、以下のようなメリットを得ることができます。

・着手前に完成後のシステムをイメージできる

・作業手順や記述すべきコードをスムーズに理解できる

・調査や調整が減りプログラミングに集中できる

・情報共有・進捗状況の共有が容易となる

プログラミング現場の作業効率や生産性向上のためにも、プログラム設計書の必要性・重要性は高いといえるでしょう。

エラーの防止 

プログラム設計書が存在しない状態でプログラミングを行うと、プログラマ個人の裁量でコードを書く部分が発生し、設計者が意図しないコードや無駄なコードを書いてしまう可能性があります。システム開発の規模が大きく協業するプログラマの人数が多いほど、個人の裁量で作業を行う部分も増えるでしょう。

このような状況では、どうしてもエラーや修正が発生する頻度も高まり、生産性は大きく低下してしまいます。ミスや誤認を減らして不要なエラーや修正を低減するためにも、プログラム設計書は必須であるといえます。

保守管理の負担軽減 

システム開発は、一度完成させて終わりではなく、完成後も保守管理が必要となるケースがほとんどです。その際、プログラム設計書があれば、システムの仕様やソースコードを瞬時に理解できるため、障害調査・障害対応もスムーズに行うことができます。

開発に携わったメンバーと、保守管理に携わるメンバーは一致しないことも多く、たとえ同一メンバーであったとしても、過去のシステムの仕様やソースコードはまず覚えていないでしょう。そのため、プログラム設計書が無いと、軽微な修正や些細な障害でも膨大な時間と労力が必要となる場合があります。

保守管理の負担軽減ならびにスムーズな業務遂行のためにも、プログラム設計書は必須といえるのです。

プログラム設計書に書く内容 

startup business, software developer working on desktop  computer at modern office

プログラム設計書は、明確な書き方の決まりが存在しないため、どのような内容を書けばよいか分からない方もいるのではないでしょうか。一般的なプログラム設計書では、以下のような項目が書かれているため、まずはこちらをご確認下さい。

・関数名・変数名・クラス名

・上記の定義

・定数名・定数の意味・数値リスト

・プログラミングに使用するライブラリ

・データを取ってくる場所(データベース)

・実行モジュール

・必要なソースコード

他にもプログラミング作業に必要な項目があれば、プログラム設計書に記述を行います。

プログラム設計書は企業によってどの程度まで詳しく書くかが異なりますので、基本的には企業が定めたルールに従います。詳細なプログラム設計書を使用しない企業では、機能のみ記載してコーディング内容はプログラマに一任するというケースも見られます。

上記でご紹介した項目はあくまで目安であり、企業方針・プロジェクト・チーム編成などの状況によってプログラム設計書の内容は変化します。そのため、ある程度状況に合わせてフレキシブルに対応する姿勢も重要です。

新規CTA
新規CTA

他の設計書との違いとは? 

システム開発のプロジェクトでは、プログラミング作業に直結するプログラム設計書の他にも、数多くのドキュメントが活用されています。ここでは、システム開発で活用される各種ドキュメントの概要ならびにプログラム設計書との違いについてご紹介します。

システム開発のプロジェクトで、どのようなドキュメントが使用されているのかを把握しておきましょう。

提案書 

提案書は、クライアントにシステム導入の提案を行うための書類です。提案書には、システム開発プロジェクトの全容が分かるように、以下のような内容を記述します。

・クライアントの現状・課題

・システム導入の目的

・システム導入による効果・メリット

・システム導入後に期待できる成果・結果

・システム導入の背景や導入上の課題

・開発プロジェクトの概要・方法・方針

・開発プロジェクトのスケジュール

・業務の範囲・領域

・開発コスト

提案書に記述する項目に決まりはありませんが、クライアントの合意を得て受注を確定させるためには、システム導入を行う意義が伝わるように詳細かつ明確な提案書を作成する必要があります。

要件定義書 

要件定義書とは、クライアントがシステムに求める機能を文章でまとめたドキュメントです。提案書を基に、システムの知識を持つシステムエンジニアが作成を行います。

要件定義書は、作成するシステムについてクライアントの合意を得るためにも用いられるので、ITに明るくない方でも理解できるように分かりやすく書く事が重要です。クライアントに提出して合意を得たら、同ドキュメントを基にシステムを開発するための設計書を作成します。

要件定義及び要件定義書の作成は、後の工程全てにつながる第一歩であるため、システム開発の工程のなかでも最も重要度が高いといわれています。

基本設計書 

基本設計書とは、システムを外部から見た際の動作を記述したドキュメントのことです。外部設計書ともいわれており、ドキュメントの作成は要件定義書を基に行われます。

基本設計書では、システムのユーザーインターフェースである操作画面・操作方法・データ出力方法から、セキュリティ・システム運用規定、開発コスト・開発スケジュールなど主にユーザーを対象とした仕様を設計することが特徴です。

基本設計書はクライアントと情報共有する必要があるため、ユーザーならびにクライアントが理解できるように図表を用いて分かりやすく作成することがポイントとなります。

詳細設計書 

詳細設計書とは、基本設計で作成した仕様を具体的に実現する方法を記述したドキュメントのことです。システムの内部使用まで詳しく記述するため、内部設計書とも呼ばれています。

詳細設計書では、基本設計書よりも一歩踏み込んで、クライアントからは理解できないシステムの内部構造・内部機能・内部動作・データベースなどを決定するため、専門知識を持ったシステムエンジニアによって作成が行われます。詳細設計はこれまでの設計工程の内容を実際に実装できるレベルまで突き詰める工程であり、詳細設計書の一種であるプログラム設計書はその最後尾に位置するドキュメントとなります。

プログラム設計書と混同されやすいドキュメントにはコーディング規約がありますが、こちらはコーディングを行う際の書き方や書式を定めたルールのことです。プログラミングの方法を示したプログラム設計書とは異なるドキュメントである点に注意しましょう。

テスト仕様書 

テスト仕様書とは、開発したシステムが要件定義書・設計書の通りに機能するかどうかをテストする際の具体的な方法を記述したドキュメントです。テスト仕様書には、テストを行う機能・使用するテスト技法・テストの手順・テストのポイントなどが詳細に記述されています。

テスト工程では、テスト仕様書に記述された内容を基に各種テストを行うため、重要なポイントを漏れなくチェックできるように作成することが重要です。

プログラム設計書の書き方 

Modern notebook computer with future technology media symbols-4

ここでは、プログラム設計書の具体的な書き方について、「倉庫に引数分のアイテムを収容可能であるかという結果を返す関数」を例に挙げてご紹介します。

具体例を見ることで、「どのような書き方を行うのか」「どのような点に注意して書けばよいのか」をイメージすることができるため、ぜひ参考にしてみて下さい。

定数リスト 

最初のステップとして、「倉庫に収容可能なアイテムの上限数」を定数として、定数リストを作成してみます。

■ 定数リストの書き方の例

No

名称

クラス名

ファイル名

書式

説明

1

ITEM_LIMIT

30

int

item

testcase.Java static final int

ITEM_LIMIT

倉庫に収容可能なアイテムの上限

定数名・数値のリストと内容の意味を、開発メンバーの誰が見ても理解できるように分かりやすく整理して記述します。

関数定義 

続いて、上記で作成した定数リストに対する関数を定義してみます。

■ 関数定義の書き方の例

書式

boolean check_item_limit(int storage)

機能

収納したいアイテム数(storage)が収納上限数(ITEM_LIMIT)の範囲内に収まるかを真偽値で返す

引数int strageの意味

収納したいアイテム数

戻り値

true:収納可能

戻り値

false:収納上限数を超えるため収納不可

関数定義では、書式・機能・引数・戻り値などの項目を記載して、実行する機能とその内容を記述します。

説明欄に記述するテキストは、誤解を与えないように冗長な表現や分かり難い表現を避けて、簡潔かつ明確に表現することが重要となります。

従来のプログラム設計書作成に関する課題 

プログラム設計書はプログラミング作業に直結する重要なドキュメントですが、作成にあたって多くの設計現場で直面している課題があります。ここでは、従来型方法でプログラム設計書を作成する際に発生する課題とその解決策についてご紹介します。

プログラム設計書作成の課題を解決してスムーズに開発工程に引き渡すためにも、ぜひ参考にして下さい。

作成に時間・手間がかかる 

プログラム設計書は、プログラムの方法・手順をテキストで記述したドキュメントです。きめ細やかであればあるほど、プログラマは作業を行いやすくなりますが、あまりに細かい部分まで記述すると、設計書の作成に非常に多くの時間・手間が必要となります。

また、テキスト量も非常に膨大なものとなり、過剰に突き詰めるとプロジェクトの進行を阻害する場合もあるため注意が必要です。

そのため、プログラム設計書は「実務に足るにはどの程度まで詳しく書けばよいか」「どのような書式を用いるか」「どのような記述方法を用いるか」といったことをルール付けすることがポイントです。さらに、プログラム設計書の時間と手間を短縮できるように、作業効率化の方法を考えることも必要となります。

細かく突き詰めると際限がない作業となるため、品質と実務のバランスを取るためにも、一定のルールを定めることや作業効率化を図ることが非常に重要となります。

属人化が発生する 

プログラム設計書作成におけるもう一つの課題は、作成者によって品質が異なる属人化が発生することです。

属人化が発生すると、作成者しか分からない部分が出てきたり、認識の齟齬が起こったりして、現場の業務が滞る大きな原因となります。属人化の課題はプログラム設計書に依らず、システム開発に使用するあらゆるドキュメントでも発生します。

属人化を防ぐには上述でご紹介したようにルール付けを行うことも一つの方法ですが、手作業で行う従来型の設計方法の場合は、ルールの設定・浸透・定着も容易ではありません。

属人化を解消するおすすめの方法は、設計書作成専用のツールを導入することです。ツールを活用することで、設計書を標準化して品質を一定に保つことが可能となります。

設計書の作成・管理を効率化!「SI Object Browser Designer」 

弊社が開発した「SI Object Browser Designer」は、システム開発で使用する各種ドキュメントの作成・管理を効率化することができる設計用CADツールです。

「SI Object Browser Designer」の特徴について以下にご紹介します。

・高い汎用性、機能性を持ちあらゆるドキュメントの作成を合理化、効率化

・専用フォーム、テンプレートの活用により各種設計書を標準化できる

・入力支援機能、自動化機能により効率的でスピーディーな設計書作成を実現

・各種ドキュメントは企業方針に合わせてカスタマイズ可能

・データベースによるドキュメント一元管理で合理的な情報共有、変更管理を実現

「SI Object Browser Designer」を活用すれば、システム開発の設計工程を合理化・効率化して、大幅に時間・労力・コストを削減することができます。設計書の作成工数や属人化の課題も解決することが可能です。

現在設計書ならびに各種ドキュメントの作成・管理の課題を抱えている方は、ぜひ「SI Object Browser Designer」の導入を検討してみて下さい。

まとめ 

プログラム設計書は、実際のプログラミング作業の道標となる非常に重要なドキュメントです。プログラミング現場で必須のドキュメントであると同時に、設計書の内容次第でプログラミング作業の効率や品質にも大きく影響を与えます。

そのため、プログラム設計書を作成する際は、分かりやすく明確に記述することや、標準化を行いドキュメントの品質を一定に保つことが重要です。

弊社の「SI Object Browser Designer」を活用すれば、属人化の解消や工数削減が可能となり、設計書ならびに他のドキュメントの標準化・品質担保・業務効率化・管理効率化を実現できるため、設計業務の課題を抱えている方は是非ご検討下さい。

CTA

RECENT POST「コラム」の最新記事


コラム

設計書はどうつくる?作成とメンテナンスのポイント

コラム

会社で行うアプリケーション設計とは?

コラム

【内部設計について徹底解説!】設計要素やポイントは?

コラム

【詳細設計書のテンプレート】作成ポイントやおすすめツールをご紹介!

プログラム設計書とは?各設計書との違いから作成時によくある課題と解決策まで徹底解説!