摘 要:軟件體系結(jié)構(gòu)是軟件開發(fā)過程初期的產(chǎn)品,對(duì)軟件體系結(jié)構(gòu)進(jìn)行分析與評(píng)價(jià)是控制軟件質(zhì)量的關(guān)鍵之一。目前主流的軟件體系結(jié)構(gòu)質(zhì)量評(píng)價(jià)方法基本上都是基于場景的技術(shù),并且已經(jīng)在很多領(lǐng)域得到了應(yīng)用。本文闡明了軟件體系結(jié)構(gòu)分析的重要性,介紹了幾種主要的軟件體系結(jié)構(gòu)分析方法,并分析了當(dāng)前在該領(lǐng)域所遇到的一些困難或問題,方法的選擇對(duì)于結(jié)果和軟件質(zhì)量有著重要的意義。
關(guān)鍵詞:軟件體系結(jié)構(gòu);場景;質(zhì)量屬性
中圖分類號(hào):TP311
軟件質(zhì)量是指在軟件開發(fā)過程中形成的軟件滿足明確規(guī)定的需求的程度,也是衡量軟件好壞的一個(gè)重要指標(biāo)。隨著軟件規(guī)模和復(fù)雜性的不斷增大,如何控制和保證軟件的質(zhì)量已成為一個(gè)亟需解決的問題。為了提高軟件的質(zhì)量,需要在整個(gè)軟件開發(fā)周期中進(jìn)行有計(jì)劃的活動(dòng),包括對(duì)軟件的評(píng)價(jià)。研究表明,越早對(duì)質(zhì)量進(jìn)行評(píng)價(jià)越有利于對(duì)軟件質(zhì)量的控制以及降低開發(fā)成本。對(duì)軟件體系結(jié)構(gòu)進(jìn)行深入的研究,是保證軟件質(zhì)量的重要措施之一。隨著軟件體系結(jié)構(gòu)的發(fā)展,對(duì)軟件體系結(jié)構(gòu)系統(tǒng)進(jìn)行深入研究將會(huì)成為提高軟件生產(chǎn)率和解決軟件維護(hù)問題的新的最有效的途徑。
1 概述
1.1 軟件體系結(jié)構(gòu)。軟件體系結(jié)構(gòu)是國際上軟件工程研究的一個(gè)新興領(lǐng)域,它的研究目前還處于初始階段,對(duì)什么是軟件體系結(jié)構(gòu)還沒有一個(gè)標(biāo)準(zhǔn)的、為大家所普遍接受的定義。一般認(rèn)為,一個(gè)軟件系統(tǒng)的體系結(jié)構(gòu)定義了組成系統(tǒng)的計(jì)算構(gòu)件和構(gòu)件之間的相互作用關(guān)系,在體系結(jié)構(gòu)層次的構(gòu)件如:客戶、服務(wù)器、數(shù)據(jù)庫、過濾器等;構(gòu)件之間的交互可以是非常簡單的。
1.2 質(zhì)量屬性。[1]軟件質(zhì)量是指軟件滿足明確規(guī)定或隱含定義的需求的程度。通常從六個(gè)方面進(jìn)行衡量。分別是功能性、可靠性、易使用性、效率、可維護(hù)性和可移植性。
1.3 軟件體系結(jié)構(gòu)評(píng)估的重要性。軟件質(zhì)量是在整個(gè)軟件生命周期中形成的,與周期中的各個(gè)階段都息息相關(guān),而軟件體系結(jié)構(gòu)作為軟件質(zhì)量的功能性指標(biāo)的一個(gè)重要要素,同時(shí)也是生命周期中的關(guān)鍵一步,它發(fā)揮著重要作用。因此,對(duì)軟件體系結(jié)構(gòu)的分析也顯得尤為重要。我們可以通過對(duì)軟件體系結(jié)構(gòu)的分析評(píng)估,及早的發(fā)現(xiàn)軟件的問題,盡可能早的修改軟件,并預(yù)測未來系統(tǒng)的質(zhì)量屬性。預(yù)測修改十分有效,可以從總體降低軟件的開發(fā)成本,提高軟件的質(zhì)量。
2 主要的軟件體系結(jié)構(gòu)評(píng)估方法
目前的軟件體系結(jié)構(gòu)評(píng)估方法大多采用基于場景的技術(shù)。場景是從風(fēng)險(xiǎn)承擔(dān)者的角度對(duì)于與系統(tǒng)的交互的簡短描述,其中風(fēng)險(xiǎn)承擔(dān)著包括系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)中所涉及到的架構(gòu)設(shè)計(jì)師、開發(fā)人員、維護(hù)人員等。這種評(píng)估方法通過研究軟件體系結(jié)構(gòu)對(duì)場景的支持程度來判斷軟件質(zhì)量,評(píng)估結(jié)果較準(zhǔn)確。
2.1 SAAM;趫鼍暗捏w系結(jié)構(gòu)分析方法SAAM是最早形成文檔并得到廣泛運(yùn)用的一種非功能質(zhì)量屬性的體系結(jié)構(gòu)分析方法,是最早形成文檔并得到廣泛使用的軟件體系結(jié)構(gòu)分析方法[2],可用來分析軟件質(zhì)量,如軟件體系結(jié)構(gòu)的可修改性、可移植性、可擴(kuò)充性等。是一種較為成熟的方法,運(yùn)用廣泛,并成為許多其他的軟件體系結(jié)構(gòu)評(píng)價(jià)方法的基礎(chǔ)。
SAAM方法采用基于場景的功能性和變化分析的評(píng)估技術(shù),適用于體系結(jié)構(gòu)設(shè)計(jì)的最終版本,主要是對(duì)可修改性的考察,需要所有風(fēng)險(xiǎn)承擔(dān)者參與。
2.2 SAAMCS。基于復(fù)雜場景的體系結(jié)構(gòu)分析方法SAAMCS是對(duì)SAAM的擴(kuò)展,主要針對(duì)場景的復(fù)雜度,主要目標(biāo)是對(duì)系統(tǒng)進(jìn)行風(fēng)險(xiǎn)評(píng)估。
SAAMCS適用于有充分細(xì)節(jié)描述的體系結(jié)構(gòu)的最終版本,需要主要風(fēng)險(xiǎn)承擔(dān)者參與。
2.3 SAAMER。針對(duì)演化和復(fù)用體系結(jié)構(gòu)分析方法SAAMER也是對(duì)SAAM的擴(kuò)展的一種方法。
SAAMER通過對(duì)視圖(靜態(tài)視圖、映射視圖、動(dòng)態(tài)視圖和資源視圖)、信息模型和場景來分析系統(tǒng)的演化和復(fù)用屬性,需要設(shè)計(jì)者、管理者和最終用戶參與。
2.4 ATAM。體系結(jié)構(gòu)權(quán)衡分析方法ATAM是在SAAM的基礎(chǔ)上發(fā)展起來的,目標(biāo)在于對(duì)系統(tǒng)敏感點(diǎn)和權(quán)衡點(diǎn)分析,主要針對(duì)性能、實(shí)用性、安全性和可修改性。使用ATAM不僅能夠明確軟件體系結(jié)構(gòu)對(duì)于特定軟件質(zhì)量目標(biāo)的滿足度,還能提供軟件目標(biāo)之間的交互方式。
ATAM方法采用問卷和度量結(jié)合使用的評(píng)估技術(shù),適用于體系結(jié)構(gòu)設(shè)計(jì)的重復(fù)改進(jìn)或最終版本,需要所有風(fēng)險(xiǎn)承擔(dān)者參與。
2.5 SBAR;趫鼍暗捏w系結(jié)構(gòu)在工程SBAR目的是按照需求的質(zhì)量屬性評(píng)估體系結(jié)構(gòu)。
SBAR關(guān)注多個(gè)軟件質(zhì)量屬性的均衡性,用于評(píng)估所設(shè)計(jì)的軟件體系結(jié)構(gòu)是否具有達(dá)到所要求的軟件質(zhì)量的潛力,采用多種技術(shù)相結(jié)合的評(píng)估技術(shù),針對(duì)多個(gè)屬性(可修改性、性能、實(shí)用性、安全性)的考察,僅僅需要設(shè)計(jì)者參與,不需其他的風(fēng)險(xiǎn)承擔(dān)者。
2.6 ALPSM。體系結(jié)構(gòu)層次的軟件可維護(hù)性預(yù)測ALPSM是在體系結(jié)構(gòu)層次上考查場景的影響來分析軟件體系的可維護(hù)性[3]。
ALPSM方法適用于體系結(jié)構(gòu)設(shè)計(jì)過程中,采用場景評(píng)估技術(shù),僅僅需要體系結(jié)構(gòu)設(shè)計(jì)人員、分析者、評(píng)估者參與,不需其他的風(fēng)險(xiǎn)承擔(dān)者。
2.7 ALMA。體系結(jié)構(gòu)層次的可維護(hù)性分析ALMA目標(biāo)是變化沖突分析和預(yù)測維護(hù)工作,采用依賴于分析目標(biāo)的獨(dú)立的體系結(jié)構(gòu)描述符號(hào)使用來評(píng)估系統(tǒng),主要針對(duì)可維護(hù)性。
ALMA方法中風(fēng)險(xiǎn)承擔(dān)者由具體的活動(dòng)決定。
3 存在問題及未來發(fā)展趨勢
體系結(jié)構(gòu)是決定軟件質(zhì)量好壞的重要因素之一,隨著研究的深入,在軟件體系結(jié)構(gòu)質(zhì)量評(píng)價(jià)方面取得了一定的成功,但是仍然存在一些問題。
3.1 存在的問題。目前,在軟件體系結(jié)構(gòu)質(zhì)量分析和評(píng)價(jià)方法中,主要存在這樣的一些問題:首先,基于場景的分析評(píng)估技術(shù),對(duì)于體系結(jié)構(gòu)的描述沒有統(tǒng)一的標(biāo)準(zhǔn)、框架和定義,不同的描述方法給體系之間的選擇、比較增加了困難;其次,基于場景的分析評(píng)估技術(shù),只能用于特定領(lǐng)域,運(yùn)用范圍較其他評(píng)估技術(shù)稍窄;第三,基于場景的分析評(píng)估技術(shù),要求評(píng)估者對(duì)被評(píng)估體系結(jié)構(gòu)比較熟悉;最后,基于場景的分析評(píng)估技術(shù)有很多不確定性,造成了該技術(shù)的評(píng)估結(jié)果較為主觀。
3.2 未來的發(fā)展趨勢。通過對(duì)以上幾種基于場景的分析評(píng)估技術(shù)進(jìn)行比較和分析,未來的基于場景的分析評(píng)估技術(shù)的發(fā)展趨勢有以下幾點(diǎn):對(duì)于體系結(jié)構(gòu)的描述建立統(tǒng)一的標(biāo)準(zhǔn)和定義,降低體系結(jié)構(gòu)之間比較、選擇的難度。結(jié)合兩種或兩種以上的不同的體系結(jié)構(gòu)評(píng)估方法,吸取其中的缺點(diǎn)避免不足,從而獲得更好的評(píng)估效果。針對(duì)基于場景的分析評(píng)估技術(shù)中的不確定性,使用已有的度量技術(shù)或定義新的度量標(biāo)準(zhǔn),更精確地評(píng)估體系結(jié)構(gòu)。對(duì)適用性的高要求。作為體系結(jié)構(gòu)質(zhì)量特征的一個(gè)方面,適應(yīng)性與軟件的可擴(kuò)展性、可修改性、動(dòng)態(tài)特性有密切關(guān)系。目前對(duì)適應(yīng)性體系結(jié)構(gòu)分析與評(píng)價(jià)的研究還很不完善,但是它有很大的研究價(jià)值,是未來評(píng)估方法的發(fā)展趨勢。
4 結(jié)束語
本文就幾種主要的軟件體系結(jié)構(gòu)質(zhì)量評(píng)價(jià)方法進(jìn)行了討論,這些方法基本上是基于場景的評(píng)價(jià)方法,并提出了一些目前軟件體系結(jié)構(gòu)分析和評(píng)價(jià)技術(shù)中遇到的難點(diǎn)和困難,對(duì)未來的發(fā)展趨勢進(jìn)行了展望。
參考文獻(xiàn):
[1]陸惠恩,張成姝.實(shí)用軟件工程[M].北京:清華大學(xué)出版社,2009.
[2]萬建成,盧雷.軟件體系結(jié)構(gòu)的原理、組成與應(yīng)用[M].北京:科學(xué)出版社,2002.
[3]胡紅雷,毋國慶.軟件體系結(jié)構(gòu)評(píng)估方法的研究[J].計(jì)算機(jī)應(yīng)用研究,2004.