改编者序
译者序
前言
作者简介
第1章 软件与软件工程 1
1.1 软件的本质 3
1.1.1 定义软件 4
1.1.2 软件应用领域 5
1.1.3 遗留软件 6
1.2 定义软件工程学科 6
1.3 软件过程 7
1.3.1 过程框架 7
1.3.2 普适性活动 8
1.3.3 过程的适应性调整 9
1.4 软件工程实践 9
1.4.1 实践的精髓 9
1.4.2 通用原则 10
1.5 这一切是如何开始的 12
1.6 小结 13
习题与思考题 13
第一部分 软件过程
第2章 过程模型 16
2.1 通用过程模型 16
2.2 定义框架活动 18
2.3 明确任务集 19
2.4 惯用过程模型 19
2.4.1 瀑布模型 20
2.4.2 原型开发过程模型 21
2.4.3 演化过程模型 22
2.4.4 统一过程模型 24
2.5 产品和过程 26
2.6 小结 27
习题与思考题 27
第3章 敏捷和敏捷过程 29
3.1 什么是敏捷 30
3.2 敏捷及变更成本 30
3.3 什么是敏捷过程 31
3.3.1 敏捷原则 31
3.3.2 敏捷开发战略 32
3.4 Scrum 32
3.4.1 Scrum团队和制品 34
3.4.2 冲刺规划会议 34
3.4.3 每日Scrum会议 34
3.4.4 冲刺评审会议 35
3.4.5 冲刺回顾 35
3.5 其他敏捷框架 35
3.5.1 XP框架 36
3.5.2 看板法 37
3.5.3 DevOps 38
3.6 小结 39
习题与思考题 40
第4章 推荐的过程模型 41
4.1 需求定义 44
4.2 初步体系结构设计 44
4.3 资源估算 45
4.4 首次原型构建 46
4.5 原型评价 48
4.6 继续与否的决策 49
4.7 原型演化 50
4.7.1 新原型范围 51
4.7.2 构建新原型 51
4.7.3 测试新原型 51
4.8 原型发布 52
4.9 维护发布软件 52
4.10 小结 54
习题与思考题 55
第5章 软件工程的人员方面 56
5.1 软件工程师的特质 56
5.2 软件工程心理学 57
5.3 软件团队 58
5.4 团队结构 59
5.5 社交媒体的影响 60
5.6 全球化团队 60
5.7 小结 61
习题与思考题 61
第二部分 建模
第6章 理解需求 64
6.1 需求工程 65
6.1.1 起始 65
6.1.2 获取 65
6.1.3 细化 66
6.1.4 协商 66
6.1.5 规格说明 66
6.1.6 确认 67
6.1.7 需求管理 67
6.2 建立根基 68
6.2.1 确认利益相关者 68
6.2.2 识别多重观点 68
6.2.3 协作 68
6.2.4 首次提问 69
6.2.5 非功能需求 70
6.2.6 可追溯性 70
6.3 获取需求 70
6.3.1 协作收集需求 70
6.3.2 使用场景 73
6.3.3 获取工作产品 74
6.4 开发用例 74
6.5 构建分析模型 77
6.5.1 分析模型的元素 78
6.5.2 分析模式 79
6.6 协商需求 80
6.7 需求监控 81
6.8 确认需求 81
6.9 小结 81
习题与思考题 82
第7章 需求建模——?一种推荐的方法 83
7.1 需求分析 84
7.1.1 总体目标和原理 84
7.1.2 分析的经验原则 85
7.1.3 需求建模原则 85
7.2 基于场景建模 86
7.2.1 参与者和用户概要文件 86
7.2.2 创建用例 86
7.2.3 编写用例 89
7.3 基于类建模 91
7.3.1 识别分析类 91
7.3.2 定义属性和操作 93
7.3.3 UML类模型 94
7.3.4 类–职责–协作者建模 96
7.4 功能建模 98
7.4.1 过程视图 98
7.4.2 UML顺序图 99
7.5 行为建模 100
7.5.1 识别用例事件 100
7.5.2 UML状态图 101
7.5.3 UML活动图 102
7.6 小结 104
习题与思考题 105
第8章 设计概念 106
8.1 软件工程中的设计 107
8.2 设计过程 109
8.2.1 软件质量指导原则和属性 109
8.2.2 软件设计的演化 110
8.3 设计概念 111
8.3.1 抽象 111
8.3.2 体系结构 112
8.3.3 模式 112
8.3.4 关注点分离 113
8.3.5 模块化 113
8.3.6 信息隐蔽 114
8.3.7 功能独立 114
8.3.8 逐步求精 115
8.3.9 重构 115
8.3.10 设计类 116
8.4 设计模型 118
8.4.1 设计建模原则 119
8.4.2 数据设计元素 120
8.4.3 体系结构设计元素 120
8.4.4 接口设计元素 120
8.4.5 构件级设计元素 122
8.4.6 部署级设计元素 122
8.5 小结 123
习题与思考题 124
......