黃保壘+項濤+董延軍
摘要:簡述了軟件架構(gòu)的定義,對軟件架構(gòu)的評價方法進(jìn)行了總結(jié)和分類。針對嵌入式領(lǐng)域?qū)谲浖軜?gòu)分析方法(SAAM)進(jìn)行優(yōu)化,提出一種嵌入式操作系統(tǒng)架構(gòu)分析方法,并對國產(chǎn)嵌入式操作系統(tǒng)(ACoreOS)的軟件架構(gòu)進(jìn)行了分析評價,提出軟件架構(gòu)的改進(jìn)建議,同時驗證了分析方法的可行性。
關(guān)鍵詞:軟件架構(gòu);軟件架構(gòu)評價;軟件架構(gòu)分析方法;國產(chǎn)嵌入式操作系統(tǒng)
軟件架構(gòu)(Software Architecture,SA)是控制軟件復(fù)雜度、提高軟件質(zhì)量、增加軟件重用性的重要方法之一,是軟件工程的一個重要研究領(lǐng)域。自軟件架構(gòu)提出至今,軟件體系結(jié)構(gòu)定義很多,其中具有影響力的定義包括:1)軟件系統(tǒng)的結(jié)構(gòu),包含軟件元素、軟件元素外部可見的屬性以及這些軟件元素之間的關(guān)系;2)軟件系統(tǒng)的基本組織,包含構(gòu)件、構(gòu)件之間、構(gòu)件與環(huán)境之間的關(guān)系,以及相關(guān)的設(shè)計與演化原則等。
軟件體系結(jié)構(gòu)設(shè)計技術(shù)日趨成熟,如何對軟件體系結(jié)構(gòu)進(jìn)行有效評估,在軟件生命周期早期保障軟件的質(zhì)量成為影響軟件開發(fā)的瓶頸之一。瓶頸在于:1)沒有通用的一種語言可以描述不同的架構(gòu);2)沒有明確的方法來建立軟件架構(gòu)與系統(tǒng)開發(fā)所關(guān)注內(nèi)容的關(guān)聯(lián);3)軟件架構(gòu)的評價依賴于問題域,而不同系統(tǒng)的問題域不同?,F(xiàn)有對軟件體系結(jié)構(gòu)評估的方法被分為3類:基于場景的方法、基于度量一預(yù)測的方法以及特定軟件體系結(jié)構(gòu)描述語言的評估方法。
1 SAAM軟件架構(gòu)分析方法
卡耐基梅隆大學(xué)的Rich Kazman和Paul Clements等人在軟件架構(gòu)分析領(lǐng)域,定義了幾種通用的軟件架構(gòu)評價方法,典型的場景分析方法有軟件架構(gòu)分析方法(SAAM),度量一預(yù)測分析方法有基于架構(gòu)權(quán)衡分析方法(ATAM)。這些方法各有優(yōu)劣,差異體現(xiàn)在分析技術(shù)的選擇、支持質(zhì)量屬性的種類、參與者的要求等方面。
基于場景的評估方式針對特定領(lǐng)域場景設(shè)計是不同的。不同的系統(tǒng)對同一質(zhì)量屬性的理解可能不同。由于存在這種不一致性,對一個領(lǐng)域適合的場景設(shè)計往往不適用于其他領(lǐng)域,故而這一評估方法的實施需要豐富的領(lǐng)域知識以設(shè)計出合理的場景;另一方面,必須對待評估的軟件架構(gòu)有一定理解,以準(zhǔn)確判斷其是否支持場景描述的一系列活動。
經(jīng)過多年的實踐該方法的實用性和有效性已經(jīng)得到應(yīng)用驗證,并成功指導(dǎo)了空中交通管制、嵌入式音頻系統(tǒng)、修改控制系統(tǒng)(WRCS)等多個系統(tǒng)的架構(gòu)設(shè)計。
雖然SAAM方法能夠很有效的評價分析一個軟件架構(gòu),但是評估過程復(fù)雜并涉及了一些軟件開發(fā)流程管理的內(nèi)容,需要多方人員的參與和很多的工作量才能成對一個軟件架構(gòu)的分析,而在大多場景下對于軟件的評估是需要一種輕量的易于實施的評估方法。
2輕量級軟件架構(gòu)分析方法
參考SAAM軟件架構(gòu)分析方法,本文提出了一種針對嵌入式操作系統(tǒng)的輕量級軟件架構(gòu)分析評價方法。針對需求進(jìn)行軟件場景定義,通過對場景的充分描述來反映系統(tǒng)功能;同時分析貫穿于整個軟件開發(fā)過程中,包括需求分析、架構(gòu)設(shè)計、集成測試等,從而能夠更好地保證軟件質(zhì)量。
通過領(lǐng)域場景與候選體系結(jié)構(gòu)間的映射,為體系結(jié)構(gòu)滿足每個場景的期望進(jìn)行評估,通過研究軟件系統(tǒng)對特定任務(wù)場景的支持程度得出對軟件系統(tǒng)的結(jié)構(gòu)評價。
基于場景的嵌入式操作系統(tǒng)分析方法如圖1所示:
分析方法包括五個步驟:
1)開發(fā)任務(wù)場景:開發(fā)任務(wù)場景描述哪些活動是系統(tǒng)必須支持的。從不同的角色(利益相關(guān)者)那里得到與系統(tǒng)交互的任務(wù)場景,如開發(fā)人員、維護人員、用戶等。
2)描述候選體系結(jié)構(gòu):使用一組各用戶能夠理解的概念描述被評價的軟件架構(gòu),對每一個系統(tǒng)的結(jié)構(gòu)化描述必須表示出系統(tǒng)的部件(計算和/或數(shù)據(jù))以及它們的關(guān)系(數(shù)據(jù)和控制)。
3)執(zhí)行場景評價:對每個場景確定這個任務(wù)能否被直接支持(通過執(zhí)行該系統(tǒng))或間接支持(通過修改該系統(tǒng))。改動越少,系統(tǒng)性能越好;反之,系統(tǒng)性能越差。
4)顯示場景交互程度:把所有的間接場景映射到它們影響的部件和連接上去。這將給人們提供系統(tǒng)中部件劃分的質(zhì)量,不同類別場景所引起的部件交互越少,系統(tǒng)性能越好。
5)形成總體評價:最后對場景和場景之間的交互做一個總體的權(quán)衡和評價。
通過在某型國產(chǎn)嵌入式操作系統(tǒng)上開展軟件架構(gòu)的評價分析,對該方法進(jìn)行可行性驗證。
3國產(chǎn)操作系統(tǒng)軟件架構(gòu)分析
某型國產(chǎn)嵌入式操作系統(tǒng)(ACoreOS,簡稱0S)是一款強實時、單任務(wù)操作系統(tǒng)。該操作系統(tǒng)具有高安全、高可靠的特征,可用于安全關(guān)鍵的航空系統(tǒng)中;同時,該操作系統(tǒng)也具有剪裁配置能力,能夠最小化資源需求,簡化系統(tǒng)部署要求。
3.1開發(fā)任務(wù)場景
針對嵌入式操作系統(tǒng)的使用場景,其涉及利益相關(guān)人員包括:驅(qū)動開發(fā)人員、應(yīng)用開發(fā)人員、配置集成人員、維護人員、用戶五類角色,由這五類人員進(jìn)行的場景定義如表1所示。
3.2操作系統(tǒng)架構(gòu)描述
ACoreOS采用層次化架構(gòu)設(shè)計,系統(tǒng)結(jié)構(gòu)如圖2所示。系統(tǒng)分為四個層次,自下而上依次為:
1)模塊支持層(MSL):實現(xiàn)對硬件平臺的驅(qū)動和標(biāo)準(zhǔn)化。實現(xiàn)對各類不同的硬件平臺差異的屏蔽,向操作系統(tǒng)層提供統(tǒng)一的操作接口;
2)操作系統(tǒng)層(OSL):操作系統(tǒng)的核心層,提供嵌入式操作系統(tǒng)的基本功能,包括存儲分配、錯誤處理、時間管理、任務(wù)管理、任務(wù)間通信、設(shè)備管理、運行時庫等;
3)組件支持庫:即中間件層,包括網(wǎng)絡(luò)協(xié)議棧、文件系統(tǒng)庫、OpenGL庫、數(shù)據(jù)庫等,這些組件支持庫能夠按照應(yīng)用軟件的要求進(jìn)行裁剪;
4)應(yīng)用軟件層:具體的應(yīng)用系統(tǒng),由應(yīng)用開發(fā)人員按照應(yīng)用特點,實現(xiàn)應(yīng)用功能。
操作系統(tǒng)中各類模塊間的數(shù)據(jù)交互以及最終目標(biāo)文件的組成如圖3所示。
3.3執(zhí)行場景評價與場景交互
針對定義的每個場景,分析所涉及的軟件架構(gòu)中的模塊,劃分出直接支持和間接支持的場景,并對間接支持中有修改的模塊進(jìn)行分析,評估軟件架構(gòu)中的模塊劃分、耦合情況。詳細(xì)分析情況見表2。
通過表2的場景分析,部分場景中需要通過修改一些軟件模塊才能夠?qū)崿F(xiàn)完整的場景支持,屬于間接支持。進(jìn)一步詳細(xì)分析可以發(fā)現(xiàn)MSL層和0S層的調(diào)試組件與各類場景具有比較大的耦合關(guān)系,提供的調(diào)試手段不夠靈活;上述場景中,部分模塊如MSL配置文件、映像管理被多個場景涉及,顯示出具有較高的重要性,需要重點設(shè)計。
3.4總體評價
通過該方法對ACore0S操作系統(tǒng)進(jìn)行場景評價,對體系結(jié)構(gòu)總體評價如下:
①通過分層設(shè)計,模塊功能分配較合理,多數(shù)場景能夠?qū)崿F(xiàn)獨立更新,但低層(MSL目標(biāo)文件)與上層間仍然具有較高耦合度,建議調(diào)整配置數(shù)據(jù)的分布;
②模塊在圖形化配置文件,在各類應(yīng)用場景中通過配置數(shù)據(jù)進(jìn)行修改,提供了較高的易用性;
③對新的驅(qū)動硬件、處理器的支持需要通過修改腳本等模塊實現(xiàn),反映出操作系統(tǒng)在擴展性方面還需要改進(jìn);
④調(diào)試模塊、映像管理模塊在多個場景中都涉及,相互間耦合較大,兩類模塊的功能定義可能存在不清晰的情況,需要完善。
4結(jié)束語
掌握和使用軟件架構(gòu)的評價方法對提高軟件架構(gòu)的合理性,避免軟件后期的設(shè)計缺陷具有重要作用。本文提出了一種針對嵌入式操作系統(tǒng)的輕量級軟件架構(gòu)評估方法,該方法能夠簡潔有效的對軟件架構(gòu)進(jìn)行評估,分析結(jié)果可以為架構(gòu)的改進(jìn)提供參考。通過對ACore0S操作系統(tǒng)架構(gòu)的分析,驗證了該方法的有效性和廣泛的適應(yīng)性。