版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1239.1 為什么需要為什么需要OCL 1、OCL的必要性的必要性 對象約束語言對象約束語言(Object Constraint Language, OCL)作為作為圖形符號的補充,說明建模元素的圖形符號的補充,說明建模元素的有關(guān)細(xì)節(jié)有關(guān)細(xì)節(jié),例如:約束,例如:約束,前置條件,后置條件等。前置條件,后置條件等。4 2、OCL的概念的概念 OCL(object constraint language) 對象約束語言。對象約束語言。用來進(jìn)行約束定義的,用來進(jìn)行約束定義的,形式化的無二義形式化的無二義的語言。的語言。 OCL于于1995年由年由Warmer等人,在等人,在IBM設(shè)計成設(shè)計成功,并開
2、始使用。功,并開始使用。 1997年年UML的的1.1版本正式采用版本正式采用OCL 2003年年1月推出月推出OCL1.4版本版本 OCL2.0版本正在征求意見版本正在征求意見5 聲明性語言,不會改變模型中的內(nèi)容。聲明性語言,不會改變模型中的內(nèi)容。 形式化語言語言。形式化語言語言。 無二義規(guī)范語言。無二義規(guī)范語言。 類型性語言,每一個表達(dá)式都有類型;類型性語言,每一個表達(dá)式都有類型; 易學(xué)好用。易學(xué)好用。9.2 OCL的原則的原則 69.3 OCL的構(gòu)成的構(gòu)成 OCL語言構(gòu)成語言構(gòu)成 OCL作為形式化語言作為形式化語言,基本語言要素包括基本語言要素包括: 類型類型(基本類型,高級類型基本類型
3、,高級類型) 操作操作 表達(dá)式表達(dá)式 語句語句7 1、OCL的基本類型的基本類型 OCL的基本類型包括整型的基本類型包括整型,實型實型,字符串型字符串型,布爾型布爾型.8 2、OCL在基本類型上的部分運算符在基本類型上的部分運算符 9解釋解釋: 整型整型 i1 + i2 加法加法,整型整型 (-,*) i1 / i2 除法除法,實型實型 i1.abs 取絕對值取絕對值, 整型整型 i1.max(i2) 取最大數(shù)取最大數(shù), 整型整型 (mim) 10解釋解釋: 實型實型 i1 + i2 加法加法,實型實型 ( -, *, / ) i1.abs 取絕對值取絕對值,實型實型 r1.round 四舍五
4、入取整四舍五入取整, 整型整型 r1.floor 向下取整向下取整, 整型整型 11解釋解釋: 字符串型字符串型 s1.concat(s2) 連接連接,字符串字符串 s1.size 字符串長度字符串長度,整型整型 s1.toLower 轉(zhuǎn)換成為小寫字母轉(zhuǎn)換成為小寫字母,字符串字符串 s1.toUper 轉(zhuǎn)換成為大寫字母轉(zhuǎn)換成為大寫字母, 字符串字符串 s1.substring(i1,i2) 取子串取子串, 字符串字符串 s1 = s2 等于等于, 布爾型布爾型 12解釋解釋: 布爾型布爾型 b1 and b2 邏輯與邏輯與,布爾型布爾型( or, xor) not b1 邏輯非邏輯非, 布爾型
5、布爾型 b1 = b2 等于等于,布爾型布爾型 b1 b2 不等于不等于,布爾型布爾型 b1 implies b2 蘊涵蘊涵,布爾型布爾型 當(dāng)當(dāng)b1和和b2均為真均為真,或或b1為假時為假時,表達(dá)式為真表達(dá)式為真1 if b1 then else endif 分支判斷分支判斷 13 (5) 運算符的優(yōu)先級別運算符的優(yōu)先級別 14 3、OCL的表達(dá)式的表達(dá)式 表達(dá)式的含義表達(dá)式的含義 OCL的表達(dá)式由的表達(dá)式由操作數(shù)和運算符操作數(shù)和運算符按一定規(guī)則按一定規(guī)則構(gòu)成。表達(dá)式和特定的構(gòu)成。表達(dá)式和特定的上下文上下文有關(guān),表達(dá)式具有有關(guān),表達(dá)式具有確定的確定的值值。 1516 3、OCL的表達(dá)式的表達(dá)式
6、 表達(dá)式的上下文表達(dá)式的上下文 表達(dá)式的上下文表示這個表達(dá)式所表達(dá)式的上下文表示這個表達(dá)式所作用的范作用的范圍圍??梢允???梢允穷悾惖膶傩院筒僮黝?,類的屬性和操作. context 訂單訂單 - 上下文為上下文為“訂單訂單”類類 context 訂單訂單.訂單和訂單和 -上下文為上下文為“訂單訂單”類類 的屬性的屬性“訂單和訂單和” context 訂單訂單.求稅金求稅金( ) -上下文為上下文為“訂單訂單” 類的操作求類的操作求“稅金稅金( )”17 表達(dá)式的不變量表達(dá)式的不變量 不變量由不變量由inv關(guān)鍵字規(guī)定。上下文表示這個表達(dá)式所關(guān)鍵字規(guī)定。上下文表示這個表達(dá)式所作用的范圍??梢允穷?/p>
7、作用的范圍??梢允穷?類的屬性和操作類的屬性和操作. context 訂單訂單 inv: -”訂單訂單”類中的所有對類中的所有對 訂單和訂單和 10 -象的象的”訂單和訂單和”都應(yīng)該大于都應(yīng)該大于10 context 訂單訂單 inv: -”訂單訂單”類的類的”酬金酬金”的求法的求法 酬金酬金= 0.01 * 訂單和訂單和 也可以也可以: context 訂單訂單 inv: -”訂單訂單”類的類的”酬金酬金”的求法的求法 self.酬金酬金 = 0.01 * self.訂單和訂單和18 表達(dá)式的不變量表達(dá)式的不變量 context 文章文章.可交付可交付(): Boolean pre: - p
8、ost: result = (可用性可用性 = #inStock) 表示表示“文章文章”的操作的操作“可交付可交付”的返回值是屬的返回值是屬性性 “可用性可用性”的當(dāng)前值是否等于的當(dāng)前值是否等于inStock context 訂單訂單.求稅金求稅金(): Real pre: - post: result = 訂單和訂單和 * 0.06519 蘊涵蘊涵 context 訂單訂單 inv 訂單的文章訂單的文章-size = 0 implies 訂單和訂單和 = 0 “訂單的文章訂單的文章”的數(shù)量如果等于的數(shù)量如果等于0,則則 “訂單訂單”的的“訂單和訂單和”也也必須必須等于等于0 分支分支 con
9、text 訂單訂單 inv 酬金酬金 = if (訂單和訂單和100) then 2.00 else (訂單和訂單和*0.02) endif 求求“訂單訂單”的的“酬金酬金”,如果訂單和如果訂單和 18 context 客戶客戶 inv 訂單訂單-size = 1 21 4、OCL的高級數(shù)據(jù)類型的高級數(shù)據(jù)類型 OCLOCL定義的高級數(shù)據(jù)類型有定義的高級數(shù)據(jù)類型有群群, ,集合集合, ,袋和序列袋和序列. .其中群是抽象數(shù)據(jù)類型其中群是抽象數(shù)據(jù)類型, ,集合集合, ,袋和序列是群的子集袋和序列是群的子集. . 集合集合(set):不包含重復(fù)元素不包含重復(fù)元素; 袋袋(Bag):允許包含重復(fù)元素允
10、許包含重復(fù)元素; 序列序列(Sequence):元素具有有序性的袋元素具有有序性的袋. 22群的操作群的操作(Collection) OCL定義的群的操作有下表中列出的操作定義的群的操作有下表中列出的操作.23 5、幾個、幾個OCL的例子的例子 例例1: contextcontext Person Person invinv: : Person.allInstances- Person.allInstances-forAllforAll(p1,p2|(p1,p2| p1p2 p1p2 impliesimplies ) ) 對類對類Pe
11、rsonPerson的所有對象實例的所有對象實例, ,要求它們的要求它們的名字必須唯一名字必須唯一. . 24 例例2: contextcontext Person Person invinv: : letlet income = alary-sum() income = alary-sum() inin ifif isUnemployed isUnemployed thenthen income 100 income = 100 income = 100 endifendif 對類對類PersonPerson的收入是工作薪水求和的收入是工作薪水求和, ,但有但有限定條件限定條件. . 25 例例
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度高速公路清障救援運輸合同
- 2024年汽車車庫租賃與新能源汽車推廣服務(wù)協(xié)議3篇
- 攝影車輛出租合同范例
- 酒吧空瓶收購合同范例
- 資料互助合同范例
- 農(nóng)戶桉樹出售合同范例
- 應(yīng)急物資合同范例
- 商場租賃物業(yè)合同范例
- 2024年商鋪買賣稅費承擔(dān)協(xié)議書3篇
- 珠寶易貨合同范例
- 澳門回歸祖國25周年心得體會發(fā)言
- 2024年初級應(yīng)急救援員理論考試復(fù)習(xí)題庫(含答案)
- 行政案例分析-第一次形成性考核-國開(SC)-參考資料
- 2024年度標(biāo)準(zhǔn)化消防設(shè)施保養(yǎng)協(xié)議版B版
- 《紅色江西贛土地》課件
- 中華人民共和國保守國家秘密法實施條例
- 印染廢水現(xiàn)狀及處理方法(共60頁).ppt
- 生物工程工廠設(shè)計
- 寶龍地產(chǎn)商管公司各級員工薪酬
- 兒童哮喘診療指南
- 房地產(chǎn)企業(yè)樓盤商業(yè)定位報告培訓(xùn)講座PPT講座資料課件
評論
0/150
提交評論