书籍详情
软件工程导论
作者:朱少民 编著
出版社:清华大学出版社
出版时间:2009-01-01
ISBN:9787302186236
定价:¥29.00
购买这本书可以去
内容简介
本书围绕软件工程最基本的核心——“质量和生产率”展开,力求通过一些具体的实例来说明软件工程的思想和方法。本书在回答为什么要研究软件工程问题之后,首先系统地给出软件工程的知识体系框架,帮助读者建立起软件工程的完整且清晰的概念。然后深入软件过程、软件工程目标和要求的讨论,全面阐述了软件工程的思想、方法、技术和工具,结合软件工程环境、软件项目管理等内容,使读者坚实地掌握和运用软件工程的知识内涵。本书内容丰富,构思新颖,突破软件工程图书的传统框架,使整个软件工程体系更清晰,从思想和管理出发,自然延伸到流程、方法、工具和环境,重新阐释了软件工程体系。本书吸收了软件工程的最新进展,适应软件即服务(SaaS)的开发模式,增加了相应的内容,符合当今软件工程的实际需求。本书系统性强、通俗易懂,内容丰富且实用,理论和实践有效地结合,可作为高等学校的软件工程专业、计算机软件专业和相关专业的教材,也适合各类软件工程管理人员和技术人员学习。
作者简介
朱少民,男,1964年出生,1988年硕士毕业 、1995年破格提升为副教授,目前担任一家跨国公司的中国区高级质量总监。先后在大学的研究和教学工作、国际一流的跨国企业工作,从事软件开发、测试、QA和过程改进等工作近二十年,先后获得机械工业部、安徽省、合肥市、青岛市等多项科技进步奖。在美国硅谷工作两年。
目录
引子
第1章 为什么要研究软件工程
1.1 软件危机
1.1.1 软件不再只是程序
1.1.2 危机四伏
1.1.3 软件危机之证
1.2 软件的问题在哪里
1.2.1 软件特性
1.2.2 软件业所面临的问题
1.2.3 软件问题的幽默画
1.3 软件工程的诞生
1.4 软件工程的命题
1.5 软件工程知识体系
1.5.1 软件工程知识体系的构成
1.5.2 软件工程要素
1.5.3 SWEBOK
1.6 现代软件工程
1.6.1 开源软件运动
1.6.2 SaaS
1.6.3 现代软件工程的基本思想
1.7 小结
思考题
第2章 软件过程
2.1 完整的软件生命周期
2.1.1 软件的工程过程
2.1.2 综合的软件过程
2.2 需求工程
2.2.1 软件需求
2.2.2 需求开发
2.2.3 需求管理
2.3 设计
2.3.1 软件设计的目标
2.3.2 体系结构设计
2.3.3 详细设计
2.3.4 部署设计
2.3.5 设计评审
2.4 实施
2.4.1 单元测试
2.4.2 集成测试
2.4.3 功能测试
2.4.4 系统测试
2.4.5 验收测试
2.5 部署、运行和维护
2.5.1 系统部署
2.5.2 软件运行和技术支持
2.5.3 维护过程
2.6 软件非工程过程
2.6.1 计划
2.6.2 质量保证和管理的过程
2.6.3 项目管理过程
2.6.4 基础设施和过程改进
2.7 小结
思考题
第3章 软件工程目标和要求
3.1 软件工程的基本目标
3.2 软件工程的影响要素
3.3 软件工程的业务需求
3.4 软件工程的质量要求
3.4.1 质量的含义
3.4.2 客户是质量的焦点
3.4.3 软件质量的特性
3.4.4 影响软件产品质量的因素
3.4.5 软件过程的质量因素
3.4.6 软件质量的指标
3.5 软件工程的成本要求
3.5.1 软件工程的固有成本
3.5.2 软件的可变成本
3.5.3 软件工程的劣质成本
3.6 软件工程的资源限制
3.7 软件产品集成要求
3.7.1 传统产业的启示
3.7.2 软件产品工程
3.8 小结
思考题
第4章 软件工程思想
4.1 永远不可低估思想的作用
4.2 以人为本
4.3 软件开发不是一门艺术
4.4 向传统工业学习
4.4.1 客户为导向
4.4.2 需求分析是基础
4.4.3 过程决定结果
4.4.4 持续改进过程
4.4.5 缺陷预防
4.4.6 围绕项目开展工作
4.4.7 验证和确认缺一不可
4.4.8 以架构设计为中心
4.5 软件工程的例外
4.5.1 迭代
4.5.2 敏捷开发思想
4.5.3 持续构建和集成
4.5.4 永远的Beta
4.5.5 面向对象是一种思想
4.5.6 软件工程应归为知识管理
4.6 软件工厂思想
4.6.1 模块化思想
4.6.2 面向构件思想
4.6.3 软件复用
4.6.4 中间件
4.6.5 自动化无处不在
4.7 小结
思考题
第5章 软件工程方法
5.1 软件方法论
5.1.1 系统工程方法论
5.1.2 软系统方法论
5.1.3 软件工程方法体系
5.2 用户需求的获取方法
5.3 软件工程的分析方法
5.3.1 系统分析方法
5.3.2 问题分析方法
5.3.3 根本原因分析
5.3.4 决策分析
5.4 软件工程的设计方法
5.4.1 原型设计方法
5.4.2 结构化方法
5.4.3 面向对象方法
5.4.4 面向构件设计方法
5.4.5 面向服务方法
5.4.6 可视化方法
5.5 软件测试方法
5.5.1 白盒和黑盒的测试方法
5.5.2 静态和动态的测试方法
5.5.3 ALAC测试和随机测试
5.5.4 自动化测试方法
5.6 小结
思考题
第6章 软件建模
6.1 一个简单建模的例子
6.2 软件建模
6.2.1 为什么要建模
6.2.2 软件建模概述
6.2.3 如何建模
6.3 元建模
6.4 建模语言和UML
6.4.1 建模语言的起源
6.4.2 实体关系建模
6.4.3 UML
6.4.4 UML视图
6.4.5 建模机制
6.4.6 系统建模语言SysML
6.4.7 虚拟现实建模语言
6.5 软件过程模型
6.5.1 瀑布模型的不足
6.5.2 V模型诠释软件过程
6.5.3 没有统一天下的RUP
6.5.4 MSF的过程模型
6.6 小结
思考题
第7章 软件工程环境
7.1 环境造就软件
7.2 软件工程组织
7.2.1 软件组织环境
7.2.2 软件组织的作用
7.2.3 PSP改进个人能力
7.2.4 TSP提高团队水平
7.2.5 完整的组织框架
7.3 软件工程文化
7.3.1 过程文化
7.3.2 质量文化
7.4 软件工程基础设施
7.5 过程定义
7.5.1 软件过程定义的基础
7.5.2 剪裁标准软件过程的指南和准则
7.6 过程评估和改进
7.6.1 软件过程评估的目标和期望
7.6.2 软件过程评估的内容和范围
7.6.3 软件过程评估的方式和类型
7.6.4 软件过程评估的方法
7.6.5 过程改进的IDEAL模型
7.6.6 过程改进的Raytheon方法
7.6.7 过程改进实施的原则
7.6.8 过程改进实施
7.7 小结
思考题
第8章 软件项目管理
8.1 软件项目管理概述
8.1.1 软件项目管理的3P
8.1.2 软件项目管理的实质
8.1.3 软件项目管理的目标和范围
8.2 软件项目的分类
8.3 制定计划
8.3.1 软件规模度量
8.3.2 软件开发的估算模型
8.3.3 项目工作量估算
8.3.4 日程和人力资源安排
8.3.5 项目成本估算
8.4 资源管理
8.5 进度和成本管理
8.5.1 里程碑控制和关键路径
8.5.2 项目成本控制
8.5.3 项目进度的特性及外在关系
8.6 质量管理
8.6.1 软件质量计划
8.6.2 软件评审
8.6.3 缺陷预防
8.6.4 质量度量
8.7 风险管理
8.7.1 风险识别
8.7.2 风险分析和评估
8.8 软件配置管理
8.8.1 配置管理的基本概念
8.8.2 版本控制
8.8.3 变更控制
8.9 项目跟踪和控制
8.10 小结
思考题
第9章 软件工具
9.1 ICASE
9.2 IDE
9.3 商业工具解决方案
9.3.1 典型的完整解决方案
9.3.2 商业IDE
9.3.3 需求分析和管理工具
9.3.4 建模和设计工具
9.3.5 测试工具
9.3.6 配置管理工具
9.4 开源工具集成的解决方案
9.4.1 开源代码许可协议
9.4.2 开源的Web开发框架
9.4.3 开源的IDE
9.4.4 PHP及其他语言的IDE
9.4.5 开源测试工具
9.4.6 覆盖软件过程的其他开源工具
9.5 小结
思考题
附录A 软件工程术语中英文对照
附录B 项目视图和范围的文档模板
参考文献
第1章 为什么要研究软件工程
1.1 软件危机
1.1.1 软件不再只是程序
1.1.2 危机四伏
1.1.3 软件危机之证
1.2 软件的问题在哪里
1.2.1 软件特性
1.2.2 软件业所面临的问题
1.2.3 软件问题的幽默画
1.3 软件工程的诞生
1.4 软件工程的命题
1.5 软件工程知识体系
1.5.1 软件工程知识体系的构成
1.5.2 软件工程要素
1.5.3 SWEBOK
1.6 现代软件工程
1.6.1 开源软件运动
1.6.2 SaaS
1.6.3 现代软件工程的基本思想
1.7 小结
思考题
第2章 软件过程
2.1 完整的软件生命周期
2.1.1 软件的工程过程
2.1.2 综合的软件过程
2.2 需求工程
2.2.1 软件需求
2.2.2 需求开发
2.2.3 需求管理
2.3 设计
2.3.1 软件设计的目标
2.3.2 体系结构设计
2.3.3 详细设计
2.3.4 部署设计
2.3.5 设计评审
2.4 实施
2.4.1 单元测试
2.4.2 集成测试
2.4.3 功能测试
2.4.4 系统测试
2.4.5 验收测试
2.5 部署、运行和维护
2.5.1 系统部署
2.5.2 软件运行和技术支持
2.5.3 维护过程
2.6 软件非工程过程
2.6.1 计划
2.6.2 质量保证和管理的过程
2.6.3 项目管理过程
2.6.4 基础设施和过程改进
2.7 小结
思考题
第3章 软件工程目标和要求
3.1 软件工程的基本目标
3.2 软件工程的影响要素
3.3 软件工程的业务需求
3.4 软件工程的质量要求
3.4.1 质量的含义
3.4.2 客户是质量的焦点
3.4.3 软件质量的特性
3.4.4 影响软件产品质量的因素
3.4.5 软件过程的质量因素
3.4.6 软件质量的指标
3.5 软件工程的成本要求
3.5.1 软件工程的固有成本
3.5.2 软件的可变成本
3.5.3 软件工程的劣质成本
3.6 软件工程的资源限制
3.7 软件产品集成要求
3.7.1 传统产业的启示
3.7.2 软件产品工程
3.8 小结
思考题
第4章 软件工程思想
4.1 永远不可低估思想的作用
4.2 以人为本
4.3 软件开发不是一门艺术
4.4 向传统工业学习
4.4.1 客户为导向
4.4.2 需求分析是基础
4.4.3 过程决定结果
4.4.4 持续改进过程
4.4.5 缺陷预防
4.4.6 围绕项目开展工作
4.4.7 验证和确认缺一不可
4.4.8 以架构设计为中心
4.5 软件工程的例外
4.5.1 迭代
4.5.2 敏捷开发思想
4.5.3 持续构建和集成
4.5.4 永远的Beta
4.5.5 面向对象是一种思想
4.5.6 软件工程应归为知识管理
4.6 软件工厂思想
4.6.1 模块化思想
4.6.2 面向构件思想
4.6.3 软件复用
4.6.4 中间件
4.6.5 自动化无处不在
4.7 小结
思考题
第5章 软件工程方法
5.1 软件方法论
5.1.1 系统工程方法论
5.1.2 软系统方法论
5.1.3 软件工程方法体系
5.2 用户需求的获取方法
5.3 软件工程的分析方法
5.3.1 系统分析方法
5.3.2 问题分析方法
5.3.3 根本原因分析
5.3.4 决策分析
5.4 软件工程的设计方法
5.4.1 原型设计方法
5.4.2 结构化方法
5.4.3 面向对象方法
5.4.4 面向构件设计方法
5.4.5 面向服务方法
5.4.6 可视化方法
5.5 软件测试方法
5.5.1 白盒和黑盒的测试方法
5.5.2 静态和动态的测试方法
5.5.3 ALAC测试和随机测试
5.5.4 自动化测试方法
5.6 小结
思考题
第6章 软件建模
6.1 一个简单建模的例子
6.2 软件建模
6.2.1 为什么要建模
6.2.2 软件建模概述
6.2.3 如何建模
6.3 元建模
6.4 建模语言和UML
6.4.1 建模语言的起源
6.4.2 实体关系建模
6.4.3 UML
6.4.4 UML视图
6.4.5 建模机制
6.4.6 系统建模语言SysML
6.4.7 虚拟现实建模语言
6.5 软件过程模型
6.5.1 瀑布模型的不足
6.5.2 V模型诠释软件过程
6.5.3 没有统一天下的RUP
6.5.4 MSF的过程模型
6.6 小结
思考题
第7章 软件工程环境
7.1 环境造就软件
7.2 软件工程组织
7.2.1 软件组织环境
7.2.2 软件组织的作用
7.2.3 PSP改进个人能力
7.2.4 TSP提高团队水平
7.2.5 完整的组织框架
7.3 软件工程文化
7.3.1 过程文化
7.3.2 质量文化
7.4 软件工程基础设施
7.5 过程定义
7.5.1 软件过程定义的基础
7.5.2 剪裁标准软件过程的指南和准则
7.6 过程评估和改进
7.6.1 软件过程评估的目标和期望
7.6.2 软件过程评估的内容和范围
7.6.3 软件过程评估的方式和类型
7.6.4 软件过程评估的方法
7.6.5 过程改进的IDEAL模型
7.6.6 过程改进的Raytheon方法
7.6.7 过程改进实施的原则
7.6.8 过程改进实施
7.7 小结
思考题
第8章 软件项目管理
8.1 软件项目管理概述
8.1.1 软件项目管理的3P
8.1.2 软件项目管理的实质
8.1.3 软件项目管理的目标和范围
8.2 软件项目的分类
8.3 制定计划
8.3.1 软件规模度量
8.3.2 软件开发的估算模型
8.3.3 项目工作量估算
8.3.4 日程和人力资源安排
8.3.5 项目成本估算
8.4 资源管理
8.5 进度和成本管理
8.5.1 里程碑控制和关键路径
8.5.2 项目成本控制
8.5.3 项目进度的特性及外在关系
8.6 质量管理
8.6.1 软件质量计划
8.6.2 软件评审
8.6.3 缺陷预防
8.6.4 质量度量
8.7 风险管理
8.7.1 风险识别
8.7.2 风险分析和评估
8.8 软件配置管理
8.8.1 配置管理的基本概念
8.8.2 版本控制
8.8.3 变更控制
8.9 项目跟踪和控制
8.10 小结
思考题
第9章 软件工具
9.1 ICASE
9.2 IDE
9.3 商业工具解决方案
9.3.1 典型的完整解决方案
9.3.2 商业IDE
9.3.3 需求分析和管理工具
9.3.4 建模和设计工具
9.3.5 测试工具
9.3.6 配置管理工具
9.4 开源工具集成的解决方案
9.4.1 开源代码许可协议
9.4.2 开源的Web开发框架
9.4.3 开源的IDE
9.4.4 PHP及其他语言的IDE
9.4.5 开源测试工具
9.4.6 覆盖软件过程的其他开源工具
9.5 小结
思考题
附录A 软件工程术语中英文对照
附录B 项目视图和范围的文档模板
参考文献
猜您喜欢