徐葉軍
摘要:構(gòu)件適配被廣泛認(rèn)為是基于構(gòu)件化軟件工程研究的重點(diǎn)及難點(diǎn)問(wèn)題,它直接影響軟件開發(fā)的周期、成本及構(gòu)件復(fù)用程度。該文首先分析構(gòu)件語(yǔ)義層的特征提出了構(gòu)件語(yǔ)義組的概念并給出構(gòu)件失配的四種類別,其次,建立了構(gòu)件語(yǔ)義動(dòng)態(tài)適配模型,最后,將其應(yīng)用在信息系統(tǒng)開發(fā)的過(guò)程中,提高了系統(tǒng)的靈活性和可維護(hù)性。
關(guān)鍵詞:構(gòu)件化;動(dòng)態(tài)適配;軟件設(shè)計(jì)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)20-0209-02
Application of Dynamic Adaptation of Component Semantic in Information System
XU Ye-jun
(Suzhou Industrial Park Institute of Services Outsourcing, Suzhou 215123, China)
Abstract:Component adaptation is widely considered to be the key and difficult problems in software engineering based on the component, which directly affects the cycle, cost and reuse of software development. Firstly, the paper analyzes the characteristics of component semantic layer, puts forward the concept of component semantic group and presents four categories on component mismatch. Secondly, the paper presents component semantic adaptation model. Finally, it is applied in the information system,improve the flexibility and maintainability of the system.
Key words:component; dynamic adaptation; software design
隨著信息技術(shù)的飛速發(fā)展,信息系統(tǒng)軟件已經(jīng)應(yīng)用到各行各業(yè),基于構(gòu)件化軟件開發(fā)模式已成為面向?qū)ο笾筌浖_發(fā)的主要模式,其目的是為了將構(gòu)件語(yǔ)義動(dòng)態(tài)適配的方法成功應(yīng)用在信息系統(tǒng)開發(fā)中,以此降低開發(fā)成本,縮短開發(fā)周期,并且能夠增強(qiáng)系統(tǒng)的靈活性和可維護(hù)性。因此,構(gòu)件適配成為關(guān)鍵議題之一[3]。本文通過(guò)對(duì)構(gòu)件語(yǔ)義動(dòng)態(tài)適配的研究,將其應(yīng)用到信息系統(tǒng)開發(fā)的過(guò)程中,提高了系統(tǒng)的靈活性和可維護(hù)性。
1構(gòu)件語(yǔ)義及構(gòu)件語(yǔ)義組
為了描述構(gòu)件語(yǔ)義失配類別,本文提出了構(gòu)件語(yǔ)義組概念,構(gòu)件語(yǔ)義與構(gòu)件語(yǔ)義組形式化定義如下:
定義1 構(gòu)件語(yǔ)義.假設(shè)Cs代表構(gòu)件語(yǔ)義,Cs可以表示為一個(gè)三元組,Cs =
ii I fi F 且 fi = φ( ii) , 其中, φ ( )代表→的映射關(guān)系.
定義2 構(gòu)件語(yǔ)義組. 假設(shè)CSG代表構(gòu)件語(yǔ)義組,CSG可以表示為一個(gè)四元組,CSG = < CS, R, A, [Φ] > 其中: CS表示構(gòu)件語(yǔ)義組成的集合;[Φ]表示空集; R描述構(gòu)件語(yǔ)義之間的關(guān)系運(yùn)算符集合 R ={>, =, !=, }, 符號(hào)>, =, !=, 分別表示語(yǔ)義包容、語(yǔ)義等價(jià)、語(yǔ)義不等及語(yǔ)義正交;A表示構(gòu)件語(yǔ)義操作運(yùn)算符集合 A ={ -, } , 其中:符號(hào)-, 分別表示語(yǔ)義差和異或操作. 并且滿足以下條件:
Csi a Csj r {Csi, Csj, [Φ]} Csi r Csj , 其中:假設(shè)Csi , Csj CS; a A; r R. (1)
在定義1 中的條件反映構(gòu)件的接口與構(gòu)件的功能對(duì)應(yīng)關(guān)系,構(gòu)件每個(gè)接口都有一定功能于之對(duì)應(yīng),但并不限于一對(duì)一的關(guān)系,同時(shí)構(gòu)件內(nèi)部還有可能存在啞功能(不暴露接口);在定義2中的條件反映了構(gòu)件語(yǔ)義組中的構(gòu)件語(yǔ)義之間通過(guò)一定的操作運(yùn)算所的到結(jié)果,根據(jù)該結(jié)果判斷構(gòu)件語(yǔ)義失配類別。
2構(gòu)件語(yǔ)義失配類別
待選構(gòu)件選擇是以系統(tǒng)規(guī)格說(shuō)明中的需求構(gòu)件描述為依據(jù),主要依賴需求構(gòu)件的接口形式、行為交互條件和功能語(yǔ)義三個(gè)條件,其中功能語(yǔ)義是最基礎(chǔ)、最重要的前提條件。然而,在實(shí)際系統(tǒng)開發(fā)中原封不動(dòng)“as is”利用第三方構(gòu)件的情況并不多,或多或少的存在語(yǔ)義失配,下面利用構(gòu)件語(yǔ)義組分析構(gòu)件語(yǔ)義失配類別。假設(shè)Csi ,Csj CS; a A; r R。
Csi - Csj =[Φ]&& Csj - Csi =[Φ] Csi = Csj ; (2)
Csi - Csj = Csi && Csj - Csi = Csj Csi Csj ; (3)
Csi Csj !=[Φ]&& Csi – Csj =[Φ] Csi > Csj; (4)
Csi Csj !=[Φ]&& Csi – Csj! =[Φ]&& Csj – Csi! =[Φ] Csi > Csj&& Csj > Csi. (5)
如果需求構(gòu)件與待選構(gòu)件滿足(2)式即需求構(gòu)件與待選構(gòu)件是語(yǔ)義層等效,語(yǔ)義層等效具有傳遞性、對(duì)稱性、自反性,語(yǔ)義層適配將變得簡(jiǎn)單;最壞的情況構(gòu)件與待選構(gòu)件滿足(3)式即需求構(gòu)件與待選構(gòu)件語(yǔ)義層正交的,需求構(gòu)件將重新開發(fā),構(gòu)件化軟件又回到以前軟件開發(fā)的舊路上;然而現(xiàn)實(shí)中(4)(5)式情況是最常見(jiàn),最需要解決的失配情況。
3 構(gòu)件語(yǔ)義動(dòng)態(tài)適配模型的建立
構(gòu)件語(yǔ)義適配是建立在構(gòu)件語(yǔ)義失配分類前提之下的,為了實(shí)現(xiàn)構(gòu)件語(yǔ)義適配,我們創(chuàng)建了構(gòu)件語(yǔ)義適配模型,如圖1所示。
圖1 構(gòu)件語(yǔ)義適配模型
4 構(gòu)件語(yǔ)義動(dòng)態(tài)適配在信息系統(tǒng)中的應(yīng)用
為了更具體的說(shuō)明構(gòu)件語(yǔ)義動(dòng)態(tài)適配在信息系統(tǒng)開發(fā)中的現(xiàn)實(shí)意義,本文結(jié)合信息系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù)操作構(gòu)件(CreateSQL),說(shuō)明構(gòu)件語(yǔ)義動(dòng)態(tài)適配在信息系統(tǒng)中具體應(yīng)用過(guò)程,如圖2所示。
a)需求構(gòu)件 b)待選構(gòu)件
圖2 CreateSQL構(gòu)件描述
首先,根據(jù)圖2的描述得到Req構(gòu)件和Pro構(gòu)件語(yǔ)義即Csr和Csp,例如,Csr=
[
表1 構(gòu)件及適配部分代碼
構(gòu)件及適配部分代碼,表1的第一行是原Pro構(gòu)件的代碼,表格第二行左右兩列分別表示引入的接口和實(shí)現(xiàn)即Aspect1;通過(guò)對(duì)Pro構(gòu)件時(shí)間屬性操作發(fā)現(xiàn)GetInsertStr(objEntity)與Req構(gòu)件規(guī)格說(shuō)明中時(shí)間格式不一致,故CsrCsp!=[Φ]&&Csr–Csp!=[Φ]&&Csp –Csr!=[Φ]Csr>Csp&&Csp>Csr,得到構(gòu)件語(yǔ)義失配類別:語(yǔ)義層相互部分包容,為了實(shí)現(xiàn)時(shí)間格式不一致,我們創(chuàng)建Aspect2啞功能,如圖3所示:
圖3 Aspect2主要代碼
Aspect2主要代碼,利用SpringAOP工具將Aspect1和Aspect織入到Pro構(gòu)件中,利用動(dòng)態(tài)切入點(diǎn)在運(yùn)行時(shí)捕捉Aspect1,Aspect2,通過(guò)Advice通知完成相關(guān)邏輯處理;最后,修改Pro在規(guī)格說(shuō)明中的描述,完成整個(gè)構(gòu)件的適配過(guò)程。
5 結(jié)束語(yǔ)
本文通過(guò)面向方面的方法,在構(gòu)件運(yùn)行時(shí)完成構(gòu)件具體功能適配,提出了構(gòu)件語(yǔ)義組的概念,利用構(gòu)件語(yǔ)義組得到構(gòu)件在語(yǔ)義層失配的四種類別,并建立了構(gòu)件語(yǔ)義適配模型,最后,將構(gòu)件語(yǔ)義動(dòng)態(tài)適配的方法成功應(yīng)用在信息系統(tǒng)開發(fā)中,以此降低開發(fā)成本,縮短開發(fā)周期,并且增強(qiáng)了系統(tǒng)的靈活性和可維護(hù)性。
參考文獻(xiàn):
[1]張友生.基于體系結(jié)構(gòu)的軟件開發(fā)模型[J].計(jì)算機(jī)工程與應(yīng)用,2004(34)
[2]趙碩.構(gòu)件的形式化描述及其組合研究[D].浙江: 浙江師范大學(xué),2012.