《软件工程的本质:运用SEMAT内核》由SEMAT的创始人和思想贡献者编写,阐述了软件工程的本质,介绍了SEMAT内核,分享了运用SEMAT内核解决具体问题的案例和有效性。它是SEMAT新标准的纲领性著作,也是一本引导我们重新认识软件、软件工程和人的关系的书,适合软件从业人员、软件工程学者、教师和学生阅读、参考和学习。
译者序
Robert Martin作序
Bertrand Meyer作序
Richard Soley作序
前言
致谢
第一部分 内核思想解释
第1章 简要介绍如何使用内核
1.1 为什么开发优秀软件具有很大的挑战性
1.2 认识软件工程的本质:内核
1.3 应用内核处理特定挑战:一个例子
1.3.1 进入问题的要点
1.3.2 处理挑战
1.4 学习如何使用内核处理开发挑战
第2章 关于内核的一些更多的细节
2.1 如何使用内核处理特定挑战:一个例子
2.2 阿尔法介绍
2.3 阿尔法使用状态帮助团队取得进展
2.4 更多关于内核的内容
第3章 纵览完整的内核
3.1 内核的组织结构
3.2 对于进展和演变是本质的事物:阿尔法
3.3 对于做什么是本质的事情:活动空间
3.4 所需的本质功能:能力
3.5 更多关于内核的内容
第4章 利用卡片使内核阿尔法变得具体
4.1 使用卡片帮助处理特定挑战:一个例子
4.2 使内核活跃起来
第5章 通过实践了解更多有关内核的细节
5.1 使实践变得清晰
5.2 实践的明确程度
5.3 从实践中构建方法
5.4 学习方法和实践
第6章 内核可以为你做什么
6.1 开发卓越软件
6.2 成长
6.3 学习
6.4 演进
延伸阅读
第二部分 使用内核运行一次迭代
第7章 使用内核运行迭代:计划-执行-检查-调整
7.1 使用的术语
7.2 计划-执行-检查-调整
7.3 设定场景
7.4 下几章的重点
第8章 计划一次迭代
8.1 用阿尔法状态指导计划
8.1.1 确定当前的进展
8.1.2 确定下一步工作目标
8.1.3 确定如何完成目标
8.2 确定当前状态
8.3 确定下一个状态
8.4 确定如何达到下一组状态
8.5 内核如何帮助你进行迭代计划
第9章 执行和检查迭代
9.1 使用内核执行和检查迭代
9.2 执行和检查我们故事中的迭代
9.3 内核如何帮助你执行和检查迭代
第10章 调整工作方式
10.1 使用内核调整工作方式
10.2 调整我们故事中的工作方式
10.3 内核如何帮助你调整工作方式
10.3.1 明确工作方式
10.3.2 改进工作方式
第11章 使用明确的需求项状态运行一次迭代
11.1 使用明确的需求项完成工作
11.2 计划我们故事中的迭代
11.3 进行我们故事中的另一次迭代
11.4 调整我们故事中的工作方式
11.5 讨论
延伸阅读
第三部分 使用内核运行一个软件开发工作
第12章 运行一个软件开发工作:从想法到运营
12.1 我们故事中的人物和他们一路上所面临的挑战
12.2 了解组织环境
第13章 创建业务案例
13.1 准备开始我们的故事
13.2 了解机会和涉众
13.3 了解解决方案
13.4 准备工作
13.5 制定一个概要计划
13.6 建立时间进度表
13.7 内核如何帮助你开始
13.7.1 拥抱你的涉众
13.7.2 指导开发
13.7.3 预先计划
第14章 开发系统
14.1 构建骨架系统--让它能工作
14.2 涉众参与
14.3 开始开发
14.4 建立一个各方都认可的工作方式
14.5 使骨架系统可用--让系统工作得更好
14.6 保持涉众参与
14.7 演化一个可用的系统
14.8 找到一个好的工作方式
14.9 演进为可部署的解决方案--结束工作
14.10 通过验收
14.11 准备交付
14.12 完成!完成开发工作
14.13 内核如何帮助你开发卓越的软件
第15章 运营软件
15.1 设置场景
15.2 上线--成功地部署系统
15.3 部署系统
15.4 两个团队之间的移交
15.5 支持系统直到其退役
15.6 我们的故事结束
延伸阅读
第四部分 利用内核来规模化开发
第16章 规模化意味着什么
第17章 细化内核来提供更多细节
17.1 对于缺乏经验的成员将"实践"变得精确
17.2 实例:需求获取的实践
17.3 实例:验收测试的实践
17.4 了解实践是如何协同工作的
17.5 "明确的实践"的价值
第18章 拓展内核来适配不同类型软件开发
18.1 商定需要使用的实践
18.2 适应你的开发生命周期
18.3 在开发过程中增量式地建立一个方法
18.4 大型组织中的方法
18.5 让团队控制他们的方法
第19章 向上规模化内核来适用大型复杂软件开发
19.1 大型软件开发的例子
19.2 利用阿尔法来组织工作
19.3 利用阿尔法进行可视化开发
19.4 利用阿尔法来协调开发团队
19.5 让团队成员参与内核的规模化
延伸阅读
第五部分 内核如何改变你在工作中运用方法的方式
第20章 考虑与不考虑方法
20.1 不停地思考方法
20.2 做比说强
第21章 敏捷运用方法
21.1 是整个团队而不是小部分人拥有方法
21.2 关注于方法使用胜过综合方法描述
21.3 不断演化团队的方法而不是保持方法固定不变
第六部分 真正新在哪
第22章 重建方法
22.1 并不缺少方法,缺少的是基础--内核
22.2 内核重视实践性
22.3 内核是可付诸实施的、可扩展的
第23章 在方法上应用关注点分离原则
23.1 将内核从实践中分离
23.2 将阿尔法从工作产品中分离
23.3 将本质从细节中分离
第24章 关键区分
24.1 方法上的创新
24.2 方便软件开发团队和专业人员的实用工具
第七部分 结语
第25章 这并不是终点
第26章 ……,但是现在可能是序幕的结束
第27章 愿景实现之时
27.1 对于软件专业人员
27.2 对于产业界
27.3 对于学术界
27.4 令人激动的未来
延伸阅读
附录
附录A 概念和符号
附录B 本书所涉及内容相比内核的差异
B.1 内核和本书都包含的内容
B.2 内核不包含但本书包含的内容
B.3 内核包含但本书不包含的内容
附录C 参考文献
C.1 SEMAT工作文献
C.2 SEMAT:其他文档和参考文献
C.3 其他参考文献
作者介绍
业内人士对本书的评价
索引