摘 要:軟件架構(gòu)是軟件開發(fā)的基礎(chǔ),決定了軟件產(chǎn)品的質(zhì)量,它的重要性不言而喻。隨著計算機軟件開發(fā)技術(shù)的發(fā)展和進步,目前評價一個系統(tǒng)的軟件架構(gòu)變得越來越重要。在架構(gòu)權(quán)衡分析方法與軟件架構(gòu)分析方法的基礎(chǔ)上提出了一種基于場景軟件架構(gòu)分析方法,這種方法主要是基于場景的分析過程,再構(gòu)建相對應(yīng)的評價指標(biāo)與場景庫,給軟件架構(gòu)分析建立了一種輕量級分析手法。
關(guān)鍵詞:軟件架構(gòu);軟件質(zhì)量;架構(gòu)分析;評價指標(biāo);場景庫
中圖分類號:TP311.52
軟件架構(gòu)是系統(tǒng)中的基本部分,它存在系統(tǒng)中的各組件中,刻畫了整體系統(tǒng)結(jié)構(gòu)設(shè)計,包含了全局組織和控制結(jié)構(gòu)、數(shù)據(jù)訪問、物理分布、設(shè)計選擇、元素繼承等,是一個系統(tǒng)的核心,一個軟件的質(zhì)量大部分就是要建立在架構(gòu)設(shè)計上,所以分析架構(gòu)設(shè)計的方法與思想是很有必要的,但是目前我國對于軟件架構(gòu)的評價還是一份很困難的工作,這還需要更多的學(xué)者進行研究。
1 軟件架構(gòu)分析(SAAM)與架構(gòu)權(quán)衡分析(ATAM)
軟件架構(gòu)評價(SAAM)是一種評估軟件架構(gòu)的技術(shù),是卡耐基梅隆大學(xué)軟件工程研究所最先提出的,該方法時建立在任務(wù)場景和上下文的評價方法,通過建立一組領(lǐng)域驅(qū)動場景來評價軟件的質(zhì)量,建立的場景描述了不同的用戶介入系統(tǒng)后所遇的特定任務(wù),總體來說,該方法主要側(cè)重于整體軟件構(gòu)架工功能的研究。
架構(gòu)權(quán)衡評價(ATAM)還是由卡耐基梅隆大學(xué)軟件工程研究所提出的另一種分析評價手段,該方法可以分析軟件架構(gòu)和系統(tǒng)性能、靈活性等方面的滿意程度,還可以對系統(tǒng)內(nèi)部的各參數(shù)見的互補和排斥等關(guān)系進行分析,從而得到折中的方案,最終使系統(tǒng)整體效果達到最好。
上述兩種方案在評價軟件結(jié)構(gòu)時的效果還是非常明顯的,但兩者都屬于重量級分析方法,這需要更多的人員來參與到架構(gòu)的分析中來,根據(jù)目前的社會需求,很多情況不需要重量級的分析方法,僅僅需要的是一種輕量級的方法。
2 基于場景的架構(gòu)分析方法
根據(jù)上述的兩種方法,提取了其中的一些信息設(shè)計了一種輕量級的架構(gòu)分析方法,由于場景定義能夠?qū)ο到y(tǒng)功能進行詳細(xì)的描述,這對架構(gòu)的分析變得清晰,分析效率提高,與此同時還能在多個軟件開發(fā)中和架構(gòu)設(shè)計、集成測試等方面進行結(jié)合,這使軟件的質(zhì)量得到了有效的提高。
上述的兩種分析方法在分析過程是比較復(fù)雜的,在分析基于場景的架構(gòu)方法時對兩者對開發(fā)過程部分進行了簡化處理,這使分析方法顯得更為簡單清晰,分析的步驟如下:(1)分析問題域,構(gòu)建場景庫。根據(jù)項目在應(yīng)用中的具體定位,對需求進行詳細(xì)分析,總結(jié)系統(tǒng)中預(yù)期功能,對預(yù)期功能進行分類,保證每項功能都被描述的很詳細(xì),并將功能都定義相對應(yīng)的場景,構(gòu)建針對功能的場景庫;(2)根據(jù)場景庫的測試整個系統(tǒng)軟件架構(gòu)對功能的支撐程度,對其中支撐程度不高的功能展開架構(gòu)研究,再進一步的分析是否是軟件架構(gòu)設(shè)計導(dǎo)致的問題,從中去發(fā)現(xiàn)架構(gòu)設(shè)計的不足;(3)構(gòu)建非功能指標(biāo)參數(shù)樹。選擇非功能性的指標(biāo),定義其期望值、場景和衡量屬性;(4)利用參數(shù)指標(biāo)進行非功能分析,比較實際的期望值與輸出值,用以評價架構(gòu)對指標(biāo)屬性的支持度,從中去發(fā)現(xiàn)架構(gòu)的不足。
3 K-Sketch架構(gòu)分析
K-Sketch是一款開源的動畫制作工具,針對動畫初學(xué)人員設(shè)計的筆交互工具,主要利用初學(xué)人員在時間與空間上的直覺來快速的編制動畫,它的開源性對軟件架構(gòu)的分析顯得比較方便。以下就利用基于場景軟件架構(gòu)分析法對K-Sketch軟件架構(gòu)進行一個詳細(xì)的分析,為其他軟件架構(gòu)的設(shè)計提供一個借鑒。
3.1 K-Sketch功能場景庫。針對K-Sketch軟件,根據(jù)它的用戶進行了需求分析,選擇了一些簡單、表達性強、快速的功能,然后對各個功能進行了定義并分類,主要選擇的功能包括圖形功能要求、視角功能要求、動畫動作要求、動畫播放功能要求。針對圖形功能要求,主要是筆的屬性、筆畫的屬性、填充顏色屬性、可插入的文字和圖片;針對視角要求,主要是觀察者視角的變化;針對動畫動作要求,主要有動畫的平移、伸縮和旋轉(zhuǎn)、錄制繪制過程、動作同步性、擦除與恢復(fù)、動作合成、動作軌跡的復(fù)制和粘貼、取消操作、恢復(fù)操作。針對動畫播放功能要求,主要是對動畫的播放速度調(diào)整、暫停、恢復(fù)、循環(huán)播放。場景舉例1(Zoom功能):一個用戶可以用過滾動滾動條來進行畫布的縮放操作,并能控制畫布的縮放倍數(shù),可以先將其縮放為原來的二分之一,描繪一個圖案,將畫布放大兩倍,再描繪另一個圖形,再恢復(fù)到原來的大小,2個圖形應(yīng)保持一個合理的倍數(shù)關(guān)系。
3.2 K-Sketch功能分析結(jié)果。通過功能場景庫對K-Sketch架構(gòu)進行的分析,部分的結(jié)果如下:對于多種圖樣的支持評級為B,可以通過現(xiàn)有類或者繼承來實現(xiàn)架構(gòu)內(nèi)部的擴展,認(rèn)定架構(gòu)在該功能上有很好的擴展性,對于Zoom功能評級為C,由于K-Sketch數(shù)據(jù)結(jié)構(gòu)是森林結(jié)構(gòu),無更節(jié)點,在從上到下的訪問限制比較大,在功能的實現(xiàn)上一些功能也受到了限制,所以K-Sketch在數(shù)據(jù)模型設(shè)計上存在著不足的地方。
3.3 K-Sketch指標(biāo)參數(shù)樹。這里K-Sketch選擇的是可移植性作為非功能參數(shù)指標(biāo),其他參數(shù)指標(biāo)和此類似,具體的場景舉例如下:場景舉例2(播放性能)共有1000個動態(tài)筆畫,其中長、中、短筆畫各占分三之一,縮放動作和旋轉(zhuǎn)動作各占四分之一,筆畫平移占二分之一;另有400個靜態(tài)的筆畫,其中長、中、短筆畫各占分三之一。動態(tài)筆畫在數(shù)據(jù)模型中的深度是3,動作時間100秒,靜態(tài)筆畫不做任何動作。動畫在播放時的幀頻率是10毫秒每幀,期望的輸出為實際幀率要小雨80毫秒每幀。
3.4 K-Sketch非功能性分析結(jié)果。利用指標(biāo)參數(shù)對K-Sketch架構(gòu)進行分析,部分的結(jié)果如下:播放性能評級為C,當(dāng)進行測試動態(tài)筆畫1000和靜態(tài)筆畫400的場景時,K-Sketch實際的幀率超過了500毫秒,播放的效果極不理想,出現(xiàn)了該問題,對K-Sketch在運行時進行了詳細(xì)的監(jiān)控,是因為底層中存在一個第三方的中間件占用了極多的運行時間,占據(jù)了大量的資源,這時就知道需要一個替換中間件的模塊;網(wǎng)絡(luò)平臺的支持評級為C,雖然K-Sketch可以把動畫導(dǎo)出成Flash文件,該Flash文件無論在網(wǎng)頁上還是在PowerPoint文件中都能很輕松的鑲?cè)耄獙⒄麄€系統(tǒng)的架構(gòu)全部移植到網(wǎng)絡(luò)上,顯得困難時極大的,這主要是因為NET框架留下的缺陷;跨平臺的支持評級為C,K-Sketch的框架是NET框架,所以在移植上時不能直接被移植到其他操作平臺上。
經(jīng)過上述對K-Sketch軟件架構(gòu)進行分析,得到了一些無風(fēng)險決策和風(fēng)險決策、權(quán)衡點和敏感點,這些分析的結(jié)果在理論上可以為改進K-Sketch軟件提供足夠的數(shù)據(jù)依據(jù)和經(jīng)驗指導(dǎo)。對于無風(fēng)險決策,K-Sketch采用了MVC模式,可以使系統(tǒng)的是結(jié)構(gòu)更加具有擴展性;對于風(fēng)險管理,K-Sketch使用了中間件來進行開發(fā),但是沒有將Piccolo框架運行性能考慮進去,這造成了在播放動畫時出現(xiàn)了問題;對于權(quán)衡點,采用跨越各平臺的技術(shù)能夠提高K-Sketch可移植性,在部署和擴展上很是方便,但同時也存在影響整個系統(tǒng)的性能,此外,在提高播放幀率的同時也會增加系統(tǒng)的負(fù)擔(dān),使畫面播放效果極差;對于敏感點,在系統(tǒng)中減少畫白板筆畫采樣點能提供系統(tǒng)整體的運行速度,與此同時也能減少動畫文件占用的空間。
4 結(jié)束語
本文提出了基于場景的軟件架構(gòu)分析方法,該方法通過需求分析,建立場景庫來分析軟件架構(gòu)在設(shè)計時存在的問題,與此同時也要選擇非功能性的要求,構(gòu)建期望值與場景庫,對此進行非功能性的評價,從中找出不足。
參考文獻:
[1]楊興春,譙石,董文.基于輕量級J2EE構(gòu)架的高校教務(wù)管理系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機系統(tǒng)應(yīng)用,2007(03):75-78.
[2]嚴(yán)張凌.基于Java的輕量級企業(yè)開發(fā)架構(gòu)的研究及應(yīng)用[D].四川大學(xué),2006.
[3]何永偉.關(guān)于輕量級軟件架構(gòu)的研究與評價[J].電腦知識與技術(shù),2009(06):1385-1386.
[4]余彩霞.基于Hibernate的輕量級J2EE架構(gòu)[J].現(xiàn)代電子技術(shù),2005(22):12-14+17.
作者簡介:范文學(xué)(1981.10-),男,江蘇如皋人,工程師,本科,研究方向:軟件架構(gòu)、軟件設(shè)計。
作者單位:洛陽電光設(shè)備研究所,河南洛陽 471023