![chapter17對(duì)象約束語(yǔ)言.ppt_第1頁(yè)](http://file.renrendoc.com/FileRoot1/2019-2/1/ecdbcf1e-87ff-47f9-8afa-fa4ccf94443a/ecdbcf1e-87ff-47f9-8afa-fa4ccf94443a1.gif)
![chapter17對(duì)象約束語(yǔ)言.ppt_第2頁(yè)](http://file.renrendoc.com/FileRoot1/2019-2/1/ecdbcf1e-87ff-47f9-8afa-fa4ccf94443a/ecdbcf1e-87ff-47f9-8afa-fa4ccf94443a2.gif)
![chapter17對(duì)象約束語(yǔ)言.ppt_第3頁(yè)](http://file.renrendoc.com/FileRoot1/2019-2/1/ecdbcf1e-87ff-47f9-8afa-fa4ccf94443a/ecdbcf1e-87ff-47f9-8afa-fa4ccf94443a3.gif)
![chapter17對(duì)象約束語(yǔ)言.ppt_第4頁(yè)](http://file.renrendoc.com/FileRoot1/2019-2/1/ecdbcf1e-87ff-47f9-8afa-fa4ccf94443a/ecdbcf1e-87ff-47f9-8afa-fa4ccf94443a4.gif)
![chapter17對(duì)象約束語(yǔ)言.ppt_第5頁(yè)](http://file.renrendoc.com/FileRoot1/2019-2/1/ecdbcf1e-87ff-47f9-8afa-fa4ccf94443a/ecdbcf1e-87ff-47f9-8afa-fa4ccf94443a5.gif)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第17章 對(duì)象約束語(yǔ)言,17.1 對(duì)象約束語(yǔ)言概述 17.2 標(biāo)準(zhǔn)OCL類型 17.3 OCL表達(dá)式 17.4 用OCL表達(dá)對(duì)象性質(zhì)約束,17.1 對(duì)象約束語(yǔ)言概述,對(duì)象約束語(yǔ)言簡(jiǎn)稱OCL(Object Constraint Language),它是一種用于施加在指定的模型元素上約束的語(yǔ)言。 OCL表達(dá)式以附加在模型元素上的條件和限制來(lái)表現(xiàn)對(duì)該對(duì)象的約束,其中包括附加在模型元素上的不變量或約束的表達(dá)式、附加在操作和方法上的前置條件和后置條件等。,OCL的產(chǎn)生,OCL的產(chǎn)生是為了解決約束表達(dá)的問(wèn)題。 OCL最初由IBM公司設(shè)計(jì)成功。 OCL已經(jīng)為標(biāo)準(zhǔn)化組織OMG所接受,成為了UML標(biāo)準(zhǔn)的一部分。 OCL語(yǔ)言雖然是一種形式化語(yǔ)言,但是它既具有形式化語(yǔ)言無(wú)二義性的特點(diǎn),又消除了形式化語(yǔ)言的復(fù)雜性。,OCL的特點(diǎn),OCL是一種精確的、無(wú)二義性的語(yǔ)言,易于使用和掌握。 OCL是一種規(guī)范說(shuō)明性語(yǔ)言,所有有關(guān)實(shí)現(xiàn)的問(wèn)題都不能用OCL來(lái)表達(dá)。 OCL是一種純表達(dá)式語(yǔ)言,它是具有沒(méi)有任何副作用的聲明性語(yǔ)言。對(duì)OCL表達(dá)式的計(jì)算將返回一個(gè)值,計(jì)算不會(huì)改變系統(tǒng)的狀態(tài)。 OCL是一種類型化語(yǔ)言,即OCL中的每個(gè)表達(dá)式都是具有類型的。 OCL不是一種程序設(shè)計(jì)語(yǔ)言,不能用OCL編寫(xiě)程序邏輯和控制流程。,17.2 標(biāo)準(zhǔn)OCL類型,OCL預(yù)定義的標(biāo)準(zhǔn)類型定義了一組基本類型和集合類型。 OCL的基本類型有“Boolean”、“Integer”、“Real”和“String”等,集合類型包括“Collection”、“Set”、“Bag”和“Sequence”等,這些標(biāo)準(zhǔn)類型是OCL表達(dá)式的組成部分。,17.2 標(biāo)準(zhǔn)OCL類型,OCL標(biāo)準(zhǔn)類型的層次結(jié)構(gòu),17.2 標(biāo)準(zhǔn)OCL類型,17.2.1 OclType類型 17.2.2 OclAny類型 17.2.3 基本類型 17.2.4 集合類型 17.2.5 OCL中的關(guān)鍵字,17.2.1 OclType類型,OclType類型是OCL預(yù)定義的和在模型中定義的類型,OclType允許訪問(wèn)模型的元級(jí)別。 OclType的操作見(jiàn)表17-1。,7.2.2 OclAny類型,OclType類型是一個(gè)模型里所有類型的上級(jí)類型。模型里所有的類都繼承由OclAny定義的特性。 OclAny的操作見(jiàn)表17-2。,17.2.3 基本類型,OCL定義了很多基本類型,它的基本類型和程序設(shè)計(jì)語(yǔ)言中的數(shù)據(jù)類型的含義類似。 OCL還在基本類型上定義了一些操作,這些操作也與程序設(shè)計(jì)語(yǔ)言中的操作類似。 OCL的基本類型與操作見(jiàn)表17-3。,17.2.4 集合類型,除了基本類型以外,OCL還定義了一些較為高級(jí)的標(biāo)準(zhǔn)OCL類型稱為集合類型。 集合是成組的對(duì)象或元素,可以用來(lái)作為表達(dá)式計(jì)算過(guò)程中的結(jié)果。 集合類型除了抽象數(shù)據(jù)類型Collection以外,還有Set(集)、Bag(袋)和序列(Sequence)等。,17.2.4 集合類型,1. Collection 2. Set 3. Bag 4. Sequence,1. Collection,Collection是OCL中所有集合的抽象的上級(jí)類型。 定義在Collection上的操作見(jiàn)表17-5。,2. Set,Set是不包括重復(fù)元素的對(duì)象組,Set中的元素是無(wú)序的。 定義在Set上的操作見(jiàn)表17-6。,3. Bag,Bag也是對(duì)象組,Bag和Set不同之處在于Bag中可以包含重復(fù)元素。 定義在Bag上的操作見(jiàn)表17-7。,4. Sequence,Sequence和Bag相似,也可以包含重復(fù)元素,不過(guò)Sequence中的元素是有序的。 定義在Sequence上的操作見(jiàn)表17-8。,17.2.5 OCL中的關(guān)鍵字,與程序設(shè)計(jì)語(yǔ)言一樣,OCL也定義了一些關(guān)鍵字。 OCL中的關(guān)鍵字見(jiàn)表17-9。,17.3 OCL表達(dá)式,17.3.1 OCL表達(dá)式的語(yǔ)法 17.3.2 操作符的優(yōu)先級(jí),OCL表達(dá)式的特點(diǎn),OCL表達(dá)式可以附加在模型元素上。 OCL表達(dá)式可以附加在操作上。 OCL表達(dá)式可以指定附加在模型元素上的監(jiān)護(hù)條件。 OCL表達(dá)式的計(jì)算原則是從左到右 OCL表達(dá)式既可以使用基本類型又可以使用集合類型。,17.3.1 OCL表達(dá)式的語(yǔ)法,OCL表達(dá)式的語(yǔ)法用擴(kuò)展的巴斯科范式(EBNF)定義,在EBNF中: “|”表示選擇 “?”表示可選項(xiàng) “*”表示零次或多次 “”表示一次或多次,17.3.1 OCL表達(dá)式的語(yǔ)法,OCL基本表達(dá)式的語(yǔ)法用EBNF定義如下: PrimaryExpression:=literalCollection | literal | pathName time Expression ? FeatureCallparameters? | “(“ expression ”)” | ifExpression Literal:= | | “#” timeExpression:=” featrueCallParameters:=”(”(declarator)?(actualParameterList)?”)” ifExpression :=”if” expression “then” expression “else” expression “endif”,17.3.2 操作符的優(yōu)先級(jí),OCL中的操作符有優(yōu)先級(jí)順序。 操作符的優(yōu)先級(jí)從高到低見(jiàn)表17-10。 改變操作符的優(yōu)先順序可以使用括號(hào)。,17.4 用OCL表達(dá)對(duì)象性質(zhì)約束,所謂對(duì)象性質(zhì),就是指一個(gè)對(duì)象的屬性、操作等對(duì)象有關(guān)的特性,在建模中具體是指定義的模型元素的特性。 OCL表達(dá)式可以表達(dá)對(duì)模型元素性質(zhì)的約束,常見(jiàn)的使用情況有三種:不變量、前置條件與后置條件和let表達(dá)式。,17.4 用OCL表達(dá)對(duì)象性質(zhì)約束,17.4.1 不變量 17.4.2 前置條件和后置條件 17.4.3 let表達(dá)式與約束,17.4.1 不變量,不變量常用于附加在模型元素上,它規(guī)定的約束條件通常需要該模型元素的所有實(shí)例都滿足。,17.4.2 前置條件和后置條件,OCL表達(dá)式附加在操作上可以規(guī)定一個(gè)前置條件或后置條件。
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手車買賣合同簡(jiǎn)版
- 專業(yè)美容院?jiǎn)T工聘用合同模板
- 個(gè)體戶采購(gòu)合同模板大全
- 個(gè)人車位出租合同模板修訂版
- 親子戶外游玩安全協(xié)議合同
- 個(gè)人租賃機(jī)械服務(wù)合同
- 產(chǎn)品代理銷售合同模板及轉(zhuǎn)讓協(xié)議范本
- 2025年9月下旬商品交易合同細(xì)則
- 個(gè)人與單位借款合同模板
- 個(gè)人經(jīng)營(yíng)性流動(dòng)資金擔(dān)保借款合同
- 寶典三猿金錢錄
- 個(gè)人房屋買賣購(gòu)房合同
- 聚合物粘彈性
- 建筑工程施工現(xiàn)場(chǎng)安全資料管理規(guī)程解讀
- 養(yǎng)老護(hù)理員培訓(xùn)老年人日常生活照料
- 各種抽油泵的結(jié)構(gòu)及工作原理幻燈片
- 學(xué)習(xí)弘揚(yáng)雷鋒精神主題班會(huì)PPT雷鋒精神我傳承爭(zhēng)當(dāng)時(shí)代好少年P(guān)PT課件(帶內(nèi)容)
- 社區(qū)獲得性肺炎的護(hù)理查房
- 體育賽事策劃與管理第八章體育賽事的利益相關(guān)者管理課件
- 專題7閱讀理解之文化藝術(shù)類-備戰(zhàn)205高考英語(yǔ)6年真題分項(xiàng)版精解精析原卷
- 《生物資源評(píng)估》剩余產(chǎn)量模型
評(píng)論
0/150
提交評(píng)論