软件工程(原书第10版) 本书特色
本书是系统介绍软件工程理论的经典教材,共包含四个部分:第壹部分(第1~9章)是对软件工程的一般性介绍,介绍了软件工程的一些重要概念(如软件过程和敏捷方法),描述了基本的软件开发活动(从需求规格说明一直到系统演化);第二部分(第10~14章)关注软件系统可依赖性和信息安全等重要话题;第三部分(第15~21章)介绍更高级的软件工程话题;第四部分(第22~25章)介绍一系列的管理话题,关注技术管理问题。本书适合作为软件和系统工程专业本科生或研究生教材,同时也是软件工程师难得的参考书。
软件工程(原书第10版) 目录
出版者的话 译者序 前言 **部分 软件工程导论 第1章 概述 2 1.1 专业化软件开发 3 1.1.1 软件工程 5 1.1.2 软件工程的多样性 6 1.1.3 互联网软件工程 8 1.2 软件工程职业道德 9 1.3 案例研究 11 1.3.1 胰岛素泵控制系统 12 1.3.2 心理健康治疗病人信息系统 13 1.3.3 野外气象站 14 1.3.4 学校数字化学习环境 15 要点 16 阅读推荐 17 网站 17 练习 17 参考文献 18 第2章 软件过程 19 2.1 软件过程模型 20 2.1.1 瀑布模型 21 2.1.2 增量式开发 23 2.1.3 集成与配置 25 2.2 过程活动 26 2.2.1 软件规格说明 26 2.2.2 软件设计和实现 27 2.2.3 软件确认 29 2.2.4 软件演化 30 2.3 应对变化 31 2.3.1 原型 32 2.3.2 增量式交付 33 2.4 过程改进 34 要点 36 阅读推荐 36 网站 37 练习 37 参考文献 37 第3章 敏捷软件开发 39 3.1 敏捷方法 40 3.2 敏捷开发技术 42 3.2.1 用户故事 43 3.2.2 重构 44 3.2.3 测试先行的开发 45 3.2.4 结对编程 46 3.3 敏捷项目管理 47 3.4 敏捷方法的伸缩 50 3.4.1 敏捷方法的实践问题 51 3.4.2 敏捷和计划驱动的方法 52 3.4.3 面向大型系统的敏捷方法 54 3.4.4 面向整个组织的敏捷方法 56 要点 57 阅读推荐 57 网站 58 练习 58 参考文献 58 第4章 需求工程 60 4.1 功能性需求和非功能性需求 62 4.1.1 功能性需求 63 4.1.2 非功能性需求 64 4.2 需求工程过程 66 4.3 需求抽取 67 4.3.1 需求抽取技术 69 4.3.2 故事和场景 71 4.4 需求规格说明 73 4.4.1 自然语言规格说明 74 4.4.2 结构化规格说明 75 4.4.3 用况 76 4.4.4 软件需求文档 77 4.5 需求确认 79 4.6 需求变更 80 4.6.1 需求管理计划 81 4.6.2 需求变更管理 82 要点 83 阅读推荐 83 网站 84 练习 84 参考文献 85 第5章 系统建模 86 5.1 上下文模型 87 5.2 交互模型 89 5.2.1 用况建模 90 5.2.2 顺序图 91 5.3 结构模型 93 5.3.1 类图 93 5.3.2 泛化 95 5.3.3 聚集 95 5.4 行为模型 96 5.4.1 数据驱动的建模 96 5.4.2 事件驱动的建模 97 5.4.3 模型驱动的工程 99 5.5 模型驱动的体系结构 100 要点 102 阅读推荐 103 网站 103 练习 103 参考文献 104 第6章 体系结构设计 105 6.1 体系结构设计决策 107 6.2 体系结构视图 109 6.3 体系结构模式 110 6.3.1 分层体系结构 111 6.3.2 知识库体系结构 112 6.3.3 客户-服务器体系结构 113 6.3.4 管道和过滤器体系结构 115 6.4 应用体系结构 116 6.4.1 事务处理系统 117 6.4.2 信息系统 118 6.4.3 语言处理系统 119 要点 121 阅读推荐 122 网站 122 练习 122 参考文献 123 第7章 设计和实现 125 7.1 使用UML的面向对象设计 126 7.1.1 系统上下文和交互 126 7.1.2 体系结构设计 128 7.1.3 对象类识别 129 7.1.4 设计模型 130 7.1.5 接口规格说明 133 7.2 设计模式 134 7.3 实现问题 136 7.3.1 复用 137 7.3.2 配置管理 138 7.3.3 宿主机-目标机开发 139 7.4 开源开发 141 7.4.1 开源许可证 142 要点 143 阅读推荐 143 网站 144 练习 144 参考文献 145 第8章 软件测试 146 8.1 开发测试 149 8.1.1 单元测试 150 8.1.2 选择单元测试用例 151 8.1.3 构件测试 153 8.1.4 系统测试 155 8.2 测试驱动的开发 157 8.3 发布测试 159 8.3.1 基于需求的测试 159 8.3.2 场景测试 160 8.3.3 性能测试 161 8.4 用户测试 161 要点 163 阅读推荐 164 网站 164 练习 164 参考文献 165 第9章 软件演化 166 9.1 演化过程 168 9.2 遗留系统 170 9.2.1 遗留系统管理 173 9.3 软件维护 176 9.3.1 维护预测 178 9.3.2 软件再工程 179 9.3.3 软件重构 181 要点 182 阅读推荐 182 网站 183 练习 183 参考文献 183 第二部分 系统可依赖性和信息安全 第10章 可依赖系统 186 10.1 可依赖性属性 187 10.2 社会技术系统 189 10.2.1 规章与守约 191 10.3 冗余和多样性 192 10.4 可依赖的过程 193 10.5 形式化方法与可依赖性 195 要点 197 阅读推荐 198 网站 198 练习 198 参考文献 199 第11章 可靠性工程 200 11.1 可用性和可靠性 202 11.2 可靠性需求 203 11.2.1 可靠性度量 204 11.2.2 非功能性可靠性需求 205 11.2.3 功能性可靠性规格说明 207 11.3 容错体系结构 207 11.3.1 保护性系统 208 11.3.2 自监控系统体系结构 208 11.3.3 N版本编程 210 11.3.4 软件多样性 211 11.4 可靠性编程 212 11.5 可靠性度量 216 11.5.1 运行概况 218 要点 218 阅读推荐 219 网站 219 练习 219 参考文献 220 第12章 安全工程 221 12.1 安全关键系统 222 12.2 安全需求 224 12.2.1 危险识别 225 12.2.2 危险评估 226 12.2.3 危险分析 227 12.2.4 风险降低 229 12.3 安全工程过程 229 12.3.1 安全保证过程 230 12.3.2 形式化验证 232 12.3.3 模型检测 233 12.3.4 静态程序分析 234 12.4 安全案例 235 12.4.1 结构化论证 237 12.4.2 软件的安全论证 238 要点 240 阅读推荐 241 网站 241 练习 241 参考文献 242 第13章 信息安全工程 244 13.1 信息安全和可依赖性 245 13.2 信息安全和组织 248 13.2.1 信息安全风险评估 249 13.3 信息安全需求 249 13.3.1 滥用案例 252 13.4 信息安全系统设计 253 13.4.1 设计风险评估 254 13.4.2 体系结构设计 257 13.4.3 设计准则 259 13.4.4 信息安全系统编程 263 13.5 信息安全测试和保证 263 要点 265 阅读推荐 265 网站 265 练习 266 参考文献 266 第14章 韧性工程 268 14.1 网络安全 270 14.2 社会技术韧性 273 14.2.1 人为错误 275
|