安全關鍵軟件開發(fā)與審定——DO-178C標準實踐指南
定 價:139 元
叢書名:國防電子信息技術叢書
- 作者:(美)Leanna Rierson(利安娜 · L. 瑞爾森)
- 出版時間:2020/12/1
- ISBN:9787121401558
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP311.52-62
- 頁碼:384
- 紙張:
- 版次:01
- 開本:16K
本書以民用航空機載軟件適航標準制定者的視角,詳細介紹了如何基于目前最新版的DO-178C標準進行安全關鍵軟件的開發(fā)與管理,給出了如何獲得成功審定的實用指南。主要內容包括:在系統(tǒng)與安全大視野中的軟件,DO-178C標準的深入解讀和推薦實踐,4個標準技術補充(軟件工具鑒定、基于模型的開發(fā)、面向對象技術和形式化方法)的講解說明,以及10個相關特別專題(未覆蓋代碼、外場可加載軟件、用戶可修改軟件和實時操作系統(tǒng)等)的指導建議。
Leanna Rierson 安全關鍵軟件和復雜電子系統(tǒng)領域的資深專家,獨立咨詢師。多年擔任美國聯(lián)邦航空局(FAA)的軟件和航空電子專家、航空計算機軟件首席科學家和技術顧問。作為在軟件和復雜硬件技術領域具有A級授權的FAA委任工程代表(DER),與眾多航空器和航空電子公司有過合作,包括波音、賽斯納、里爾噴氣、巴西航空工業(yè)、羅克韋爾-柯林斯、通用電氣航空和霍尼韋爾等公司。她是DO-178C標準的主要參與制定者之一,在負責制定該標準的美國航空無線電技術委員會(RTCA)中擔任一個工作組的聯(lián)合主席和編寫組負責人,發(fā)表過大量關于安全關鍵軟件和綜合模塊化航空電子(IMA)的論文,領導過許多國際工程團隊和工作會議,為FAA編制了一系列課程、政策、手冊和指南材料,為數(shù)百名專業(yè)人士講授過DO-178B和DO-178C標準。
作 者 簡 介 Leanna Rierson?安全關鍵軟件和復雜電子系統(tǒng)領域的資深專家,獨立咨詢師。多年擔任美國聯(lián)邦航空局(FAA)的軟件和航空電子專家、航空計算機軟件首席科學家和技術顧問。作為在軟件和復雜硬件技術領域具有A級授權的FAA委任工程代表(DER),與眾多航空器和航空電子公司有過合作,包括波音、賽斯納、里爾噴氣、巴西航空工業(yè)、羅克韋爾-柯林斯、通用電氣航空和霍尼韋爾等公司。她是DO-178C標準的主要參與制定者之一,在負責制定該標準的美國航空無線電技術委員會(RTCA)中擔任一個工作組的聯(lián)合主席和編寫組負責人,發(fā)表過大量關于安全關鍵軟件和綜合模塊化航空電子(IMA)的論文,領導過許多國際工程團隊和工作會議,為FAA編制了一系列課程、政策、手冊和指南材料,為數(shù)百名專業(yè)人士講授過DO-178B和DO-178C標準。譯 者 簡 介 崔曉峰?研究員,北京大學計算機軟件與理論專業(yè)博士,英國約克大學訪問學者。長期從事軟件工程理論與方法研究、大型關鍵任務軟件系統(tǒng)設計與工程化管理,以及軟件研制能力評價工作。主要研究和實踐領域包括軟件體系結構、軟件需求工程、軟件項目管理、軟件過程改進、業(yè)務流程管理、系統(tǒng)工程、領域工程等。
第一部分?引 言
第1章 引言和概覽 2
1.1 安全關鍵軟件的定義 2
1.2 安全性問題的重要性 2
1.3 本書目的和重要提示 4
1.4 本書概覽 6
第二部分?安全關鍵軟件開發(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 需求假設 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)的關系 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)安全性過程關注軟件的建議 28
第三部分?使用DO-178C開發(fā)安全關鍵軟件
第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技術補充 43
4.4.1 DO-331:基于模型的開發(fā)補充 43
4.4.2 DO-332:面向對象技術補充 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 軟件質量保證計劃 56
5.4 3個開發(fā)標準 57
5.4.1 軟件需求標準 58
5.4.2 軟件設計標準 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ā)的基礎 62
6.3.2 原因2:好的需求節(jié)省時間和金錢 63
6.3.3 原因3:好的需求對安全性至關重要 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 任務1:確定方法 69
6.7.2 任務2:確定軟件需求文檔格式 70
6.7.3 任務3:將軟件功能劃分為子系統(tǒng)和/或特征 70
6.7.4 任務4:確定需求優(yōu)先級 71
6.7.5 避免滑下的斜坡 71
6.7.6 任務5:編檔需求 72
6.7.7 任務6:提供系統(tǒng)需求的反饋 77
6.8 驗證(評審)需求 77
6.8.1 同行評審推薦實踐 78
6.9 管理需求 81
6.9.1 需求管理基礎 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章?軟件設計 88
7.1 軟件設計概覽 88
7.1.1 軟件體系結構 88
7.1.2 軟件低層需求 89
7.1.3 設計打包 90
7.2 設計方法 90
7.2.1 基于結構的設計(傳統(tǒng)) 90
7.2.2 面向對象的設計 91
7.3 良好設計的特性 92
7.4 設計驗證 95
第8章?軟件實現(xiàn):編碼與集成 97
8.1 引言 97
8.2 編碼 97
8.2.1 DO-178C編碼指南概覽 97
8.2.2 安全關鍵軟件中使用的語言 98
8.2.3 選擇一種語言和編譯器 100
8.2.4 編程的一般建議 102
8.2.5 代碼相關的特別話題 109
8.3 驗證源代碼 110
8.4 開發(fā)集成 111
8.4.1 構建過程 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 軟件需求、設計和代碼評審 115
9.4.3 測試資料評審 115
9.4.4 其他資料項評審 116
9.5 分析 116
9.5.1 最壞情況執(zhí)行時間分析 117
9.5.2 內存余量分析 117
9.5.3 鏈接和內存映像分析 118
9.5.4 加載分析 118
9.5.5 中斷分析 118
9.5.6 數(shù)學分析 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 測試結果的評審 135
9.7.3 需求覆蓋分析 136
9.7.4 結構覆蓋分析 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章?軟件質量保證 166
11.1 引言:軟件質量和軟件質量保證 166
11.1.1 定義軟件質量 166
11.1.2 高質量軟件的特性 166
11.1.3 軟件質量保證 167
11.1.4 常見質量過程和產品問題的例子 168
11.2 有效和無效的軟件質量保證的特征 169
11.2.1 有效的軟件質量保證 169
11.2.2 無效的軟件質量保證 170
11.3 軟件質量保證活動 170
第12章?合格審定聯(lián)絡 174
12.1 什么是合格審定聯(lián)絡 174
12.2 與合格審定機構的溝通 174
12.2.1 與合格審定機構協(xié)調的最佳實踐 175
12.3 軟件完成總結 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用于其他領域 214
第14章?DO-331和基于模型的開發(fā)與驗證 215
14.1 引言 215
14.2 基于模型開發(fā)的潛在好處 216
14.3 基于模型開發(fā)的潛在風險 218
14.4 DO-331概覽 221
14.5 合格審定機構對DO-331的認識 225
第15章?DO-332和面向對象技術及相關技術 226
15.1 面向對象技術介紹 226
15.2 OOT在航空中的使用 226
15.3 航空手冊中的OOT 227
15.4 FAA資助的OOT和結構覆蓋研究 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 相關技術 230
15.5.7 常見問題 230
15.6 OOT建議 230
15.7 結論 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章?未覆蓋代碼(無關代碼、死代碼和非激活代碼) 240
17.1 引言 240
17.2 無關代碼和死代碼 240
17.2.1 避免無關代碼和死代碼的晚發(fā)現(xiàn) 241
17.2.2 評價無關代碼或死代碼 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 總結 250
第19章?用戶可修改軟件 251
19.1 引言 251
19.2 什么是用戶可修改軟件 251
19.3 UMS例子 252
19.4 為UMS設計系統(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內核及其支持軟件 258
20.4.1 RTOS內核 258
20.4.2 應用編程接口 258
20.4.3 主板支持包 259
20.4.4 設備驅動 260
20.4.5 支持庫 260
20.5 安全關鍵系統(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 可復用 262
20.6 安全關鍵系統(tǒng)中使用的RTOS的功能 262
20.6.1 多任務 262
20.6.2 有保證和確定性的可調度性 263
20.6.3 確定性的任務間通信 264
20.6.4 可靠的內存管理 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 要考慮的技術問題 267
20.7.2 要考慮的合格審定問題 269
20.8 RTOS相關的其他話題 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 共享內存(空間分區(qū)) 279
21.3 共享中央處理器(時間分區(qū)) 279
21.4 共享輸入/輸出 280
21.5 一些與分區(qū)相關的挑戰(zhàn) 281
21.5.1 直接內存訪問 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 術語和例子 287
22.3 DO-178C關于參數(shù)數(shù)據(jù)項的指南總結 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ù)相關的其他工業(yè)文件 298
23.5.1 DO-201A:航空信息標準 298
23.5.2 DO-236B:航空系統(tǒng)性能最低標準:區(qū)域導航要求的導航性能 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:導航系統(tǒng)數(shù)據(jù)庫標準 299
23.5.7 ARINC 816-1:機場地圖數(shù)據(jù)庫的嵌入式互換格式 299
第24章?軟件復用 300
24.1 引言 300
24.2 設計可復用構件 301
24.3 復用先前開發(fā)的軟件 304
24.3.1 為在民用航空產品中使用而評價PDS 305
24.3.2 復用未使用DO-178[]開發(fā)的PDS 308
24.3.3 COTS軟件的額外考慮 310
24.4 產品服役歷史 311
24.4.1 產品服役歷史的定義 311
24.4.2 使用產品服役歷史尋求置信度的困難 311
24.4.3 使用產品服役歷史聲明置信度時考慮的因素 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 總結 331
附錄A?活動轉換準則舉例 332
附錄B?實時操作系統(tǒng)關注點 338
附錄C?為安全關鍵系統(tǒng)選擇實時操作系統(tǒng)時考慮的問題 341
附錄D?軟件服役歷史問題 344
縮略語 348
參考文獻 353
推薦讀物 365