《航天型号软件工程方法与技术》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:王忠贵,刘姝编著
  • 出 版 社:北京:中国宇航出版社
  • 出版年份:2015
  • ISBN:9787515908953
  • 页数:400 页
图书介绍:本书分析了国内外航天软件工程实施情况,介绍了航天型号软件研制过程和管理内容,并深入阐述了软件研制各阶段、软件项目管理与计划、软件配置管理和软件质量保证等涉及的理论、方法和相关技术,详细分析了模型驱动软件开发方法和形式化开发方法在我国航天软件工程中的应用前景,能够系统地指导航天型号软件工程实施。本书可供航天型号软件的设计人员、开发人员、测试人员、管理人员,以及相关专业人员阅读参考

第1章 概述 1

1.1软件工程的概念 1

1.1.1软件工程定义 1

1.1.2软件工程的基本约束 3

1.1.3软件工程的研究内容 6

1.2航天实施软件工程的必要性 9

1.2.1软件质量问题影响型号任务成败 10

1.2.2航天型号软件研制面临挑战 15

第2章 航天型号软件工程化的要素和方法 18

2.1航天型号软件的分类 18

2.2航天型号软件工程的核心要素 20

2.2.1软件开发过程 20

2.2.2软件开发方法 31

2.2.3软件工程工具 34

2.3航天型号软件工程的管理内容 38

2.3.1策划管理 38

2.3.2需求管理 38

2.3.3过程追踪与监控 38

2.3.4配置管理 38

2.3.5过程与产品质量保证 38

2.3.6外协管理 39

2.3.7评审管理 39

2.3.8文档管理 39

2.3.9开发工具的使用管理 39

第3章 国外航天型号软件工程化情况 40

3.1软件过程改进标准和方法 40

3.1.1 ISO 9000 40

3.1.2 CMM和CMMI 40

3.2 NASA软件工程化实践 45

3.2.1 NASA软件研制的管理体系 46

3.2.2 NASA标准、规范与流程 46

3.3 ESA软件工程化实践 56

3.3.1 ESA软件研制的管理体系 56

3.3.2 ESA标准、规范与流程 58

第4章 国内航天型号软件工程化情况 65

4.1航天型号软件工程化概述 65

4.2载人航天工程软件工程化发展历程 66

4.2.1启动探索期 66

4.2.2全面实施期 67

4.2.3巩固发展期 68

4.2.4软件工程化成绩 68

4.3载人航天工程软件工程化标准体系 70

4.3.1管理规定 70

4.3.2技术标准 71

第5章 航天型号软件研制过程 74

5.1技术流程分类 74

5.1.1新研软件技术流程 75

5.1.2沿用软件技术流程 76

5.1.3参数修改软件技术流程 76

5.1.4适应性修改软件技术流程 77

5.2系统级分析与设计 78

5.2.1系统分析与设计 79

5.2.2分系统分析与设计 82

5.3软件需求分析 85

5.3.1输入与输出 85

5.3.2工作内容 87

5.3.3出口准则 88

5.4软件设计 88

5.4.1概要设计 88

5.4.2详细设计 90

5.5软件实现 92

5.5.1输入与输出 93

5.5.2工作内容 93

5.6软件测试 94

5.6.1软件集成测试 94

5.6.2软件配置项测试 96

5.7系统测试 97

5.7.1软件系统测试 98

5.7.2系统试验验证 99

5.8验收交付 101

5.9运行维护 101

5.9.1输入与输出 101

5.9.2工作内容 102

5.9.3出口准则 102

第6章 系统级分析与设计 103

6.1概述 103

6.2系统分解方法 104

6.2.1产品分解结构 104

6.2.2功能流框图 105

6.2.3软件结构HIPO图 106

6.3软硬件协同设计 108

6.3.1软硬件协同设计定义 109

6.3.2软硬件协同设计与仿真验证 110

6.3.3软硬件协同设计平台 111

6.4软件复用与外购 113

6.4.1已有软件复用过程 113

6.4.2软件复用技术 114

第7章 软件需求分析 119

7.1概述 119

7.1.1需求的定义 119

7.1.2需求的类型 121

7.1.3需求分析原则 123

7.2结构化需求分析方法 123

7.2.1数据流图 124

7.2.2数据字典 127

7.2.3加工规格说明 128

7.2.4实体-关系图 128

7.2.5数据对象描述 129

7.2.6状态迁移图 129

7.3面向对象的需求分析方法 130

7.3.1面向对象分析方法概述 130

7.3.2识别分析类和对象 132

7.3.3定义类之间的关系 134

7.3.4标识类的属性和服务 135

7.4软件需求管理 136

7.4.1内容与要求 136

7.4.2需求追踪方法 138

7.4.3需求管理工具 140

第8章 软件设计 142

8.1概述 142

8.2软件设计的原则 143

8.2.1模块化 143

8.2.2抽象 146

8.2.3逐步求精 147

8.2.4信息隐藏 147

8.3结构化软件设计方法 147

8.3.1面向数据流的设计方法 147

8.3.2面向数据结构的设计方法 152

8.3.3结构化程序设计图形工具 156

8.4面向对象软件设计方法 159

8.4.1系统设计与对象设计 160

8.4.2面向对象程序设计 160

8.4.3面向对象设计工具 162

8.5数据库结构设计 163

第9章 软件实现 166

9.1概述 166

9.1.1编程语言分类 167

9.1.2编程语言的选择 168

9.2编程风格与编码规范 169

9.2.1程序设计风格 169

9.2.2 C语言编码规范 175

9.3高安全可靠的软件编码环境 181

9.3.1编译器对软件安全可靠性的影响 181

9.3.2安全可信编译器 182

第10章 软件测试 184

10.1概述 184

10.1.1测试策划 184

10.1.2测试设计与实现 185

10.1.3测试执行 185

10.1.4测试总结 186

10.2测试方法 186

10.2.1静态测试 186

10.2.2动态测试 187

10.3软件单元测试 195

10.3.1单元测试的内容 195

10.3.2单元测试的方法 198

10.4软件集成测试 203

10.4.1集成测试的内容 203

10.4.2集成测试的方法 204

10.5软件配置项测试 205

10.5.1功能测试 206

10.5.2性能测试 206

10.5.3接口测试 206

10.5.4人机交互界面测试 207

10.5.5强度测试 207

10.5.6余量测试 208

10.5.7恢复性测试 208

10.5.8安装性测试 208

10.5.9边界测试 209

10.5.10安全性测试 209

10.5.11互操作性测试 210

10.5.12敏感性测试 210

10.5.13数据处理测试 210

10.5.14容量测试 210

10.6系统测试 211

10.6.1软件系统测试 211

10.6.2系统试验验证 211

10.7回归测试 212

10.8第三方评测 213

10.9软件测试工具 213

10.9.1静态分析工具 213

10.9.2单元测试工具 215

10.9.3嵌入式软件白盒测试工具 216

10.9.4测试管理工具 217

第11章 软件运行维护 219

11.1概述 219

11.1.1软件维护的定义 219

11.1.2影响维护工作量的因素 220

11.1.3软件可维护性 221

11.2软件维护的实施 224

11.2.1维护机构 224

11.2.2维护的流程 224

11.3遗留系统的再工程 226

11.3.1遗留系统的演化 226

11.3.2软件再工程和逆向工程 227

第12章 软件安全可靠性 231

12.1概述 231

12.1.1安全关键软件定义 232

12.1.2安全关键软件开发难点和挑战 233

12.2安全关键软件开发过程 235

12.2.1软件安全计划 236

12.2.2系统/分系统设计与分析 238

12.2.3软件安全性需求开发 252

12.2.4软件安全性设计 267

12.2.5软件安全性实现 271

12.2.6软件安全性测试 271

12.2.7软件运行维护 272

12.2.8软件安全性追踪分析及软件变更安全性分析 273

12.3软件可靠性设计和测试验证 274

12.3.1软件可靠性分配与预计 274

12.3.2软件可靠性设计 277

12.3.3软件可靠性分析 279

12.3.4软件可靠性测试 280

12.3.5软件可靠性评估 282

第13章 软件项目管理与计划 285

13.1概述 285

13.2软件项目管理过程 286

13.2.1启动软件项目 286

13.2.2成本估算 287

13.2.3风险分析 287

13.2.4进度安排 287

13.2.5追踪和控制 287

13.3软件开发计划的实现过程 287

13.3.1计划初始阶段 288

13.3.2制订软件开发计划 288

13.3.3对软件开发计划进行审查和批准 288

13.3.4实施软件开发计划 288

13.3.5软件开发过程的度量和评价 289

13.3.6修改软件开发计划 289

13.4软件开发成本估算 289

13.4.1基于参数化模型的软件成本估算 290

13.4.2非参数化的软件成本估算 295

13.5进度安排 296

13.5.1制订开发进度计划 297

13.5.2进度安排的图形方法 297

13.5.3追踪与控制 298

13.6风险管理 298

13.6.1风险识别 299

13.6.2风险估算 299

13.6.3风险评价 299

13.6.4风险监控与应对 300

第14章 配置管理 301

14.1概述 301

14.1.1术语和定义 303

14.1.2配置管理库 304

14.1.3配置管理的组织和职责 305

14.2配置管理流程 306

14.2.1制订配置管理计划 308

14.2.2建立配置管理系统 310

14.2.3创建和发布基线 311

14.2.4跟踪与控制变更 312

14.2.5配置记录和报告 315

14.2.6配置审核 316

14.3技术状态控制 317

14.3.1系统级分析与设计 317

14.3.2软件需求分析 318

14.3.3软件设计 318

14.3.4软件实现 319

14.3.5软件测试 319

14.3.6验收交付 320

14.3.7运行维护 320

14.4配置管理工具 320

14.4.1常用配置管理工具 320

14.4.2选型与使用注意事项 322

第15章 软件质量保证 323

15.1概述 323

15.2质量保证组织机构 324

15.3质量保证流程 324

15.3.1制订软件质量保证计划 326

15.3.2实施软件质量保证活动 326

15.3.3不符合项处理 330

15.3.4质量保证维护 331

15.4软件评审 331

15.4.1评审的分类 331

15.4.2评审原则 332

15.4.3评审计划 333

15.4.4评审流程 333

第16章 模型驱动软件开发方法 335

16.1概述 335

16.2模型驱动架构 340

16.3体系结构描述语言 343

16.3.1 UML 344

16.3.2 SysML 344

16.3.3 AADL 346

16.3.4 MARTE 349

16.3.5比较分析 350

16.4模型驱动开发方法的关键技术 351

16.4.1需求分析 352

16.4.2面向领域的建模语言语义扩展 352

16.4.3模型转换 355

16.4.4代码生成 356

16.4.5基于模型的验证技术 356

16.4.6部署与重构 357

16.5工具支持 358

16.5.1商业工具 358

16.5.2开源工具 359

16.5.3领域模型驱动开发环境研制 363

16.6小结 365

第17章 形式化软件开发方法 367

17.1概述 367

17.2形式化方法的选用原则 369

17.2.1形式化程度 370

17.2.2形式化方法的使用范围 370

17.2.3合理的预期 371

17.3形式化软件开发过程 372

17.3.1软件系统刻画阶段 372

17.3.2建模阶段 373

17.3.3规约阶段 373

17.3.4分析阶段 374

17.3.5归档阶段 374

17.3.6维护阶段 374

17.4需求描述及形式化 375

17.4.1需求捕捉的层次 375

17.4.2需求陈述的明确性 375

17.4.3需求追踪性 376

17.4.4底层原理和直观描述的可用性 376

17.5形式化建模 376

17.5.1数学模型 377

17.5.2离散和连续域的数学模型 379

17.6形式化规格说明 382

17.6.1形式化规约语言 382

17.6.2形式化规约语言风格 384

17.6.3形式化规约和生存周期的关系 385

17.6.4检测形式化规格说明中的错误 386

17.6.5形式化规格说明的效用 388

17.7形式化分析 390

17.7.1自动演绎 390

17.7.2有限状态方法 393

17.8工具支持 395

17.8.1模型验证工具 395

17.8.2定理证明工具 395

17.9小结 396

17.9.1应用类型 396

17.9.2规模和结构 397

17.9.3类型选择 397

17.9.4形式化级别 397

17.9.5使用范围 397

17.9.6工具支持 397

参考文献 398