引子第1章 为什么要研究软件工程1 软件危机1 软件不再只是程序2 危机四伏3 软件危机之证2 软件的问题在哪里1 软件特性2 软件业所面临的问题3 软件问题的幽默画3 软件工程的诞生4 软件工程的命题5 软件工程知识体系1 软件工程知识体系的构成2 软件工程要素3 SWEBOK6 现代软件工程1 开源软件运动2 SaaS3 现代软件工程的基本思想7 小结思考题第2章 软件过程1 完整的软件生命周期1 软件的工程过程2 综合的软件过程2 需求工程1 软件需求2 需求开发3 需求管理3 设计1 软件设计的目标2 体系结构设计3 详细设计4 部署设计5 设计评审4 实施1 单元测试2 集成测试3 功能测试4 系统测试5 验收测试5 部署、运行和维护1 系统部署2 软件运行和技术支持3 维护过程6 软件非工程过程1 计划2 质量保证和管理的过程3 项目管理过程4 基础设施和过程改进7 小结思考题第3章 软件工程目标和要求1 软件工程的基本目标2 软件工程的影响要素3 软件工程的业务需求4 软件工程的质量要求1 质量的含义2 客户是质量的焦点3 软件质量的特性4 影响软件产品质量的因素5 软件过程的质量因素6 软件质量的指标5 软件工程的成本要求1 软件工程的固有成本2 软件的可变成本3 软件工程的劣质成本6 软件工程的资源限制7 软件产品集成要求1 传统产业的启示2 软件产品工程8 小结思考题第4章 软件工程思想1 永远不可低估思想的作用2 以人为本3 软件开发不是一门艺术4 向传统工业学习1 客户为导向2 需求分析是基础3 过程决定结果4 持续改进过程5 缺陷预防6 围绕项目开展工作7 验证和确认缺一不可8 以架构设计为中心5 软件工程的例外1 迭代2 敏捷开发思想3 持续构建和集成4 永远的B5 面向对象是一种思想6 软件工程应归为知识管理6 软件工厂思想1 模块化思想2 面向构件思想3 软件复用4 中间件5 自动化无处不在7 小结思考题第5章 软件工程方法1 软件方法论1 系统工程方法论2 软系统方法论3 软件工程方法体系2 用户需求的获取方法3 软件工程的分析方法1 系统分析方法2 问题分析方法3 根本原因分析4 决策分析4 软件工程的设计方法1 原型设计方法2 结构化方法3 面向对象方法4 面向构件设计方法5 面向服务方法6 可视化方法5 软件测试方法1 白盒和黑盒的测试方法2 静态和动态的测试方法3 ALAC测试和随机测试4 自动化测试方法6 小结思考题第6章 软件建模1 一个简单建模的例子2 软件建模1 为什么要建模2 软件建模概述3 如何建模3 元建模4 建模语言和UML1 建模语言的起源2 实体关系建模3 UML4 UML视图5 建模机制6 系统建模语言SysML7 虚拟现实建模语言5 软件过程模型1 瀑布模型的不足2 V模型诠释软件过程3 没有统一天下的RUP4 MSF的过程模型6 小结思考题第7章 软件工程环境1 环境造就软件2 软件工程组织1 软件组织环境2 软件组织的作用3 PSP改进个人能力4 TSP提高团队水平5 完整的组织框架3 软件工程文化1 过程文化2 质量文化4 软件工程基础设施5 过程定义1 软件过程定义的基础2 剪裁标准软件过程的指南和准则6 过程评估和改进1 软件过程评估的目标和期望2 软件过程评估的内容和范围3 软件过程评估的方式和类型4 软件过程评估的方法5 过程改进的IDEAL模型6 过程改进的Raytheon方法7 过程改进实施的原则8 过程改进实施7 小结思考题第8章 软件项目管理1 软件项目管理概述1 软件项目管理的3P2 软件项目管理的实质3 软件项目管理的目标和范围2 软件项目的分类3 制定计划1 软件规模度量2 软件开发的估算模型3 项目工作量估算4 日程和人力资源安排5 项目成本估算4 资源管理5 进度和成本管理1 里程碑控制和关键路径2 项目成本控制3 项目进度的特性及外在关系6 质量管理1 软件质量计划2 软件评审3 缺陷预防4 质量度量7 风险管理1 风险识别2 风险分析和评估8 软件配置管理1 配置管理的基本概念2 版本控制3 变更控制9 项目跟踪和控制10 小结思考题第9章 软件工具1 ICASE2 IDE3 商业工具解决方案1 典型的完整解决方案2 商业IDE3 需求分析和管理工具4 建模和设计工具5 测试工具6 配置管理工具4 开源工具集成的解决方案1 开源代码许可协议2 开源的Web开发框架3 开源的IDE4 PHP及其他语言的IDE5 开源测试工具6 覆盖软件过程的其他开源工具5 小结思考题附录A 软件工程术语中英文对照附录B 项目视图和范围的文档模板参考文献-------------------------------------------------------------------------------------------------------------------------------------本书已经出版了三个版本,累计销售达60万册,成为软件工程领域的经典教材,先后荣获全国普通高等学校工科电子表类专业优秀教材第二等奖、一等奖。为了反映年来软件工程的发展状况,作者主要从下述3个方面对第三版作了精心修改:删掉了一些较陈旧的或较次要的内容,增加了一些较新颖的或较重要发的内容,用UML的概念与符号重新改定了有关面向对象方法学的内容。