簡(jiǎn)單直接地開始編程的誘惑總是很大。如果采取這種做法,日后在安全和防護(hù)方面可能要付出代價(jià)。設(shè)計(jì)適當(dāng)?shù)能浖軜?gòu)可以......
簡(jiǎn)化接口減少須視為安全相關(guān)的代碼量促進(jìn)模塊化有助于測(cè)試和驗(yàn)證簡(jiǎn)化非安全相關(guān)軟件的更改管理支持更嚴(yán)格的硬件設(shè)計(jì)簡(jiǎn)化代碼關(guān)于簡(jiǎn)化這一目標(biāo),我喜歡下面這句發(fā)人深省的名言
圖1 - 關(guān)于軟件設(shè)計(jì)的名言
IEC 61508-3中的V模型將軟件架構(gòu)步驟顯示為收集需求與軟件設(shè)計(jì)之間的步驟。它是決定軟件安全基本策略的步驟,包括冗余和多樣性的使用。它還涉及將功能分配給主要元件和子系統(tǒng),并決定其間如何互連。
圖2 - IEC 61508-3:2010中的V模型
機(jī)械標(biāo)準(zhǔn)IEC 62061給出了關(guān)于軟件架構(gòu)的一些最佳說(shuō)明,包括下圖。此圖不是專門針對(duì)軟件的,但我認(rèn)為它已經(jīng)把主要思想表達(dá)出來(lái)。
圖3 - 摘自機(jī)械安全標(biāo)準(zhǔn)IEC 62061
如果架構(gòu)不支持安全與非安全軟件之間充分隔離,那么所有軟件都需要根據(jù)安全標(biāo)準(zhǔn)進(jìn)行開發(fā)。如果軟件屬于混合安全完整性,那么不支持充分獨(dú)立性要求的架構(gòu)將導(dǎo)致所有軟件都必須按照任何模塊的最高安全完整性進(jìn)行開發(fā)。
顯然,軟件架構(gòu)需要與硬件架構(gòu)協(xié)調(diào)一致。如果系統(tǒng)含有三個(gè)微控制器/微處理器,其中一個(gè)用于運(yùn)行控制軟件,另外兩個(gè)各運(yùn)行一個(gè)安全通道,那么每個(gè)微控制器/微處理器可以有自己的軟件架構(gòu),充分隔離和獨(dú)立性在很大程度上是默認(rèn)具備的。而要在單個(gè)處理器中實(shí)現(xiàn)相同的目標(biāo),將需要在架構(gòu)規(guī)劃上下更大工夫。
除了劃分子系統(tǒng)和元件之外,架構(gòu)還應(yīng)描述控制流程,但這是未來(lái)博客的主題。
-
軟件架構(gòu)
+關(guān)注
關(guān)注
0文章
64瀏覽量
10282 -
軟件安全
+關(guān)注
關(guān)注
0文章
23瀏覽量
9199
原文標(biāo)題:【工程師博客】如何設(shè)計(jì)安全的軟件架構(gòu)
文章出處:【微信號(hào):motorcontrol365,微信公眾號(hào):電機(jī)控制設(shè)計(jì)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論