![]() 上篇文章解析了軟件架構(gòu)設(shè)計的理論方面知識《【ASPICE4.0】--SWE.2軟件架構(gòu)設(shè)計解析》,可能有些抽象。 本文通過一個實例,來一起看看軟件架構(gòu)設(shè)計的主要內(nèi)容有哪些,要怎么來設(shè)計與編寫的。 廢話不多說,開搞。 假設(shè)系統(tǒng)需求如下: 1) SYSReq_001:ECU需要采集外部設(shè)備A輸入的電壓信息 2) SYSReq_002:當(dāng)電壓持續(xù)超過16V時(持續(xù)時間1000ms),判斷為過壓。 3) SYSReq_003:當(dāng)發(fā)生過壓情況時,切斷電源; 假設(shè)系統(tǒng)架構(gòu)設(shè)計圖如下: ![]() 假設(shè)軟件需求如下: 1) SWReq_001:軟件間隔10ms,從MCU的哪個PIN腳,進(jìn)行電壓ADC采樣; 2) SWReq_002:當(dāng)電壓持續(xù)超過16V時(持續(xù)時間1000ms),判斷為過壓。 3) SWReq_003:當(dāng)發(fā)生過壓情況時,通過MCU有哪個PIN腳,切斷外部ECU2的電源供電; 本文主要講解軟件架構(gòu)設(shè)計的這些要素:靜態(tài)架構(gòu)圖、動態(tài)行為圖、接口、資源等幾個部分。下面一個個示例展開描述: ![]() 下面是我對軟件靜態(tài)架構(gòu)圖的理解: 1) 上圖即為軟件架構(gòu)靜態(tài)圖,里面深藍(lán)色的框框,即為上篇軟件架構(gòu)設(shè)計文檔說的“軟件組件”。 2) 上圖淺藍(lán)色部分,屬于軟件組件內(nèi)部的設(shè)計,在軟件架構(gòu)設(shè)計可以不用展開詳細(xì)分析,在軟件詳細(xì)設(shè)計再展開詳細(xì)設(shè)計即可。 3) 上圖紅色的箭頭為模塊間的接口,需要軟件架構(gòu)設(shè)計文檔中展開詳細(xì)描述。 4) 上圖黑色的箭頭為模塊內(nèi)的接口,不需要軟件架構(gòu)設(shè)計文檔中展開詳細(xì)描述,在軟件詳細(xì)設(shè)計展開即可。 需要給每個組件做好編號,并詳細(xì)解釋每個組件的相關(guān)意義。具體可參考下表: 如下表,軟件架構(gòu)設(shè)計書需對所有的軟件組件展開詳細(xì)描述。具體參考如下: ![]() 關(guān)于資源相關(guān)的使用評估,最好附上相關(guān)說明,比如“沿用”哪個項目,故參考該項目,XX模塊占用XX空間。 如下表,所有組件之間相互的接口都需要羅列出來,不能有遺漏。具體參考如下: ![]() 若由多個組件共同實現(xiàn)某項軟件需求,則需編寫動態(tài)行為圖以進(jìn)行功能的設(shè)計說明。具體參考下圖: ![]() 針對Code Flash, Data Flash, RAM等存儲類資源的分析,可按照靜態(tài)架構(gòu)圖中的組件來分析,分別列出各組件的資源消耗。 ![]() 針對CPU負(fù)載,動態(tài)設(shè)計以及軟件所有任務(wù)列表,可以協(xié)助用支持此部分設(shè)計。 這個CPU負(fù)載,分為兩大部分,一部分是任務(wù)的CPU負(fù)載,一部分是中斷的CPU負(fù)載,兩部分都要進(jìn)行統(tǒng)計。 ![]() 另外,軟件架構(gòu)中還需要說明相關(guān)的軟件控制策略,例如: 1)需羅列出所有使用的軟件任務(wù),分析每個任務(wù)的用途、執(zhí)行時間,調(diào)用周期,等相關(guān)信息。 2)需羅列出所有的軟件中斷,分析每個中斷的用途、執(zhí)行時間,調(diào)用周期,等相關(guān)信息。 3)需對初始化流程進(jìn)行分析。 4)需對共享資源進(jìn)行控制與分析。 5)需對看門狗使用策略進(jìn)行分析 此部分就先不展開詳細(xì)描述了,后面有需要再補(bǔ)充吧。 本過程域的前3個BP,可以梳理為下圖: ![]() 軟件架構(gòu)設(shè)計文檔中,要包含如下內(nèi)容: 1) 靜態(tài)圖 a) 包含哪些軟件組件 b) 這些組件的職責(zé)描述,組件是如何實現(xiàn)的(如:自研/購買/開源等)、組件占用資源等。 2) 動態(tài)圖 a) 軟件組件間的交互和行為表現(xiàn); b) 體現(xiàn)形式要求采用UML等方式,如上文的UML時序圖。 3) 需要對所有組件之間交互的接口展開詳細(xì)描述; 4) 需要對RAM/Flash等存儲性資源進(jìn)行評估,一般按軟件組件來進(jìn)行評估分析。 5) 需要對CPU負(fù)載進(jìn)行評估,一般需對所有的任務(wù)、中斷進(jìn)行分析,通過分析其運行周期,執(zhí)行時間來分析其占用的CPU負(fù)載。 6) 軟件架構(gòu)中還需要說明相關(guān)的軟件控制策略,例如:所有使用的軟件任務(wù),所有的軟件中斷, 對初始化流程進(jìn)行分析,對共享資源進(jìn)行分析、看門狗策略等。 7) 一定要包含設(shè)計的結(jié)論和設(shè)計的理由。 若有需要ASPICE4.0相關(guān)標(biāo)準(zhǔn)學(xué)習(xí)文檔的朋友,可以掃碼如下微信二維碼,然后發(fā)送“ASPICE”。 |
|
|