第1章 绪论 1
1.1软件对于嵌入式系统的意义 2
1.2软件工程的环境分析 2
软件开发过程 3
软件结构 4
软件质量保证 5
1.3用于嵌入式系统的软件工程 6
1.4本书的主要内容 7
第2章 嵌入式软件的开发过程 10
2.1动因 11
2.2定义与概念 12
基本概念 12
过程种类 15
2.3嵌入式软件开发过程的特点 19
多学科开发 19
跨企业的开发与同步工程 21
非功能性特征 21
经济性 21
长的产品生命周期 22
2.4特定领域过程模型的建立 22
现有的用于嵌入式软件开发的过程模型 23
描述性过程建模 24
连续的过程改善 25
2.5总结与展望 26
第3章 开发和测试的标准 29
3.1引言 30
3.2从标准到软件标准 30
为什么需要标准 31
为什么需要软件标准 31
3.3软件开发的标准 32
3.4一般性流程标准 32
3.5 IEC 61508标准 33
对开发过程的一般性要求 34
安全监测 36
软件开发 36
3.6 Cenelec EN 50126、 EN 50128和EN 50129标准 39
3.7总结 40
3.8定义 40
第4章 与安全有关的软件系统的许可 42
4.1引言 43
4.2什么是许可 43
4.3参与者 44
行政机关 44
鉴定人和检测机构 45
制造商 46
供应商 46
运营商和用户 47
4.4获得许可 47
系统的复杂度 48
规划与约定(对规划的检验单) 48
人为因素 49
申请许可证过程中的风险处理 49
企业秘密的公开 50
第5章 嵌入式系统的法律问题 52
5.1版权和专利权 53
版权 53
专利法 57
半导体保护 60
5.2合同法 60
系统集成商与整体系统买主的合同关系 61
系统集成商与软件供应商的合同关系 62
整体系统的买主与软件供应商的合同关系 63
5.3法律责任 63
机器制造商也是软件制造商 64
供应的软件 70
5.4结论 72
第6章 嵌入式软件的需求工程 75
6.1引言 76
6.2 RE基础知识 77
6.3 RE的框架体系 78
系统环境 78
RE过程的三个维度 79
五个主要设计行为 80
早期和后期阶段的对比 81
6.4对嵌入式系统复杂度的控制 83
6.5三种需求模型 86
面向解决方案的需求建模 87
目标建模 88
场景与用例 89
建模种类的实例 90
6.6基于场景和目标的系统开发的需求工程(SEGOS-RE) 91
6.7应用实例:数码相机 95
6.8总结与展望 99
第7章 软件结构和系统结构 105
7.1定义和限制 106
嵌入式系统和软件结构 106
软件结构、系统结构的定义和视图 107
结构模型化的维度 110
7.2嵌入式系统的结构模型 112
面向对象的元元结构 112
嵌入式系统的元结构 114
模型结构化的作用 118
7.3模型结构和嵌入式系统的结构风格 119
操作方法 119
CIP结构 119
面向角色结构 121
双服务器结构 122
X-By-Wire结构 124
7.4结构模板和框架 126
模板和框架作为软件再利用的工具 126
模板和框架的候选项 127
嵌入式系统中的一个模板实例 128
7.5基于结构的嵌入式系统结构设计 129
软件结构对于嵌入式系统的作用 129
基于结构的软件开发 130
第8章 嵌入式软件编程 133
8.1引言 134
8.2 C语言嵌入式软件编程 135
POSIX 1003.1 b标准 136
线程管理与定时器 136
8.3 Ada语言嵌入式软件编程 138
Ada任务 139
Ada时间特性 139
Ada同步和调度 140
8.4 Java与嵌入式系统 141
Java实时规范 141
调度 142
内存管理 143
例程 144
Java 2 Micro Edition 144
8.5 Microsoft.Net Compact Framework 145
8.6应用程序和操作系统 147
8.7总结 149
第9章 嵌入式软件测试 150
9.1引言 151
9.2传统软件测试中的技术水平 152
动态测试 152
静态分析 154
形式化技术:符号测试和形式化验证方法 155
9.3嵌入式软件测试:情形分析 155
9.4嵌入式软件系统动态测试 156
嵌入式软件特殊性能测试 157
动态测试适用于嵌入式软件特性——一个例子 158
通过测试结果的静态评价得到量化的可靠性说明 161
组织 162
9.5总结 163
第10章 嵌入式UML/实时UML 165
10.1导论 166
10.2当前的需求和解决的可能性 166
10.3所应用的开发过程 166
10.4使用UML进行需求分析 168
10.5设计中的需求 173
10.6标准扩展和展望 179
10.7结论 181
第11章 形式化开发方法与分析技术 182
11.1形式化技术的分类 183
静态建模 184
动态建模 185
嵌入式系统的形式化技术 186
11.2用方法B开发系统 187
抽象机器 187
抽象机器的兼容性 189
逐步改进 190
逐步改进的正确性 192
结构化规范 193
应用 194
11.3动态过程的建模与分析 194
用过程演算CSP建模 194
过程表达式语法 196
过程系统的特征 196
模型检测 197
特征获取摘要 198
11.4总结与展望 199
形式化技术及面向对象 199
开发过程中的形式化技术规则 200
展望 200
第12章 安全性和可靠性分析技术 204
12.1引言 205
12.2基础 206
定义和术语介绍 206
概率关系介绍 209
过程分类 212
12.3方法和技术 214
关于风险和可操作性的研究(HAZOP) 214
初级风险分析(PHA) 215
功能性风险评估(FHA) 215
失效模式效应分析(FMEA) 216
可靠性结构图(RBD) 217
事件树分析法(ETA) 218
故障树分析法(FTA) 218
Markov分析法 221
潜在通路分析技术 222
软件在方法和技术方面的相关扩展 222
12.4适宜性和选择 222
12.5可靠性检测和预测 224
12.6总结 224
第13章 分布嵌入式系统 228
13.1引言 229
13.2分布嵌入式系统简介 230
13.3一个简单的嵌入式系统 231
13.4嵌入式系统的硬件存取 231
13.5并发处理 234
13.6分布式系统 236
简介 236
分布嵌入式系统的发展方向 237
ISO/OSI层模型 238
分布式系统内部过程通信 240
13.7基于Ada的分布式程序设计 244
13.8总结 246
第14章 实时操作系统 248
14.1实时系统 249
实时操作和实时体系结构 249
时间箱与时间保证 250
及时性 251
确知性 252
对操作系统的要求 253
14.2独有特性 255
计划 255
协调 257
中断透明性 260
再入能力 262
可再入 263
14.3软件技术观点 264
14.4实例 266
QNX 267
VxWorks 267
OSEK/VDX 268
14.5总结 269
第15章 反应式系统的建模:同步语音和状态图 272
15.1引言 273
反应式系统 273
同步语言和状态图——历史和概要 274
15.2同步编程语言Esterel 275
例子ABRO 275
同步模型 276
用Esterel编写的ABRO 278
代码组合 279
15.3状态图 282
安全状态机(SSM) 282
正确性和构建性 288
15.4总结和前景 291
第16章 汽车中的软件技术 294
16.1引言 295
16.2一般趋势 295
在汽车中上升的软件份额 295
上升的系统复杂性 296
上升的质量要求 297
上升的期限和成本压力 297
快速的技术转变 298
16.3对汽车制造商造成的影响 299
机会和优点 299
普通的挑战 299
技术挑战 300
必不可少的技术核心能力 301
16.4技术状况与最新的研究结果 302
过程 302
方法与工具 303
软件结构 305
系统安全 307
16.5总结与展望 309
第17章 安全软件在交通技术的嵌入式系统中的应用 311
17.1引言 312
17.2交通技术 312
17.3安全性、风险的附属品 313
17.4软件的安全性 315
CENELEC标准规范的软件 315
角色 315
通过方法来保证正确性 316
通过过程来保证正确性 317
通过检测来保证正确性 317
17.5案例研究 319
案例引言 319
系统描述 319
采用的方法 320
举例 321
试验项目的结果 322
17.6总结和展望 323
第18章 航天应用领域嵌入式软件的开发 325
18.1自动运输工具(ATV) 326
18.2推进驱动电子装置(ATV-PDE) 326
18.3宇航标准 328
作为开发基础的标准 328
适应性和临界状态 328
18.4软件开发 329
团队建设和合作 329
计划完成 330
软件的临界状态 330
开发阶段 331
18.5维护 336
18.6总结 337
第19章 嵌入式软件在医疗技术中的应用 338
19.1医疗设备的使用领域和分类 339
19.2医疗设备类型及其应用 340
功能诊断与患者监护 340
造影诊断 341
治疗设备 345
生命维持系统 346
临床信息系统 346
19.3医疗设备的设计 347
对医疗软件的特殊要求 348
数据管理与可视化 348
19.4医疗技术中的软件标准 351
DICOM 351
HL7 352
19.5医疗产品的开发过程 352
19.6对医疗产品的风险管理 353
19.7信息安全 354
19.8医疗产品的投放市场 355
19.9总结与展望 356
第20章 嵌入式软件在工业自动化领域的应用 358
20.1引言 359
对工业自动化的一般要求 359
概况 360
20.2技术过程 360
用于连续过程的嵌入式系统 360
用于离散过程的嵌入式系统 361
20.3生命周期观察 361
20.4对参与学科的集成 363
20.5工业自动化中的结构和系统工程 364
工业自动化的层次划分 364
自动化元件的描述 367
20.6对工业自动化中嵌入式系统的系统软件的要求 372
技术要求 372
经济要求 373
小结 373
20.7优化和未来的系统变化 374
基于元件的系统 374
机电一体化 375
展望:下一代思维变迁正在进行中 375
最后的评注 377
第21章 嵌入式通信软件的开发 378
21.1专业通信系统中的软件需求 379
21.2系统和软件生命周期——原则、过程、经验 379
产品生命周期中的标准开发过程 380
SDP软件——软件开发过程 382
递归式渐进开发模型的复杂性概念 384
软件过程的改进 384
21.3以LambdaUnite MSS系统为例介绍软件体系结构的作用 385
光纤传输技术应用领域 385
LambdaUnite系统的产品介绍 386
系统开发:一种挑战 387
软件体系结构:任务 388
软件体系结构:3个例子展示的途径 389
软件体系结构:结论 392
21.4 AnyMedia系统中的软件体系结构及可执行软件 393
软件体系结构阶段的建模 394
层、框架和模式 397
实现阶段——体系结构模型的扩充 399
21.5在Node B系统中的UMTS框架的面向功能的测试 401
UTRAN简介 401
Node B 402
Node B软件和硬件方面的需求 402
网络单元测试的定义和划分 403
已用的测试样例 404
对UMTS子层结构的测试 406