摘要:隨著科學技術的不斷進步,目前以決策為中心的軟件體系結構設計得到越來越快的發展。本文就以決策為中心的軟件體系結構設計問題主要介紹了以決策為中心的體系結構設計方法原理,介紹了體系結構設計決策的建模,并提出了以決策為中心的體系結構設計過程。
關鍵字:決策為中心 軟件體系結構 設計
中圖分類號:TP311 文獻標識碼:A 文章編號:1674-098X(2011)12(a)-0000-00
我們知道,軟件體系結構是我們對軟件的需求與實現的橋梁,它在整個軟件的生成周期中有著關鍵和特殊的作用。目前,軟件體系結構設計決策逐漸成為了我們研究的一個焦點。本文就以決策為中心的軟件體系結構設計問題主要介紹了以下幾個方面的內容。
1 以決策為中心的軟件體系結構設計原理介紹
筆者結合特化軟件工程與體系結構層次運用的基本思想,主要提出了針對體系結構設計的決策抽象與問題分解兩個原則。以決策為中心的軟件體系結構設計的一些基本方法就是這些原則的具體體現。
(1)反映體系結構設計實質的決策抽象原則。本設計就軟件體系結構層次的特殊性,運用了并特化的抽象思想,提出了決策抽象的設計原則。所謂的決策抽象,就是在軟件體系結構層次克服從最初的需求到前期的設計,跨越和克服困難并應對設計本身復雜性的高層的抽象方法。決策抽象的基本思想是從基本的需求關注點與設計決策的角度來認識軟件體系結構的,它是基于將軟件體系結構進行設計抽象化并定位在全局關鍵問題和系統高層的決策,它在一定程度上忽略了關于細節的一些問題,也忽略了可以在后續的開發中決定的一些問題。這種決策抽象原則在一定程度上提供了一種新的視角,可以使我們從一種全新的角度去認識體系結構。
(2)降解體系結構設計困難的問題分解原則。本設計就軟件體系結構層次的特殊性,運用了并特化的分解思想,提出了問題分解的設計原則。所謂的問題分解,就是在軟件體系結構層次克服從最初的需求到前期的設計,跨越和克服困難并應對設計本身復雜性的分解方法。問題分解原則的基本思想就是在對于軟件的需求與設計結果之間所建立的設計問題的概念,軟件體系結構設計的首要步驟是如何將軟件需求和設計的總目標到這些問題進行有效的分解,最后對于設計的實現在很大程度上依賴于從這些問題解決方案到系統總體方案的合成。問題分解原則在很大程度上強調了軟件體系結構設計的著眼點,這一著眼點是出自軟件需求且從設計者角度認識的那些要在體系結構設計中解決的關鍵問題,它即不是需求空間中的單一功能,也不是設計空間中的制品元素。在問題分解原則中,問題是整個軟件體系結構層次的一個特殊的分解對象,它是從需求階段向設計階段過渡的一個中間介質。
2 軟件體系結構設計決策的建模分析
(1)軟件體系結構設計決策的元模型介紹。本設計給出了一種軟件體系結構設計決策的元模型,通過比如問題、方案、決策、理由等基本概念對體系結構設計決策進行有效的建模。在本設計方法中,體系結構設計決策模型與制品模型(比如結構模型和行為模型等)一起構成了一個完整的體系結構模型。下面是幾個基本的概念:首先,問題是軟件體系結構設計所有問題的簡稱,也就是在體系結構設計中所必須要解決的一些系統的關鍵問題。其次,方案特化為問題方案和體系結構方案。問題方案是指解決單個問題可能的方式方法;體系結構方案是指某一個候選或者待選的體系結構設計,它基本覆蓋了全部的問題。第三,決策特化主要可以分為問題決策與體系結構決策兩種。問題決策就是意味著選取了或者放棄了某一個候選或者待選的問題方案;體系結構決策則是意味著采用了或者放棄了某個候選或者待選的體系結構方案。第四,理由特化也可以分為兩種,即問題理由與體系結構理由兩種。問題理由主要是問題決策背后的原因,體系結構理由則是體系結構決策背后的原因。本設計中提出的元模型主要通過方案的概念建立起設計決策模型和制品模型的關聯,也就是說制品模型將會最終轉化成軟件的實現模型,而設計制品模型則是整個設計決策模型中方案的實例化表示。
(2)軟件體系結構設計決策的一個表示——schema。為了可以基于上面元模型對軟件體系結構設計決策進行有效表示,本設計通過一個XML schema 來定義所設計體系結構決策模型的信息結構。在這個schema 中,每一個體系結構的設計項目共由4 類元素構成,分別是需求、問題、問題方案和體系結構方案。同事,此schema 還定義了一個基本的數據類型,即方案、決策和理由,以及可以用于刻畫需求、問題和方案的特征類型。
3 以決策為中心的體系結構設計過程介紹
本設計給出了一個以決策為中心的軟件體系結構的設計過程,該過程主要包含了五大活動,即問題導出、方案發掘、方案合成、體系結構決策和理由捕捉。
(1)體系結構設計中問題的導出。在問題的導出活動里,所涉及到的包括涉眾用戶、架構師等在內的涉眾從對軟件需求來導出體系結構的設計問題。問題等導出主要包含ADI得出和對體系結構中關鍵需求的分析。首先要做的還是就軟件需求進行有效分析,從中找到對體系結構影響比較大的需求,比如能夠關系到全局結構的功能需求以及一些關鍵的非功能需求等。其次,根據這些關鍵的需求,同時還要結合架構師本身的知識含量、對于設計的猜想、遺產系統的經驗、影響開發和設計的因素等,對這些進行分析后,得出一系列體系結構的設計問題。
(2)方案的發掘。在對于問題方案的發掘活動中,架構師可以為已存在的軟件體系結構設計問題挖掘出可行的解決方案,這些解決方案是將要被用于合成的體系結構總體方案的子方案。它包含了方案發現與方案實例化兩個子活動。
(3)方案的合成。所謂方案的合成,就是將已發掘出的并可以實例化的問題方案自動地合成為用于備選的軟件體系結構方案。方案的合成主要包含了關系識別、方案組合和方案融合三個子活動。
(4)體系結構決策。在體系結構的決策活動中,架構師、用戶或其他決策者可以從已合成的備選的方案中選出最終使用的體系結構。體系結構決策主要包含了體系結構選擇和體系結構評估兩個子活動。在對于候選的方案進行篩選時,由于每一個待選的體系結構各有其優缺點,涉眾對于它們的關注點也不同,因此,在具體的選擇上需要進行有效的權衡,比如可以采用多屬性決策的方法來選擇比較合適的體系結構方案。
(5)設計理由捕捉。所謂設計理由的捕捉,就是決策者在選擇了最后的體系結構決策后,自動地從體系結構決策導出每一個問題方案的決策,并對這些問題決策與體系結構決策的各個方面的信息進行有效的捕捉或記錄。
3 結語
本設計提出的設計原理與設計過程可以有效實現備選體系結構方案的自動合成,可以使架構師只需要完成很簡單的問題方案發掘,這樣大大降低了直接發掘體系結構方案的難度和人工探尋體系結構方案解空間的復雜性。
參考文獻:
[1]梅宏,申峻嶸.軟件體系結構研究進展[J].軟件學報.2006(06)
[2]王霞俊.淺談軟件體系結構[J].常州輕工職業技術學院學報.2007(01)
[3]秦懷斌,官學彪,郭理,杜文軍.基于體系結構的軟件開發研究及應用[J].福建電腦.2008(03)
[4]楊程,陳未如.軟件架構可靠性評估平臺組件庫的設計[J].電腦知識與技術.2009(05)