ここから本文です

プログラム仕様書というものはどういう事を書けばいいのですか?詳しい書き方か参...

naktti1287さん

2011/2/210:32:09

プログラム仕様書というものはどういう事を書けばいいのですか?詳しい書き方か参考サイトを教えてください。
それから基本設計書と外部設計書は同じものなのですか?

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
85,481
回答数:
2
お礼:
250枚

違反報告

ベストアンサーに選ばれた回答

ベストアンサー以外の回答

1〜1件/1件中

khurataさん

2011/2/806:42:01

ある書類を、あなたが誰かから渡されて、「これを見て、この内容を満たすプログラムを作ってください」と要請されたとしましょう。
その場合、あなたが、その書類を見て、プログラムを作る事が出来たら、それはまさしくプログラムの仕様書なのです。
たとえば、大学などでプログラム作成の課題が出題される事がありますけれども、この出題は、まさにプログラム仕様書であると言えます。

つまり、プログラム仕様書とは、「それをプログラマに渡すと、プログラムが作成出来るもの」だ、という事です。
プログラムの目的、入力の仕様、出力の仕様、要求される性能、遵守すべき規定、などが書かれます。

たとえば、「1~100までの整数における素数をコンソールに表示せよ」というのは、これだけでプログラム仕様書に体裁を為しています。
この仕様の目的は「素数を得ること」、入力は「1~100までの整数」、出力は「コンソール」、性能は不問です。

複雑なプログラムになればなるほど、仕様書も複雑になります。
たとえば Windows のアクセサリの1つ、「電卓」の仕様書は、けっこうな字数になるでしょう。

なお、、実際の作成過程で、プログラマ側から、「ここが未確定だけどどうするのか」「ここはこういう選択があるけどどれが良いか」などの判断要求が発生する事は多々あります。仕様書を作る側は、プログラムの細かいところまでは関知しませんから、これは致し方ないところです。まずは仕様書を作って、プログラマに渡してみるしかありません。仕様書自体のバージョンアップを行う事により、仕様と実装の間の意識を合致させていくわけです。

設計書の書き方に、特に「こうしなければならない」という決まりは有りません。プログラマが見てあまり文句を言わず、出来上がるプログラムが設計書作成者の意図通りであるなら、それは「良い設計書だった」と言えましょう。

基本設計書と外部設計書は、異なるものだと思います。この2語をどう定義するかは、場合により異なると思いますが、おおむね、次のようなものでしょう。
・基本設計書 システムの概観が規定された設計書。作成されるシステムの基本性質が書かれる。
・外部設計書 システム/プログラムを、その外部から見た場合の挙動が規定された設計書。

たとえば、自販機の基本設計書は、「コインを受け容れ、その妥当性と金額により、販売品目を外部ユーザに選択させる」「品目の仕様は最大 500ml の缶」「冷温いずれも実施できる」「電源は 200V 交流」、などになります。外部設計書は、利用者視点/設置者視点/整備者視点により異なるのですが、たとえば利用者視点であれば、「縦横高さは何cm」「品目は最大10種」などの規定が必要でしょう。利用者にとっては、「200V 交流で動いている」事など、どうでも良い事ですから、これは書く必要がありません。
規定の項目によっては、両者がカブる事もあります。たとえば、「使用できる金種はこれこれ」「冷温の機能有り」というのは、基本設計にも外部設計にも表れるでしょう。

なお、基本設計書の内容は、外部設計書の諸条件を満たす必要があります。当然の事ですが、「利用者から見た自販機」は、「自販機の基本設計」を越える事が出来ません。利用者が「たまには当たりが出て、もう1本もらいたい」と思っていても、「当たり機能」が基本設計書に書かれていなければ、それはかなわない話です。
外部設計書に「当たり機能有り」と書かれていても、基本設計書に書かれていない場合、基本設計に「当たり機能」を書き加えるか、外部設計から「当たり機能」を削除するか、いずれかを判断する事になります。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。