IEEE830-1998におけるソフトウェア仕様書(内部)の書き方 †
IEEE830で示されている内部仕様書の書き方
1仕様書の概要(何を作るのか) †
1.1目的 †
- 仕様書の目的を書く
- 仕様書を読む開発者を指定する
1.2範囲 †
- 作るソフトウェアに名前をつける
- ソフトウェアは何であるか説明する
- ソフトウェアを使用しての利点、目的、目標を記述する
- 上位レベルの仕様書の記述と矛盾がないようにする(ソフトウェアが大規模、改良などの場合)
1.3定義、略語、短縮形 †
- 仕様書を解釈するのに必要な用語、略語、短縮形の定義を書く。複数の資料、他のドキュメントを参照する形で提供しても良い。
1.4参照 †
- 仕様書のどこで他の資料を参照しているか完全な一覧を書く。
- それぞれのドキュメントの題名、レポート番号、日付、出版組織を記述する。
- 参照ドキュメントの入手元を指定する。
1.5概要 †
- 仕様書の残りの部分に書かれていることを記述、仕様書の構成を説明する。
2全容(なぜ作るのか) †
- 開発されるソフトウェアと開発されることによって影響のある要因を記述する。細かい要件については述べず、ソフトウェアが開発される要因を理解できるようにする。
2.1開発されるソフトウェアの見通し †
開発されるソフトウェアと他のソフトウェアとの関連性が在るか無いか記述する。仕様書で定義するソフトウェアが大きなシステムの一部である場合には、ここでソフトウェアとシステムの接点を特定する。その場合には図などを添えると良い。
2.2システムインタフェース †
ソフトウェアが動作する主な機能を大まかに記述する。
- 誰でも理解しやすいような形で記述すること。
- それぞれの機能を示すため図や文を利用する。
2.3ユーザインタフェース †
開発するソフトウェアを利用するユーザの一般的な教育レベル、経験、技術的な専門性などを記述する。
2.4制約 †
開発者の選択肢を限定する項目について記述する
- ハードウェア
- プログラミング言語
- セキュリティ
- 他のアプリケーションとのインタフェース
2.5仮定と依存 †
OSによる制限、ハードウェアとソフトウェアに対する制限など仕様書全体に影響を及ぼすであろう要因を列挙する。
2.6要件の割振り †
ソフトウェアがバージョンアップまで搭載されないであろう機能を特定する。
3個々の要件 †
この節では、ここまでソフトウェアが作られると試験するのに十分だというボーダーラインを設定する。最低、『入力→出力』を行うまでの全ての機能を記述する
3.1外部インタフェース要件 †
ソフトウェアへの入力と出力を詳細に記述する。2節と同じ情報はここで繰り返さない
- 項目名
- 目的の記述
- 入力元、あるいは出力先
- 正当な範囲、正確さ、寛容さ
- 尺度の単位
- タイミング
- 他の入出力との関連
- 画面の形式/構成
- ウィンドウの形式/構成
- データ形式
- コマンド形式
- 終了メッセージ
3.2機能要件 †
ソフトウェアが入力と処理、出力の処理と生成を行うときに発生する全ての基本的な行動を定義する。「このモジュールは入力のチェックをする」など文の一覧になる。
3.3性能要件 †
ソフトウェアとソフトウェアにおける相互作用の要件を指定する。
- 静的な数値上の要件
- サポート端末の数
- 同時にサポートするユーザ数
- 取り扱う情報の量と種類
- 動的な数値上の要件
- 一定時間内のタスク数、処理すべきデータの量、正常時/ピークの時負荷
3.4倫理データベース要件 †
- データベースの論理的な要件
- データのタイプ(int, char, bool, floatなど)
- 使用頻度
- データの保持要件
3.5設計上の制約 †
ハードウェアの限界からもたらされる設計上の制約について記述する。
3.6ソフトウェアの属性 †
仕様書が達成されたか客観的に検証可能なように指定することが重要。
- 属性要件の例
- 信頼性
- 可能性
- 機密性
- 保守容易性
- 移植可能性
3.7その他の要件 †
その他つけてもいいときと悪いときがあるもの入出力の例、費用分析の結果、ユーザ調査の結果ソフトウェアが解決しようとする問題の記述仕様書読者の助けとなる補助情報機密性、輸出、その他の要件を満たすためのコードやメディアの特別なパッケージングの指示付録をつける場合には、仕様書は付録を要件の一部と認めるかどうかをはっきりと述べる必要がある
参考文献 メタボリックス ソフトウェア内部仕様書より http://www.metabolics.co.jp/
ソフトウェア技術習得のレベル分類 †
- 段階1 無知の段階
- その技術について聞いたことも無い
- 段階2 気がかりな段階
- その技術について文献を読んだことがある
- 段階3 見習いの段階
- その技術について三日間のセミナーに通った
- 段階4 実践しようとする段階
- その技術を実際のプロジェクトに適用しようとしている
- 段階5 職人の段階
- その技術を仕事の上で自然に自動的に使っている
- 段階6 名人の段階
- その技術を完全に消化していて、いつルールを破るべきかを知っている
- 段階7 エキスパート
- 専門書を著作し、講演し、その技術を拡張する方法を研究する
参考文献 ページージョーンズ "The Seven Stages in Software Engineering" American Programmer(July-Aug.), 1990
发表评论