モダン・ソフトウェアエンジニアリング
翔泳社
著者:IvarJacobson、Harold“Bud”Lawson、Pan-WeiNg、PaulE.McMahon、MichaelGoedicke
訳者:角征典
監修:鷲崎弘宜
イアン・サマービルによる序文
グラディ・ブーチによる序文
日本版まえがき
はじめに
著者の経歴
第I部 ソフトウェアエンジニアリングの本質
第1章 プログラミングからソフトウェアエンジニアリングへ
1.1 プログラミングから始める
1.2 プログラミングはソフトウェアエンジニアリングではない
1.3 インターンから業界へ
1.4 ソフトウェアエンジニアリングのプロになる旅
できるようになったこと
第2章 ソフトウェアエンジニアリングの手法とプラクティス
2.1 ソフトウェアエンジニアリングの課題
2.2 ソフトウェアエンジニアリングの手法とプラクティスの台頭
2.3 SEMATイニシアティブ
2.4 OMG標準となったEssence
できるようになったこと
第3章 Essenceの概要
3.1 アイデア
3.2 手法はプラクティスの合成
3.3 共通基盤の存在
3.4 本質的なことにフォーカスする
3.5 魅力的なユーザー体験の提供
できるようになったこと
第4章 ソフトウェアエンジニアリングの重要な要素を特定する
4.1 基本に戻る
4.2 ソフトウェアエンジニアリングは顧客に価値を提供する
4.3 ソフトウェアエンジニアリングはソリューションで価値を提供する
4.4 ソフトウェアエンジニアリングは活動
できるようになったこと
第5章 ソフトウェアエンジニアリングの言語
5.1 シンプルなプラクティスの例
5.2 使うべきもの
5.3 コンピテンシー
5.4 やるべきこと
5.5 エッセンシャル化したプラクティス
できるようになったこと
第6章 ソフトウェアエンジニアリングのカーネル
6.1 Essenceカーネルでまとめる
6.2 必要不可欠な使うべきもの:アルファ
6.3 必要不可欠なやるべきこと:アクティビティスペース
6.4 必要不可欠な能力:コンピテンシー
6.5 必要不可欠な要素の配置:パターン
できるようになったこと
第7章 理論のふりかえり
7.1 ソフトウェアエンジニアリングの理論はどこにあるのか
7.2 理論の使用
7.3 Essenceはソフトウェアエンジニアリングの汎用記述的理論
7.4 ソフトウェアエンジニアリングの汎用予測的理論に向けて
7.5 理論的基礎によって成長する
できるようになったこと
第I部のまとめ
推奨する参考文献
第8章 Essenceを小さく適用する―シリアスゲームをやってみよう
8.1 進捗ポーカー
8.2 状態を追え
8.3 目的へGo
8.4 チェックポイントを設定せよ
8.5 ふりかえり
できるようになったこと
第II部 Essenceを使ったソフトウェア開発
第9章 Essenceで開発を始める
9.1 Essenceのレンズを通して見た状況を理解する
9.2 開発のスコープとチェックポイントに合意する
9.3 監視すべき最も重要なものに合意する
できるようになったこと
第10章 Essenceを使った開発
10.1 Essenceを使った計画
10.2 Essenceを使った実行と評価
10.3 チームの作業方法をEssenceを使って適応させる
10.4 カーネルが作業方法の適応に役立つ方法
できるようになったこと
第11章 開発の旅
11.1 旅を可視化する
11.2 進捗と健全性を確保する
11.3 異変に対処する
できるようになったこと
第12章 Essenceカーネルのふりかえり
12.1 カーネルの妥当性
12.2 カーネルを効果的に適用する
できるようになったこと
第II部のまとめ
第III部 プラクティスを使った小規模開発
第13章 プラクティスを使って開発を始める
13.1 Essenceのレンズを通して見た状況を理解する
13.2 開発のスコープとチェックポイントに合意する
13.3 導入するプラクティスに合意する
13.4 監視すべき最も重要なものに合意する
13.5 旅の概要
できるようになったこと
第14章 スクラムを利用する
14.1 スクラムの説明
14.2 プラクティスによるソフトウェアエンジニアリングのアプローチの明確化とモジュール化
14.3 Essenceで[スクラム]を明示的にする
14.4 [スクラムライト]におけるアルファ
14.5 [スクラムライト]におけるワークプロダクト
14.6 [スクラムライト]における役割
14.7 [スクラムライト]の開始
14.8 [スクラムライト]の実施
14.9 スクラムとEssenceのふりかえり
できるようになったこと
第15章 ユーザーストーリーライトを利用する
15.1 ユーザーストーリーの説明
15.2 Essenceで[ユーザーストーリーライト]を明示的にする
15.3 [ユーザーストーリーライト]におけるアルファ
15.4 [ユーザーストーリーライト]におけるワークプロダクト
15.5 [ユーザーストーリーライト]の開始
15.6 [ユーザーストーリーライト]の実施
15.7 [ユーザーストーリーライト]プラクティスに対するカーネルの価値
できるようになったこと
第16章 ユースケースライトを利用する
16.1 ユースケースの説明
16.2 Essenceで[ユースケースライト]を明示的にする
16.3 [ユースケースライト]におけるアルファ
16.4 [ユースケースライト]におけるワークプロダクト
16.5 [ユースケースライト]でチームが直面している問題を解決する
16.6 ユースケースとユースケーススライスを利用する
16.7 ユースケースのチームのインパクトを可視化する
16.8 ユースケーススライスの進捗と健全性
16.9 ユーザーストーリーとユースケースの違い
できるようになったこと
第17章 マイクロサービスを利用する
17.1 [マイクロサービス]の説明
17.2 Essenceで[マイクロサービス]を明示的にする
17.3 [マイクロサービスライト]
17.4 [マイクロサービスライト]におけるアルファ
17.5 [マイクロサービスライト]におけるワークプロダクト
17.6 [マイクロサービスライト]におけるアクティビティ
17.7 [マイクロサービスライト]のチームに対するインパクトの可視化
17.8 マイクロサービスの開発の進捗と健全性
できるようになったこと
第18章 プラクティスを合成する
18.1 合成とは何か
18.2 エッセンシャル化されたプラクティスの使用を検討する
18.3 エッセンシャル化によるプラクティスの強化
できるようになったこと
推薦する参考文献
第IV部 大規模で複雑な開発
第19章 スケールの意味
19.1 旅の続き
19.2 スケールの3つの領域
できるようになったこと
第20章 プラクティスのエッセンシャル化
20.1 プラクティスの源泉
20.2 モノリシックな手法と断片化されたプラクティス
20.3 プラクティスのエッセンシャル化
20.4 再利用可能なプラクティスアーキテクチャの確立
できるようになったこと
第21章 大規模で複雑な開発にスケールアップ
21.1 大規模手法
21.2 大規模開発
21.3 大規模開発の開始
21.4 大規模開発の実行
21.5 大規模開発におけるEssenceの価値
できるようになったこと
第22章 さまざまな種類の開発
22.1 プラクティスアーキテクチャからメソッドアーキテクチャへ
22.2 組織におけるプラクティスライブラリの構築
22.3 リーチアウトするときに文化を無視しない
できるようになったこと
第23章 そして未来へ
23.1 プラクティスと手法でアジャイルになる
23.2 チーム全体で手法を所有する
23.3 手法の使用にフォーカスする
23.4 チームの手法を進化させる
できるようになったこと
推薦する参考文献
付録A ソフトウェアとソフトウェアエンジニアリングの歴史
付録B 参考文献
索引