『実践ソフトウェアエンジニアリング』
第9版の翻訳
https://images-na.ssl-images-amazon.com/images/I/51orTivb+pL.jpg
(訳) SEPA翻訳プロジェクト
目次
著者について/まえがき/訳者まえがき
第1章 ソフトウェアとソフトウェアエンジニアリング
第1部 ソフトウェアプロセス
第2章 プロセスモデル
第3章 アジャイルとプロセス
第4章 推奨のプロセスモデル
第5章 ソフトウェアエンジニアリングの人間的側面
第2部 モデリング
第6章 プラクティスの指針となる原則
第7章 要求エンジニアリング
第8章 要求モデリングの推奨手法
第9章 設計の概念
第10章 アーキテクチャ設計の推奨手法
第11章 コンポーネント設計
第12章 ユーザエクスペリエンス設計
第13章 移動体端末におけるソフトウェアの設計
第14章 パターンに基づく設計
第3部 品質とセキュリティ
第15章 品質の概念
第16章 レビューの推奨手法
第17章 ソフトウェア品質保証
第18章 ソフトウェアセキュリティエンジニアリング
第19章 ソフトウェアテスト―コンポーネントレベル
第20章 ソフトウェアテスト―統合レベル
第21章 ソフトウェアテスト―移動体端末と特定ドメインに対するテスト
第22章 ソフトウェア構成マネジメント
第23章 ソフトウェアメトリクスと分析
第4部 ソフトウェアプロジェクトのマネジメント
第24章 プロジェクトマネジメントの概念
第25章 実行可能で役立つソフトウェア計画
第26章 リスクマネジメント
第27章 ソフトウェアサポート戦略
第5部 先端的な話題
第28章 ソフトウェアプロセス改善
第29章 ソフトウェアエンジニアリングの新興トレンド
第30章 おわりに
付録/参考文献/索引/訳者プロフィール
第6版の翻訳
https://images-na.ssl-images-amazon.com/images/I/51BH9QRG3NL.jpg
目次
まえがき iii
監訳者まえがき vii
第1章 ソフトウェアとソフトウェアエンジニアリング 1
第1章 1.1 ソフトウェアの役割の進化 1
第1章 1.2 ソフトウェア 3
第1章 1.3 変化するソフトウェアの性質 5
第1章 1.4 レガシーソフトウェア 7
第1章 1.4 1.4.1 レガシーソフトウェアの品質 7
第1章 1.4 1.4.2 ソフトウェアの進化 8
第1章 1.5 ソフトウェアの神話 9
第1章 1.6 どのように開始するのか 11
第1章 1.7 まとめ 11
第1部 ソフトウェアプロセス 15
第1部 第2章 プロセス-概要 17
第1部 第2章 2.1 ソフトウェアエンジニアリング-階層的な技術 17
第1部 第2章 2.2 プロセスフレームワーク 18
第1部 第2章 2.3 CMMI 21
第1部 第2章 2.4 プロセスパターン 24
第1部 第2章 2.5 プロセスの評価 26
第1部 第2章 2.6 パーソナルプロセスモデル・チームプロセスモデル 27
第1部 第2章 2.6 2.6.1 パーソナルソフトウェアプロセス (PSP) 28
第1部 第2章 2.6 2.6.2 チームソフトウェアプロセス (TSP) 28
第1部 第2章 2.7 プロセス管理支援 30
第1部 第2章 2.8 製品とプロセス 30
第1部 第2章 2.9 まとめ 31
第1部 第3章 規範的なプロセスモデル 35
第1部 第3章 3.1 規範的なモデル 35
第1部 第3章 3.2 ウォーターフォールモデル 36
第1部 第3章 3.3 インクリメンタルプロセスモデル 37
第1部 第3章 3.3 3.3.1 インクリメンタルモデル 37
第1部 第3章 3.3 3.3.2 RADモデル 38
第1部 第3章 3.4 進化型プロセスモデル 39
第1部 第3章 3.4 3.4.1 プロトタイピング 39
第1部 第3章 3.4 3.4.2 スパイラルモデル 41
第1部 第3章 3.4 3.4.3 コンカレント開発モデル 42
第1部 第3章 3.4 3.4.4 進化型プロセスに関するまとめ 43
第1部 第3章 3.5 特別なプロセスモデル 44
第1部 第3章 3.5 3.5.1 コンポーネントベース開発 44
第1部 第3章 3.5 3.5.2 フォーマルメソッドモデル 45
第1部 第3章 3.5 3.5.3 アスペクト指向ソフトウェア開発 45
第1部 第3章 3.6 統一プロセス 46
第1部 第3章 3.6 3.6.1 簡単な歴史 47
第1部 第3章 3.6 3.6.2 統一プロセスのフェーズ 47
第1部 第3章 3.6 3.6.3 統一プロセスの成果物 49
第1部 第3章 3.7 まとめ 50
第1部 第4章 アジャイル開発 55
第1部 第4章 4.1 俊敏さ (agility) とは 56
第1部 第4章 4.2 アジャイルなプロセスとは 57
第1部 第4章 4.2 4.2.1 アジャイル開発のポリシー 57
第1部 第4章 4.2 4.2.2 人間的な要因 58
第1部 第4章 4.3 アジャイルプロセスモデル 59
第1部 第4章 4.3 4.3.1 エクストリームプログラミング (XP) 59
第1部 第4章 4.3 4.3.2 適応型ソフトウェア開発 (ASD) 62
第1部 第4章 4.3 4.3.3 DSDM 63
第1部 第4章 4.3 4.3.4 スクラム 64
第1部 第4章 4.3 4.3.5 クリスタル 66
第1部 第4章 4.3 4.3.6 フィーチャ駆動型開発 (FDD) 66
第1部 第4章 4.3 4.3.7 アジャイルモデリング (AM) 67
第1部 第4章 4.4 まとめ 68
第2部 ソフトウェアエンジニアリングの実践 73
第2部 第5章 プラクティス-一般的な考え方 75
第2部 第5章 5.1 ソフトウェアエンジニアリングプラクティス 75
第2部 第5章 5.1 5.1.1 プラクティスの本質 76
第2部 第5章 5.1 5.1.2 根本原則 76
第2部 第5章 5.2 コミュニケーションプラクティス 78
第2部 第5章 5.3 計画プラクティス 79
第2部 第5章 5.4 モデリングプラクティス 81
第2部 第5章 5.4 5.4.1 分析モデルの原則 82
第2部 第5章 5.4 5.4.2 設計モデルの原則 82
第2部 第5章 5.5 実装プラクティス 84
第2部 第5章 5.5 5.5.1 コーディングの原則と概念 84
第2部 第5章 5.5 5.5.2 テストの原則 85
第2部 第5章 5.6 展開 86
第2部 第5章 5.6 5.7 まとめ 87
第2部 第6章 システムエンジニアリング 91
第2部 第6章 6.1 コンピュータシステム 91
第2部 第6章 6.2 システムエンジニアリングの階層 92
第2部 第6章 6.2 6.2.1 システムのモデル化 94
第2部 第6章 6.2 6.2.2 システムのシミュレーション 95
第2部 第6章 6.3 ビジネスプロセスエンジニアリングの概要 95
第2部 第6章 6.4 プロダクトエンジニアリングの概要 96
第2部 第6章 6.5 システムのモデル化 97
第2部 第6章 6.5 6.5.1 Hatley-Pirbhai モデリング 98
第2部 第6章 6.5 6.5.2 UMLを用いたシステムのモデル化 100
第2部 第6章 6.6 まとめ 102
第2部 第7章 要求エンジニアリング 105
第2部 第7章 7.1 設計と構築の架け橋 105
第2部 第7章 7.2 要求エンジニアリングの作業 106
第2部 第7章 7.2 7.2.1 開始 106
第2部 第7章 7.2 7.2.2 要求獲得 107
第2部 第7章 7.2 7.2.3 推敲 107
第2部 第7章 7.2 7.2.4 交渉 107
第2部 第7章 7.2 7.2.5 仕様化 107
第2部 第7章 7.2 7.2.6 検証 108
第2部 第7章 7.2 7.2.7 要求マネジメント 108
第2部 第7章 7.3 要求エンジニアリングプロセスの開始 109
第2部 第7章 7.3 7.3.1 ステークホルダを認識する 109
第2部 第7章 7.3 7.3.2 複数の視点を見分ける 109
第2部 第7章 7.3 7.3.3 協調して働く 110
第2部 第7章 7.3 7.3.4 最初の質問を行う 110
第2部 第7章 7.4 要求獲得 111
第2部 第7章 7.4 7.4.1 協調的な要求収集 111
第2部 第7章 7.4 7.4.2 品質機能展開 113
第2部 第7章 7.4 7.4.3 ユーザシナリオ 114
第2部 第7章 7.4 7.4.4 要求獲得の成果物 114
第2部 第7章 7.5 ユースケースの開発 114
第2部 第7章 7.5 7.6 分析モデルの構築 117
第2部 第7章 7.5 7.6.1 分析モデルの要素 117
第2部 第7章 7.5 7.6.2 アナリシスパターン 120
第2部 第7章 7.7 要求に関する交渉 121
第2部 第7章 7.8 要求の検証 121
第2部 第7章 7.9 まとめ 122
第2部 第8章 要求分析モデリング 125
第2部 第8章 8.1 要求分析 125
第2部 第8章 8.1 8.1.1 目的と考え方についての概要 126
第2部 第8章 8.1 8.1.2 分析の経験則 126
第2部 第8章 8.1 8.1.3 ドメイン分析 127
第2部 第8章 8.2 要求分析モデリングのアプローチ 128
第2部 第8章 8.3 データモデリングの概念 128
第2部 第8章 8.3 8.3.1 データオブジェクト 128
第2部 第8章 8.3 8.3.2 データ属性 129
第2部 第8章 8.3 8.3.3 関係 130
第2部 第8章 8.3 8.3.4 カーディナリティとモダリティ 130
第2部 第8章 8.4 オブジェクト指向分析 131
第2部 第8章 8.5 シナリオベースのモデリング 131
第2部 第8章 8.5 8.5.1 ユースケースの書き方 131
第2部 第8章 8.5 8.5.2 アクティビティ図の開発 135
第2部 第8章 8.5 8.5.3 スイムレーン図 135
第2部 第8章 8.6 フロー指向モデリング 136
第2部 第8章 8.6 8.6.1 データフローモデルの作成 136
第2部 第8章 8.6 8.6.2 制御フローモデルの作成 139
第2部 第8章 8.6 8.6.3 制御仕様 139
第2部 第8章 8.6 8.6.4 プロセス仕様 140
第2部 第8章 8.7 クラスベースのモデリング 141
第2部 第8章 8.7 8.7.1 分析クラスの識別 141
第2部 第8章 8.7 8.7.2 属性の特定 143
第2部 第8章 8.7 8.7.3 オペレーションの定義 144
第2部 第8章 8.7 8.7.4 クラス-責務-協調モデル(CRCモデル) 145
第2部 第8章 8.7 8.7.5 関連と依存 148
第2部 第8章 8.7 8.7.6 分析パッケージ 149
第2部 第8章 8.8 ふるまいモデルの作成 150
第2部 第8章 8.8 8.8.1 ユースケースを用いたイベントの特定 150
第2部 第8章 8.8 8.8.2 状態の表現 151
第2部 第8章 8.9 まとめ 153
第2部 第9章 設計エンジニアリング 159
第2部 第9章 9.1 ソフトウェアエンジニアリングにおける設計 159
第2部 第9章 9.2 設計工程と設計品質 161
第2部 第9章 9.3 設計の基本概念 162
第2部 第9章 9.3 9.3.1 抽象化 162
第2部 第9章 9.3 9.3.2 アーキテクチャ 163
第2部 第9章 9.3 9.3.3 パターン 163
第2部 第9章 9.3 9.3.4 モジュール化 163
第2部 第9章 9.3 9.3.5 情報隠蔽 164
第2部 第9章 9.3 9.3.6 機能独立性 165
第2部 第9章 9.3 9.3.7 詳細化 165
第2部 第9章 9.3 9.3.8 リファクタリング 166
第2部 第9章 9.3 9.3.9 設計クラス 166
第2部 第9章 9.4 設計モデル 167
第2部 第9章 9.4 9.4.1 データ設計要素 168
第2部 第9章 9.4 9.4.2 アーキテクチャ設計要素 168
第2部 第9章 9.4 9.4.3 インタフェース設計要素 169
第2部 第9章 9.4 9.4.4 コンポーネントレベル設計要素 170
第2部 第9章 9.4 9.4.5 配置レベル設計要素 171
第2部 第9章 9.5 パターンにもとづくソフトウェア設計 171
第2部 第9章 9.5 9.5.1 デザインパターンの記述 172
第2部 第9章 9.5 9.5.2 設計におけるパターンの利用 172
第2部 第9章 9.5 9.5.3 フレームワーク 173
第2部 第9章 9.6 まとめ 173
第2部 第10章 アーキテクチャ設計 177
第2部 第10章 10.1 ソフトウェアアーキテクチャ 177
第2部 第10章 10.1 10.1.1 アーキテクチャとは何か 177
第2部 第10章 10.1 10.1.2 なぜアーキテクチャが重要なのか 178
第2部 第10章 10.2 データ設計 178
第2部 第10章 10.2 10.2.1 アーキテクチャレベルのデータ設計 179
第2部 第10章 10.2 10.2.2 コンポーネントレベルでのデータ設計 179
第2部 第10章 10.3 アーキテクチャスタイルとパターン 180
第2部 第10章 10.3 10.3.1 アーキテクチャスタイルの簡単な分類 180
第2部 第10章 10.3 10.3.2 アーキテクチャパターン 183
第2部 第10章 10.3 10.3.3 構成と洗練 184
第2部 第10章 10.4 アーキテクチャ設計 185
第2部 第10章 10.4 10.4.1 コンテキストのなかでシステムを表現する 185
第2部 第10章 10.4 10.4.2 アーキタイプを定義する 186
第2部 第10章 10.4 10.4.3 アーキタイプをコンポーネントへと洗練する 187
第2部 第10章 10.4 10.4.4 システムのインスタンス化を表現する 188
第2部 第10章 10.5 アーキテクチャ設計候補の評価 189
第2部 第10章 10.5 10.5.1 アーキテクチャトレードオフ分析手法 189
第2部 第10章 10.5 10.5.2 アーキテクチャの複雑さ 190
第2部 第10章 10.5 10.5.3 アーキテクチャ記述言語 191
第2部 第10章 10.6 データフローのソフトウェアアーキテクチャへのマッピング 191
第2部 第10章 10.6 10.6.1 変換フロー 191
第2部 第10章 10.6 10.6.2 トランザクションフロー 192
第2部 第10章 10.6 10.6.3 変換マッピング 192
第2部 第10章 10.6 10.6.4 トランザクションマッピング 199
第2部 第10章 10.6 10.6.5 アーキテクチャ設計の洗練 202
第2部 第10章 10.7 まとめ 203
第2部 第11章 コンポーネントレベル設計 207
第2部 第11章 11.1 コンポーネントとは何か? 207
第2部 第11章 11.1 11.1.1 オブジェクト指向の考え方 208
第2部 第11章 11.1 11.1.2 従来型の考え方 209
第2部 第11章 11.1 11.1.3 プロセスと関連づけた考え方 210
第2部 第11章 11.2 クラスベースのコンポーネントの設計 211
第2部 第11章 11.2 11.2.1 基本的な設計原則 211
第2部 第11章 11.2 11.2.2 コンポーネントレベル設計の指針 213
第2部 第11章 11.2 11.2.3 凝集度 214
第2部 第11章 11.2 11.2.4 結合度 215
第2部 第11章 11.3 コンポーネントレベル設計の実施 216
第2部 第11章 11.4 オブジェクト制約目語 221
第2部 第11章 11.5 従来型のコンポーネント設計 222
第2部 第11章 11.5 11.5.1 図形による設計の表記 223
第2部 第11章 11.5 11.5.2 表による設計の表記 224
第2部 第11章 11.5 11.5.3 プログラム設計言語 225
第2部 第11章 11.5 11.5.4 設計表記法の比較 226
第2部 第11章 11.6 まとめ 226
第2部 第12章 ユーザインタフェース設計 231
第2部 第12章 12.1 黄金律 231
第2部 第12章 12.1 12.1.1 ユーザ主導型インタフェース 232
第2部 第12章 12.1 12.2.2 ユーザの認知的負荷を軽減するインタフェース 232
第2部 第12章 12.1 12.1.3 一貫性のあるインタフェース 233
第2部 第12章 12.2 ユーザインタフェース分析と設計 234
第2部 第12章 12.2 12.2.1 インタフェース分析と設計モデル 234
第2部 第12章 12.2 12.2.2 プロセス 235
第2部 第12章 12.3 インタフェース分析 236
第2部 第12章 12.3 12.3.1 ユーザ分析 236
第2部 第12章 12.3 12.3.2 タスク分析とモデリング 237
第2部 第12章 12.3 12.3.3 表示内容の分析 241
第2部 第12章 12.3 12.3.4 作業環境の分析 241
第2部 第12章 12.4 インタフェース設計のステップ 241
第2部 第12章 12.4 12.4.1 インタフェース設計ステップの適用 242
第2部 第12章 12.4 12.4.2 ユーザインタフェース・デザインパターン 243
第2部 第12章 12.4 12.4.3 設計上の問題 243
第2部 第12章 12.5 設計の評価 246
第2部 第12章 12.6 まとめ 247
第2部 第13章 ソフトウェアテスト戦略 251
第2部 第13章 13.1 ソフトウェアテストの戦略的アプローチ 251
第2部 第13章 13.1 13.1.1 V&V 252
第2部 第13章 13.1 13.1.2 ソフトウェアテストのための組織 252
第2部 第13章 13.1 13.1.3 従来型のソフトウェアアーキテクチャのためのテスト戦略 253
第2部 第13章 13.1 13.1.4 オブジェクト指向アーキテクチャのためのテスト戦略 254
第2部 第13章 13.1 13.1.5 テストの完了基準 255
第2部 第13章 13.2 戦略を立案するうえでの前提 255
第2部 第13章 13.3 従来型のソフトウェアのためのテスト戦略 256
第2部 第13章 13.3 13.3.1 単体テスト 256
第2部 第13章 13.3 13.3.2 結合テスト 258
第2部 第13章 13.4 オブジェクト指向ソフトウェアのためのテスト戦略 264
第2部 第13章 13.4 13.4.1 オブジェクト指向における単体テスト 264
第2部 第13章 13.4 13.4.2 オブジェクト指向における結合テスト 264
第2部 第13章 13.5 機能テスト 265
第2部 第13章 13.5 13.5.1 機能テストの確認基準 265
第2部 第13章 13.5 13.5.2 構成レビュー 265
第2部 第13章 13.5 13.5.3 アルファテストとベータテスト 265
第2部 第13章 13.6 システムテスト 266
第2部 第13章 13.6 13.6.1 復旧テスト 266
第2部 第13章 13.6 13.6.2 セキュリティテスト 266
第2部 第13章 13.6 13.6.3 ストレステスト 267
第2部 第13章 13.6 13.6.4 性能テスト 267
第2部 第13章 13.7 職人芸としてのデバッグ 268
第2部 第13章 13.7 13.7.1 デバッグのプロセス 268
第2部 第13章 13.7 13.7.2 心理学的な考察 269
第2部 第13章 13.7 13.7.3 デバッグ戦略 269
第2部 第13章 13.7 13.7.4 エラーの修正 271
第2部 第13章 13.8 まとめ 271
第2部 第14章 ソフトウェアテスト技術 275
第2部 第14章 14.1 ソフトウェアテストの基本的な考え方 275
第2部 第14章 14.2 ブラックボックステストとホワイトボックステスト 277
第2部 第14章 14.3 ホワイトボックステスト 277
第2部 第14章 14.4 ベースパステスト 277
第2部 第14章 14.4 14.4.1 フローグラフ表記 277
第2部 第14章 14.4 14.4.2 独立パス 278
第2部 第14章 14.4 14.4.3 テストケースの作成 280
第2部 第14章 14.4 14.4.4 グラフ行列 282
第2部 第14章 14.5 制御構造のテスト 283
第2部 第14章 14.5 14.5.1 条件式テスト 283
第2部 第14章 14.5 14.5.2 データフローテスト 284
第2部 第14章 14.5 14.5.3 ループテスト 284
第2部 第14章 14.6 ブラックボックステスト 285
第2部 第14章 14.6 14.6.1 グラフを利用したテスト設計 286
第2部 第14章 14.6 14.6.2 同値分割 288
第2部 第14章 14.6 14.6.3 境界値分析 288
第2部 第14章 14.6 14.6.4 直交配列テスト 289
第2部 第14章 14.7 オブジェクト指向におけるテスト手法 291
第2部 第14章 14.7 14.7.1 オブジェクト指向におけるテストケース設計の難点 291
第2部 第14章 14.7 14.7.2 従来型テストケース設計法の適用可能性 292
第2部 第14章 14.7 14.7.3 フォールトベーステスト 292
第2部 第14章 14.7 14.7.4 テストケースとクラス階層 293
第2部 第14章 14.7 14.7.5 シナリオベーステスト 293
第2部 第14章 14.7 14.7.6 表面構造と深層構造のテスト 295
第2部 第14章 14.8 クラスに対して適用できるテスト手法 295
第2部 第14章 14.8 14.8.1 クラスに対するランダムテスト 295
第2部 第14章 14.8 14.8.2 クラスに対する分割テスト 296
第2部 第14章 14.9 クラス間のテストケース設計 296
第2部 第14章 14.9 14.9.1 マルチクラステスト 297
第2部 第14章 14.9 14.9.2 ふるまいモデルから導出するテスト 298
第2部 第14章 14.10 さまざまなソフトウェアに特化したテスト 299
第2部 第14章 14.10 14.10.1 GUIのテスト 299
第2部 第14章 14.10 14.10.2 クライアント・サーバアーキテクチャのテスト 299
第2部 第14章 14.10 14.10.3 ドキュメントやヘルプのテスト 300
第2部 第14章 14.10 14.10.4 リアルタイムシステムのテスト 300
第2部 第14章 14.11 テストパターン 301
第2部 第14章 14.11 14.12 まとめ 302
第2部 第15章 成果物に関するソフトウェアメトリクス 307
第2部 第15章 15.1 ソフトウェアの品質 307
第2部 第15章 15.1 15.1.1 マッコールの品質特性 308
第2部 第15章 15.1 15.1.2 ISO 9126品質特性 308
第2部 第15章 15.1 15.1.3 定量的な観点への移行 309
第2部 第15章 15.2 成果物に関するメトリクスのためのフレームワーク 310
第2部 第15章 15.2 15.2.1 測定値,メトリクス,指標 310
第2部 第15章 15.2 15.2.2 定量的な観点への移行 310
第2部 第15章 15.2 15.2.3 測定の原則 311
第2部 第15章 15.2 15.2.4 目標志向のソフトウェア測定 311
第2部 第15章 15.2 15.2.5 効果的なソフトウェアメトリクスのもつべき属性 312
第2部 第15章 15.2 15.2.6 成果物に関するメトリクスの概要 313
第2部 第15章 15.3 分析モデルのためのメトリクス 314
第2部 第15章 15.3 15.3.1 機能ベースのメトリクス 314
第2部 第15章 15.3 15.3.2 仕様書の品質のためのメトリクス 317
第2部 第15章 15.4 設計モデルのためのメトリクス 318
第2部 第15章 15.4 15.4.1 アーキテクチャ設計のためのメトリクス 318
第2部 第15章 15.4 15.4.2 オブジェクト指向設計のためのメトリクス 320
第2部 第15章 15.4 15.4.3 クラス指向のメトリクス-CKメトリクス群 321
第2部 第15章 15.4 15.4.4 クラス指向のメトリクス-MOODメトリクス群 322
第2部 第15章 15.4 15.4.5 ローレンツとキッドによるオブジェクト指向のメトリクス 323
第2部 第15章 15.4 15.4.6 コンポーネントレベル設計のためのメトリクス 324
第2部 第15章 15.4 15.4.7 オペレーション指向のメトリクス 325
第2部 第15章 15.4 15.4.8 ユーザインタフェース設計のためのメトリクス 326
第2部 第15章 15.5 ソースコードのためのメトリクス 326
第2部 第15章 15.6 テストのためのメトリクス 327
第2部 第15章 15.6 15.6.1 ハルステッドメトリクスのテストへの適用 328
第2部 第15章 15.6 15.6.2 オブジェクト指向テストのためのメトリクス 328
第2部 第15章 15.7 保守のためのメトリクス 329
第2部 第15章 15.8 まとめ 329
第3部 Webエンジニアリングの適用 335
第3部 第16章 Webエンジニアリング 337
第3部 第16章 16.1 Webベースシステムおよびアプリケーションの特性 338
第3部 第16章 16.2 Webアプリエンジニアリングの階層 339
第3部 第16章 16.2 16.2.1 プロセス 340
第3部 第16章 16.2 16.2.2 手法 340
第3部 第16章 16.2 16.2.3 ツールとテクノロジ 341
第3部 第16章 16.3 Webエンジニアリングプロセス 341
第3部 第16章 16.3 16.3.1 フレームワークの定義 341
第3部 第16章 16.3 16.3.2 フレームワークの改良 343
第3部 第16章 16.4 Webエンジニアリングのベストプラクティス 343
第3部 第16章 16.5 まとめ 344
第3部 第17章 Webエンジニアリングのための定式化と計画 347
第3部 第17章 17.1 Webベースシステムの定式化 347
第3部 第17章 17.1 17.1.1 定式化に関する疑問 348
第3部 第17章 17.1 17.1.2 Webアプリの要求収集 349
第3部 第17章 17.1 17.1.3 分析モデル作成への架橋 351
第3部 第17章 17.2 Webエンジニアリングプロジェクトの計画 351
第3部 第17章 17.3 Webエンジニアリングチーム 352
第3部 第17章 17.3 17.3.1 業務担当 352
第3部 第17章 17.3 17.3.2 チームの結成 353
第3部 第17章 17.4 Webエンジニアリングのプロジェクトマネジメントに関する問題 353
第3部 第17章 17.4 17.4.1 Webアプリの計画立案-アウトソーシング 354
第3部 第17章 17.4 17.4.2 Webアプリの計画-社内でのWebエンジニアリング 356
第3部 第17章 17.5 WebエンジニアリングおよびWebアプリのためのメトリクス 357
第3部 第17章 17.5 17.5.1 Webエンジニアリング工数のためのメトリクス 358
第3部 第17章 17.5 17.5.2 ビジネス価値を評価するためのメトリクス 358
第3部 第17章 17.6 Webアプリプロジェクトの「ワーストプラクティス」 359
第3部 第17章 17.7 まとめ 360
第3部 第18章 Webアプリケーションのための分析モデリング 363
第3部 第18章 18.1 Webアプリの要求分析 363
第3部 第18章 18.1 18.1.1 ユーザ階層 364
第3部 第18章 18.1 18.1.2 ユースケースの作成 364
第3部 第18章 18.1 18.1.3 ユースケースモデルを洗練する 366
第3部 第18章 18.2 Webアプリの分析モデル 366
第3部 第18章 18.3 コンテンツモデル 367
第3部 第18章 18.3 18.3.1 コンテンツオブジェクトを定義する 367
第3部 第18章 18.3 18.3.2 コンテンツの関係と階層 367
第3部 第18章 18.3 18.3.3 Webアプリの分析クラス 368
第3部 第18章 18.4 対話モデル 369
第3部 第18章 18.5 機能モデル 372
第3部 第18章 18.6 構成モデル 373
第3部 第18章 18.7 関連-ナビゲーション分析 373
第3部 第18章 18.7 18.7.1 関連分析-重要な質問 374
第3部 第18章 18.7 18.7.2 ナビゲーション分析 375
第3部 第18章 18.8 まとめ 376
第3部 第19章 Webアプリケーションの設計モデリング 379
第3部 第19章 19.1 Webエンジニアリングの設計に関する問題 379
第3部 第19章 19.1 19.1.1 設計とWebアプリの品質 379
第3部 第19章 19.1 19.1.2 設計の目標 381
第3部 第19章 19.2 Webエンジニアリングの設計ピラミッド 382
第3部 第19章 19.3 Webアプリのインタフェース設計 383
第3部 第19章 19.3 19.3.1 インタフェース設計の原則とガイドライン 384
第3部 第19章 19.3 19.3.2 インタフェース制御 387
第3部 第19章 19.3 19.3.3 インタフェース設計ワークフロー 387
第3部 第19章 19.4 美術的設計 389
第3部 第19章 19.4 19.4.1 レイアウトの問題 389
第3部 第19章 19.4 19.4.2 グラフィックデザインの問題 389
第3部 第19章 19.5 コンテンツ設計 390
第3部 第19章 19.5 19.5.1 コンテンツオブジェクト 390
第3部 第19章 19.5 19.5.2 コンテンツ設計の問題 391
第3部 第19章 19.6 アーキテクチャ設計 391
第3部 第19章 19.6 19.6.1 コンテンツアーキテクチャ 391
第3部 第19章 19.6 19.6.2 Webアプリアーキテクチャ 394
第3部 第19章 19.7 ナビゲーション設計 395
第3部 第19章 19.7 19.7.1 ナビゲーションの意味 395
第3部 第19章 19.7 19.7.2 ナビゲーション記法 396
第3部 第19章 19.8 コンポーネントレベル設計 397
第3部 第19章 19.9 ハイパーメディアデザインパターン 397
第3部 第19章 19.10 オブジェクト指向ハイパーメディア設計手法 (OOHDM) 398
第3部 第19章 19.10 19.10.1 OOHDMの概念設計 398
第3部 第19章 19.10 19.10.2 OOHDMのナビゲーション設計 399
第3部 第19章 19.10 19.10.3 抽象インタフェース設計と実装 400
第3部 第19章 19.11 Webアプリの設計メトリクス 400
第3部 第19章 19.12 まとめ 401
第3部 第20章 Webアプリケーションのテスト 407
第3部 第20章 20.1 Webアプリケーションのためのテストの概念 407
第3部 第20章 20.1 20.1.1 品質特性 407
第3部 第20章 20.1 20.1.2 Webアプリ環境の不具合 408
第3部 第20章 20.1 20.1.3 テスト戦略 409
第3部 第20章 20.1 20.1.4 テスト計画 409
第3部 第20章 20.2 テストプロセス-概要 410
第3部 第20章 20.3 コンテンツテスト 412
第3部 第20章 20.3 20.3.1 コンテンツテストの目的 412
第3部 第20章 20.3 20.3.2 データベーステスト 413
第3部 第20章 20.4 ユーザインタフェーステスト 414
第3部 第20章 20.4 20.4.1 インタフェーステストの戦略 414
第3部 第20章 20.4 20.4.2 インタフェースメカニズムのテスト 415
第3部 第20章 20.4 20.4.3 インタフェースセマンティクスのテスト 416
第3部 第20章 20.4 20.4.4 ユーザビリティテスト 417
第3部 第20章 20.4 20.4.5 互換性テスト 418
第3部 第20章 20.5 コンポーネントレベルテスト 419
第3部 第20章 20.6 ナビゲーションテスト 420
第3部 第20章 20.6 20.6.1 ナビゲーションシンタックスのテスト 420
第3部 第20章 20.6 20.6.2 ナビゲーションセマンティクスのテスト 421
第3部 第20章 20.7 構成テスト 422
第3部 第20章 20.7 20.7.1 サーバ側の問題 422
第3部 第20章 20.7 20.7.2 クライアント側の問題 423
第3部 第20章 20.8 セキュリティテスト 423
第3部 第20章 20.9 パフォーマンステスト 424
第3部 第20章 20.9 20.9.1 パフォーマンステストの目的 424
第3部 第20章 20.9 20.9.2 負荷テスト 425
第3部 第20章 20.9 20.9.3 ストレステスト 425
第3部 第20章 20.10 まとめ 426
第4部 ソフトウェアプロジェクトの管理 431
第4部 第21章 プロジェクトマネジメントの概念 433
第4部 第21章 21.1 管理スペクトル 433
第4部 第21章 21.1 21.1.1 人材 433
第4部 第21章 21.1 21.1.2 製品 434
第4部 第21章 21.1 21.1.3 プロセス 434
第4部 第21章 21.1 21.1.4 プロジェクト 434
第4部 第21章 21.2 人材 434
第4部 第21章 21.2 21.2.1 ステークホルダ 435
第4部 第21章 21.2 21.2.2 チームリーダー 435
第4部 第21章 21.2 21.2.3 ソフトウェアチーム 436
第4部 第21章 21.2 21.2.4 アジャイルチーム 438
第4部 第21章 21.2 21.2.5 コミュニケーションに関する問題と調整 439
第4部 第21章 21.3 製品 439
第4部 第21章 21.3 21.3.1 スコープ 439
第4部 第21章 21.3 21.3.2 問題の分割 439
第4部 第21章 21.4 プロセス 440
第4部 第21章 21.4 21.4.1 製品とプロセスの組合せ 440
第4部 第21章 21.4 21.4.2 プロセスの分割 441
第4部 第21章 21.5 プロジェクト 442
第4部 第21章 21.6 W5HHの原則 443
第4部 第21章 21.7 プロジェクトの成否を決めるプラクティス 444
第4部 第21章 21.8 まとめ 444
第4部 第22章 プロセスとプロジェクトのメトリクス 449
第4部 第22章 22.1 プロセスとプロジェクトのメトリクス 449
第4部 第22章 22.1 22.1.1 プロセスメトリクスとプロセスの改善 449
第4部 第22章 22.1 22.1.2 プロジェクトメトリクス 451
第4部 第22章 22.2 ソフトウェアの測定 451
第4部 第22章 22.2 22.2.1 サイズ指向のメトリクス 452
第4部 第22章 22.2 22.2.2 機能指向のメトリクス 453
第4部 第22章 22.2 22.2.3 FPとLOCの関係 453
第4部 第22章 22.2 22.2.4 オブジェクト指向のメトリクス 455
第4部 第22章 22.2 22.2.5 ユースケース指向のメトリクス 456
第4部 第22章 22.2 22.2.6 Webエンジニアリングプロジェクトのメトリクス 456
第4部 第22章 22.3 品質メトリクス 457
第4部 第22章 22.3 22.3.1 品質の測定 457
第4部 第22章 22.3 22.3.2 欠陥除去効率 458
第4部 第22章 22.4 プロセスへのメトリクスの適用 459
第4部 第22章 22.4 22.4.1 メトリクスの役割 459
第4部 第22章 22.4 22.4.2 ベースラインの設定 460
第4部 第22章 22.4 22.4.3 メトリクスの収集,計算,評価 460
第4部 第22章 22.5 小規模組織でのメトリクス 461
第4部 第22章 22.6 ソフトウェアメトリクスプログラムの開発 461
第4部 第22章 22.7 まとめ 463
第4部 第23章 ソフトウェアプロジェクトの見積り 467
第4部 第23章 23.1 見積り 467
第4部 第23章 23.2 プロジェクト計画立案のプロセス 468
第4部 第23章 23.3 スコープと実現可能性 468
第4部 第23章 23.4 開発リソース 469
第4部 第23章 23.4 23.4.1 人的リソース 470
第4部 第23章 23.4 23.4.2 再利用可能なコンポーネント 470
第4部 第23章 23.4 23.4.3 開発環境 470
第4部 第23章 23.5 ソフトウェアプロジェクトの見積り 471
第4部 第23章 23.6 分割技法 471
第4部 第23章 23.6 23.6.1 ソフトウェアの規模 472
第4部 第23章 23.6 23.6.2 問題ベースの見積り (Problem-Based Estimation) 472
第4部 第23章 23.6 23.6.3 LOCベース見積り (LOC-Based Estimation) の例 473
第4部 第23章 23.6 23.6.4 FPベース見積りの例 474
第4部 第23章 23.6 23.6.5 プロセスベースの見積り 475
第4部 第23章 23.6 23.6.6 プロセスベースの見積りの例 476
第4部 第23章 23.6 23.6.7 ユースケースによる見積り 476
第4部 第23章 23.6 23.6.8 ユースケースベースの見積りの例 477
第4部 第23章 23.6 23.6.9 見積りの照合 478
第4部 第23章 23.7 経験的見積りモデル 478
第4部 第23章 23.7 23.7.1 見積りモデルの構造 479
第4部 第23章 23.7 23.7.2 COCOMO II 479
第4部 第23章 23.7 23.7.3 ソフトウェア方程式 480
第4部 第23章 23.8 オブジェクト指向プロジェクトの見積り 481
第4部 第23章 23.9 特別な見積り技法 482
第4部 第23章 23.9 23.9.1 アジャイル開発の見積り 482
第4部 第23章 23.9 23.9.2 Webエンジニアリングプロジェクトの見積り 483
第4部 第23章 23.10 開発または購入の決定 483
第4部 第23章 23.10 23.10.1 意思決定木の作成 483
第4部 第23章 23.10 23.10.2 アウトソーシング 485
第4部 第23章 23.11 まとめ 485
第4部 第24章 ソフトウェアプロジェクトのスケジューリング 489
第4部 第24章 24.1 基本概念 489
第4部 第24章 24.2 プロジェクトのスケジューリング 491
第4部 第24章 24.2 24.2.1 基本原則 491
第4部 第24章 24.2 24.2.2 要員と工数の関係 492
第4部 第24章 24.2 24.2.3 工数配分 493
第4部 第24章 24.3 ソフトウェア開発プロジェクトのタスクセットの定義 494
第4部 第24章 24.3 24.3.1 タスクセットの例 495
第4部 第24章 24.3 24.3.2 主要タスクの精緻化 495
第4部 第24章 24.4 タスクネットワークの定義 496
第4部 第24章 24.5 スケジューリング 497
第4部 第24章 24.5 24.5.1 時間線表チャート 497
第4部 第24章 24.5 24.5.2 スケジュールのトラッキング 498
第4部 第24章 24.5 24.5.3 オブジェクト指向開発プロジェクトの進捗のトラッキング 501
第4部 第24章 24.6 アーンドバリュー分析 502
第4部 第24章 24.7 まとめ 503
第4部 第25章 リスクマネジメント 507
第4部 第25章 25.1 受動的リスク戦略と能動的リスク戦略 507
第4部 第25章 25.2 リスクの定義 508
第4部 第25章 25.3 リスクの識別 508
第4部 第25章 25.3 25.3.1 リスク評価 509
第4部 第25章 25.3 25.3.2 リスク項目とリスク誘発要因 510
第4部 第25章 25.4 リスクの推定 511
第4部 第25章 25.4 25.4.1 リスク表の作成 511
第4部 第25章 25.4 25.4.2 リスク影響の評価 513
第4部 第25章 25.5 リスクの見直し 513
第4部 第25章 25.6 リスクの軽減・監視・管理 514
第4部 第25章 25.7 RMMM計画 516
第4部 第25章 25.8 まとめ 517
第4部 第26章 品質マネジメント 521
第4部 第26章 26.1 品質という概念 521
第4部 第26章 26.1 26.1.1 品質 522
第4部 第26章 26.1 26.1.2 品質管理 522
第4部 第26章 26.1 26.1.3 品質保証 523
第4部 第26章 26.1 26.1.4 品質コスト 523
第4部 第26章 26.2 ソフトウェアの品質保証 524
第4部 第26章 26.2 26.2.1 背景 524
第4部 第26章 26.2 26.2.2 ソフトウェア品質保証活動 525
第4部 第26章 26.3 ソフトウェアのレビュー 525
第4部 第26章 26.3 26.3.1 ソフトウェアのエラーや欠陥がコストに与える影響 526
第4部 第26章 26.3 26.3.2 欠陥の増幅と除去 526
第4部 第26章 26.4 公式技術レビュー 528
第4部 第26章 26.4 26.4.1 レビューミーティング 528
第4部 第26章 26.4 26.4.2 レビューの報告と記録の保持 529
第4部 第26章 26.4 26.4.3 レビューのガイドライン 529
第4部 第26章 26.4 26.4.4 サンプルによるレビュー 530
第4部 第26章 26.5 ソフトウェア品質保証へのフォーマルメソッドアプローチ 531
第4部 第26章 26.6 統計的品質保証 531
第4部 第26章 26.6 26.6.1 一般的な例 532
第4部 第26章 26.6 26.6.2 ソフトウェアエンジニアリングのシックスシグマ 533
第4部 第26章 26.7 ソフトウェアの信頼性 534
第4部 第26章 26.7 26.7.1 信頼性と可用性の尺度 534
第4部 第26章 26.7 26.7.2 ソフトウェアの安全性 535
第4部 第26章 26.8 ISO 9000品質規格 535
第4部 第26章 26.9 ソフトウェア品質保証計画書 536
第4部 第26章 26.10 まとめ 536
第4部 第27章 変更管理 541
第4部 第27章 27.1 ソフトウェア構成管理 541
第4部 第27章 27.1 27.1.1 ソフトウェア構成管理のシナリオ 542
第4部 第27章 27.1 27.1.2 構成管理システムの要素 542
第4部 第27章 27.1 27.1.3 ベースライン 543
第4部 第27章 27.1 27.1.4 ソフトウェア構成要素 545
第4部 第27章 27.2 ソフトウェア構成管理リポジトリ 545
第4部 第27章 27.2 27.2.1 リポジトリの役割 545
第4部 第27章 27.2 27.2.2 一般的な特徴と内容 546
第4部 第27章 27.2 27.2.3 ソフトウェア構成管理機能 547
第4部 第27章 27.3 ソフトウェア構成管理プロセス 547
第4部 第27章 27.3 27.3.1 ソフトウェア構成内のオブジェクトの識別 548
第4部 第27章 27.3 27.3.2 バージョン管理 549
第4部 第27章 27.3 27.3.3 変更管理 550
第4部 第27章 27.3 27.3.4 構成監査 552
第4部 第27章 27.3 27.3.5 構成状況報告 552
第4部 第27章 27.4 Webエンジニアリングの構成管理 553
第4部 第27章 27.4 27.4.1 Webアプリにおける構成管理の問題 553
第4部 第27章 27.4 27.4.2 Webアプリの構成オブジェクト 554
第4部 第27章 27.4 27.4.3 コンテンツ管理 554
第4部 第27章 27.4 27.4.4 変更管理 556
第4部 第27章 27.4 27.4.5 バージョン管理 557
第4部 第27章 27.4 27.4.6 監査と報告 558
第4部 第27章 27.5 まとめ 558
第5部 ソフトウェアエンジニアリングの先進トピック 563
第5部 第28章 フォーマルメソッド 565
第5部 第28章 28.1 基本概念 565
第5部 第28章 28.1 28.1.1 フォーマルでない手法の短所 566
第5部 第28章 28.1 28.1.2 ソフトウェア開発における数学 567
第5部 第28章 28.1 28.1.3 フォーマルメソッドの概念 567
第5部 第28章 28.2 数学的準備 569
第5部 第28章 28.2 28.2.1 集合と構成的仕様 569
第5部 第28章 28.2 28.2.2 集合演算子 570
第5部 第28章 28.2 28.2.3 論理演算子 572
第5部 第28章 28.2 28.2.4 列 573
第5部 第28章 28.3 数学的記法の形式仕様記述への適用 573
第5部 第28章 28.4 形式仕様記述言語 575
第5部 第28章 28.5 オブジェクト制約言語 (OCL) 576
第5部 第28章 28.5 28.5.1 OCLの構文規則および意味論の概要 576
第5部 第28章 28.5 28.5.2 OCLの使用例 577
第5部 第28章 28.6 Z言語 579
第5部 第28章 28.6 28.6.1 Zの構文および意味論の概要 579
第5部 第28章 28.6 28.6.2 Zの使用例 579
第5部 第28章 28.7 フォーマルメソッドの十戒 580
第5部 第28章 28.8 フォーマルメソッド-進むべき道 582
第5部 第28章 28.9 まとめ 582
第5部 第29章 クリーンルーム開発 587
第5部 第29章 29.1 クリーンルームというアプローチ 587
第5部 第29章 29.1 29.1.1 クリーンルーム戦略 588
第5部 第29章 29.1 29.1.2 クリーンルーム開発が特別である理由 589
第5部 第29章 29.2 機能仕様 590
第5部 第29章 29.2 29.2.1 ブラックボックス仕様 590
第5部 第29章 29.2 29.2.2 ステートボックス仕様 591
第5部 第29章 29.2 29.2.3 クリアボックス仕様 591
第5部 第29章 29.3 クリーンルーム設計 592
第5部 第29章 29.3 29.3.1 設計の詳細化と検証 592
第5部 第29章 29.3 29.3.2 設計検証の利点 595
第5部 第29章 29.4 クリーンルーム開発におけるテスト 596
第5部 第29章 29.4 29.4.1 統計的操作テスト 597
第5部 第29章 29.4 29.4.2 認定 598
第5部 第29章 29.5 まとめ 598
第5部 第30章 コンポーネントベース・ソフトウェアエンジニアリング 601
第5部 第30章 30.1 コンポーネントベースシステムのエンジニアリング 601
第5部 第30章 30.2 CBSEプロセス 602
第5部 第30章 30.3 ドメインエンジニアリング 603
第5部 第30章 30.3 30.3.1 ドメイン分析プロセス 603
第5部 第30章 30.3 30.3.2 特性関数 604
第5部 第30章 30.3 30.3.3 構造モデリングと構造ポイント 605
第5部 第30章 30.4 コンポーネントベース開発 (CBD) 605
第5部 第30章 30.4 30.4.1 コンポーネントの検証,修正と統合 606
第5部 第30章 30.4 30.4.2 コンポーネントエンジニアリング 608
第5部 第30章 30.4 30.4.3 再利用のための分析と設計 608
第5部 第30章 30.5 コンポーネントの分類と検索 609
第5部 第30章 30.5 30.5.1 再利用可能なコンポーネントの記述 609
第5部 第30章 30.5 30.5.2 再利用の環境 610
第5部 第30章 30.6 CBSEの経済性 611
第5部 第30章 30.6 30.6.1 品質や生産性,コストへの影響 611
第5部 第30章 30.6 30.6.2 構造ポイントによるコスト分析 612
第5部 第30章 30.7 まとめ 613
第5部 第31章 リエンジニアリング 617
第5部 第31章 31.1 ビジネスプロセスのリエンジニアリング 617
第5部 第31章 31.1 31.1.1 ビジネスプロセス 617
第5部 第31章 31.1 30.1.2 BPRモデル 618
第5部 第31章 31.2 ソフトウェアのリエンジニアリング 619
第5部 第31章 31.2 31.2.1 ソフトウェア保守 619
第5部 第31章 31.2 31.2.2 ソフトウェアリエンジニアリングのプロセスモデル 620
第5部 第31章 31.3 リバースエンジニアリング 623
第5部 第31章 31.3 31.3.1 データの理解のためのリバースエンジニアリング 624
第5部 第31章 31.3 31.3.2 処理の理解のためのリバースエンジニアリング 624
第5部 第31章 31.3 31.3.3 ユーザインタフェースのリバースエンジニアリング 625
第5部 第31章 31.4 再構成 625
第5部 第31章 31.4 31.4.1 コードの再構成 625
第5部 第31章 31.4 31.4.2 データの再構成 626
第5部 第31章 31.5 フォワードエンジニアリング 626
第5部 第31章 31.5 31.5.1 クライアント・サーバアーキテクチャへのフォワードエンジニアリング 627
第5部 第31章 31.5 31.5.2 オブジェクト指向アーキテクチャへのフォワードエンジニアリング 628
第5部 第31章 31.5 31.5.3 ユーザインタフェースのフォワードエンジニアリング 628
第5部 第31章 31.6 リエンジニアリングの経済性 629
第5部 第31章 31.7 まとめ 630
第5部 第32章 進むべき道 633
第5部 第32章 32.1 ソフトウェアの重要性-再び 633
第5部 第32章 32.2 どこまで変化するか 634
第5部 第32章 32.3 システムを開発する人間 634
第5部 第32章 32.4 「新しい」ソフトウェアプロセス 635
第5部 第32章 32.5 情報の新しい表現 636
第5部 第32章 32.6 ソフトウェアの発展を導く技術 637
第5部 第32章 32.7 ソフトウェア技術者の責任 637
第5部 第32章 32.8 結びのコメント 639
監訳者あとがき 643
索引 645