您當(dāng)前的位置:檢測(cè)資訊 > 科研開(kāi)發(fā)
嘉峪檢測(cè)網(wǎng) 2019-07-22 09:46
軟件架構(gòu)設(shè)計(jì)
我們說(shuō)到可以對(duì)照IEC62304列出的需求,準(zhǔn)備我們的醫(yī)療器械軟件需求文檔。接下來(lái),我們就是要將這些需求轉(zhuǎn)換成軟件的體系架構(gòu)。
軟件體系架構(gòu)是構(gòu)建計(jì)算機(jī)軟件實(shí)踐的基礎(chǔ)。就好比建筑師設(shè)定建筑項(xiàng)目的設(shè)計(jì)原則和目標(biāo),作為繪圖員畫圖的基礎(chǔ)。軟件架構(gòu)師要按照客戶需求,制定實(shí)際系統(tǒng)設(shè)計(jì)方案。
從目的、主題、材料和結(jié)構(gòu)的聯(lián)系上來(lái)說(shuō),軟件架構(gòu)可以和建筑物的架構(gòu)相比擬。軟件架構(gòu)師定義和設(shè)計(jì)軟件的模塊化,模塊之間的交互,用戶界面風(fēng)格,對(duì)外接口方法,創(chuàng)新的設(shè)計(jì)特性,以及高層事物的對(duì)象操作、邏輯和流程。(參考維基百科)
軟件架構(gòu)設(shè)計(jì)的方法很多,通常會(huì)包括以下四個(gè)步驟:
第一步預(yù)架構(gòu)階段
了解軟件的所有需求,將需求結(jié)構(gòu)化,捋清需求之間的關(guān)系。
第二步概念架構(gòu)
基于關(guān)鍵功能,進(jìn)行初步設(shè)計(jì),將復(fù)雜的系統(tǒng)分成多個(gè)子系統(tǒng)。
第三步細(xì)化架構(gòu)
常用5視圖法進(jìn)行細(xì)化架構(gòu)設(shè)計(jì),包括:
1)邏輯架構(gòu)
重點(diǎn)是考慮軟件功能性需求——需要考慮多方面的需求:系統(tǒng)功能劃分成幾個(gè)子系統(tǒng)和功能模塊?向用戶提供什么功能?每個(gè)功能都是怎樣的操作流程與分支?如何通過(guò)界面與用戶交互?怎樣交互?應(yīng)當(dāng)設(shè)計(jì)哪些類與界面?怎樣設(shè)計(jì)?與哪些外部系統(tǒng)接口?怎樣接口?
2)開(kāi)發(fā)架構(gòu)
重點(diǎn)關(guān)注的是開(kāi)發(fā)編碼實(shí)現(xiàn)方面的問(wèn)題
3)數(shù)據(jù)架構(gòu)
不僅僅要考慮開(kāi)發(fā)中涉及到的數(shù)據(jù)庫(kù),實(shí)體模型,也要考慮物理架構(gòu)中數(shù)據(jù)存儲(chǔ)的設(shè)計(jì)。
4)運(yùn)行架構(gòu)
運(yùn)行架構(gòu)關(guān)注的不再是全局而是局部,著重關(guān)注那些關(guān)鍵點(diǎn)與難點(diǎn),常常需要技術(shù)攻關(guān)與預(yù)研。主要考慮控制流、通訊機(jī)制、資源爭(zhēng)用、鎖機(jī)制、同步異步、并發(fā)、串行,同時(shí)也要考慮質(zhì)量屬性。
5)物理架構(gòu)
物理架構(gòu)主要考慮硬件選擇和拓?fù)浣Y(jié)構(gòu),軟件到硬件的映射,軟硬件的相互影響。
第四步編碼實(shí)現(xiàn)
最后就是將架構(gòu)進(jìn)行詳細(xì)設(shè)計(jì),通過(guò)編碼實(shí)現(xiàn)軟件架構(gòu)。
軟件詳細(xì)設(shè)計(jì)
軟件架構(gòu)設(shè)計(jì)完成后,需要將架構(gòu)細(xì)化成軟件單元,所謂的軟件單元就是不可再分的軟件項(xiàng)。
有些醫(yī)療器械軟件會(huì)用到SOUP的軟件項(xiàng),此類的軟件項(xiàng)的內(nèi)部架構(gòu)可能沒(méi)有辦法得知,但可以將這類軟件項(xiàng)看成一個(gè)軟件單元。
軟件進(jìn)行詳細(xì)設(shè)計(jì)時(shí),不單要對(duì)每個(gè)軟件單元進(jìn)行詳細(xì)設(shè)計(jì),還要將軟件單元對(duì)外部任何的軟件或硬件接口進(jìn)行詳細(xì)設(shè)計(jì),并且這些設(shè)計(jì)都要形成文檔。
當(dāng)然在所有的進(jìn)行詳細(xì)設(shè)計(jì)時(shí),要考慮風(fēng)險(xiǎn)管理的要求,及時(shí)調(diào)整軟件的架構(gòu)設(shè)計(jì)和詳細(xì)設(shè)計(jì)。
結(jié)語(yǔ)
今天的微課分享到這里,術(shù)業(yè)有專攻,每個(gè)企業(yè)的程序員應(yīng)該比我們更了解軟件的架構(gòu)設(shè)計(jì)和詳細(xì)設(shè)計(jì)。這次微課很多是借鑒他山之石,帶大家初步了解軟件架構(gòu)設(shè)計(jì)和詳細(xì)設(shè)計(jì)的大概流程,以便更好得準(zhǔn)備軟件描述文檔。
來(lái)源:?jiǎn)⑸Y訊