999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

支持模型驅(qū)動(dòng)開(kāi)發(fā)的行為描述方法*

2012-06-11 09:47:02魏先民張玉艷
濰坊學(xué)院學(xué)報(bào) 2012年4期
關(guān)鍵詞:定義結(jié)構(gòu)方法

魏先民,張玉艷

(濰坊學(xué)院,山東 濰坊 261061)

1 引言

模型驅(qū)動(dòng)開(kāi)發(fā)(Model-DrivenDevelopment,MDD[1])已成為軟件工程技術(shù)的研究熱點(diǎn)和發(fā)展趨勢(shì),它通過(guò)提升抽象層次來(lái)應(yīng)對(duì)軟件開(kāi)發(fā)的復(fù)雜性。行為描述及其精化是MDD研究中的一個(gè)關(guān)鍵問(wèn)題,它需要考慮對(duì)象的一系列動(dòng)作語(yǔ)義,包括動(dòng)作觸發(fā)的條件,動(dòng)作對(duì)系統(tǒng)的影響以及動(dòng)作之間的順序、并發(fā)等時(shí)空關(guān)系,但長(zhǎng)期以來(lái)并未形成統(tǒng)一而行之有效的方法[1-3]。軟件系統(tǒng)的正確性和完備性可以通過(guò)對(duì)生命周期中不同產(chǎn)品和過(guò)程的形式化來(lái)提升,以集合論和謂詞邏輯為基礎(chǔ)的形式化方法是行為建模的一種較為有效的思路,如Z、B[4]和VDM等。形式化方法可提供消除歧義和精確定義的作用,并可通過(guò)嚴(yán)格證明以盡早發(fā)現(xiàn)描述中的錯(cuò)誤。

形式化的開(kāi)發(fā)方法可以實(shí)現(xiàn)自頂向下、逐步精化的開(kāi)發(fā)模式,但其描述規(guī)范冗長(zhǎng)復(fù)雜,缺乏可理解性,而且也缺乏工程化方法的支持[5]。傳統(tǒng)的涉及精化的相關(guān)研究主要關(guān)注精化理論的構(gòu)建和精化一致性的定義與證明。目前已提出的一些解決方案還很不完善,其應(yīng)用領(lǐng)域也受到很大限制,主要應(yīng)用在一些安全攸關(guān)的關(guān)鍵領(lǐng)域[4]。因此將形式化方法集成到流行的軟件開(kāi)發(fā)技術(shù)和設(shè)計(jì)過(guò)程中,也已成為當(dāng)前形式化方法研究的一個(gè)趨勢(shì)和熱點(diǎn)[5]。作為面向?qū)ο蠼?biāo)準(zhǔn)的UML缺乏行為語(yǔ)義視角的定義,帶來(lái)模型描述的含混性,使得UML的語(yǔ)義規(guī)范和建模概念的含義對(duì)MDD的有關(guān)活動(dòng),如代碼自動(dòng)生成和形式化驗(yàn)證來(lái)說(shuō)是不夠的[6]。以微軟[3]和IBM[1]為代表的業(yè)界認(rèn)為,MDD的高層模型描述還不夠完備、精確,缺乏可理解的行為語(yǔ)義描述,因而難以完備、正確地實(shí)現(xiàn)模型轉(zhuǎn)換和精化。因此使用形式化方法描述系統(tǒng)的行為語(yǔ)義,將其與UML等建模語(yǔ)言相結(jié)合,共同描述軟件系統(tǒng),受到越來(lái)越多的關(guān)注[5]。如何用形式化方法對(duì)系統(tǒng)行為進(jìn)行形式化描述,提高形式化方法在精化過(guò)程中的自動(dòng)化和工程化支持,成為一個(gè)亟待解決的問(wèn)題。

本文根據(jù)形式化方法建模理論,將形式化規(guī)范用作一系列的描述規(guī)范,提出了一種結(jié)構(gòu)模型約束下的行為模型描述方法,可為系統(tǒng)高層模型的行為描述以及模型轉(zhuǎn)換和精化提供細(xì)粒度的支持,從而為模型驅(qū)動(dòng)的軟件開(kāi)發(fā)提供有力的支持。

2 行為模型描述

以基于UML的ASLP方法[7]作為應(yīng)用系統(tǒng)高層模型的描述方法,它包含體系結(jié)構(gòu)建模和構(gòu)件建模兩個(gè)層次,其中構(gòu)件模型以功能視圖、工作流視圖、靜態(tài)視圖、行為視圖和界面展示視圖來(lái)統(tǒng)一描述。使用ASLP方法可為Web應(yīng)用建立平臺(tái)無(wú)關(guān)的模型描述,但其行為視圖是以基于UML的協(xié)作圖為基礎(chǔ)的,不能對(duì)構(gòu)件模型元素的行為提供細(xì)粒度的精確描述。本文即針對(duì)此問(wèn)題進(jìn)行研究,以期對(duì)模型驅(qū)動(dòng)的軟件開(kāi)發(fā)提供全面的支持。

系統(tǒng)的行為描述是以該系統(tǒng)的結(jié)構(gòu)模型為基礎(chǔ)的,結(jié)構(gòu)模型提供了行為描述所依賴的數(shù)據(jù)結(jié)構(gòu)和上下文環(huán)境。

定義1 結(jié)構(gòu)模型(Structure Model)。結(jié)構(gòu)模型是一個(gè)三元組SM=(Mid,AS,MS,CS),其中:

(1)Mid為模型的惟一標(biāo)識(shí);

(2)AS是代表模型屬性的變量集合;

(3)MS={mi|i≥1}是由模型的操作方法構(gòu)成的集合;

(4)CS是表達(dá)操作約束的謂詞公式構(gòu)成的集合。

圖1展示了一個(gè)整數(shù)序列的模型描述,其中INT與NAT分別代表整數(shù)與自然數(shù),定義了求序列長(zhǎng)度、取元素、交換兩元素的位置等操作方法。方法中涉及的參數(shù)若為只讀變量,則在其后附加“?”符號(hào),類(lèi)似地,寫(xiě)變量和讀寫(xiě)變量分別用“!”和“?!”來(lái)處理。

圖1 Sort行為模型

定義2 行為描述(Behavior Description)。行為描述是一個(gè)四元組,Behavior=(IDBH,Pre,OL,Post),其中:

(1)IDBH是行為的標(biāo)識(shí),包括行為的名稱(chēng)、參數(shù)和返回值;

(2)Pre是行為的前條件謂詞;

(3)OL是由一系列操作方法構(gòu)成的操作邏輯,在概念上它可以表示為OL=m0;m1;…;mk,并且?i∈(0..k)·(mi∈MS)。MS是環(huán)境提供的操作方法構(gòu)成的集合;

(4)Post是行為的后條件謂詞。

定義3 行為模型(Behavior Model)。行為模型是一個(gè)七元組,BM=(Bid,LS,DM,INIT,RULE,F(xiàn)IN,ACTIONS),其中:

(1)Bid是行為模型的標(biāo)識(shí);

(2)LS是局部變量的集合,它包含輸入、輸出和輸入輸出變量,分別用“?”、“!”和“?!”來(lái)表示;

(3)SM=(Mid,AS,MS,CS)是行為模型所依賴的結(jié)構(gòu)模型;

(4)INIT是初始化行為;

(5)RULE={RULEj|j≥1}是一個(gè)行為集合,稱(chēng)為規(guī)則行為(RuleBehavior)集合,其中的行為都是基于結(jié)構(gòu)模型中的操作方法集合MS的;

(6)FIN是終止行為;

(7)ACTIONS是一個(gè)行為邏輯,它是行為模型的核心,由規(guī)則集合RULE的元素組成,表達(dá)了這個(gè)行為模型如何從初始化后,經(jīng)過(guò)一系列的行為操作最終到達(dá)終止返回的狀態(tài)。

一個(gè)行為可能是初始化行為INIT,終止行為FIN或者一般行為RULEj,形式化表示為:INIT(=只有INIT 的前條件謂詞和FIN的后條件謂詞才能涉及全局變量,而其他謂詞都只涉及局部狀態(tài)變量。當(dāng)行為模型發(fā)生作用時(shí),首先執(zhí)行初始化操作,根據(jù)此時(shí)結(jié)構(gòu)模型的狀態(tài)值,生成初始的局部狀態(tài)LS0;經(jīng)過(guò)一步或者多步行為(ACTIONS)的操作,局部變量最終轉(zhuǎn)化為L(zhǎng)Sm,最終經(jīng)過(guò)FIN行為返回全局變量的值。注意,這里的ACTIONS有可能為null,ACTIONS為null的行為模型稱(chēng)為純抽象行為模型(Pure Abstract Behavior Model)。ACTIONS不為null的行為模型稱(chēng)為一般行為模型(GeneralBehaviorModel),ACTIONS中包含抽象行為的行為模型稱(chēng)為抽象行為模型(Abstract Behavior Model)。純抽象行為模型是抽象行為模型的特殊情況。

圖2以升序排序?yàn)槔x了一個(gè)基于圖1的結(jié)構(gòu)模型Sequenc的純抽象行為模型Ascending_Sort。

3 行為精化

行為模型的精化通過(guò)跡的精化來(lái)定義。

定義4 跡(Trace)。系統(tǒng)行為的一個(gè)跡σ是一個(gè)有限或者無(wú)限的狀態(tài)序列,其長(zhǎng)度為其狀態(tài)變遷的個(gè)數(shù)(用函數(shù)length表示),并且每個(gè)變遷都由一個(gè)行為引發(fā),即□i∈(0..length(σ)-1)·(?B∈Behavior·(σ(i)|=Bσ(i+1)))。

圖2 Sequence結(jié)構(gòu)模型

定義5 跡精化(Trace Refinement)。跡的精化,即前條件的弱化、后條件的強(qiáng)化和非確定性的減少,形式化表示為函數(shù)關(guān)系集合rel(B)為行為B發(fā)生前后系統(tǒng)狀態(tài)的映射集合[4]。

定義6 純抽象模型的實(shí)例化(Instantiation of Pure Abstract Behavior Model)。純抽象行為模型AM被具體行為模型CM精化,當(dāng)且僅當(dāng)CM對(duì)應(yīng)的跡σCM是AM對(duì)應(yīng)的跡的集合的元素,即

定義7 一般行為模型的精化(General Behavior Model Refinement)。假設(shè)存在兩個(gè)一般行為模型AM和CM,AM被CM精化,當(dāng)且僅當(dāng)它們對(duì)應(yīng)的跡σAM和σCM存在精化關(guān)系,形式化表示為

定義8 行為模型的實(shí)現(xiàn)(Realization of Behavior Model)。假設(shè)有兩個(gè)行為模型AM和CM,并且它們存在精化關(guān)系,即,如果CM的行為邏輯ACTIONS中的行為都能夠找到相關(guān)的原子行為實(shí)現(xiàn),并且不包含任何的不確定性,也就是說(shuō),不包含抽象行為和一般的選擇結(jié)構(gòu)。這種特殊的一般行為模型的精化稱(chēng)作行為模型的實(shí)現(xiàn),并且稱(chēng)CM為實(shí)現(xiàn)模型(Implementation Model)。

純抽象行為模型來(lái)自系統(tǒng)需求,是行為精化層次的最高層,只能被其他行為模型精化而不能成為任何行為模型的精化模型;實(shí)現(xiàn)模型可以直接轉(zhuǎn)化為可執(zhí)行程序,是行為精化層次的最底層,只能是其他行為模型的精化模型而不能成為任何行為模型的抽象模型。一般地,行為模型的精化過(guò)程中,首先可以從需求中得到純抽象行為,經(jīng)過(guò)逐步的精化,可以得到一個(gè)較為容易實(shí)施實(shí)例化的純抽象行為;經(jīng)過(guò)純抽象模型的實(shí)例化,可以得到一個(gè)有行為邏輯ACTIONS的一般行為模型,再經(jīng)過(guò)精化和實(shí)例化最終得到實(shí)現(xiàn)模型。

由精化的定義可知,行為模型的精化實(shí)際上就是行為模型的跡的精化。如果已知抽象模型并且其INIT和FIN行為一定的情況下,行為邏輯ACTIONS的求解便成了精化的核心問(wèn)題。

命題1 每個(gè)行為模型的行為邏輯ACTIONS都可以等價(jià)于一個(gè)復(fù)雜行為。

證明:假設(shè)行為模型BM的行為邏輯ACTIONS的前條件為Preactions,狀態(tài)S,Si和Sf滿足由前面的定義知道因此容易得出,pre(ACTIONS)□post(INIT)∧pre(FIN)□post(ACTIONS)。如果取P=Postinit∧Q=Prefin,那么ACTIONS等價(jià)于復(fù)雜行為Beh(={P}ACTIONS{Q}。也可以對(duì)純抽象行為模型加以改造:由于它的ACTIONS為空,可以將其定義為一個(gè)抽象行為那么根據(jù)上述分析可知,這個(gè)ACTIONS等價(jià)于抽象行為

由命題1可以將精化問(wèn)題轉(zhuǎn)化為在前后條件謂詞一定的情況下行為邏輯的實(shí)現(xiàn)問(wèn)題,也就是說(shuō),精化的目的是減少行為邏輯中的抽象行為和不確定性結(jié)構(gòu),使得行為模型最終轉(zhuǎn)化為實(shí)現(xiàn)模型。由于不確定性結(jié)構(gòu)只有借助其他的條件和限制才能得到精化,因此抽象行為模型將成為研究的主要目標(biāo)。對(duì)此類(lèi)問(wèn)題有兩種方法,分別是自下而上的歸約方法和自上而下的搜索方法。

自下而上的歸約方法是一種從目標(biāo)(行為的后條件Q)出發(fā),經(jīng)過(guò)規(guī)約操作最終得到假設(shè)(行為的前條件P)的方法。這種方法減少了大量的中間狀態(tài)和中間變量,從而縮小了搜索空間,減少了問(wèn)題求解的復(fù)雜度;然而它解決的問(wèn)題比較簡(jiǎn)單,對(duì)于復(fù)雜的問(wèn)題,它只能起到化簡(jiǎn)的作用。搜索方法是一種從假設(shè)(行為的前條件P)出發(fā),經(jīng)過(guò)搜索操作最終得到目標(biāo)(行為的后條件Q)的方法。這種方法會(huì)產(chǎn)生大量的中間狀態(tài),從而產(chǎn)生巨大的搜索空間而變成不可解問(wèn)題,故必須采取啟發(fā)式的搜索方法,根據(jù)簡(jiǎn)單謂詞邏輯公式和規(guī)則行為的觸發(fā)關(guān)系進(jìn)行規(guī)約操作,從而尋找出行為模型的一個(gè)可能的跡。

在解決方法中,歸約主要是為了消除公式中的量詞(包括全稱(chēng)量詞?和存在量詞?),從而把公式分解為多個(gè)簡(jiǎn)單邏輯公式,達(dá)到問(wèn)題分解以縮小搜索空間的目的;而搜索主要是將多個(gè)簡(jiǎn)單邏輯公式表達(dá)的抽象行為轉(zhuǎn)化為包含行為邏輯的具體行為,從而達(dá)到精化的目的,這稱(chēng)為抽象行為的實(shí)現(xiàn)(Realization of Abstract Behavior)。每一個(gè)抽象行為的實(shí)現(xiàn),都意味著抽象行為的減少,對(duì)整個(gè)行為模型而言都是一次精化。當(dāng)所有的抽象行為和不確定性結(jié)構(gòu)都不存在時(shí),意味著實(shí)現(xiàn)模型的生成。在每一步精化操作之前,即處理每一個(gè)抽象行為時(shí),用戶都可以根據(jù)每個(gè)抽象行為的前后條件添加相應(yīng)的行為,以人工干預(yù)的方式促進(jìn)搜索的快速完成。但用戶干預(yù)又可能會(huì)帶來(lái)新的全稱(chēng)量詞和存在量詞,因此一旦行為中出現(xiàn)了這些量詞,都必須首先進(jìn)行歸約以產(chǎn)生粒度更小的抽象行為,然后才能搜索以完成抽象行為的實(shí)現(xiàn)。

圖2所示的純抽象行為模型經(jīng)過(guò)一系列歸約、搜索后得到的精化結(jié)果如下所示:

foreachi∈(1..length(s?))do

foeachj∈(1..length(s?))do

i>j→(get(s?,i?)≥get(s?,j?)→skip)□

(get(s?,i?)<get(s?,j?)→swap(s?!,i?,j?))

od

od

這個(gè)結(jié)果還需要進(jìn)一步精化和優(yōu)化處理。可以采用自動(dòng)分析或人工分析的方式抽象出各個(gè)分支所滿足的謂詞條件,進(jìn)而消除不確定性,實(shí)現(xiàn)排序算法,最后利用系統(tǒng)轉(zhuǎn)換程序?qū)⑵滢D(zhuǎn)換為某種編程語(yǔ)言的程序代碼,如Java、C++等。

4 結(jié)束語(yǔ)

軟件開(kāi)發(fā)的模型化和自動(dòng)化是軟件技術(shù)的發(fā)展趨勢(shì),結(jié)構(gòu)模型約束下的系統(tǒng)行為描述及其精化也成為近年來(lái)軟件工程領(lǐng)域研究的重點(diǎn)之一。本文根據(jù)形式化方法建模理論,在結(jié)構(gòu)模型描述的基礎(chǔ)上,提出了一種行為模型的形式化定義和描述框架,并進(jìn)一步實(shí)現(xiàn)了從行為的抽象模型到實(shí)現(xiàn)模型的精化。通過(guò)使用結(jié)構(gòu)模型的操作方法定義行為,提高了方法的重用性,而且使得搜索的粒度更大,加快了搜索的速度。下一步的工作將把這一功能集成到支持MDA的建模工具中[7],從而為系統(tǒng)高層模型的行為描述和轉(zhuǎn)換(精化)提供細(xì)粒度的支持。

[1]Hailpern B,Tarr P.Model-driven development:The good,the bad,and the ugly[J].IBM Systems Journal,2009,45(3):451-461.

[2]Snook C,Butler M.UML-B:Formal modelling and design aided by UML[J].ACM Transactions on Software Engineering and Methodology,2006,15(1):92-122.

[3]Thomas D.MDA:Revenge of the modelers or UML utopia?[J].IEEE Software,2004,21(3):15-17.

[4]Abrial J R.The B-Book:Assigning Programs to Meanings[M].Cambridge University Press,1996.

[5]Kim S K,Burger D,Carrington D.An MDA approach towards integrating formal and informal modeling languages[C]//Fitzgerald J,Hayes I,TarleckiA.Lecture notes in computer science.Heidelberg Germany:Springer,2005,3582:448-464.

[6]Philippi S.Automatic code generation from high level petri nets for model driven systems engineering[J].Journal of Systems and Software,2010,79(10):1444-1455.

[7]侯金奎,萬(wàn)建成,張玉艷.一種支持 MDA的PIM 建模方法[J].計(jì)算機(jī)工程,2007,33(8):71-73.

猜你喜歡
定義結(jié)構(gòu)方法
《形而上學(xué)》△卷的結(jié)構(gòu)和位置
論結(jié)構(gòu)
論《日出》的結(jié)構(gòu)
用對(duì)方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚(yú)
創(chuàng)新治理結(jié)構(gòu)促進(jìn)中小企業(yè)持續(xù)成長(zhǎng)
修辭學(xué)的重大定義
山的定義
主站蜘蛛池模板: 国产精品美女网站| 久久91精品牛牛| 特级aaaaaaaaa毛片免费视频| 久久国产精品嫖妓| 国产毛片高清一级国语 | 亚洲国产精品国自产拍A| 亚洲免费三区| 精品无码人妻一区二区| 国产人免费人成免费视频| 欧美日韩亚洲国产| 伊人色在线视频| 91精品国产一区自在线拍| 国产日本一区二区三区| 偷拍久久网| 国产亚洲欧美在线视频| 538国产在线| 国产成人午夜福利免费无码r| 青青草原偷拍视频| 黄色网址手机国内免费在线观看| 97se亚洲综合| 国产黑人在线| 国产一区三区二区中文在线| 国产欧美日韩资源在线观看| 精品人妻无码中字系列| 亚洲欧洲日韩综合色天使| 波多野结衣爽到高潮漏水大喷| 久久性妇女精品免费| 久久国产精品电影| 天堂成人在线| 欧美伦理一区| 精品无码日韩国产不卡av| 免费无遮挡AV| 欧美激情视频一区二区三区免费| 欧美区在线播放| 婷婷午夜天| 男女性色大片免费网站| 美女视频黄频a免费高清不卡| 女人18毛片一级毛片在线 | 香蕉久久永久视频| 成人欧美日韩| 久久综合亚洲色一区二区三区| 中文字幕调教一区二区视频| 国产午夜一级淫片| 婷婷亚洲天堂| 精品一区二区三区四区五区| 免费观看精品视频999| 日本成人精品视频| 日本福利视频网站| 日本高清免费不卡视频| 亚洲人成网站色7799在线播放| 国产福利不卡视频| 亚洲欧美激情小说另类| 中文国产成人精品久久一| 色天堂无毒不卡| 国产香蕉在线视频| 亚洲第一色视频| 亚洲一区免费看| 色综合久久综合网| 亚洲无码不卡网| 最新亚洲人成无码网站欣赏网| 国产欧美日韩在线在线不卡视频| 国产精品亚洲专区一区| 亚洲无码A视频在线| 精品国产中文一级毛片在线看 | 国产专区综合另类日韩一区| 99视频精品在线观看| 免费Aⅴ片在线观看蜜芽Tⅴ| 亚洲永久色| www.91中文字幕| 亚洲天堂网站在线| 亚洲天堂.com| 国产激情无码一区二区APP| 久久精品国产精品青草app| 欧美激情第一区| 精品视频一区二区观看| 无码一区18禁| 国产丰满成熟女性性满足视频| 精品国产91爱| 另类欧美日韩| 亚洲一区二区日韩欧美gif| 911亚洲精品| 欧美一级高清视频在线播放|