国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種面向服務(wù)的軟件產(chǎn)品線架構(gòu)設(shè)計方法

2012-12-31 00:00:00趙立軍
電腦知識與技術(shù) 2012年31期

摘要:軟件產(chǎn)品線工程是一種有效的軟件規(guī)?;a(chǎn)方法,面向特定業(yè)務(wù)領(lǐng)域?qū)崿F(xiàn)了軟件資產(chǎn)的系統(tǒng)化復(fù)用,從而降低了軟件生產(chǎn)成本,縮短了產(chǎn)品生產(chǎn)周期。然而面對市場快速變化,傳統(tǒng)的軟件產(chǎn)品線工程方法無法滿足要求。針對行業(yè)領(lǐng)域應(yīng)用,把SOA技術(shù)應(yīng)用于軟件產(chǎn)品線工程中,提出了能夠適應(yīng)業(yè)務(wù)敏捷變化的面向服務(wù)的軟件產(chǎn)品線架構(gòu)設(shè)計方法。

關(guān)鍵詞:軟件產(chǎn)品線;面向服務(wù)架構(gòu);領(lǐng)域建模;可變性分析;系統(tǒng)化復(fù)用

中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2012)31-7472-03

隨著整個社會信息化進(jìn)程的加快,軟件系統(tǒng)的規(guī)模和復(fù)雜度不斷提高,以及快速的市場變化,企業(yè)正面臨著成本、質(zhì)量和交付時間多方面壓力。

軟件產(chǎn)品線工程是一種有效的軟件規(guī)?;a(chǎn)方法[1-5],它面向特定業(yè)務(wù)領(lǐng)域?qū)崿F(xiàn)軟件資產(chǎn)的系統(tǒng)化復(fù)用,從而降低了軟件生產(chǎn)成本,縮短了軟件產(chǎn)品生產(chǎn)周期,并能提高軟件質(zhì)量。但經(jīng)典的軟件產(chǎn)品線工程方法先決條件為產(chǎn)品結(jié)構(gòu)相對穩(wěn)定,否則會導(dǎo)致產(chǎn)品線核心資產(chǎn)結(jié)構(gòu)的不穩(wěn)定,而核心資產(chǎn)結(jié)構(gòu)不穩(wěn)定可能會引發(fā)產(chǎn)品線的崩潰,失去軟件產(chǎn)品線規(guī)?;a(chǎn)能力。當(dāng)今企業(yè)面對快速變化的市場,為適應(yīng)市場的變化,需要業(yè)務(wù)應(yīng)能夠敏捷變化,這就要求支撐業(yè)務(wù)的軟件體系結(jié)構(gòu)能柔性變化,滿足業(yè)務(wù)敏捷性變化的要求。因此現(xiàn)有軟件產(chǎn)品線工程無法滿足要求。

面對快速變化的市場,開發(fā)能適應(yīng)市場變化的敏捷系統(tǒng)是關(guān)鍵。SOA技術(shù)為實現(xiàn)業(yè)務(wù)敏捷性提供了有力支持,可以借助SOA建設(shè)一個靈活的IT來幫助企業(yè)快速應(yīng)變市場并且引領(lǐng)業(yè)務(wù)創(chuàng)新。

為使軟件產(chǎn)品線工程方法能在行業(yè)領(lǐng)域得到有效應(yīng)用,本文把SOA技術(shù)應(yīng)用于軟件產(chǎn)品線工程中,提出了面向服務(wù)的軟件產(chǎn)品工程方法。該方法既可以利用SOA技術(shù)開發(fā)敏捷系統(tǒng)適應(yīng)市場的快速變化,又能實現(xiàn)基于系統(tǒng)化復(fù)用的軟件規(guī)?;a(chǎn),從而降低開發(fā)成本,縮短交付時間。

1 面向服務(wù)的產(chǎn)品線架構(gòu)設(shè)計方法

面向服務(wù)的軟件產(chǎn)品線架構(gòu)設(shè)計方法是一種自頂向下的系統(tǒng)識別方法,同時也是一種支持面向服務(wù)的核心資產(chǎn)復(fù)用的有效方式。

該方法的架構(gòu)風(fēng)格如圖1所示,滿足SOA開發(fā)的通用分層結(jié)構(gòu),架構(gòu)本身被分為4個層次:分別是服務(wù)接口層,服務(wù)組合層,服務(wù)層,構(gòu)件層。其中每個層次都代表不同的含義。接口層是由圖形用戶接口組件構(gòu)成的,這一層服務(wù)于面向?qū)ο蟮漠a(chǎn)品線,為產(chǎn)品線提供虛擬接口,這些虛擬接口用來實現(xiàn)服務(wù)和服務(wù)組合的通信。服務(wù)組合層是由不同的服務(wù)集合組成的,這些服務(wù)集合可以用來執(zhí)行一個完整的業(yè)務(wù)活動,或者一個完整的業(yè)務(wù)過程。服務(wù)層是由一些自制的、單一業(yè)務(wù)表示的服務(wù)構(gòu)成,這些服務(wù)可以完成細(xì)粒度業(yè)務(wù)活動。構(gòu)件層是由構(gòu)件集合構(gòu)成,構(gòu)件本身為服務(wù)提供功能,確保并維護(hù)服務(wù)質(zhì)量。

在圖1中,架構(gòu)中的構(gòu)件、服務(wù)、服務(wù)組合以及服務(wù)接口構(gòu)件都在開發(fā)的過程中涉及到可變性,因此這些架構(gòu)元素本身也具有必選依賴、可選依賴及可替換關(guān)系。

面向服務(wù)的產(chǎn)品線架構(gòu)設(shè)計方法將軟件產(chǎn)品線工程分為兩個生命周期:核心資產(chǎn)開發(fā)和產(chǎn)品開發(fā)。核心資產(chǎn)開發(fā)的目的是為后續(xù)的識別過程提供指導(dǎo)和步驟規(guī)范,同時記錄并執(zhí)行包含可變性的通用架構(gòu)元素。在產(chǎn)品開發(fā)過程中,這些架構(gòu)元素通過專門定制來滿足特殊用戶需求或者市場階段性需要。

面向服務(wù)的產(chǎn)品線架構(gòu)方法從識別階段開始,該方法的輸入包括特征模型和業(yè)務(wù)流程模型,輸出包括可能構(gòu)件列表、候選服務(wù)以及候選服務(wù)組合。并且這些架構(gòu)元素可以復(fù)用在所有的產(chǎn)品中。上述處理過程分為構(gòu)件識別和服務(wù)識別。

在構(gòu)件識別和服務(wù)識別過后,還要進(jìn)行可變性分析。把構(gòu)件和服務(wù)列表作為輸入,定義并記錄架構(gòu)中相關(guān)的可變性,同時說明可變性如何影響服務(wù)和構(gòu)件執(zhí)行的。

軟件產(chǎn)品線架構(gòu)還要遵循一定的架構(gòu)規(guī)范。架構(gòu)規(guī)范包括使用不同的視角來記錄架構(gòu),這是為了給不同的產(chǎn)品相關(guān)人員描述項目的關(guān)鍵點。在架構(gòu)規(guī)范活動中,構(gòu)件、服務(wù)、服務(wù)組合和它們之間的流將會逐一規(guī)范化。例如,架構(gòu)將會被規(guī)范。在這個活動中,方法和規(guī)范在可變性的作用下由所有的核心資產(chǎn)開發(fā)工件產(chǎn)生出來,架構(gòu)規(guī)范需要符號來支持可變性的表達(dá)。

軟件架構(gòu)是一個復(fù)雜的實體,不能簡單的通過一維形式表示出來。因為項目對應(yīng)有許多不同的利益相關(guān)者,他們對系統(tǒng)的關(guān)注點不相同,因此從不同的角度來描述系統(tǒng)是很重要的。

在架構(gòu)規(guī)范過程中,第一步是定義構(gòu)件和服務(wù)接口。接下來,不同的架構(gòu)視角能被生產(chǎn)出來,包括:結(jié)構(gòu)視角,分層視角,交互視角,依賴視角,并發(fā)視角和物理視角。結(jié)構(gòu)視角描述了架構(gòu)的靜態(tài)結(jié)構(gòu),這個視角展示額架構(gòu)中的構(gòu)件,服務(wù)和服務(wù)組合。分層視角描述了服務(wù)在每一層上的組織結(jié)構(gòu)。交互視角展示了服務(wù)和構(gòu)件之間如何通過交流來實現(xiàn)特殊功能。依賴視角描述了服務(wù)和構(gòu)件之間的依賴信息。并發(fā)視角描述了服務(wù)和構(gòu)件之間的并行交互,這種交互也同樣可以在交互視角中進(jìn)行描述。物理視角展示了服務(wù)和構(gòu)件的分別以及交互協(xié)議。

利用UML圖的固有模式和可變性擴(kuò)展可以創(chuàng)建這些視角。例如,構(gòu)件圖能夠用于表示構(gòu)件的結(jié)構(gòu)視圖和依賴視圖,而交互視圖和并行視圖可以用來表示順序圖,服務(wù)依賴視圖能用接口之間的關(guān)系來創(chuàng)建等。

2 可變性分析設(shè)計方法

可變性是改變或定制軟件系統(tǒng)的能力。改進(jìn)系統(tǒng)中的可變性意味著使它更容易進(jìn)行特定種類的定制化。此外,系統(tǒng)可以預(yù)選確定一些可變性的類型,并且構(gòu)建一個系統(tǒng),同時在系統(tǒng)中預(yù)留出可變接口。

2.1 可變性分析

在該階段,面向服務(wù)的產(chǎn)品線中的候選構(gòu)件、候選服務(wù)以及候選服務(wù)組合已經(jīng)被識別出來。在可變性復(fù)習(xí)活動中,定義并記錄了必要的架構(gòu)決定,這些決定是關(guān)于在特征模型和業(yè)務(wù)流程中表現(xiàn)的可變性如何被服務(wù)和構(gòu)件執(zhí)行。

可變性分析活動從分析候選構(gòu)件和候選服務(wù)的識別開始。要以減少候選服務(wù)數(shù)量為目的來分析服務(wù)中的相似性和不同之處。服務(wù)相似性分析包括比較服務(wù)功能,這時為了使相同的服務(wù)結(jié)合在一起,以獲得更好的可變性表示,例如改變類屬性或方法可以實施可變性。在這種情況下,服務(wù)可以作為內(nèi)部可變性而融入到另一個服務(wù)中。同樣的分析過程也可以用在候選構(gòu)件中。這樣一來,服務(wù)和構(gòu)件就不再是候選元素了。

接下來,該分析還要解決構(gòu)件如何執(zhí)行可變點的問題。基于構(gòu)建的開發(fā)可以被視為換一個實施技術(shù),如每個變體都是由一個不同的構(gòu)件實施的。同樣,已經(jīng)熟知的可變性實施技術(shù)能被用于實施構(gòu)件內(nèi)部可變性,例如面向方面的編程,條件編輯,配置文件和設(shè)計模式。類似的事情也發(fā)生在服務(wù)中。在這種情況下,面向服務(wù)能被作為技術(shù)而用于實施可變性,例如每個變體能被實施在服務(wù)中。面向服務(wù)的應(yīng)用被定制化、改變服務(wù)順序或者參與服務(wù)組合形式,以便實施可變性。一個可變點可以通過實施而改變一個類屬性,或者一個類,一個方法,一個整體構(gòu)件或服務(wù)。因此,在一些情況下,很有必要去了解服務(wù)的內(nèi)部可變性。

為了實施服務(wù)的內(nèi)部可變性,例如一個能為不同目的而被定制唯一的服務(wù),在一些情況下服務(wù)接口,必須反映服務(wù)包括的基本可變性,這些可變性保存在構(gòu)件和類中。因此,條件編輯和參數(shù)化能被用于不同的目的,包括改變服務(wù)接口或者根據(jù)特定客戶需求修改服務(wù)行為。代碼轉(zhuǎn)換工具的使用可以用于執(zhí)行服務(wù)接口的可變性。

2.2 可變性設(shè)計

對于常規(guī)的架構(gòu)來說,只要滿足了單個系統(tǒng)的行為的質(zhì)量目標(biāo),幾乎任何實例都是可以的。但是,對于產(chǎn)品線架構(gòu)則不能采用這一簡單的方法來劃分系統(tǒng),產(chǎn)品線架構(gòu)中有一組明確允許發(fā)生的變化,這些變化可能會非常大。這些變化在軟件產(chǎn)品線中的產(chǎn)品同時存在,但這些產(chǎn)品在行為、質(zhì)量屬性、平臺、網(wǎng)絡(luò)、物理配置、中間件以及比例因子等方面可能是不同的。產(chǎn)品線架構(gòu)設(shè)計過程包括:確定變化點,支持變化點,及對產(chǎn)品線架構(gòu)的適宜性進(jìn)行評估。

為所有產(chǎn)品都獲取正確的需求是困難的,特別是當(dāng)不同產(chǎn)品的需求存在沖突時。這些沖突必須在產(chǎn)品線架構(gòu)中予以解決。我們在產(chǎn)品線架構(gòu)設(shè)計中在抽象級別上考慮了三種基本技術(shù)支持架構(gòu)可變性:適應(yīng)(adaptation)、替換(replacement?。┘皵U(kuò)展(extension),如圖2所示。

圖2 三種可變性設(shè)計方式

在使用適應(yīng)技術(shù)時,一個組件只有一個具體實現(xiàn),但它提供多種方式來調(diào)節(jié)它的行為。這些方式可以采用配置文件、運行時參數(shù)化、給組件源代碼打補(bǔ)丁等形式來實現(xiàn)可選項。

在使用替換技術(shù)時,一個組件有多個不同的實現(xiàn)。每個實現(xiàn)都遵循產(chǎn)品線架構(gòu)中定義的組件規(guī)約。在應(yīng)用工程中,其中的一個實現(xiàn)被選擇,或者特定于產(chǎn)品的一個實現(xiàn)根據(jù)給定的規(guī)約被開發(fā)。

在使用擴(kuò)展技術(shù)時,要求架構(gòu)提供允許添加新組件的接口。新增加的組件可以特定于產(chǎn)品的,也可以不是。與替換不同的是僅有一般化的接口用來添加不同類型的組件?;谔鎿Q技術(shù),接口是特定于組件的做什么,僅在怎樣做上存在區(qū)別。

3 軟件生產(chǎn)實踐驗證

采用面向服務(wù)的軟件產(chǎn)品工程方法,在社會保障領(lǐng)域開展了軟件產(chǎn)品線應(yīng)用實踐。社保領(lǐng)域業(yè)務(wù)復(fù)雜,盡管有統(tǒng)一的管理規(guī)范,但各地區(qū)都有自身的特殊性,適合于軟件產(chǎn)品線工程開發(fā)方法。

研發(fā)工作涵蓋核心資產(chǎn)的開發(fā)與應(yīng)用兩方面。軟件產(chǎn)品線核心資產(chǎn)開發(fā)框架主要由核心資產(chǎn)、參考實現(xiàn)及資產(chǎn)庫管理三部分構(gòu)成。在核心資產(chǎn)庫中,包含了需求資產(chǎn)、組件資產(chǎn)、測試資產(chǎn)、數(shù)據(jù)資產(chǎn)等。通過核心資產(chǎn)的系統(tǒng)化復(fù)用來提高本地化項目的復(fù)用度。

在軟件產(chǎn)品線工程中,核心資產(chǎn)的研發(fā)是關(guān)鍵。由于社保領(lǐng)域的業(yè)務(wù)正在不斷地發(fā)展和變化,核心資產(chǎn)結(jié)構(gòu)需不斷的變化,以滿足業(yè)務(wù)需求的變化,因此采用了面向服務(wù)的軟件產(chǎn)品線架構(gòu)設(shè)計方法。通過動態(tài)的服務(wù)組合,實現(xiàn)服務(wù)流程的敏捷變化。

社保領(lǐng)域軟件產(chǎn)品線工程實踐驗證了面向服務(wù)的軟件產(chǎn)品線方法的有效性,通過核心資產(chǎn)復(fù)用(復(fù)用度達(dá)到了60-80%),節(jié)約了開發(fā)成本,提升了產(chǎn)品質(zhì)量。

4 結(jié)束語

針對行業(yè)領(lǐng)域應(yīng)用,把SOA技術(shù)應(yīng)用于軟件產(chǎn)品線工程中,提出了能夠適應(yīng)業(yè)務(wù)敏捷變化的面向服務(wù)的軟件產(chǎn)品線架構(gòu)設(shè)計方法。

面向服務(wù)的軟件產(chǎn)品線工程運用,實現(xiàn)了核心資產(chǎn)系統(tǒng)化復(fù)用,產(chǎn)品工程開發(fā)組可以充分利用核心資產(chǎn)實現(xiàn)本地化應(yīng)用系統(tǒng)的開發(fā),有效地提高了QCD水平。

軟件產(chǎn)品線工程方法在社保領(lǐng)域應(yīng)用實踐,實現(xiàn)了資產(chǎn)的高復(fù)用率60%-80%。軟件生產(chǎn)實踐證明了軟件產(chǎn)品線工程方法在軟件規(guī)?;a(chǎn)中的有效性。

參考文獻(xiàn):

[1] 王廣昌.軟件產(chǎn)品線關(guān)鍵方法與技術(shù)研究[D].杭州:浙江大學(xué),2001.

[2] Clements P,Northrop L.Software Product Lines: Practices and Patterns[M].Addison-Wesley,2002.

[3] Pohl K,Günter B,F(xiàn)rank J,et al.Software Product Line Engineering:Foundations,Principles,and Techniques[M].Springer,2005.

[4] 郭軍.產(chǎn)品線架構(gòu)中支持軟件復(fù)用的若干關(guān)鍵技術(shù)的研究[D].沈陽:東北大學(xué).2005.

[5] 普爾.軟件產(chǎn)品線工程[M]. 張佳驥,李彥平,譯.北京:國防工業(yè)出版社,2010.

资兴市| 滨州市| 湘阴县| 潼南县| 微山县| 阳高县| 武胜县| 盐城市| 三原县| 汝阳县| 两当县| 康马县| 泽库县| 承德市| 额尔古纳市| 咸宁市| 忻城县| 鹤山市| 金寨县| 邢台市| 长治市| 乌兰县| 兴宁市| 兴城市| 崇州市| 宁国市| 庆安县| 壤塘县| 乌兰察布市| 温泉县| 威海市| 民乐县| 商河县| 拉萨市| 铜山县| 衡山县| 越西县| 芒康县| 岳池县| 长沙市| 上犹县|