安全關(guān)鍵軟件開發(fā)與審定——DO-178C標準實踐指南
定 價:139 元
叢書名:國防電子信息技術(shù)叢書
- 作者:(美)Leanna Rierson(利安娜 · L. 瑞爾森)
- 出版時間:2020/12/1
- ISBN:9787121401558
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.52-62
- 頁碼:384
- 紙張:
- 版次:01
- 開本:16K
本書以民用航空機載軟件適航標準制定者的視角,詳細介紹了如何基于目前最新版的DO-178C標準進行安全關(guān)鍵軟件的開發(fā)與管理,給出了如何獲得成功審定的實用指南。主要內(nèi)容包括:在系統(tǒng)與安全大視野中的軟件,DO-178C標準的深入解讀和推薦實踐,4個標準技術(shù)補充(軟件工具鑒定、基于模型的開發(fā)、面向?qū)ο蠹夹g(shù)和形式化方法)的講解說明,以及10個相關(guān)特別專題(未覆蓋代碼、外場可加載軟件、用戶可修改軟件和實時操作系統(tǒng)等)的指導(dǎo)建議。
Leanna Rierson 安全關(guān)鍵軟件和復(fù)雜電子系統(tǒng)領(lǐng)域的資深專家,獨立咨詢師。多年擔任美國聯(lián)邦航空局(FAA)的軟件和航空電子專家、航空計算機軟件首席科學(xué)家和技術(shù)顧問。作為在軟件和復(fù)雜硬件技術(shù)領(lǐng)域具有A級授權(quán)的FAA委任工程代表(DER),與眾多航空器和航空電子公司有過合作,包括波音、賽斯納、里爾噴氣、巴西航空工業(yè)、羅克韋爾-柯林斯、通用電氣航空和霍尼韋爾等公司。她是DO-178C標準的主要參與制定者之一,在負責制定該標準的美國航空無線電技術(shù)委員會(RTCA)中擔任一個工作組的聯(lián)合主席和編寫組負責人,發(fā)表過大量關(guān)于安全關(guān)鍵軟件和綜合模塊化航空電子(IMA)的論文,領(lǐng)導(dǎo)過許多國際工程團隊和工作會議,為FAA編制了一系列課程、政策、手冊和指南材料,為數(shù)百名專業(yè)人士講授過DO-178B和DO-178C標準。
作 者 簡 介 Leanna Rierson?安全關(guān)鍵軟件和復(fù)雜電子系統(tǒng)領(lǐng)域的資深專家,獨立咨詢師。多年擔任美國聯(lián)邦航空局(FAA)的軟件和航空電子專家、航空計算機軟件首席科學(xué)家和技術(shù)顧問。作為在軟件和復(fù)雜硬件技術(shù)領(lǐng)域具有A級授權(quán)的FAA委任工程代表(DER),與眾多航空器和航空電子公司有過合作,包括波音、賽斯納、里爾噴氣、巴西航空工業(yè)、羅克韋爾-柯林斯、通用電氣航空和霍尼韋爾等公司。她是DO-178C標準的主要參與制定者之一,在負責制定該標準的美國航空無線電技術(shù)委員會(RTCA)中擔任一個工作組的聯(lián)合主席和編寫組負責人,發(fā)表過大量關(guān)于安全關(guān)鍵軟件和綜合模塊化航空電子(IMA)的論文,領(lǐng)導(dǎo)過許多國際工程團隊和工作會議,為FAA編制了一系列課程、政策、手冊和指南材料,為數(shù)百名專業(yè)人士講授過DO-178B和DO-178C標準。譯 者 簡 介 崔曉峰?研究員,北京大學(xué)計算機軟件與理論專業(yè)博士,英國約克大學(xué)訪問學(xué)者。長期從事軟件工程理論與方法研究、大型關(guān)鍵任務(wù)軟件系統(tǒng)設(shè)計與工程化管理,以及軟件研制能力評價工作。主要研究和實踐領(lǐng)域包括軟件體系結(jié)構(gòu)、軟件需求工程、軟件項目管理、軟件過程改進、業(yè)務(wù)流程管理、系統(tǒng)工程、領(lǐng)域工程等。
第一部分?引 言
第1章 引言和概覽 2
1.1 安全關(guān)鍵軟件的定義 2
1.2 安全性問題的重要性 2
1.3 本書目的和重要提示 4
1.4 本書概覽 6
第二部分?安全關(guān)鍵軟件開發(fā)的語境
第2章?系統(tǒng)語境中的軟件 8
2.1 系統(tǒng)開發(fā)概覽 8
2.2 系統(tǒng)需求 10
2.2.1 系統(tǒng)需求的重要性 10
2.2.2 系統(tǒng)需求的類型 10
2.2.3 良好的需求的特性 10
2.2.4 系統(tǒng)需求考慮 11
2.2.5 需求假設(shè) 14
2.2.6 分配到軟/硬件項 14
2.3 系統(tǒng)需求確認與驗證 15
2.3.1 需求確認 15
2.3.2 實現(xiàn)驗證 15
2.3.3 確認與驗證建議 15
2.4 系統(tǒng)工程師最佳實踐 17
2.5 軟件與系統(tǒng)的關(guān)系 19
第3章?系統(tǒng)安全性評估語境中的軟件 20
3.1 航空器與系統(tǒng)安全性評估過程概覽 20
3.1.1 安全性工作計劃 21
3.1.2 功能危險評估 21
3.1.3 系統(tǒng)功能危險評估 22
3.1.4 初步航空器安全性評估 22
3.1.5 初步系統(tǒng)安全性評估 22
3.1.6 共因分析 23
3.1.7 航空器安全性評估和系統(tǒng)安全性評估 24
3.2 開發(fā)保證 24
3.2.1 開發(fā)保證等級 25
3.3 軟件如何置于安全性過程 26
3.3.1 軟件的獨特性 26
3.3.2 軟件開發(fā)保證 26
3.3.3 其他觀點 28
3.3.4 在系統(tǒng)安全性過程關(guān)注軟件的建議 28
第三部分?使用DO-178C開發(fā)安全關(guān)鍵軟件
第4章?DO-178C及支持文件概覽 32
4.1 DO-178歷史 32
4.2 DO-178C和DO-278A核心文件 34
4.2.1 DO-278A與DO-178C的不同 39
4.2.2 DO-178C附件A的目標表概覽 39
4.3 DO-330:軟件工具鑒定考慮 43
4.4 DO-178C技術(shù)補充 43
4.4.1 DO-331:基于模型的開發(fā)補充 43
4.4.2 DO-332:面向?qū)ο蠹夹g(shù)補充 44
4.4.3 DO-333:形式化方法補充 44
4.5 DO-248C:支持材料 44
第5章?軟件策劃 46
5.1 引言 46
5.2 一般策劃建議 46
5.3 5個軟件計劃 49
5.3.1 軟件合格審定計劃 49
5.3.2 軟件開發(fā)計劃 50
5.3.3 軟件驗證計劃 52
5.3.4 軟件配置管理計劃 54
5.3.5 軟件質(zhì)量保證計劃 56
5.4 3個開發(fā)標準 57
5.4.1 軟件需求標準 58
5.4.2 軟件設(shè)計標準 58
5.4.3 軟件編碼標準 59
5.5 工具鑒定計劃 60
5.6 其他計劃 60
5.6.1 項目管理計劃 60
5.6.2 需求管理計劃 60
5.6.3 測試計劃 60
第6章?軟件需求 61
6.1 引言 61
6.2 定義需求 61
6.3 良好的需求的重要性 62
6.3.1 原因1:需求是軟件開發(fā)的基礎(chǔ) 62
6.3.2 原因2:好的需求節(jié)省時間和金錢 63
6.3.3 原因3:好的需求對安全性至關(guān)重要 64
6.3.4 原因4:好的需求對滿足客戶需要是必需的 64
6.3.5 原因5:好的需求對測試很重要 64
6.4 軟件需求工程師 65
6.5 軟件需求開發(fā)概覽 66
6.6 收集和分析軟件需求的輸入 67
6.6.1 需求收集活動 67
6.6.2 需求分析活動 68
6.7 編寫軟件需求 69
6.7.1 任務(wù)1:確定方法 69
6.7.2 任務(wù)2:確定軟件需求文檔格式 70
6.7.3 任務(wù)3:將軟件功能劃分為子系統(tǒng)和/或特征 70
6.7.4 任務(wù)4:確定需求優(yōu)先級 71
6.7.5 避免滑下的斜坡 71
6.7.6 任務(wù)5:編檔需求 72
6.7.7 任務(wù)6:提供系統(tǒng)需求的反饋 77
6.8 驗證(評審)需求 77
6.8.1 同行評審?fù)扑]實踐 78
6.9 管理需求 81
6.9.1 需求管理基礎(chǔ) 81
6.9.2 需求管理工具 81
6.10?需求原型 83
6.11?可追蹤性 83
6.11.1 可追蹤性的重要性和好處 84
6.11.2 雙向可追蹤性 84
6.11.3 DO-178C和可追蹤性 85
6.11.4 可追蹤性挑戰(zhàn) 86
第7章?軟件設(shè)計 88
7.1 軟件設(shè)計概覽 88
7.1.1 軟件體系結(jié)構(gòu) 88
7.1.2 軟件低層需求 89
7.1.3 設(shè)計打包 90
7.2 設(shè)計方法 90
7.2.1 基于結(jié)構(gòu)的設(shè)計(傳統(tǒng)) 90
7.2.2 面向?qū)ο蟮脑O(shè)計 91
7.3 良好設(shè)計的特性 92
7.4 設(shè)計驗證 95
第8章?軟件實現(xiàn):編碼與集成 97
8.1 引言 97
8.2 編碼 97
8.2.1 DO-178C編碼指南概覽 97
8.2.2 安全關(guān)鍵軟件中使用的語言 98
8.2.3 選擇一種語言和編譯器 100
8.2.4 編程的一般建議 102
8.2.5 代碼相關(guān)的特別話題 109
8.3 驗證源代碼 110
8.4 開發(fā)集成 111
8.4.1 構(gòu)建過程 111
8.4.2 加載過程 112
8.5 驗證開發(fā)集成 112
第9章?軟件驗證 113
9.1 引言 113
9.2 驗證的重要性 113
9.3 獨立性與驗證 114
9.4 評審 115
9.4.1 軟件計劃評審 115
9.4.2 軟件需求、設(shè)計和代碼評審 115
9.4.3 測試資料評審 115
9.4.4 其他資料項評審 116
9.5 分析 116
9.5.1 最壞情況執(zhí)行時間分析 117
9.5.2 內(nèi)存余量分析 117
9.5.3 鏈接和內(nèi)存映像分析 118
9.5.4 加載分析 118
9.5.5 中斷分析 118
9.5.6 數(shù)學(xué)分析 119
9.5.7 錯誤和警告分析 119
9.5.8 分區(qū)分析 119
9.6 軟件測試 119
9.6.1 軟件測試的目的 120
9.6.2 DO-178C軟件測試指南概覽 121
9.6.3 測試策略綜述 123
9.6.4 測試策劃 126
9.6.5 測試開發(fā) 128
9.6.6 測試執(zhí)行 130
9.6.7 測試報告 132
9.6.8 測試可追蹤性 132
9.6.9 回歸測試 132
9.6.10?易測試性 133
9.6.11?驗證過程中的自動化 133
9.7 驗證的驗證 134
9.7.1 測試規(guī)程評審 135
9.7.2 測試結(jié)果的評審 135
9.7.3 需求覆蓋分析 136
9.7.4 結(jié)構(gòu)覆蓋分析 136
9.8 問題報告 142
9.9 驗證過程建議 145
第10章?軟件配置管理 148
10.1 引言 148
10.1.1 什么是軟件配置管理 148
10.1.2 為什么需要軟件配置管理 148
10.1.3 誰負責實現(xiàn)軟件配置管理 149
10.1.4 軟件配置管理涉及什么 150
10.2 軟件配置管理活動 150
10.2.1 配置標識 150
10.2.2 基線 151
10.2.3 可追蹤性 151
10.2.4 問題報告 151
10.2.5 變更控制和評審 154
10.2.6 配置狀態(tài)記錄 155
10.2.7 發(fā)布 156
10.2.8 歸檔和提取 156
10.2.9 資料控制類別 157
10.2.10?加載控制 158
10.2.11?軟件生命周期環(huán)境控制 159
10.3 特別的軟件配置管理技能 159
10.4 軟件配置管理資料 160
10.4.1 軟件配置管理計劃 160
10.4.2 問題報告 160
10.4.3 軟件生命周期環(huán)境配置索引 160
10.4.4 軟件配置索引 160
10.4.5 軟件配置管理記錄 161
10.5 軟件配置管理陷阱 161
10.6 變更影響分析 163
第11章?軟件質(zhì)量保證 166
11.1 引言:軟件質(zhì)量和軟件質(zhì)量保證 166
11.1.1 定義軟件質(zhì)量 166
11.1.2 高質(zhì)量軟件的特性 166
11.1.3 軟件質(zhì)量保證 167
11.1.4 常見質(zhì)量過程和產(chǎn)品問題的例子 168
11.2 有效和無效的軟件質(zhì)量保證的特征 169
11.2.1 有效的軟件質(zhì)量保證 169
11.2.2 無效的軟件質(zhì)量保證 170
11.3 軟件質(zhì)量保證活動 170
第12章?合格審定聯(lián)絡(luò) 174
12.1 什么是合格審定聯(lián)絡(luò) 174
12.2 與合格審定機構(gòu)的溝通 174
12.2.1 與合格審定機構(gòu)協(xié)調(diào)的最佳實踐 175
12.3 軟件完成總結(jié) 177
12.4 介入階段審核 178
12.4.1 介入階段審核概覽 178
12.4.2 軟件作業(yè)輔助概覽 179
12.4.3 使用軟件作業(yè)輔助 181
12.4.4 對審核者的一般建議 181
12.4.5 對被審核者的一般建議 186
12.4.6 介入階段審核細節(jié) 188
12.5 合格審定飛行試驗之前的軟件成熟度 195
第四部分?工具鑒定和DO-178C補充
第13章?DO-330和軟件工具鑒定 198
13.1 引言 198
13.2 確定工具鑒定需要和等級(DO-178C的12.2節(jié)) 199
13.3 鑒定一個工具(DO-330概覽) 202
13.3.1 DO-330的需要 202
13.3.2 DO-330工具鑒定過程 203
13.4 工具鑒定特別話題 210
13.4.1 FAA規(guī)定8110.49 210
13.4.2 工具確定性 211
13.4.3 額外的工具鑒定考慮 211
13.4.4 工具鑒定陷阱 212
13.4.5 DO-330和DO-178C補充 214
13.4.6 DO-330用于其他領(lǐng)域 214
第14章?DO-331和基于模型的開發(fā)與驗證 215
14.1 引言 215
14.2 基于模型開發(fā)的潛在好處 216
14.3 基于模型開發(fā)的潛在風險 218
14.4 DO-331概覽 221
14.5 合格審定機構(gòu)對DO-331的認識 225
第15章?DO-332和面向?qū)ο蠹夹g(shù)及相關(guān)技術(shù) 226
15.1 面向?qū)ο蠹夹g(shù)介紹 226
15.2 OOT在航空中的使用 226
15.3 航空手冊中的OOT 227
15.4 FAA資助的OOT和結(jié)構(gòu)覆蓋研究 227
15.5 DO-332概覽 228
15.5.1 策劃 228
15.5.2 開發(fā) 228
15.5.3 驗證 228
15.5.4 脆弱性 229
15.5.5 類型安全 229
15.5.6 相關(guān)技術(shù) 230
15.5.7 常見問題 230
15.6 OOT建議 230
15.7 結(jié)論 230
第16章?DO-333和形式化方法 231
16.1 形式化方法介紹 231
16.2 什么是形式化方法 232
16.3 形式化方法的潛在好處 233
16.4 形式化方法的挑戰(zhàn) 234
16.5 DO-333概覽 235
16.5.1 DO-333的目的 235
16.5.2 DO-333與DO-178C的比較 236
16.6 其他資源 238
第五部分?特?別?專?題
第17章?未覆蓋代碼(無關(guān)代碼、死代碼和非激活代碼) 240
17.1 引言 240
17.2 無關(guān)代碼和死代碼 240
17.2.1 避免無關(guān)代碼和死代碼的晚發(fā)現(xiàn) 241
17.2.2 評價無關(guān)代碼或死代碼 242
17.3 非激活代碼 243
17.3.1 策劃 245
17.3.2 開發(fā) 245
17.3.3 驗證 246
第18章?外場可加載軟件 247
18.1 引言 247
18.2 什么是外場可加載軟件 247
18.3 外場可加載軟件的好處 247
18.4 外場可加載軟件的挑戰(zhàn) 248
18.5 開發(fā)和加載外場可加載軟件 248
18.5.1 開發(fā)支持外場加載的系統(tǒng) 248
18.5.2 開發(fā)外場可加載軟件 249
18.5.3 加載外場可加載軟件 249
18.5.4 修改外場可加載軟件 250
18.6 總結(jié) 250
第19章?用戶可修改軟件 251
19.1 引言 251
19.2 什么是用戶可修改軟件 251
19.3 UMS例子 252
19.4 為UMS設(shè)計系統(tǒng) 252
19.5 修改和維護UMS 254
第20章?實時操作系統(tǒng) 256
20.1 引言 256
20.2 什么是RTOS 256
20.3 為什么使用RTOS 257
20.4 RTOS內(nèi)核及其支持軟件 258
20.4.1 RTOS內(nèi)核 258
20.4.2 應(yīng)用編程接口 258
20.4.3 主板支持包 259
20.4.4 設(shè)備驅(qū)動 260
20.4.5 支持庫 260
20.5 安全關(guān)鍵系統(tǒng)中使用的RTOS的特性 260
20.5.1 確定性 260
20.5.2 可靠的性能 260
20.5.3 硬件兼容 261
20.5.4 環(huán)境兼容 261
20.5.5 容錯 261
20.5.6 健康監(jiān)控 261
20.5.7 可審定 262
20.5.8 可維護 262
20.5.9 可復(fù)用 262
20.6 安全關(guān)鍵系統(tǒng)中使用的RTOS的功能 262
20.6.1 多任務(wù) 262
20.6.2 有保證和確定性的可調(diào)度性 263
20.6.3 確定性的任務(wù)間通信 264
20.6.4 可靠的內(nèi)存管理 265
20.6.5 中斷處理 265
20.6.6 鉤子函數(shù) 265
20.6.7 健壯性檢查 266
20.6.8 文件系統(tǒng) 266
20.6.9 健壯分區(qū) 266
20.7 需考慮的RTOS問題 266
20.7.1 要考慮的技術(shù)問題 267
20.7.2 要考慮的合格審定問題 269
20.8 RTOS相關(guān)的其他話題 271
20.8.1 ARINC 653概覽 271
20.8.2 工具支持 273
20.8.3 開源RTOS 274
20.8.4 多核處理器、虛擬化和虛擬機管理器 274
20.8.5 保密性 275
20.8.6 RTOS選擇問題 275
第21章?軟件分區(qū) 276
21.1 引言 276
21.1.1 分區(qū):保護的一個子集 276
21.1.2 DO-178C和分區(qū) 277
21.1.3 健壯分區(qū) 277
21.2 共享內(nèi)存(空間分區(qū)) 279
21.3 共享中央處理器(時間分區(qū)) 279
21.4 共享輸入/輸出 280
21.5 一些與分區(qū)相關(guān)的挑戰(zhàn) 281
21.5.1 直接內(nèi)存訪問 281
21.5.2 高速緩存 281
21.5.3 中斷 282
21.5.4 分區(qū)間通信 282
21.6 分區(qū)的建議 282
第22章?配置數(shù)據(jù) 287
22.1 引言 287
22.2 術(shù)語和例子 287
22.3 DO-178C關(guān)于參數(shù)數(shù)據(jù)項的指南總結(jié) 289
22.4 建議 289
第23章?航空數(shù)據(jù) 293
23.1 引言 293
23.2 DO-200A:航空數(shù)據(jù)處理標準 293
23.3 FAA咨詢通告AC 20-153A 296
23.4 用于處理航空數(shù)據(jù)的工具 297
23.5 與航空數(shù)據(jù)相關(guān)的其他工業(yè)文件 298
23.5.1 DO-201A:航空信息標準 298
23.5.2 DO-236B:航空系統(tǒng)性能最低標準:區(qū)域?qū)Ш揭蟮膶?dǎo)航性能 298
23.5.3 DO-272C:機場地圖信息的用戶需求 298
23.5.4 DO-276A:地形和障礙數(shù)據(jù)的用戶需求 298
23.5.5 DO-291B:地形、障礙和機場地圖數(shù)據(jù)互換標準 298
23.5.6 ARINC 424:導(dǎo)航系統(tǒng)數(shù)據(jù)庫標準 299
23.5.7 ARINC 816-1:機場地圖數(shù)據(jù)庫的嵌入式互換格式 299
第24章?軟件復(fù)用 300
24.1 引言 300
24.2 設(shè)計可復(fù)用構(gòu)件 301
24.3 復(fù)用先前開發(fā)的軟件 304
24.3.1 為在民用航空產(chǎn)品中使用而評價PDS 305
24.3.2 復(fù)用未使用DO-178[]開發(fā)的PDS 308
24.3.3 COTS軟件的額外考慮 310
24.4 產(chǎn)品服役歷史 311
24.4.1 產(chǎn)品服役歷史的定義 311
24.4.2 使用產(chǎn)品服役歷史尋求置信度的困難 311
24.4.3 使用產(chǎn)品服役歷史聲明置信度時考慮的因素 312
第25章?逆向工程 313
25.1 引言 313
25.2 什么是逆向工程 313
25.3 逆向工程的例子 314
25.4 逆向工程要考慮的問題 314
25.5 逆向工程的建議 315
第26章?外包和離岸外包軟件生命周期活動 321
26.1 引言 321
26.2 外包的原因 322
26.3 外包的挑戰(zhàn)和風險 322
26.4 克服挑戰(zhàn)和風險的建議 325
26.5 總結(jié) 331
附錄A?活動轉(zhuǎn)換準則舉例 332
附錄B?實時操作系統(tǒng)關(guān)注點 338
附錄C?為安全關(guān)鍵系統(tǒng)選擇實時操作系統(tǒng)時考慮的問題 341
附錄D?軟件服役歷史問題 344
縮略語 348
參考文獻 353
推薦讀物 365