目录
第1篇 软件工程技术
第1章 软件生存期过程和软件工程
1.1软件生存期及其模型
1.1.1软件生存期
1.1.2软件生存期模型
1.2软件生存期过程
1.3软件工程的基本目标
1.3.1软件工程的定义
1.3.2软件工程项目的基本目标
第2章 软件需求分析
2.1软件需求分析的任务
2.2需求分析的过程
2.3软件需求分析的原则
2.4分析员和用户的责任
2.5软件需求分析方法
2.6软件需求分析工具
2.6.1SADT
2.6.2PSL/PSA
2.7面对确定需求的困难应采取的对策
2.7.1需求工程和确定需求的困难
2.7.2软件开发人员面对确定需求的困难应采取的对策
第3章 软件复用技术
3.1软件复用的概述
3.1.1软件复用的宗旨
3.1.2软件复用的实际效益
3.1.3软件复用技术的发展概况
3.2软件开发过程
3.2.1以往的软件开发技术不能满足复用的需要
3.2.2软件复用需要改变软件开发过程
3.2.3领域工程和应用系统工程
3.3构件技术
3.3.1应用系统和应用系统族
3.3.2应用系统与构件
3.3.3构件系统
3.3.4构件系统的门面
3.3.5可变性和专门化
3.3.6打包和编写文档
3.4分层式体系结构
3.4.1软件体系结构
3.4.2良好的软件体系结构的重要作用
3.4.3分层式的体系结构
3.5渐进地实施复用和复用单位的组织结构
3.5.1软件复用需要改变开发单位的组织结构
3.5.2渐进地系统地采用复用技术
3.5.3充分利用可共享复用成果
3.5.4实施系统复用需要遵循的原则
第4章 软件测试
4.1软件测试基础
4.1.1什么是软件测试
4.1.2软件测试的目的和原则
4.1.3软件测试的对象
4.1.4测试信息流
4.1.5测试与软件开发各阶段的关系
4.2两种类型的测试
4.2.1黑盒测试
4.2.2白盒测试
4.3白盒测试的测试用例设计
4.3.1逻辑覆盖
4.3.2基本路径测试
4.4黑盒测试的测试用例设计
4.4.1等价类划分
4.4.2边界值分析
4.4.3错误推测法
4.4.4因果图
4.4.5功能图
4.5软件测试的策略
4.5.1单元测试
4.5.2组装测试
4.5.3确认测试
4.5.4系统测试
4.5.5测试的步骤及相应的测试种类
4.6程序的静态分析方法
4.6.1对程序的静态分析
4.6.2人工测试
4.7软件测试工具
4.7.1静态分析工具
4.7.2动态测试工具
4.7.3测试数据自动生成工具
4.7.4模块测试台
4.7.5测试合成环境
第5章 软件维护与软件再工程
5.1软件维护的概念
5.1.1软件维护的定义
5.1.2影响维护工作量的因素
5.1.3软件维护的策略
5.1.4维护成本
5.2软件维护活动
5.2.1维护机构
5.2.2软件维护申请报告
5.2.3软件维护工作流程
5.2.4维护档案记录
5.2.5维护评价
5.3软件维护的实施
5.3.1分析和理解程序
5.3.2修改程序
5.3.3重新验证程序
5.4软件可维护性
5.4.1软件可维护性的定义
5.4.2可维护性的度量
5.5提高可维护性的方法
5.5.1建立明确的软件质量目标和优先级
5.5.2使用提高软件质量的技术和工具
5.5.3进行明确的质量保证审查
5.5.4选择可维护的程序设计语言
5.5.5改进程序的文挡
5.5.6开发软件时考虑到维护
5.6软件再工程
5.6.1什么是软件再工程
5.6.2为什么要实施软件再工程
5.6.3软件再工程技术
5.6.4软件再工程的风险
第6章 软件工具与软件开发环境
6.1软件工具
6.1.1概述
6.1.2软件开发工具
6.1.3软件维护工具
6.1.4软件管理和软件支持工具
6.1.5软件开发工具的评价和选择
6.2软件开发环境
6.2.1概述
6.2.2集成型软件开发环境
6.2.3ECMA/NIST集成型软件开发环境参考模型
6.2.4PCTE:可移植公共工具环境
6.2.5青鸟系统
第2篇 软件质量管理与质量保证
第7章 软件质量
7.1软件危机尚未过去
7.1.1软件发展远远落后于硬件
7.1.2软件质量问题提出的挑战
7.1.3有银弹吗?
7.2软件质量问题的根源
7.2.1软件不同于硬件或其他产品
7.2.2影响软件质量的因素
7.3什么是软件质量
7.3.1通常的理解
7.3.2McCall的质量特性
7.3.3国际标准和国家标准规定的质量特性
7.4产品质量与过程质量
第8章 软件质量保证
8.1软件质量保证概述
8.1.1质量保证的概念
8.1.2软件质量保证的主要任务
8.1.3质量保证与检验
8.2软件质量保证体系
8.3质量保证的实施
8.3.1质量目标与度量
8.3.2质量度量方法
8.3.3软件质量管理小组
8.4软件的质量设计
8.4.1质量特性转换为软件的内部结构
8.4.2软件的质量展开
8.5技术评审
8.5.1设计质量的评审
8.5.2程序质量的评审
8.6软件可靠性
8.6.1软件生存期与软件寿命的关系
8.6.2软件可靠性的定义
8.6.3软件可靠性的主要指标
8.7测试中的可靠性分析
8.7.1推测错误的产生频度
8.7.2估算软件中错误总数E的方法
8.7.3测试精确度和测试覆盖度的评价
8.7.4测试开始时的预测模型
8.8软件容错技术
8.8.1什么是容错软件
8.8.2容错的一般方法
8.8.3容错软件的设计过程
8.8.4软件的容错系统结构
8.9软件过程改进
8.9.1软件过程改进的含意和现有的方案
8.9.2软件过程改进模式
第9章 软件工程标准化和软件文档
9.1什么是软件工程标准
9.2软件工程标准化的意义
9.3软件工程标准的制订与推行
9.4软件工程标准的层次
9.5软件工程国家标准
9.6在开发机构中推行软件工程标准
9.7软件文档
9.7.1软件文档的作用和分类
9.7.2对文档编制的质量要求
9.7.3文档的管理和维护
第10章 在软件开发机构中贯彻ISO9000国际标准
10.1质量管理、质量认证与质量审核
10.1.1质量管理
10.1.2质量认证与审核
10.2ISO 9000国际标准简介
10.2.1ISO 9000标准概述
10.2.2ISO 9000标准的特点
10.2.3ISO 9000标准的科学依据
10.3ISO 9000族标准的构成
10.4质量体系
10.5ISO 9001标准的主要内容
10.6ISO 9000-3标准简介
10.6.1理解标准与指南的关系
10.6.2理解IS09000-3对20个质量体系要素的解释
10.6.3理解ISO9000-3与ISO/IEC12207两个标准之间的关系
10.7软件开发机构为什么要按ISO9000标准建立并实施质量保证体系
10.7.1软件质量缺陷不可能完全避免
10.7.2技术上解决软件质量问题的局限性
10.7.3为什么软件开发机构要加强质量管理
10.7.4为什么软件开发机构要开展ISO 9000质量体系认证工作
10.8软件开发机构实施ISO 9000标准应做的工作
10.9若干认识问题
第11章 软件过程能力评估
11.1软件过程评估的意义
11.1.1软件过程改进的需要
11.1.2降低软件风险的需要
11.2软件过程评估方法的产生
11.3软件能力成熟度模型CMM简介
11.3.1模型概要
11.3.2模型的产生和原理
11.3.3不成熟和成熟软件组织的比较
11.3.4软件过程成熟度的5个等级
11.3.5跳越成熟度等级
11.3.6关键过程域
11.3.7关键实践
11.3.8CMM的应用
11.3.9软件过程成熟度提问单
11.3.10对CMM1.1的几点考虑
11.4软件过程评估的国际标准概述
11.4.1软件过程评估国际标准的制定
11.4.2软件过程评估标准的组成
11.4.3参考模型
11.4.4评估框架
11.4.5软件过程评估标准的特点
第3篇 软件工程管理
第12章 软件工程项目管理
12.1软件工程项目管理的任务
12.2软件项目估算
12.2.1针对估算的考虑
12.2.2软件项目计划的目标
12.2.3软件的范围
12.2.4软件开发中的资源
12.2.5软件项目估算
12.2.6分解技术
12.3软件开发成本估算
12.3.1软件开发成本估算方法
12.3.2专家判定技术
12.3.3软件开发成本估算的经验模型
12.3.4自动估算工具
12.4风险分析
12.4.1风险识别
12.4.2风险估计
12.4.3风险评价
12.4.4风险驾驭和监控
12.5进度安排
12.5.1软件开发小组人数与软件生产率
12.5.2任务的确定与并行性
12.5.3制定开发进度计划
12.5.4进度安排的图形方法
12.5.5项目的追踪和控制
12.6软件项目的组织与计划
12.6.1软件项目管理的特点
12.6.2制定计划
第13章 软件度量
13.1软件度量的概念
13.2功能点方法计算软件的大小
13.3程序环路复杂度计算
13.4霍尔斯特德(Halstead)程序工作量计算
13.5程序风格度量
第14章 软件配置管理
14.1什么是软件配置管理
14.1.1软件配置管理的几种定义
14.1.2什么是软件配置项
14.1.3软件配置管理的任务
14.2软件配置标识
14.3变更管理
14.4版本控制
14.4.1版本管理和发行管理
14.4.2版本标识
14.4.3发行管理
14.5系统建立
14.6配置审核
14.7配置状态报告
第15章 软件人员组织与管理
15.1软件项目的人员组织与管理
15.1.1项目组的组织结构
15.1.2人员配备
15.1.3指导与检验
15.2软件人员能力成熟度模型
15.2.1引人软件人员能力成熟度模型的必要性
15.2.2软件人员能力成熟度模型的发展溯源
15.2.3软件人员能力成熟度模型简介
15.2.4软件人员能力成熟度模型的结构
15.2.5成熟度级别和关键过程域
15.2.6主题
15.2.7关键过程域的目标
15.2.8软件人员能力成熟度模型的应用
15.3软件工程师道德和职业活动规范
15.3.1引言
15.3.2软件开发项目的特点、影响及其与人的关系
15.3.3规范的内容
15.3.4职业道德教育的作用及其重要性
第16章 软件知识产权保护
16.1软件知识产权的保护必须依法实施
16.1.1知识产权的法律框架
16.1.2我国保护计算机软件的法律制度
16.2计算机软件著作权
16.2.1计算机软件著作权的主体
16.2.2计算机软件著作权的客体
16.2.3计算机软件著作权的权利内容
16.2.4计算机软件著作权归属
16.2.5软件著作权的行使
16.2.6软件专有权利的限制
16.3计算机软件著作权登记管理
16.3.1计算机软件著作权登记制度的法律功能和作用
16.3.2计算机软件著作权登记的几种主要形式
16.4计算机软件著作权侵权与法律保护
16.4.1软件著作权侵权行为类型
16.4.2侵犯软件著作权的法律责任
16.4.3法定的例外情况
16.5计算机软件的商业秘密与反不正当竞争
16.5.1商业秘密的法律特征
16.5.2计算机软件与商业秘密
16.5.3侵害计算机软件商业秘密的不正当行为与法律责任
参考文献