第1章航天型号软件与软件工程概述(1)
1?1概述(1)
1?1?1软件概述(1)
1?1?2航天软件及航天型号软件的组成及特点(2)
1?1?3航天型号软件的关键性划分原则(4)
1?2软件工程的基本原则及工作内容(5)
1?2?1软件工程与系统工程(5)
1.2.2软件工程的工作内容(6)
1.2.3软件能力成熟度模型(8)
1.3航天型号软件工程化(12)
1.3.1软件设计与系统设计的关系(12)
1.3.2航天型号软件研制的分阶段过程(12)
1.3.3型号软件研制各阶段的技术工作(14)
1.4型号软件研制的组织与管理(18)
1.4.1型号软件研制的组织与职责(18)
1.4.2型号软件研制的策划(19)
1.4.3型号软件研制各阶段的管理任务(19)
1.5本章小结(23)
第2章软件需求分析(24)
2.1概述(24)
2.1.1软件需求分析阶段的目的和任务(24)
2.1.2软件需求分析的重要性(24)
2.2软件任务书的一般要求(25)
2.2.1系统需求分析与设计阶段与软件任务书有关的任务(25)
2.2.2软件任务书的基本要求(26)
2.2.3软件任务书的格式及内容要求(27)
2.3软件需求分析的工作过程(28)
2.3.1需求信息的获取和记录(29)
2.3.2需求规格说明的编写(30)
2.3.3需求规格说明的检查与确认(31)
2.3.4需求评审(31)
2.3.5需求分析管理(31)
2.4编写"软件需求规格说明"的要求(31)
2.4.1需求规格说明的主要内容(31)
2.4.2"软件需求规格说明"的格式(32)
2.4.3需求规格说明的质量要求(42)
2.5软件需求的编写要点(42)
2.5.1功能需求的编写(42)
2.5.2性能需求的编写(46)
2.5.3可靠性需求和安全性需求的编写(47)
2.6软件需求文档中经常出现的问题(47)
2.6.1一般问题(47)
2.6.2软件功能方面的问题(47)
2.6.3需求中实体方面的问题(47)
2.6.4性能需求方面的问题(47)
2.6.5安全性、可靠性方面的问题(48)
2.7"软件需求规格说明"的检查和验证方法(48)
2.7.1人工检查(48)
2.7.2采用结构化方法检查(50)
2.7.3采用仿真模型检查(51)
2.7.4采用形式化方法检查(51)
2.8本章小结(52)
第3章软件概要设计(53)
3.1概述(53)
3.2结构化设计的概念和原则(54)
3.2.1抽象与细化求精(54)
3.2.2模块化与信息隐蔽(54)
3.2.3有效的模块设计--模块独立性(54)
3.2.4软件的体系结构(57)
3.2.5程序结构(57)
3.3概要设计阶段的工作过程(57)
3.3.1复核并理解软件需求文档(58)
3.3.2建立物理模型(58)
3.3.3编写概要设计说明(59)
3.3.4编写组装测试初步计划(59)
3.3.5概要设计阶段评审(59)
3.4软件的结构化设计的图形工具(60)3.4.1HIPO图(60)
3.4.2结构图(60)
3.4.3状态转移表(60)
3.5面向数据流的设计方法(61)
3.5.1变换型结构映射(61)
3.5.2事务型结构映射(63)
3.5.3优化程序结构设计(64)
3.6实时嵌入式系统软件的设计(66)
3.6.1实时系统概述(66)
3.6.2任务调度策略(68)
3.6.3实时系统的软件任务结构化设计(71)
3.7概要设计的质量要求(73)
3.8概要设计文档的基本内容(74)
3.8.1GB/ T 8567-2006格式的"软件概要设计说明"模板(74)
3.8.2QJ 1912.7-2003格式的"软件概要设计说明"的内容安排(78)
3.9本章小结(80)
第4章软件详细设计与实现(81)
4.1概述(81)
4.1.1详细设计的基本概念(81)
4.1.2详细设计的任务和内容(81)
4.1.3详细设计文档的用途(82)
4.1.4详细设计的质量要求(82)
4.2详细设计工作过程(83)
4.2.1理解概要设计(83)
4.2.2细化软件部件,形成软件单元(83)
4.2.3规定软件单元间接口(84)
4.2.4设计算法和细节(84)
4.2.5进行过程描述(84)
4.2.6进行可靠性、安全性设计(84)
4.2.7编写详细设计说明(84)
4.2.8编写初步单元测试计划(84)
4.2.9建立并填写单元开发卷宗(85)
4.2.10详细设计评审(85)
4.3详细设计方法和技术(85)
4.3.1结构化程序设计(简称SP方法)(85)
4.3.2软件可靠性、安全性设计(86)
4.3.3详细设计工具(86)
4.4详细设计文档格式(91)
4.5软件实现的任务与过程(91)
4.5.1理解"详细设计"(92)
4.5.2编程和编译/ 汇编(92)
4.5.3代码调试(93)
4.5.4静态分析与单元测试(93)
4.5.5安全性关键单元检查和评审(93)
4.6软件实现的技术和方法(93)
4.6.1结构化编程方法(93)
4.6.2一般软件的编程规则(94)
4.6.3安全性关键软件的编程规则(98)
4.6.4"航天器软件编程约定"简介(98)
4.7编程的质量要求(99)
4.8本章小结(99)
第5章软件测试(100)
5.1概述(100)
5.1.1软件测试的基本概念(100)
5.1.2软件测试的基本原则(100)
5.1.3软件测试的重要性和局限性(101)
5.2各软件研制阶段的测试活动及要求(102)
5.2.1软件测试的基本活动(102)
5.2.2单元测试(105)
5.2.3组装测试(107)
5.2.4确认测试(108)
5.2.5第三方独立确认测试(109)
5.2.6系统联试(110)
5.2.7回归测试(111)
5.2.8其他阶段的测试(113)
5.3主要测试内容(113)
5.3.1功能测试(114)
5.3.2性能测试(115)
5.3.3边界测试和余量测试(116)
5.3.4强度测试(116)
5.3.5可靠性测试和安全性测试(117)
5.3.6其他常见测试类型(117)
5.4软件测试技术及工具(117)
5.4.1静态测试技术(118)
5.4.2测试用例设计技术(119)
5.4.3测试覆盖率分析技术(121)
5.4.4嵌入式测试环境搭建技术(123)
5.4.5软件测试工具与环境(123)
5.5测试质量的控制(125)
5.5.1测试过程的控制要素(125)
5.5.2测试机构的组织管理(126)
5.5.3测试组织的测试能力成熟度模型(126)
5.6本章小结(128)
第6章软件验收、交付与维护(129)
6.1概述(129)
6.2软件产品的验收和交付(129)
6.2.1验收的级别和条件(129)
6.2.2验收和交付过程(129)
6.2.3软件研制报告(132)
6.3软件定型(133)
6.3.1软件定型的级别(133)
6.3.2软件定型程序(133)
6.4软件维护(136)
6.4.1软件维护的相关知识(136)
6.4.2航天型号软件维护的一般要求(138)
6.4.3软件可维护性(139)
6.4.4提高软件可维护性的方法(140)
6.4.5软件维护的过程(142)
6.5星载软件的在轨维护问题(144)
6.6软件维护的其他问题(145)
6.6.1维护工具(145)
6.6.2软件维护与软件重新设计(145)
6.7程序维护手册文档(145)
6.8本章小结(145)
第7章软件可靠性与安全性(146)
7.1概述(146)
7.1.1软件可靠性(146)
7.1.2软件安全性(147)
7.1.3软件可靠性与软件安全性(147)
7.1.4软件的可靠性和安全性与其他产品的可靠性和安全性(148)
7.2软件失效机理与软件可靠性和安全性措施(150)
7.2.1软件失效机理(150)
7.2.2软件可靠性和安全性措施(152)
7.3软件研制各阶段的软件可靠性和安全性要求(154)
7.3.1系统需求分析和设计阶段(154)
7.3.2软件需求分析阶段(155)
7.3.3软件概要设计阶段(156)
7.3.4软件详细设计阶段(157)
7.3.5软件实现阶段(158)
7.3.6软件集成和验收测试阶段(158)
7.3.7软件运行和维护阶段(159)
7.4软件可靠性和安全性方法(159)
7.4.1故障树分析(SFTA)(159)
7.4.2软件故障模式及影响分析(SFMEA)(162)
7.4.3恢复块(166)
7.4.4数据冗余(167)
7.4.5软件可靠性和安全性设计检查单(168)
7.4.6软件可靠性度量(171)
7.4.7软件可靠性评价(178)
7.5本章小结(180)
第8章软件配置管理(181)
8.1概述(181)
8.1.1配置和配置管理(181)
8.1.2配置管理的基本要求(182)
8.1.3基线(182)
8.1.4配置管理库(183)
8.1.5配置管理的组织结构和职责(183)
8.1.6配置管理工具(184)
8.2配置管理活动(184)
8.2.1配置标识(184)
8.2.2配置控制(186)
8.2.3配置记录和状态报告(188)
8.2.4配置审核(审计)(188)
8.2.5产品发放及其他(189)
8.3配置管理计划(189)
8.3.1配置管理计划的必要性(189)
8.3.2配置管理计划格式(189)
8.4本章小结(194)
第9章软件工程环境(198)
9.1概述(198)
9.2软件工程环境的构成(198)
9.2.1软件工程环境的主要组成及其关系(198)
9.2.2软件工程环境主要构成工具介绍(199)
9.3软件工程环境的集成和应用(203)
9.3.1软件工程环境的集成(203)
9.3.2软件工程环境的应用(204)
9.4本章小结(205)
第10章软件产品保证(206)
10.1概述(206)
10.2软件产品保证管理(206)
10.2.1工作体系(206)
10.2.2组织和职责(207)
10.2.3软件产品保证程序(207)
10.2.4软件问题报告系统(209)
10.2.5风险管理和关键项控制(210)
10.2.6外协单位的控制(210)
10.2.7评估和改进过程(210)
10.3软件产品过程保证(211)
10.3.1软件生存周期(211)
10.3.2适用于所有软件工程过程的产品保证(211)
10.3.3适用于单个软件工程过程的产品保证(214)
10.3.4培训(217)
10.4软件产品质量保证(218)
10.4.1产品质量需求(218)
10.4.2产品度量(219)
10.4.3验证和确认(219)
10.4.4评审(220)
10.4.5软件质量与可靠性数据包(223)
10.4.6质量数据收集分析(223)
10.5本章小结(223)
第11章航天型号软件工程发展展望(224)
11.1概述(224)
11.2航天型号软件工程发展动态(224)
11.2.1推进软件产品化(224)
11.2.2全面保证软件可信性与安全性(225)
11.2.3广泛采用工具环境(225)
11.2.4实施基于CMMI的过程改进(225)
11.3用系统工程方法提升航天软件工程化水平(226)
11.3.1开展型号信息系统总体分析与设计(226)
11.3.2加强软件工程的系统管理(226)
11.3.3系统提高软件工程技术水平(227)
11.4本章小结(227)
附录缩略语列表(228)
参考文献(230)