内容简介
第一部分 软件工程化基础
第1章 绪论
1.1软件无处不在
1.2计算机器的发展
1.2.1手动计算装置
1.2.2自动计算装置
1.2.3图灵理论计算机
1.2.4 电子计算机的大规模生产和应用
1.3软件艺术、工程与产业
1.3.1从程序到软件
1.3.2程序设计艺术
1.3.3软件工程侧面
1.3.4软件产业化
1.4软件工程历程
1.5本书的组织
参考文献
第2章 基于计算机的系统
2.1基于计算机的系统组成和特征
2.1.1系统的组成
2.1.2系统故障
2.1.3硬件的连续性
2.1.4软件的离散性
2.1.5人的特征与管理
2.1.6固件与嵌入式系统
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.5本章小结
参考文献
第3章 软件开发过程
3.1程序开发基本过程
3.1.1一个简单的程序开发例子
3.1.2程序开发库和复用
3.2从程序开发到软件工程化过程
3.2.1软件开发的活动
3.2.2大型软件开发的管理
3.3中间产品驱动的过程
3.3.1中间产品驱动的过程
3.3.2中间产品的意义
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与黑客方法的差别
3.5.5方法的优点
3.6计算机辅助与模型驱动的软件工程
3.6.1计算机辅助软件工程与工具
3.6.2模型驱动的软件工程
3.7本章小结
参考文献
第4章 软件质量
4.1软件质量定义
4.1.1程序的类型划分
4.1.2质量定义
4.2质量观点
4.2.1 Garvin的质量分类
4.2.2 Braa的质量侧面观点
4.2.3项目经理们的质量看法
4.3软件质量模型的归纳
4.4 ISO) 9126的质量定义
4.4.1软件产品质量模型
4.4.2产品质量属性分解
4.4.3部件和服务项的质量评价
4.5软件过程质量
4.6本章小结
参考文献
第5章 系统可信赖性
5.1可信赖性概念
5.1.1可信赖性的起因
5.1.2可信赖性的定义
5.1.3可信赖性的属性
5.2可信赖性方法和技术
5.2.1开发可信赖系统的基本方法
5.2.2可信赖性的属性讨论
5.3可靠性和可用性
5.4安全性原则
5.4.1 ALARP安全原则
5.4.2软件安全证据考虑
5.4.3基于开发过程的证据
5.5密安性原则
5.5.1软件密安性的威胁
5.5.2密安性的误区
5.5.3密安性的公开原则
5.5.4系统密安性的模型
5.5.5产品的密安性需求与认证
5.6生存性
5.7本章小结
参考文献
第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.3点击同意协议
6.2.4二次开发的皇税协议
6.2.5开源协议
6.2.6 GNU、BSD、MIT协议
6.2.7免许可证软件
6.2.8国际间的软件版权
6.3软件项目采购模式
6.3.1软件采购和外包形式
6.3.2软件采购过程
6.3.3软件采购的主要问题
6.4 OTS的采购和使用
6.4.1一般问题
6.4.2安全性考虑
6.4.3密安性考虑
6.5本章小结
参考文献
第7章 软件运维与服务过程
7.1引言
7.2软件移交与验收过程
7.3软件支持过程
7.3.1软件维护与传统产品维护
7.3.2 Lehman定律
7.3.3维护成本
7.4软件支持过程与活动
7.4.1软件修改过程
7.4.2软件支持活动
7.5软件支持方式与能力
7.5.1软件支持方式与基本要求
7.5.2针对软件可使用性的支持
7.5.3针对运行能力的支持
7.6独立的软件支持
7.6.1软件支持的原则
7.6.2系统部署前后的支持工作
7.6.3采购对支持工作的要求
7.7本章小结
参考文献
第二部分 各阶段的工程化
第8章 需求工程
8.1引言
8.2需求类型
8.2.1需求分类
8.2.2需求分析目标和维度
8.2.3需求内涵
8.3需求分析过程
8.4需求文档的编写
8.4.1需求文档的结构化
8.4.2需求描述的语言
8.4.3需求进一步量化
8.5需求文档的质量度量
8.6需求管理
8.6.1需求管理的起因
8.6.2需求的跟踪
8.6.3需求变更管理
8.7本章小结
参考文献
第9章 建模与图示化表达
9.1图示化与自然语言
9.1.1图的作用
9.1.2自然语言和文字的构造原则
9.2传统的图示化建模
9.2.1系统周境图示化表达
9.2.2数据流图表达
9.2.3功能结构图表达
9.2.4实体-关系图表达
9.2.5事务定义与性能分析
9.3用户角色表达
9.3.1用例图
9.3.2泳道图
9.4静态图模型
9.4.1部署图
9.4.2对象和类图
9.4.3类之间的关联
9.5活动的建模
9.5.1活动的表达
9.5.2泳道与活动的结合
9.6交互的图示化模型
9.6.1消息序列图
9.6.2通信图
9.6.3交互概要图
9.6.4时序图
9.7状态机模型
9.7.1 Mealy机
9.7.2 Moore机
9.7.3 UML中的状态机图示化表达
9.8可信赖性分析与建模
9.8.1可信赖性分析框架和过程
9.8.2可信赖性需求分析的例子
9.9本章小结
参考文献
第10章 体系结构设计
10.1从系统分解到体系结构设计
10.2体系结构的必要性和定义
10.2.1为何要讨论体系结构
10.2.2体系结构定义
10.2.3体系结构的重要性
10.3体系结构设计过程
10.3.1体系结构视角
10.3.2设计过程
10.4分析体系结构需求
10.4.1识别体系结构需求
10.4.2体系结构需求的例子
10.4.3体系结构需求的排序
10.5体系结构设计方法
10.5.1分割法
10.5.2抽象法
10.5.3压缩法
10.5.4规范组合法
10.5.5复制法
10.5.6资源共享法
10.5.7设计方法对质量的影响
10.6体系结构设计文档
10.7体系结构的评价
10.7.1场景描述方法
10.7.2原型评价法
10.7.3效用树法
10.7.4评价过程
10.8本章小结
参考文献
第11章 体系结构模式与应用
11.1体系结构的分级
11.1.1概念级体系结构
11.1.2模块级体系结构
11.1.3运行级体系结构
11.1.4代码级体系结构
11.1.5体系结构之间的关系
11.2体系结构描述语言
11.2.1 ADL的基本要求
11.2.2 AADL
11.2.3用UML描述各级体系结构
11.3常见的体系结构模式
11.3.1分层视角
11.3.2数据流动视角
11.3.3数据集中视角
11.3.4调用视角
11.3.5消息传递视角
11.3.6分布式与交互视角
11.4应用软件框架及使用
11.4.1软件框架的类型
11.4.2 Web应用框架——一个广泛应用的例子
11.4.3采用框架的应用系统开发过程
11.5生产线的软件体系结构
11.5.1软件生产线的概念
11.5.2软件生产线如何工作
11.5.3为软件生产线建立体系结构
11.6本章小结
参考文献
第12章 代码工程
12.1代码的运行错误
12.1.1运行错误分类
12.1.2高级语言的错误与运行错误
12.2可执行代码的质量分析
12.2.1可执行代码的产生过程
12.2.2代码编辑器与质量
12.2.3代码版本控制
12.2.4 Build工具的使用
12.3代码工程质量
12.3.1代码质量模型
12.3.2结构化编程
12.3.3代码的复杂度度量
12.3.4面向对象语言的度量
12.3.5度量元的使用
12.4可靠安全编程
12.4.1可靠安全的编程原则
12.4.2安全编程语言
12.5密安性编程
12.5.1密安软件开发规则
12.5.2 25个顶级危险
12.6代码移植与复用
12.6.1系统软件的移植
12.6.2应用软件的移植
12.6.3数据的移植
12.6.4代码的复用
12.7代码审查
12.7.1代码审查方式
12.7.2代码质量检查单
12.7.3面向对象代码检查单
12.8本章小结
参考文献
第13章 软件测试理论与技术
13.1测试目的
13.1.1测试的任务与目标
13.1.2软件错误类型
13.2基于控制流的测试
13.2.1完全路径测试的现实性
13.2.2语句覆盖准则
13.2.3分支覆盖准则
13.2.4简化的路径覆盖准则
13.2.5圈复杂数覆盖准则
13.2.6多条件覆盖准则
13.2.7修改后的条件判断覆盖
13.2.8 LC SAJ覆盖准则
13.3基于数据流的测试
13.4变异测试技术
13.5测试准则的强弱比较
13.6基于需求规范的测试
13.6.1黑箱测试模型
13.6.2黑箱测试的优缺点
13.6.3对需求条款的测试覆盖准则
13.7测试充分性的评判
13.7.1基于代码的测试评判
13.7.2非基于代码的测试评判
13.8本章小结
参考文献
第14章 软件测试工程
14.1测试工程化
14.1.1测试的生命周期
14.1.2测试方式与方法
14.1.3测试工程的原则
14.1.4测试过程
14.2各测试阶段的工作
14.2.1单元测试
14.2.2集成测试
14.2.3系统测试
14.2.4验收测试
14.2.5试运行
14.2.6产品发布前的测试
14.3测试用例设计方法
14.3.1随机方法
14.3.2判定表方法
14.3.3等价类划分
14.3.4边界值方法
14.3.5因果图方法
14.4面向对象程序的测试
14.4.1面向对象程序测试面临的问题
14.4.2传统测试方法对面向对象测试的适用性
14.4.3面向对象程序测试方法
14.4.4类内的MtSS的方法
14.4.5对象类之间的MtSS的方法
14.4.6对象之间的MgSS方法
14.4.7从交互图获得MtSS和MgSS
14.4.8面向对象测试的充分性
14.5不可测试软件的测试
14.5.1数值求解问题
14.5.2“四舍五入”问题
14.5.3规划类问题
14.6何时停止测试
14.6.1错误种子法
14.6.2错误种子测试的信任度
14.6.3覆盖率与测试信任度
14.6.4能力基线与测试信任度
14.7可信赖性测试和评价
14.7.1可恢复性测试
14.7.2密安性测试
14.7.3压力测试
14.7.4性能测试
14.7.5可信赖性评价
14.8本章小结
参考文献
第三部分 过程管理与改进
第15章 软件缺陷预测与预防
15.1基于代码的缺陷预测
15.1.1基于代码行和复杂性的预测
15.1.2模块规模对缺陷的影响
15.1.3基于复杂度和修改情况的预测
15.1.4基于功能点的缺陷预测
15.1.5多变量的预测
15.2 BBN预测方法
15.2.1无回路有向图的条件概率计算
15.2.2建立软件开发活动的有向图
15.2.3细化子网图
15.2.4建立各结点的概率表
15.2.5实际效果
15.3基于过程能力的缺陷预测
15.3.1缺陷的产生与消除过程预测
15.3.2基于CMMI等级的能力的预测
15.4代码修改历史与缺陷
15.4.1代码搅动与缺陷预测
15.4.2突发修改的缺陷预测
15.5缺陷预防
15.6本章小结
参考文献
第16章质量管理与控制
16.1软件质量的来源
16.2软件质量的过程分解
16.2.1过程质量分解
16.2.2基于V模型的过程质量分解
16.2.3过程的标准化
16.3质量保证体系
16.3.1质量审查的计划性
16.3.2建立和运用SQA制度
16.3.3软件工厂中的SQA
16.4独立的质量管理
16.4.1 IV&V机制
16.4.2再问软件质量和可信法律证据
16.5质量统计技术
16.5.1质量成本
16.5.2缺陷来源和传播
16.5.3质量统计方法
16.6质量控制
16.6.1质量漂移与宽泛现象
16.6.2质量漂移的控制
16.6.3质量宽泛的控制
16.6.4质量控制能力基线及其应用
16.7本章小结
参考文献
第17章 项目组织与管理
17.1软件生产力
17.2软件生产率
17.2.1基本生产率定义
17.2.2生产率能力基线
17.2.3软件工程环境与生产率
17.2.4软件产品特征与生产率
17.3项目组织方式
17.3.1程序员与生产率
17.3.2首席程序员的组织方式
17.3.3矩阵式的组织方式
17.3.4基于开源软件的生产
17.4项目计划的制定
17.4.1项目策划过程
17.4.2 WBS分解
17.5产品规模估算
17.5.1基于LOC的估算
17.5.2基于FP的估算
17.5.3基于用例的估算
17.5.4经验估计模型
17.5.5 COCOMO估算方法
17.5.6简单的进度估算
17.5.7 Putnam方程
17.6进度和资源规划
17.6.1规模、工期、工作量与生产率的关系
17.6.2资源考虑
17.6.3任务和资源规划
17.6.4建立开发计划
17.7项目执行与跟踪
17.7.1进度跟踪
17.7.2进度跟踪的准确性
17.7.3挣值分析计算
17.8本章小结
参考文献
第18章 敏捷开发方法
18.1敏捷方法起因
18.2敏捷方法
18.2.1 XP方法
18.2.2 Scrum方法
18.2.3特征驱动的开发
18.2.4动力系统开发方法
18.2.5自适应软件开发
18.3开发过程的选取——水晶格家族
18.4 RUP过程
18.4.1 RUP过程的交替与迭代
18.4.2 RUP的项目生命周期
18.4.3 RUP的项目开发过程
18.4.4 RUP的支持过程
18.5开发方法的比较
18.5.1敏捷方法与传统方法对比
18.5.2对软件生命周期的支持
18.5.3敏捷方法的过程改进
18.5.4让敏捷方法融入CMMI
18.6本章小结
参考文献
第19章 软件配置管理
19.1软件配置管理的目的
19.2配置管理的内容
19.2.1项目开发过程中的配置项
19.2.2配置管理的基本内容
19.2.3 SCM的流程
19.2.4配置管理中的角色
19.3配置管理系统
19.3.1配置管理系统功能
19.3.2配置管理工具的发展
19.4对修改的管理
19.4.1版本修改的状态
19.4.2修改请求单
19.4.3修改的类型
19.4.4修改的跟踪
19.5版本管理
19.5.1版本的概念
19.5.2版本编号
19.5.3产品的建造过程
19.5.4具有外购部件的建造
19.6配置管理工作的度量
19.7本章小结
参考文献
第20章 过程改进与能力成熟度
20.1过程及其特征
20.1.1自然过程与社会过程
20.1.2过程的特征
20.2过程控制与改进简史
20.2.1统计质量控制的起源
20.2.2 Deming、Juran与日本工业的质量革命
20.2.3 Juran质量改进三步曲
20.2.4 Crosby的质量成熟度网格
20.3软件成熟度模型
20.3.1软件能力的分级模型
20.3.2 SW-CMM各等级的关键域
20.3.3 SW-CMM对过程特征的解释
20.3.4关键过程域的目标与模型应用
20.4集成的能力成熟度模型
20.4.1集成的成熟度模型原因
20.4.2 CMMI模型的发展历程
20.4.3 CMMI for Development的关键过程域
20.4.4过程改进的效果
20.5采购能力成熟度
20.5.1采购能力要求
20.5.2 采购能力成熟度模型
20.6服务能力成熟度
20.6.1服务质量
20.6.2 IT服务质量差距模型
20.6.3 CMMI-SVC模型
20.7 成熟度模型的对比
20.8本章小结
参考文献
第四部分 任务与安全关键行业软件工程化
第21章 国防系统软件开发过程
21.1总体与质量要求
21.1.1“爱国者”导弹拦截失败
21.1.2国防(装备)系统的特征
21.2 生命周期
21.3软件开发过程
21.3.1文档驱动的软件开发
21.3.2 过程各阶段的要求
21.4软件缺陷分类与处理
21.4.1缺陷的严重程度分类
21.4.2错误类型
21.5中间产品的质量评价
21.5.1文档模板及其作用
21.5.2中间产品质量评价的一般准则
21.5.3质量评价的附加准则
21.5.4系统分析和设计阶段的产品质量评价
21.5.5软件需求分析阶段的产品质量评价
21.5.6概要设计阶段的质量评价
21.5.7详细设计阶段的质量评价
21.5.8编码和单元测试阶段的质量评价
21.5.9 CSC集成和测试阶段的质量评价
21.5.10 CSCI集成和测试阶段的质量评价
21.6独立的工程质量活动
21.6.1 SQA的一般要求
21.6.2验收审查、安装和检验
21.6.3对子承包商的评价和管理
21.6.4对已有软件项的评价
21.6.5纠错体系
21.6.6开发过程的质量证据
21.6.7缺陷预防体系
21.7向支持阶段的转移
21.7.1转移过程
21.7.2部署使用和维护
21.8国防软件开发标准的演变
21.8.1美国国防工业界的标准演变
21.8.2中国国防工业界的标准情况
21.8.3德国的V模型及其演变
21.9本章小结
参考文献
第22章 航天空间领域软件过程
22.1阿丽安娜的教训
22.1.1阿丽安娜501的软件故障
22.1.2故障原因
22.1.3软件过程增强
22.2航天任务软件质量特征
22.2.1航天任务的要求
22.2.2软件质量和可信赖性
22.3软件与系统安全性
22.3.1安全关键软件定义
22.3.2软件用于控制灾难
22.3.3灾害的风险等级与控制方法
22.3.4将系统风险转换为软件风险
22.3.5安全活动的工作量
22.4欧洲空间局的软件开发过程
22.4.1软件开发文件族谱
22.4.2基本阶段、活动和里程碑
22.4.3软件生命周期
22.4.4原型的使用和抛弃
22.4.5需求变更处理
22.5中国载人航天的软件工程化
22.5.1载人航天软件特点与工程化要求
22.5.2软件工程化运动及思想转变
22.5.3软件开发过程模型
22.5.4文档编制要求与剪裁
22.5.5配置管理与质量保证体系建立
22.5.6独立验证与确认
22.5.7整体工程能力的提高
22.6本章小结
参考文献
第23章 民用航空领域软件过程
23.1引言
23.2总体要求
23.2.1民用航空的“故障-安全”设计理念
23.2.2航空系统灾难等级
23.2.3民用航空中的安全关键软件
23.2.4认证机制
23.3机载系统与设备软件的开发
23.3.1从系统到软件安全评估要求
23.3.2软件生命周期
23.3.3软件开发过程
23.3.4其他过程及各过程的关系
23.3.5认证的联络过程
23.3.6商业软件的认证
23.3.7基于RTOS的应用软件开发
23.4地面支持系统软件的开发
23.4.1地面支持系统的风险分析
23.4.2地面支持系统的安全等级
23.4.3 DO-278的基本要求
23.4.4 COTS的使用
23.5韩航801航班灾难
23.5.1 MSAW问题分析
23.5.2应吸取的教训——软件配置管理
23.5.3事后预防措施
23.6民航软件的新挑战
23.7本章小结
参考文献
第24章 铁路与机动车软件
24.1铁路系统的安全要求
24.1.1总体要求
24.1.2系统安全完整性等级
24.2铁路领域软件开发
24.2.1铁路安全软件原则与措施
24.2.2高安全应对措施——开发过程的标准化
24.2.3安全完整性等级划分
24.2.4软件生命周期与开发过程
24.2.5人员的职责和要求
24.3软件开发过程要求
24.3.1安全等级对文档的要求
24.3.2开发过程中的技术方法要求
24.3.3全面评估要求
24.4对应用数据配置的系统的增强
24.4.1工作过程与生命周期
24.4.2工作要求
24.4.3数据准备的增强
24.4.4软件开发过程的增强
24.5 “7.23”铁路重大事故
24.5.1事故调查
24.5.2事故性质与原因
24.5.3软件和硬件设计问题
24.5.4工程过程管理问题
24.5.5事故防范和整改措施建议
24.6机动车领域的软件安全
24.6.1总体要求
24.6.2汽车软件的特定需求
24.6.3软件给研发生产模式带来的改变
24.7机动车领域的软件开发
24.7.1软件生命周期与开发过程
24.7.2驾驶员行为因素分析
24.7.3安全完整性等级的分析
24.7.4各安全完整性等级对开发方法的要求
24.7.5软件质量策划
24.8机动车对软件工程的挑战
24.8.1能力与过程改进挑战
24.8.2软件体系结构创新
24.8.3开发和维护过程挑战
24.8.4成本控制挑战
24.9本章小结
参考文献
第五部分 网络、信息、开放、开源与复杂巨系统工程化
第25章 网络工程与软件工程
25.1电信网络的软件工程化
25.1.1电信网络的软件工程特征
25.1.2软件工程环境
25.1.3 SDL工程应用
25.1.4 CHILL语言
25.2包交换的网络工程
25.2.1电路交换、消息交换和包交换技术对比
25.2.2包交换通信的基本方法
25.2.3包交换网的要素和工程问题
25.3包结构设计例子——IPv4
25.3.1包结构的设计
25.3.2包的“存储-转发”过程
25.4互联网的工程化
25.4.1网络互联的需求
25.4.2网络互联的设计模型
25.4.3 DoD网络互联协议族设计
25.4.4工程验证与推广过程
25.4.5互联网工程中的软件工程
25.5互联网体系结构及其进化
25.5.1互联网的问题
25.5.2体系结构进化
25.5.3覆盖层模式的定义
25.5.4覆盖层模式应用
25.6网络进化等对软件工作者的挑战
25.6.1网络融合的挑战
25.6.2互联网的发展与管理权
25.7本章小结
参考文献
第26章 信息系统软件工程化
26.1信息系统危机
26.2信息系统质量
26.2.1信息系统质量分解
26.2.2信息系统质量模型
26.3信息系统生命周期与建设过程
26.3.1信息系统生命周期
26.3.2信息系统的建设过程
26.3.3过程中的角色和任务
26.4信息系统性能模型的建立
26.4.1影响信息系统性能的因素
26.4.2测试环境与真实环境差异分析
26.4.3真实使用场景分析
26.4.4性能模型的建立
26.4.5性能模型确认过程
26.5性能评估的例子
26.5.1基本功能和性能模型
26.5.2单个业务追踪——T1
26.5.3单个业务追踪压力测试——T2
26.5.4多用户压力测试——T3
26.5.5确认和问题分析
26.6性能能力库的建立和使用
26.6.1性能分析报告
26.6.2建立和使用性能库
26.7信息系统失败案例——伦敦救护车服务系统
26.7.1系统简述
26.7.2系统失败原因分析
26.8信息系统安全
26.8.1不安全的来源
26.8.2“瑞士奶酪”原理用于信息安全
26.9本章小结
参考文献
第27章 开放与开源工程
27.1软件价值链
27.1.1软件产品与服务
27.1.2价值链条
27.1.3竞争与合作
27.2产业联盟
27.2.1软件联盟的优势
27.2.2联盟的组织形式
27.2.3产业联盟的例子
27.3虚拟组织
27.4开源工程
27.4.1闭源、自由与开源
27.4.2 F/OSS项目组织
27.4.3 F/OSS过程
27.4.4 F/OSS的文化
27.4.5 F/OSS的进化
27.5 F/OSS的质量保证
27.5.1与闭源项目的质量管理对比
27.5.2质量管理
27.5.3可信性观点
27.5.4质量控制
27.6政府与开源
27.6.1开源与开放的优势
27.6.2开源与开放的维护策略
27.6.3政府和产业联盟的作用
27.7全球化软件工程
27.7.1 GSE的基本形式——离岸与外包
27.7.2全球化软件开发过程
27.7.3 CMMI与全球软件化开发
27.8本章小结
参考文献
第28章 软件复杂巨系统的工程化
28.1复杂巨系统
28.1.1系统分类
28.1.2复杂巨系统定义
28.1.3简单集成与创新集成
28.2多系统的系统(SoS)
28.2.1 SoS定义
28.2.2 SoS的例子:电信运营系统
28.2.3 SoS的特征
28.2.4 SoS的工程模型
28.2.5增量承诺模型(ICM)
28.3 SIS与超大规模SIS
28.3.1 SIS的定义
28.3.2 SIS的应用场景
28.3.3 SIS的工程化挑战
28.3.4超大规模SIS
28.4软件复杂巨系统的工程化
28.4.1软件复杂巨系统
28.4.2一些国家的工程化举措
28.4.3工程方法的不足
28.5重新定义软件工程
28.5.1 IT生态系统
28.5.2软件工程的内涵随时间而变
参考文献
附录A缩略语表