正像E/E/PE安全相關系統的開發有總體安全生命周期一樣,軟件也遵循有效的生命周期發展過程。圖8.1展示了軟件系統性能力和開發生命周期,即V模型。它是很多不同的軟件開發模型之一。可以根據項目的安全完整性要求和復雜性對V模型進行步驟合并。V模型描述了一種自上而下的軟件設計和測試程序。V模型中的每一方框的內容都需要確認和驗證。下面簡述V模型中各個程序框的工作內容。
軟件安全要求規范:對軟件的全部要求,包括系統啟動、操作、維護、關閉、報警、旁路等,都需要清晰地整理成文檔。軟件安全要求規范的基本內容詳見。如果沒有軟件安全要求規范或軟件安全要求規范不完全,則有效的軟件開發是很困難的。
軟件架構:規定軟件的整體結構,包括語言、主程序結構、子程序、主程序和子程序的相互作用、標準函數塊、附加的或自定義的功能等,特別是安全完整性等級。
軟件系統設計/模塊設計:指軟件的詳細設計和開發。架構中的主要組件劃分為個軟件模塊系統;各自的軟件模塊設計;編碼。在小型軟件開發項目中,軟件系統設計和架構設計可整合在一起。
編碼:軟件的編碼或者實際編制軟件基于的語言和體系結構。根據要求,可能會有一個或多個程序。
模塊測試:包括代碼復審和軟件模塊測試,即測試并驗證軟件模塊正確地滿足其相關規范,是否能夠執行預定功能且不執行非預定功能。
模塊(軟件)集成測試:根據軟件系統集成測試規范中的要求,測試并驗證所有軟件模塊和軟件組件/子系統是否正確交互以執行其預定的功能而不執行非預定功能。
可編程電子集成測試:測試并驗證軟件是否正確集成到可編程電子硬件中,并能夠兼容且實現安全完整性等級的要求。該步驟可以與軟件集成測試合并。
確認:確認測試是為驗證集成的系統滿足所需的安全完整性等級,符合軟件安全要求規范。
另外需要指出的是,軟件驗證是針對安全完整性等級要求的程度,測試和評估軟件安全生命周期在給定的各個階段的輸出與輸入的正確性和一致性。軟件驗證不對軟件模塊測試、軟件集成測試、可編程電子集成和軟件確認中的驗證測試提出額外要求,但機械手控制系統軟件部分尚須對下列內容進行驗證:
① 軟件安全要求;
② 軟件架構;
③ 系統設計;
④ 模塊設計;
⑤ 代碼;
⑥ 數據;
⑦ 時間性能。