摘 要: 結(jié)合面向?qū)ο箢I(lǐng)域建模和面向特征的領(lǐng)域分析方法,,提出了一種面向特征的軟件產(chǎn)品家族建模方案,通過特征模型和用例模型來描述家族內(nèi)產(chǎn)品的共性和變化性,,建立產(chǎn)品家族的領(lǐng)域分析模型,,以實(shí)現(xiàn)需求的復(fù)用,。結(jié)合高校設(shè)備預(yù)定管理,討論了軟件產(chǎn)品家族的領(lǐng)域建模過程,。
關(guān)鍵詞: 領(lǐng)域分析; 軟件產(chǎn)品家族; 特征模型; 變化性; 共性
軟件產(chǎn)品家族是具有共同特性的一系列軟件系統(tǒng),,例如電信公司的各種計(jì)費(fèi)系統(tǒng)、手機(jī)應(yīng)用軟件,,像這樣一些具有共同特性的一組軟件系統(tǒng)的開發(fā),,如果沒有系統(tǒng)重用的方法,采取傳統(tǒng)的“一次開發(fā)一個系統(tǒng)”的方法,,將使系統(tǒng)的成本和開發(fā)周期大大增加,。
軟件復(fù)用被認(rèn)為是解決軟件危機(jī)、實(shí)現(xiàn)軟件產(chǎn)業(yè)工業(yè)化生產(chǎn)方式的有效途徑。軟件產(chǎn)品家族方法即應(yīng)用軟件復(fù)用的相關(guān)原理和技術(shù),,把整個產(chǎn)品家族作為同一問題空間來看待的軟件開發(fā)方法,。研究和實(shí)踐表明,通過應(yīng)用軟件復(fù)用技術(shù),,軟件產(chǎn)品家族方法極大地節(jié)省了軟件產(chǎn)品的開發(fā)成本和時間[1],,因此軟件產(chǎn)品家族方法也被認(rèn)為是一種提高軟件開發(fā)效率和控制軟件復(fù)雜性的有效措施。
本文采用面向特征的領(lǐng)域分析方法,,選取高校設(shè)備預(yù)定管理產(chǎn)品家族作為研究實(shí)例,,闡述了對軟件產(chǎn)品家族領(lǐng)域分析的方法,實(shí)現(xiàn)了需求的復(fù)用,。
1相關(guān)概念
1.1領(lǐng)域工程
領(lǐng)域是一組具有相似或相近軟件需求的應(yīng)用系統(tǒng)所覆蓋的功能區(qū)域[2],。領(lǐng)域的概念規(guī)定了領(lǐng)域工程的研究范圍,即在構(gòu)造一個特定領(lǐng)域內(nèi)的系統(tǒng)或者系統(tǒng)的某些部分時,,以可重用方面的形式收集,、組織并保存過去的經(jīng)驗(yàn)的活動,以及在構(gòu)造新系統(tǒng)時,,提供一種充分的方法來重用這些資源,。
領(lǐng)域工程過程實(shí)施與開發(fā)單個應(yīng)用系統(tǒng)的軟件工程過程(應(yīng)用工程)不同,需依據(jù)一定的領(lǐng)域工程方法進(jìn)行,。較有影響的領(lǐng)域分析方法有:面向特征的領(lǐng)域分析方法FODA(Feature-Oriented Domain Analysis),、組織領(lǐng)域分析模型方法ODM(Organization Domain Modeling)及領(lǐng)域分析和設(shè)計(jì)過程(DADP)等[3]。面向特征的領(lǐng)域分析方法為領(lǐng)域分析定義了具體的過程和階段,與其他方法相比具有較強(qiáng)的操作性,。以下3個基本階段刻畫了FODA過程[3]:場景分析,,定義進(jìn)行分析的領(lǐng)域的區(qū)域(或邊界);領(lǐng)域建模,,提供一個對用軟件表達(dá)的領(lǐng)域的問題空間的描述,;構(gòu)架建模,創(chuàng)造一個可以將解決方案實(shí)施到領(lǐng)域中具體問題的軟件體系結(jié)構(gòu),。
1.2 產(chǎn)品家族
產(chǎn)品家族是指一類共享體系結(jié)構(gòu)屬性,、特征、代碼,、構(gòu)件,、中間件或者需求的軟件產(chǎn)品。作為特殊的領(lǐng)域,,產(chǎn)品家族主要強(qiáng)調(diào)產(chǎn)品所在家族的共性,,并不限于特定的軟件企業(yè),。共性是產(chǎn)品家族存在的基礎(chǔ),,而家族內(nèi)單個產(chǎn)品間的區(qū)別則屬于變化性。因此,,對軟件產(chǎn)品家族進(jìn)行領(lǐng)域分析,,需要描述出家族內(nèi)產(chǎn)品的共性和變化性,。FODA方法用特征來對需求進(jìn)行模塊化組織,用特征和特征之間的關(guān)系來對整個產(chǎn)品領(lǐng)域進(jìn)行建模,。
1.3 特征和特征模型
特征的定義在領(lǐng)域工程中并不完全相同,,一個比較完整的定義為:從需求規(guī)約的組織結(jié)構(gòu)角度來看,特征提供了一種對需求的分割和組織方式,,即以特征作為需求空間內(nèi)的一階實(shí)體,,系統(tǒng)具有的特征及其相互關(guān)系構(gòu)成了系統(tǒng)的需求空間[4]。
領(lǐng)域特征模型是面向特征的領(lǐng)域需求規(guī)約模型,,通過記錄領(lǐng)域具有的一組相對穩(wěn)定的特征以及特征之間的關(guān)系反映整個領(lǐng)域的軟件需求,。它分為共性和變化性特征,其中共性特征表達(dá)領(lǐng)域內(nèi)各成員系統(tǒng)的共有部分,,變化性特征描述領(lǐng)域內(nèi)部分成員系統(tǒng)的共有或特有部分,。
2 面向特征的軟件產(chǎn)品家族建模方法
本文在對高校設(shè)備預(yù)定管理產(chǎn)品家族進(jìn)行領(lǐng)域建模時,以FODA為基礎(chǔ),,把特征和特征模型的概念引入到領(lǐng)域分析模型中,,用于表現(xiàn)領(lǐng)域需求,同時采用用例模型描述家族中的成員系統(tǒng)的變化性,。
面向特征的產(chǎn)品家族領(lǐng)域分析的主要目標(biāo)是獲得領(lǐng)域分析模型以描述家族中產(chǎn)品的共性和變化性需求,,包括場景模型、領(lǐng)域面向?qū)ο蠓治瞿P秃吞卣髂P?部分,。其主要活動及過程如圖1所示,。
2.1領(lǐng)域場景分析
場景分析的目的是通過領(lǐng)域分析人員與用戶、領(lǐng)域?qū)<医换?,分析已有的一組軟件產(chǎn)品,,給出一個軟件產(chǎn)品家族范圍的定義,確定軟件系統(tǒng)族包括哪些應(yīng)用,。場景分析包括以下3個過程:定義領(lǐng)域的范圍,、確定與軟件家族交互的操作者、建立領(lǐng)域字典,。如果是第一次開發(fā)家族內(nèi)的成員系統(tǒng),,沒有可重用的軟件產(chǎn)品家族需求,則需要由需求工程師和領(lǐng)域?qū)<覐臍v史,、當(dāng)前和未來的系統(tǒng)需求中確定系統(tǒng)家族的功能需求和質(zhì)量需求,。
2.2領(lǐng)域面向?qū)ο蠓治瞿P?br />
在產(chǎn)品家族中,,不同的應(yīng)用系統(tǒng)由于其針對的商業(yè)目標(biāo)或用戶群不同,,使得用戶與系統(tǒng)之間的交互存在差異性。在為軟件產(chǎn)品家族創(chuàng)建用例模型時,需要對現(xiàn)存系統(tǒng)的用例模型進(jìn)行整合,,將各用例模型中的公共部分抽取出來,,作為用例模型中的共性部分;對于家族內(nèi)單個產(chǎn)品具有的功能,,進(jìn)行分類篩選,,作為用例模型的變化性部分,在單個用例圖中加以描述,。之后要對整個用例模型進(jìn)行一致性,、冗余性檢查,最終得到包含共性和變化性需求的軟件產(chǎn)品家族用例模型,。
2.3特征模型
領(lǐng)域分析階段特征模型主要根據(jù)領(lǐng)域用例模型而來的,,領(lǐng)域用例模型描述的是領(lǐng)域的功能性需求,因而特征模型主要是由功能性特征組成,。而一個功能在執(zhí)行過程中表現(xiàn)出的行為特點(diǎn),,既可能是產(chǎn)品家族中所有系統(tǒng)的共性,也可能只是單個系統(tǒng)才具有的獨(dú)特之處,。
3應(yīng)用實(shí)例
本文選取高校設(shè)備預(yù)定管理這一類共享軟件需求的軟件家族作為研究案例,,應(yīng)用面向特征的軟件產(chǎn)品家族建模方法。
3.1領(lǐng)域范圍
在高校教學(xué)中,,大都或多或少地存在著教學(xué)設(shè)備和教學(xué)資源緊缺的問題,。為了合理地利用現(xiàn)有教學(xué)資源,提高教學(xué)效率和教學(xué)資源的利用率,,許多高校使用設(shè)備預(yù)定管理軟件進(jìn)行教學(xué)設(shè)備的預(yù)定和分配,。這些系統(tǒng)具有相似的功能,即實(shí)現(xiàn)設(shè)備的預(yù)定/預(yù)約,,方便用戶或設(shè)備使用人員,,實(shí)現(xiàn)設(shè)備使用的自動分配,因此可以定義為高校設(shè)備預(yù)定管理產(chǎn)品家族,。這里的設(shè)備包括高校教學(xué)中使用的教學(xué)儀器,、設(shè)備,以及教室,、會議室,、學(xué)術(shù)報告廳等教學(xué)資源。
3.2與軟件家族交互的操作者
硬件方面包括數(shù)據(jù)傳輸局域網(wǎng),、服務(wù)器和客戶端計(jì)算機(jī),。
軟件方面包括Windows XP、SQL Server 2005,、Microsoft.Net Framework 2.0,。
系統(tǒng)使用者包括設(shè)備管理人員和設(shè)備使用人員,。
3.3領(lǐng)域字典
對于軟件產(chǎn)品家族內(nèi)的部分術(shù)語以領(lǐng)域字典的形式進(jìn)行注釋,如表1所示,。
3.4領(lǐng)域用例模型
通過分析現(xiàn)有高校設(shè)備預(yù)定管理軟件,考慮到不同學(xué)校不同的管理方式,,抽象出高校設(shè)備預(yù)定管理軟件產(chǎn)品家族的共性需求,,由用例模型來描述, 如圖2所示。用例圖能夠詳細(xì)地描述用戶與系統(tǒng)的交互過程,,因此可以表達(dá)交互過程中的變化性,。表2是其中的“增加預(yù)定”用例,變化性的需求用斜體表示,。
3.5特征模型
根據(jù)設(shè)備預(yù)定管理的家族用例模型,,從交互過程分析活動開始,建立設(shè)備預(yù)定管理家族的特征模型圖,,如圖3所示,。
“批量預(yù)定”——可選特征,。有的應(yīng)用系統(tǒng)中不允許批量預(yù)定(例如重要設(shè)備),,只能在使用前臨時預(yù)定;而有些設(shè)備則可以一次預(yù)定多個(例如教室),。“批量預(yù)定”特征包含“多個時間段”和“多個設(shè)備”2個特征,,二者關(guān)系可替換,即允許多個時間段預(yù)定,,也可一次預(yù)定多個設(shè)備,,或二者皆可。
“設(shè)備管理”——強(qiáng)制特征,。每個應(yīng)用系統(tǒng)都需要對設(shè)備進(jìn)行管理,,如添加、刪除,、修改等,。
“刪除設(shè)備方式”——強(qiáng)制特征。由“刪除設(shè)備和預(yù)定”,、“預(yù)定結(jié)束后刪除”和“不刪除”3個子特征描述,。三者的關(guān)系是多選一,即“刪除設(shè)備方式”是3個子特征中的1個,。
依賴關(guān)系:例如“批量折扣”特征依賴于“批量預(yù)定”特征,。
面向特征的領(lǐng)域建模方法是目前主流的領(lǐng)域建模方法,該方法支持領(lǐng)域需求共性/變化性的建模,,及支持對領(lǐng)域需求變化性的剪裁,。本文在分析了面向特征的領(lǐng)域分析方法的基礎(chǔ)上,,提出了通過建立領(lǐng)域用例模型和特征模型來描述軟件產(chǎn)品家族內(nèi)成員的共性和變化性,得到了高校設(shè)備預(yù)定管理家族的領(lǐng)域分析模型,,從而實(shí)現(xiàn)了對軟件產(chǎn)品家族的建模,。
參考文獻(xiàn)
[1] 鄒盛享,張偉,趙海燕,等.面向軟件產(chǎn)品家族的變化性建模方法[J].軟件學(xué)報,2005,16(1) :37-48.
[2] 李克勤,陳兆良,梅宏,等.領(lǐng)域工程概述[J].計(jì)算機(jī)科學(xué), 1999,26(5): 21-25.
[3] KANG, KYO C,COHEN,et al. Feature-oriented domain anal ysis(FODA)feasibility study (CMU/ SEI-90-TR-21, ADA2357 85)[M]. Pittsburgh, Pa: Software Engineering Institute ,Carnegie Mellon University , 1990.
[4] 張偉,梅宏.一種面向特征的領(lǐng)域模型及其建模過程[J].軟件學(xué)報,,2003,14(8):1345-1356.
[5] 王千祥,吳瓊,李克勤,等.一種面向?qū)ο蟮念I(lǐng)域工程方法[J]. 軟件學(xué)報,2002,13(10):1977-1984.
[6] 袁勝瓊,,應(yīng)時.一種從用例模型構(gòu)造特征模型的方法[J].計(jì)算機(jī)工程與應(yīng)用,2003,(25):71-73.