




已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第17章 對象約束語言,17.1 對象約束語言概述 17.2 標(biāo)準(zhǔn)OCL類型 17.3 OCL表達(dá)式 17.4 用OCL表達(dá)對象性質(zhì)約束,17.1 對象約束語言概述,對象約束語言簡稱OCL(Object Constraint Language),它是一種用于施加在指定的模型元素上約束的語言。 OCL表達(dá)式以附加在模型元素上的條件和限制來表現(xiàn)對該對象的約束,其中包括附加在模型元素上的不變量或約束的表達(dá)式、附加在操作和方法上的前置條件和后置條件等。,OCL的產(chǎn)生,OCL的產(chǎn)生是為了解決約束表達(dá)的問題。 OCL最初由IBM公司設(shè)計成功。 OCL已經(jīng)為標(biāo)準(zhǔn)化組織OMG所接受,成為了UML標(biāo)準(zhǔn)的一部分。 OCL語言雖然是一種形式化語言,但是它既具有形式化語言無二義性的特點,又消除了形式化語言的復(fù)雜性。,OCL的特點,OCL是一種精確的、無二義性的語言,易于使用和掌握。 OCL是一種規(guī)范說明性語言,所有有關(guān)實現(xiàn)的問題都不能用OCL來表達(dá)。 OCL是一種純表達(dá)式語言,它是具有沒有任何副作用的聲明性語言。對OCL表達(dá)式的計算將返回一個值,計算不會改變系統(tǒng)的狀態(tài)。 OCL是一種類型化語言,即OCL中的每個表達(dá)式都是具有類型的。 OCL不是一種程序設(shè)計語言,不能用OCL編寫程序邏輯和控制流程。,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允許訪問模型的元級別。 OclType的操作見表17-1。,7.2.2 OclAny類型,OclType類型是一個模型里所有類型的上級類型。模型里所有的類都繼承由OclAny定義的特性。 OclAny的操作見表17-2。,17.2.3 基本類型,OCL定義了很多基本類型,它的基本類型和程序設(shè)計語言中的數(shù)據(jù)類型的含義類似。 OCL還在基本類型上定義了一些操作,這些操作也與程序設(shè)計語言中的操作類似。 OCL的基本類型與操作見表17-3。,17.2.4 集合類型,除了基本類型以外,OCL還定義了一些較為高級的標(biāo)準(zhǔn)OCL類型稱為集合類型。 集合是成組的對象或元素,可以用來作為表達(dá)式計算過程中的結(jié)果。 集合類型除了抽象數(shù)據(jù)類型Collection以外,還有Set(集)、Bag(袋)和序列(Sequence)等。,17.2.4 集合類型,1. Collection 2. Set 3. Bag 4. Sequence,1. Collection,Collection是OCL中所有集合的抽象的上級類型。 定義在Collection上的操作見表17-5。,2. Set,Set是不包括重復(fù)元素的對象組,Set中的元素是無序的。 定義在Set上的操作見表17-6。,3. Bag,Bag也是對象組,Bag和Set不同之處在于Bag中可以包含重復(fù)元素。 定義在Bag上的操作見表17-7。,4. Sequence,Sequence和Bag相似,也可以包含重復(fù)元素,不過Sequence中的元素是有序的。 定義在Sequence上的操作見表17-8。,17.2.5 OCL中的關(guān)鍵字,與程序設(shè)計語言一樣,OCL也定義了一些關(guān)鍵字。 OCL中的關(guān)鍵字見表17-9。,17.3 OCL表達(dá)式,17.3.1 OCL表達(dá)式的語法 17.3.2 操作符的優(yōu)先級,OCL表達(dá)式的特點,OCL表達(dá)式可以附加在模型元素上。 OCL表達(dá)式可以附加在操作上。 OCL表達(dá)式可以指定附加在模型元素上的監(jiān)護(hù)條件。 OCL表達(dá)式的計算原則是從左到右 OCL表達(dá)式既可以使用基本類型又可以使用集合類型。,17.3.1 OCL表達(dá)式的語法,OCL表達(dá)式的語法用擴(kuò)展的巴斯科范式(EBNF)定義,在EBNF中: “|”表示選擇 “?”表示可選項 “*”表示零次或多次 “”表示一次或多次,17.3.1 OCL表達(dá)式的語法,OCL基本表達(dá)式的語法用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)先級,OCL中的操作符有優(yōu)先級順序。 操作符的優(yōu)先級從高到低見表17-10。 改變操作符的優(yōu)先順序可以使用括號。,17.4 用OCL表達(dá)對象性質(zhì)約束,所謂對象性質(zhì),就是指一個對象的屬性、操作等對象有關(guān)的特性,在建模中具體是指定義的模型元素的特性。 OCL表達(dá)式可以表達(dá)對模型元素性質(zhì)的約束,常見的使用情況有三種:不變量、前置條件與后置條件和let表達(dá)式。,17.4 用OCL表達(dá)對象性質(zhì)約束,17.4.1 不變量 17.4.2 前置條件和后置條件 17.4.3 let表達(dá)式與約束,17.4.1 不變量,不變量常用于附加在模型元素上,它規(guī)定的約束條件通常需要該模型元素的所有實例都滿足。,17.4.2 前置條件和后置條件,OCL表達(dá)式附加在操作上可以規(guī)定一個前置條件或后置條件。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 代收貨確認(rèn)函3篇
- 安全生產(chǎn)月使命必達(dá)3篇
- 取消貸款合同格式3篇
- 儲藏室買賣條款3篇
- 公積金貸款授權(quán)委托書模板3篇
- 廣告牌施工人員培訓(xùn)3篇
- 別墅裝修售后服務(wù)協(xié)議2篇
- 房產(chǎn)交易空氣品質(zhì)要求3篇
- 借讀生行為準(zhǔn)則書3篇
- 膠合板質(zhì)量追溯系統(tǒng)構(gòu)建考核試卷
- 夫妻債務(wù)轉(zhuǎn)讓協(xié)議書范本
- 2025年房地產(chǎn)經(jīng)紀(jì)人(業(yè)務(wù)操作)考前必刷綜合題庫(800題)附答案
- 桌球助教合同協(xié)議
- 電商行業(yè)10萬字PRD
- 2024-2025學(xué)年八年級下學(xué)期道德與法治期中模擬試卷(一)(統(tǒng)編版含答案解析)
- 高一下學(xué)期《雙休時代自由時間背后暗藏殘酷篩選+你是“獵手”還是“獵物”?》主題班會
- GB/T 26354-2025旅游信息咨詢服務(wù)
- 交互式影像中敘事與視覺表達(dá)的融合及其觀眾體驗研究
- SL631水利水電工程單元工程施工質(zhì)量驗收標(biāo)準(zhǔn)第1部分:土石方工程
- 廣東省茂名市2025屆高三二??荚嚨乩碓囶}(含答案)
- 2025年上半年福建福州市金融控股集團(tuán)限公司招聘22人易考易錯模擬試題(共500題)試卷后附參考答案
評論
0/150
提交評論