第1章 软件健康管理基本内容····················································································· 1
1.1 软件健康管理发展起源·························································································· 1
1.1.1 健康管理技术发展历程······················································································· 1
1.1.2 软件健康管理技术发展动因················································································· 6
1.2 基本概念············································································································9
1.2.1 软件错误、软件缺陷、软件故障、软件失效和软件异常············································· 9
1.2.2 故障诊断、失效预测························································································ 11
1.3 软件健康管理基本问题·························································································12
1.3.1 软件健康········································································································12
1.3.2 软件健康管理概念··························································································· 12
1.3.3 与现有技术的区别及联系···················································································14
1.4 软件健康管理涉及的关键技术················································································16
1.4.1 软件健康管理层次结构······················································································16
1.4.2 基于软件传感器的实时监测················································································19
1.4.3 软件故障诊断··································································································22
1.4.4 软件健康评估问题··························································································· 23
1.4.5 软件异常减缓策略··························································································· 24
1.5 软件健康管理发展现状························································································ 25
1.6 小结·················································································································36
第2章 软件故障模式分析方法····················································································37
2.1 安全关键软件概述······························································································37
2.1.1 安全关键软件概念····························································································37
2.1.2 安全关键软件特点····························································································38
2.2 故障模式分析常用方法·························································································39
2.2.1 故障树分析法··································································································39
2.2.2 事件树分析法··································································································41
2.2.3 危险和操作性分析法·························································································44
2.2.4 软件FMEA······································································································46
2.3 SWHM 结构化方法····························································································· 52
2.3.1 方法············································································································· 52
2.3.2 结果分析·······································································································53
2.4 小结··············································································································· 80
第3章 软件健康信息获取技术····················································································81
3.1 软件构件技术的发展····························································································81
3.2 典型软件构件介绍·······························································································84
3.2.1 CORBA构件模型(CCM)················································································ 84
3.2.2 Java Beans/EJB ···························································································· 85
3.2.3 COM/DCOM ·································································································· 86
3.2.4 模型比较······································································································· 88
3.3 软件健康信号提取·······························································································89
3.4 软件异常信息获取······························································································ 93
3.4.1 支持健康管理的通用软件构件模型······································································ 93
3.4.2 异常监测元模型······························································································94
3.5 SHMCM在航天型号软件中的应用·········································································· 98
3.6 小结·············································································································· 101
第4章 软件性能异常检测技术··················································································102
4.1 软件性能异常检测方法·······················································································102
4.1.1 基于统计方式的异常检测·················································································103
4.1.2 基于人工智能的检测方法·················································································104
4.2 基于免疫遗传的软件性能异常在线检测································································· 106
4.2.1 数据预处理·································································································· 107
4.2.2 编码和度量·································································································· 107
4.2.3 检测子的产生································································································108
4.2.4 进化············································································································109
4.2.5 检测············································································································111
4.2.6 算法描述······································································································111
4.2.7 仿真实验······································································································112
4.3 基于ASW-RTS 的软件性能异常在线检测·······························································117
4.3.1 ASW-RTS算法建模·························································································117
4.3.2 在线检测过程及算法分析················································································ 122
4.3.3 实验验证及结果分析······················································································ 124
4.4 小结··············································································································129
第5章 基于贝叶斯网络的软件健康管理技术································································130
5.1 贝叶斯网络基础知识·························································································130
5.1.1 基本概念·····································································································130
5.1.2 推理原理及算法·····························································································133
5.2 贝叶斯网络建模方法··························································································138
5.2.1 手动建模······································································································138
5.2.2 自动学习建模································································································139
5.2.3 两阶段建模···································································································142
5.2.4 常用工具······································································································142
5.3 面向SWHM 的贝叶斯网络建模···········································································143
5.3.1 节点··········································································································143
5.3.2 拓扑空间······································································································145
5.3.3 节点状态空间·······························································································147
5.3.4 条件概率分布································································································147
5.3.5 软件传感器及其数据处理················································································· 149
5.4 基于贝叶斯网络的某飞行控制系统SWHM系统构建···················································152
5.4.1 飞行控制系统概述··························································································152
5.4.2 方法步骤······································································································154
5.4.3 系统结构······································································································158
5.5 实例应用·········································································································160
5.5.1 具有缺陷的文件系统······················································································160
5.5.2 信号处理故障·······························································································165
5.6 小结··············································································································169
第6章 基于TFPG 推理模型的软件健康管理技术···························································171
6.1 相关工作········································································································171
6.1.1 故障传播模型································································································171
6.1.2 故障检测······································································································172
6.2 基于TFPG的故障诊断······················································································· 173
6.2.1 TFPG模型····································································································173
6.2.2 推理算法·····································································································176
6.3 基于TFPG的软件健康管理················································································· 179
6.3.1 ACM中的健康管理························································································· 179
6.3.2 TFPG故障推理机设计····················································································· 182
6.4 应用实例········································································································190
6.4.1 周期性Consumer 端口的通用TFPG模型·····························································190
6.4.2 GPS 集合的TFPG 模型··················································································· 193
6.4.3 诊断过程······································································································194
6.5 小结···············································································································195
第7章 软件健康度量方法研究实例············································································ 197
7.1 软件健康度量相关概念······················································································197
7.1.1 软件度量······································································································197
7.1.2 软件健康度量································································································199
7.2 软件健康状态划分···························································································· 200
7.3 基于过程的软件健康度量参数选取········································································202
7.4 安全关键软件健康综合度量·················································································204
7.4.1 基于可靠性的固有健康度量·············································································· 205
7.4.2 资源健康度量································································································211
7.4.3 功能健康······································································································211
7.4.4 软件健康指数计算·························································································· 217
7.5 小结···············································································································218
第8章 软件故障修复技术研究·················································································· 219
8.1 软件故障修复方法分析······················································································ 219
8.2 基于软件重构的减缓技术研究·············································································221
8.2.1 基于反应的减缓技术······················································································ 221
8.2.2 基于推理搜索的减缓技术················································································222
8.3 基于反应和推理搜索的组合式减缓技术·································································229
8.3.1 组合式减缓策略可行性分析·············································································229
8.3.2 组合式减缓策略框架······················································································ 229
8.3.3 面向SHMCM的定时状态机··············································································· 231
8.3.4 组合式减缓引擎的重构算法·············································································· 234
8.4 小结···············································································································240
第9章 软件健康管理应用实例················································································· 241
9.1 惯性测量单元实例···························································································· 241
9.1.1 GPS 子系统··································································································242
9.1.2 ADIRU 子系统······························································································· 244
9.1.3 PFC子系统···································································································248
9.1.4 显示子系统··································································································· 248
9.1.5 生成的TFPG模型···························································································249
9.1.6 系统健康管理······························································································· 249
9.1.7 部署············································································································251
9.1.8 运行············································································································253
9.2 航天测发控软件实例························································································· 260
9.2.1 框架设计·····································································································260
9.2.2 功能构件抽取································································································262
9.2.3 系统实现······································································································ 263
9.2.4 健康管理系统测试与分析·················································································266
9.3 小结·············································································································· 269
参考文献············································································································· 270