摘 要:軟件體系結(jié)構(gòu)是軟件開發(fā)過程初期的產(chǎn)品,對軟件體系結(jié)構(gòu)進(jìn)行分析與評價是控制軟件質(zhì)量的關(guān)鍵之一。目前主流的軟件體系結(jié)構(gòu)質(zhì)量評價方法基本上都是基于場景的技術(shù),并且已經(jīng)在很多領(lǐng)域得到了應(yīng)用。本文闡明了軟件體系結(jié)構(gòu)分析的重要性,介紹了幾種主要的軟件體系結(jié)構(gòu)分析方法,并分析了當(dāng)前在該領(lǐng)域所遇到的一些困難或問題,方法的選擇對于結(jié)果和軟件質(zhì)量有著重要的意義。 

  關(guān)鍵詞:軟件體系結(jié)構(gòu);場景;質(zhì)量屬性 

  中圖分類號:TP311 

  軟件質(zhì)量是指在軟件開發(fā)過程中形成的軟件滿足明確規(guī)定的需求的程度,也是衡量軟件好壞的一個重要指標(biāo)。隨著軟件規(guī)模和復(fù)雜性的不斷增大,如何控制和保證軟件的質(zhì)量已成為一個亟需解決的問題。為了提高軟件的質(zhì)量,需要在整個軟件開發(fā)周期中進(jìn)行有計劃的活動,包括對軟件的評價。研究表明,越早對質(zhì)量進(jìn)行評價越有利于對軟件質(zhì)量的控制以及降低開發(fā)成本。對軟件體系結(jié)構(gòu)進(jìn)行深入的研究,是保證軟件質(zhì)量的重要措施之一。隨著軟件體系結(jié)構(gòu)的發(fā)展,對軟件體系結(jié)構(gòu)系統(tǒng)進(jìn)行深入研究將會成為提高軟件生產(chǎn)率和解決軟件維護(hù)問題的新的最有效的途徑。 

  1 概述 

  1.1 軟件體系結(jié)構(gòu)。軟件體系結(jié)構(gòu)是國際上軟件工程研究的一個新興領(lǐng)域,它的研究目前還處于初始階段,對什么是軟件體系結(jié)構(gòu)還沒有一個標(biāo)準(zhǔn)的、為大家所普遍接受的定義。一般認(rèn)為,一個軟件系統(tǒng)的體系結(jié)構(gòu)定義了組成系統(tǒng)的計算構(gòu)件和構(gòu)件之間的相互作用關(guān)系,在體系結(jié)構(gòu)層次的構(gòu)件如:客戶、服務(wù)器、數(shù)據(jù)庫、過濾器等;構(gòu)件之間的交互可以是非常簡單的。 

  1.2 質(zhì)量屬性。[1]軟件質(zhì)量是指軟件滿足明確規(guī)定或隱含定義的需求的程度。通常從六個方面進(jìn)行衡量。分別是功能性、可靠性、易使用性、效率、可維護(hù)性和可移植性。 

  1.3 軟件體系結(jié)構(gòu)評估的重要性。軟件質(zhì)量是在整個軟件生命周期中形成的,與周期中的各個階段都息息相關(guān),而軟件體系結(jié)構(gòu)作為軟件質(zhì)量的功能性指標(biāo)的一個重要要素,同時也是生命周期中的關(guān)鍵一步,它發(fā)揮著重要作用。因此,對軟件體系結(jié)構(gòu)的分析也顯得尤為重要。我們可以通過對軟件體系結(jié)構(gòu)的分析評估,及早的發(fā)現(xiàn)軟件的問題,盡可能早的修改軟件,并預(yù)測未來系統(tǒng)的質(zhì)量屬性。預(yù)測修改十分有效,可以從總體降低軟件的開發(fā)成本,提高軟件的質(zhì)量。 

  2 主要的軟件體系結(jié)構(gòu)評估方法 

  目前的軟件體系結(jié)構(gòu)評估方法大多采用基于場景的技術(shù)。場景是從風(fēng)險承擔(dān)者的角度對于與系統(tǒng)的交互的簡短描述,其中風(fēng)險承擔(dān)著包括系統(tǒng)體系結(jié)構(gòu)設(shè)計中所涉及到的架構(gòu)設(shè)計師、開發(fā)人員、維護(hù)人員等。這種評估方法通過研究軟件體系結(jié)構(gòu)對場景的支持程度來判斷軟件質(zhì)量,評估結(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)評價方法的基礎(chǔ)。 

  SAAM方法采用基于場景的功能性和變化分析的評估技術(shù),適用于體系結(jié)構(gòu)設(shè)計的最終版本,主要是對可修改性的考察,需要所有風(fēng)險承擔(dān)者參與。 

  2.2 SAAMCS;趶(fù)雜場景的體系結(jié)構(gòu)分析方法SAAMCS是對SAAM的擴(kuò)展,主要針對場景的復(fù)雜度,主要目標(biāo)是對系統(tǒng)進(jìn)行風(fēng)險評估。 

  SAAMCS適用于有充分細(xì)節(jié)描述的體系結(jié)構(gòu)的最終版本,需要主要風(fēng)險承擔(dān)者參與。 

  2.3 SAAMER。針對演化和復(fù)用體系結(jié)構(gòu)分析方法SAAMER也是對SAAM的擴(kuò)展的一種方法。 

  SAAMER通過對視圖(靜態(tài)視圖、映射視圖、動態(tài)視圖和資源視圖)、信息模型和場景來分析系統(tǒng)的演化和復(fù)用屬性,需要設(shè)計者、管理者和最終用戶參與。 

  2.4 ATAM。體系結(jié)構(gòu)權(quán)衡分析方法ATAM是在SAAM的基礎(chǔ)上發(fā)展起來的,目標(biāo)在于對系統(tǒng)敏感點(diǎn)和權(quán)衡點(diǎn)分析,主要針對性能、實(shí)用性、安全性和可修改性。使用ATAM不僅能夠明確軟件體系結(jié)構(gòu)對于特定軟件質(zhì)量目標(biāo)的滿足度,還能提供軟件目標(biāo)之間的交互方式。 

  ATAM方法采用問卷和度量結(jié)合使用的評估技術(shù),適用于體系結(jié)構(gòu)設(shè)計的重復(fù)改進(jìn)或最終版本,需要所有風(fēng)險承擔(dān)者參與。 

  2.5 SBAR;趫鼍暗捏w系結(jié)構(gòu)在工程SBAR目的是按照需求的質(zhì)量屬性評估體系結(jié)構(gòu)。 

  SBAR關(guān)注多個軟件質(zhì)量屬性的均衡性,用于評估所設(shè)計的軟件體系結(jié)構(gòu)是否具有達(dá)到所要求的軟件質(zhì)量的潛力,采用多種技術(shù)相結(jié)合的評估技術(shù),針對多個屬性(可修改性、性能、實(shí)用性、安全性)的考察,僅僅需要設(shè)計者參與,不需其他的風(fēng)險承擔(dān)者。 

  2.6 ALPSM。體系結(jié)構(gòu)層次的軟件可維護(hù)性預(yù)測ALPSM是在體系結(jié)構(gòu)層次上考查場景的影響來分析軟件體系的可維護(hù)性[3]。 

  ALPSM方法適用于體系結(jié)構(gòu)設(shè)計過程中,采用場景評估技術(shù),僅僅需要體系結(jié)構(gòu)設(shè)計人員、分析者、評估者參與,不需其他的風(fēng)險承擔(dān)者。 

  2.7 ALMA。體系結(jié)構(gòu)層次的可維護(hù)性分析ALMA目標(biāo)是變化沖突分析和預(yù)測維護(hù)工作,采用依賴于分析目標(biāo)的獨(dú)立的體系結(jié)構(gòu)描述符號使用來評估系統(tǒng),主要針對可維護(hù)性。 

  ALMA方法中風(fēng)險承擔(dān)者由具體的活動決定。 

  3 存在問題及未來發(fā)展趨勢 

  體系結(jié)構(gòu)是決定軟件質(zhì)量好壞的重要因素之一,隨著研究的深入,在軟件體系結(jié)構(gòu)質(zhì)量評價方面取得了一定的成功,但是仍然存在一些問題。 

  3.1 存在的問題。目前,在軟件體系結(jié)構(gòu)質(zhì)量分析和評價方法中,主要存在這樣的一些問題:首先,基于場景的分析評估技術(shù),對于體系結(jié)構(gòu)的描述沒有統(tǒng)一的標(biāo)準(zhǔn)、框架和定義,不同的描述方法給體系之間的選擇、比較增加了困難;其次,基于場景的分析評估技術(shù),只能用于特定領(lǐng)域,運(yùn)用范圍較其他評估技術(shù)稍窄;第三,基于場景的分析評估技術(shù),要求評估者對被評估體系結(jié)構(gòu)比較熟悉;最后,基于場景的分析評估技術(shù)有很多不確定性,造成了該技術(shù)的評估結(jié)果較為主觀。 

  3.2 未來的發(fā)展趨勢。通過對以上幾種基于場景的分析評估技術(shù)進(jìn)行比較和分析,未來的基于場景的分析評估技術(shù)的發(fā)展趨勢有以下幾點(diǎn):對于體系結(jié)構(gòu)的描述建立統(tǒng)一的標(biāo)準(zhǔn)和定義,降低體系結(jié)構(gòu)之間比較、選擇的難度。結(jié)合兩種或兩種以上的不同的體系結(jié)構(gòu)評估方法,吸取其中的缺點(diǎn)避免不足,從而獲得更好的評估效果。針對基于場景的分析評估技術(shù)中的不確定性,使用已有的度量技術(shù)或定義新的度量標(biāo)準(zhǔn),更精確地評估體系結(jié)構(gòu)。對適用性的高要求。作為體系結(jié)構(gòu)質(zhì)量特征的一個方面,適應(yīng)性與軟件的可擴(kuò)展性、可修改性、動態(tài)特性有密切關(guān)系。目前對適應(yīng)性體系結(jié)構(gòu)分析與評價的研究還很不完善,但是它有很大的研究價值,是未來評估方法的發(fā)展趨勢。 

  4 結(jié)束語 

  本文就幾種主要的軟件體系結(jié)構(gòu)質(zhì)量評價方法進(jìn)行了討論,這些方法基本上是基于場景的評價方法,并提出了一些目前軟件體系結(jié)構(gòu)分析和評價技術(shù)中遇到的難點(diǎn)和困難,對未來的發(fā)展趨勢進(jìn)行了展望。 

  參考文獻(xiàn): 

  [1]陸惠恩,張成姝.實(shí)用軟件工程[M].北京:清華大學(xué)出版社,2009. 

  [2]萬建成,盧雷.軟件體系結(jié)構(gòu)的原理、組成與應(yīng)用[M].北京:科學(xué)出版社,2002. 

  [3]胡紅雷,毋國慶.軟件體系結(jié)構(gòu)評估方法的研究[J].計算機(jī)應(yīng)用研究,2004.