[軟體工程] 筆記二_軟體設計模型

Q: 軟體設計的模型有很多種。請問以下需求要如何設計軟體的模型?

1. 軟體的架構設計 (包含子系統、元件、物件、資料等)

2. 軟體的資訊安全 (security)

3. 軟體的safety (不危害環境或造成財損與傷亡)

4. 軟體未來的維護能力 (evolution)

-- From 中正大學 熊博安教授  實驗室


A: 

1. 架構設計

軟體的架構設計可採用有限狀態自動機(FSM),表示有限個狀態與狀態間的轉移與動作。把元件視為一個狀態機,其中會拋出資料或轉移資料,可改變狀態並與其他的元件互動。從元件與元件之間劃出相對應的關係,到最後譜出一整個子系統。


2. 資訊安全

可採用Bell-LaPadula模型,是一種狀態機模型,著重機密性,能夠防止以未經授權的方式訪問秘密資訊。該模型定義了一個自主訪問控制和兩個強制訪問控制,分為三個安全屬性:簡單安全屬性、*屬性和自主安全屬性。針對使用者進行許可權與對象等級的進行比對。


3. 軟體的Safety

目前功能安全相關的標準為IEC 61508,各產業再從此標準衍生出來。為了達到安全性需求,可在產品開發階段納入考量。在開發前期運用危害與風險分析找出可能對人員的傷害,並在需求分析階段界定出功能的需求與安全等級(SIL),之後可在系統設計階段透過系統架構來定義相對應的軟硬體模組。其他的安全性模型包含:Biba, Clark-Wilson, Brewer-Nash, Graham-Denning, HRU, state machine等等


4. 軟體未來的維護能力

如果需要建立方便維護的系統架構,可採用瀑布式開發模型。每一個階段清楚定義該階段的需求與活動,不可隨意變動需求或是返回到上一個軟體專案開發階段。如果需要做修正,必須等待測試並驗證完原有的需求後,才可進行下一次的改變。


參考網址:

維基百科-有限狀態機

維基百科-Bell–LaPadula模型

軟體功能安全

留言

手刀來看看