第1章 はじめに 1 |
1.1 ソフトウェア要求とは 1 |
1.2 要求工学 2 |
1.3 用語の定義 5 |
1.4 ソフトウェア工学と要求工学 7 |
1.5 システム工学 8 |
1.6 ソフトウェアライフサイクル 9 |
1.7 要求定義 11 |
1.8 要求仕様 13 |
1.8.1 要求仕様の書き手 14 |
1.8.2 要求仕様の構成 14 |
1.8.3 非機能要求と機能要求 15 |
1.8.4 要求仕様の特性 16 |
第2章 要求獲得 17 |
2.1 問題分析 18 |
2.2 インタラクションと分析 20 |
2.2.1 インタラクション 20 |
2.2.2 インタラクションの分析 21 |
2.3 合意形成 24 |
2.3.1 デルファイ法(Delphi method) 24 |
2.3.2 ISM法 26 |
2.3.3 AHP法 27 |
2.4 C-NAP法 31 |
2.4.1 システム計画工程の課題 31 |
2.4.2 企業の情報システムにおける要求獲得 32 |
2.4.3 C-NAPの構成 35 |
2.4.4 C-NAPによる問題分析の具体例 38 |
2.4.5 目的展開 39 |
2.4.6 手段検討 41 |
2.4.7 C-NAPの現状と今後 42 |
第3章 シナリオ 45 |
3.1 はじめに 45 |
3.2 背景:要求工学とシナリオの位置付け 45 |
3.2.1 要求工学の基本作業 46 |
3.2.2 要求分析におけるコミュニケーション 46 |
3.2.3 要求の特徴:発展する要求 47 |
3.2.4 人間の特徴:要求を伝えるのは難しい 48 |
3.2.5 シナリオの意義:なぜシナリオを使うのか 48 |
3.2.6 社会的要請 51 |
3.2.7 欧州における調査 51 |
3.3 シナリオとは 53 |
3.3.1 シナリオの構成要素 53 |
3.3.2 シナリオの表現 55 |
3.3.3 シナリオの特徴 58 |
3.3.4 シナリオと仕様との違い 58 |
3.3.5 シナリオの種類 60 |
3.3.6 シナリオの分類 60 |
3.3.7 シナリオの定義 61 |
3.4 シナリオに基づく要求工学 71 |
3.4.1 システム開発過程とシナリオ作成過程 72 |
3.4.2 シナリオの特徴を活かすために 77 |
3.4.3 システム開発におけるシナリオの技法 79 |
3.5 関連分野におけるシナリオ 89 |
3.5.1 戦略経営 89 |
3.5.2 ヒューマンインタフェース 90 |
3.5.3 オブジェクト指向分析・設計 94 |
3.5.4 シナリオの多様性 95 |
3.6 おわりに 97 |
3.6.1 要約 97 |
3.6.2 今後の展望 97 |
第4章 要求仕様 101 |
4.1 要求仕様の目的 101 |
4.2 要求仕様の特性 102 |
4.2.1 要求仕様の妥当性 103 |
4.2.2 要求仕様の非あいまい性 103 |
4.2.3 要求仕様の完全性 104 |
4.2.4 要求仕様の無矛盾性 105 |
4.2.5 要求の重要度と安定性のランク付け 105 |
4.2.6 要求仕様の検証可能性 106 |
4.2.7 要求仕様の変更可能性 107 |
4.2.8 要求仕様の追跡可能性 107 |
4.3 要求仕様の構成と内容 108 |
4.3.1 要求仕様の「はじめに」 108 |
4.3.2 要求仕様の「全体説明」 109 |
4.3.3 詳細な要求仕様 112 |
4.3.4 その他の情報 118 |
第5章 要求言語 121 |
5.1 自然言語による要求仕様化 122 |
5.1.1 自然言語による要求記述の利点 122 |
5.1.2 自然言語による要求記述の問題点 122 |
5.2 形式的な言語による要求仕様化 124 |
5.2.1 形式的な言語による要求記述の利点 124 |
5.2.2 形式的な言語による要求記述の問題点 125 |
5.3 制限言語による要求仕様化 127 |
5.3.1 制限言語による要求記述の利点 127 |
5.3.2 制限言語による要求記述の問題点 127 |
5.4 制限言語の具体例 128 |
5.4.1 疑似言語 128 |
5.4.2 PSL 129 |
5.4.3 RSL 129 |
5.4.4 X-JRDL 130 |
5.5 図式言語による要求仕様化 133 |
5.5.1 図式言語による要求記述の利点 133 |
5.5.2 図式言語による要求記述の問題点 134 |
5.6 図式言語の具体例 134 |
5.6.1 業務フロー図 135 |
5.6.2 SADT 136 |
5.7 その他の要求言語 138 |
5.7.1 決定表 138 |
5.7.2 VRDL 139 |
第6章 要求仕様化技法 143 |
6.1 構造化分析 143 |
6.1.1 データフロー図 143 |
6.1.2 データ辞書 144 |
6.1.3 プロセス仕様書 145 |
6.1.4 実体関連図 145 |
6.1.5 状態図 146 |
6.2 構造化分析による分析例 146 |
6.2.1 出張システム問題 147 |
6.2.2 出張システムの現行物理モデル 147 |
6.2.3 出張システムの現行論理モデル 148 |
6.2.4 出張システムの新論理モデル 148 |
6.2.5 出張システムの新物理モデル 148 |
6.2.6 新出張システムの詳細化 150 |
6.3 オブジェクト指向分析 152 |
6.3.1 ユースケース図 153 |
6.3.2 コラボレーション図 154 |
6.3.3 シーケンス図 156 |
6.3.4 状態図 157 |
6.3.5 アクティビティ図 158 |
6.3.6 クラス図 158 |
6.4 UMLによる分析例 159 |
6.4.1 ユースケース図 161 |
6.4.2 シーケンス図 162 |
6.4.3 コラボレーション図 163 |
6.4.4 状態図 164 |
6.4.5 アクティビティ図 164 |
6.4.6 クラス図 167 |
第7章 形式的仕様 169 |
7.1 公理や推論規則に基づく形式的仕様 170 |
7.2 代数的仕様記述 174 |
7.3 モデルをベースにした仕様記述 178 |
7.4 形式的仕様とソフトウェア開発 180 |
7.5 形式的仕様の効果 183 |
第8章 要求仕様とソフトウェア開発管理 185 |
8.1 規模見積り 186 |
8.1.1 要求仕様の規模から算出する方法 186 |
8.1.2 ファンクションポイント法 188 |
8.1.3 フィーチャポイント法 193 |
8.2 工数見積り 195 |
8.2.1 規模見積りからの工数見積り 195 |
8.2.2 COCOMO 196 |
8.2.3 COCOMO2.0 199 |
8.3 見積りの問題点 200 |
8.4 要求仕様の品質保証 202 |
第9章 ラピッドプロトタイピング 205 |
9.1 プロトタイプの分類 207 |
9.1.1 プロトタイプの対象による分類 207 |
9.1.2 プロトタイピングのタイミングによる分類 207 |
9.1.3 プロトタイプと最終製品の関係による分類 208 |
9.2 プロトタイプの開発言語 208 |
第10章 要求定義と支援技術 215 |
10.1 CASEツール 215 |
10.2 要求定義とソフトウェア工学 216 |
10.2.1 ドメイン工学と要求定義 216 |
10.2.2 パターンと要求定義 218 |
10.2.3 プロセスの再利用やプロセスの改善と要求定義 218 |
第11章 おわりに 221 |
付録:IEEE Std 830-1998による要求仕様第3章の構成例 227 |
参考文献 237 |
索引 245 |