版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1239.1 為什么需要為什么需要OCL 1、OCL的必要性的必要性 對(duì)象約束語言對(duì)象約束語言(Object Constraint Language, OCL)作為作為圖形符號(hào)的補(bǔ)充,說明建模元素的圖形符號(hào)的補(bǔ)充,說明建模元素的有關(guān)細(xì)節(jié)有關(guān)細(xì)節(jié),例如:約束,例如:約束,前置條件,后置條件等。前置條件,后置條件等。4 2、OCL的概念的概念 OCL(object constraint language) 對(duì)象約束語言。對(duì)象約束語言。用來進(jìn)行約束定義的,用來進(jìn)行約束定義的,形式化的無二義形式化的無二義的語言。的語言。 OCL于于1995年由年由Warmer等人,在等人,在IBM設(shè)計(jì)成設(shè)計(jì)成功,并開
2、始使用。功,并開始使用。 1997年年UML的的1.1版本正式采用版本正式采用OCL 2003年年1月推出月推出OCL1.4版本版本 OCL2.0版本正在征求意見版本正在征求意見5 聲明性語言,不會(huì)改變模型中的內(nèi)容。聲明性語言,不會(huì)改變模型中的內(nèi)容。 形式化語言語言。形式化語言語言。 無二義規(guī)范語言。無二義規(guī)范語言。 類型性語言,每一個(gè)表達(dá)式都有類型;類型性語言,每一個(gè)表達(dá)式都有類型; 易學(xué)好用。易學(xué)好用。9.2 OCL的原則的原則 69.3 OCL的構(gòu)成的構(gòu)成 OCL語言構(gòu)成語言構(gòu)成 OCL作為形式化語言作為形式化語言,基本語言要素包括基本語言要素包括: 類型類型(基本類型,高級(jí)類型基本類型
3、,高級(jí)類型) 操作操作 表達(dá)式表達(dá)式 語句語句7 1、OCL的基本類型的基本類型 OCL的基本類型包括整型的基本類型包括整型,實(shí)型實(shí)型,字符串型字符串型,布爾型布爾型.8 2、OCL在基本類型上的部分運(yùn)算符在基本類型上的部分運(yùn)算符 9解釋解釋: 整型整型 i1 + i2 加法加法,整型整型 (-,*) i1 / i2 除法除法,實(shí)型實(shí)型 i1.abs 取絕對(duì)值取絕對(duì)值, 整型整型 i1.max(i2) 取最大數(shù)取最大數(shù), 整型整型 (mim) 10解釋解釋: 實(shí)型實(shí)型 i1 + i2 加法加法,實(shí)型實(shí)型 ( -, *, / ) i1.abs 取絕對(duì)值取絕對(duì)值,實(shí)型實(shí)型 r1.round 四舍五
4、入取整四舍五入取整, 整型整型 r1.floor 向下取整向下取整, 整型整型 11解釋解釋: 字符串型字符串型 s1.concat(s2) 連接連接,字符串字符串 s1.size 字符串長(zhǎng)度字符串長(zhǎng)度,整型整型 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 蘊(yùn)涵蘊(yùn)涵,布爾型布爾型 當(dāng)當(dāng)b1和和b2均為真均為真,或或b1為假時(shí)為假時(shí),表達(dá)式為真表達(dá)式為真1 if b1 then else endif 分支判斷分支判斷 13 (5) 運(yùn)算符的優(yōu)先級(jí)別運(yùn)算符的優(yōu)先級(jí)別 14 3、OCL的表達(dá)式的表達(dá)式 表達(dá)式的含義表達(dá)式的含義 OCL的表達(dá)式由的表達(dá)式由操作數(shù)和運(yùn)算符操作數(shù)和運(yùn)算符按一定規(guī)則按一定規(guī)則構(gòu)成。表達(dá)式和特定的構(gòu)成。表達(dá)式和特定的上下文上下文有關(guān),表達(dá)式具有有關(guān),表達(dá)式具有確定的確定的值值。 1516 3、OCL的表達(dá)式的表達(dá)式
6、 表達(dá)式的上下文表達(dá)式的上下文 表達(dá)式的上下文表示這個(gè)表達(dá)式所表達(dá)式的上下文表示這個(gè)表達(dá)式所作用的范作用的范圍圍??梢允???梢允穷?,類的屬性和操作類,類的屬性和操作. context 訂單訂單 - 上下文為上下文為“訂單訂單”類類 context 訂單訂單.訂單和訂單和 -上下文為上下文為“訂單訂單”類類 的屬性的屬性“訂單和訂單和” context 訂單訂單.求稅金求稅金( ) -上下文為上下文為“訂單訂單” 類的操作求類的操作求“稅金稅金( )”17 表達(dá)式的不變量表達(dá)式的不變量 不變量由不變量由inv關(guān)鍵字規(guī)定。上下文表示這個(gè)表達(dá)式所關(guān)鍵字規(guī)定。上下文表示這個(gè)表達(dá)式所作用的范圍??梢允穷?/p>
7、作用的范圍??梢允穷?類的屬性和操作類的屬性和操作. context 訂單訂單 inv: -”訂單訂單”類中的所有對(duì)類中的所有對(duì) 訂單和訂單和 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 蘊(yùn)涵蘊(yùn)涵 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的高級(jí)數(shù)據(jù)類型的高級(jí)數(shù)據(jù)類型 OCLOCL定義的高級(jí)數(shù)據(jù)類型有定義的高級(jí)數(shù)據(jù)類型有群群, ,集合集合, ,袋和序列袋和序列. .其中群是抽象數(shù)據(jù)類型其中群是抽象數(shù)據(jù)類型, ,集合集合, ,袋和序列是群的子集袋和序列是群的子集. . 集合集合(set):不包含重復(fù)元素不包含重復(fù)元素; 袋袋(Bag):允許包含重復(fù)元素允
10、許包含重復(fù)元素; 序列序列(Sequence):元素具有有序性的袋元素具有有序性的袋. 22群的操作群的操作(Collection) OCL定義的群的操作有下表中列出的操作定義的群的操作有下表中列出的操作.23 5、幾個(gè)、幾個(gè)OCL的例子的例子 例例1: contextcontext Person Person invinv: : Person.allInstances- Person.allInstances-forAllforAll(p1,p2|(p1,p2| p1p2 p1p2 impliesimplies ) ) 對(duì)類對(duì)類Pe
11、rsonPerson的所有對(duì)象實(shí)例的所有對(duì)象實(shí)例, ,要求它們的要求它們的名字必須唯一名字必須唯一. . 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 對(duì)類對(duì)類PersonPerson的收入是工作薪水求和的收入是工作薪水求和, ,但有但有限定條件限定條件. . 25 例例
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度駕校與汽車租賃公司合作開展自駕游培訓(xùn)及租賃合同3篇
- 二零二五版旅游目的地導(dǎo)游講解合同3篇
- 路面裂縫貼施工方案
- 荔灣陽臺(tái)防水施工方案
- 深圳鋼板拉森樁施工方案
- 水穩(wěn)碎石墊層施工方案
- 2020-2025年中國民辦中小學(xué)教育機(jī)構(gòu)行業(yè)投資潛力分析及行業(yè)發(fā)展趨勢(shì)報(bào)告
- 中國輸尿管鏡碎石術(shù)行業(yè)市場(chǎng)發(fā)展監(jiān)測(cè)及投資潛力預(yù)測(cè)報(bào)告
- 2025年中國電力變壓器行業(yè)市場(chǎng)深度研究及投資戰(zhàn)略規(guī)劃報(bào)告
- 圖書館翻新預(yù)付款合同
- 預(yù)防艾滋病、梅毒和乙肝母嬰傳播轉(zhuǎn)介服務(wù)制度
- 集裝箱貨運(yùn)碼頭的火災(zāi)防范措施
- 《高速鐵路客運(yùn)安全與應(yīng)急處理》課程標(biāo)準(zhǔn)
- 23J916-1:住宅排氣道(一)
- 七年級(jí)數(shù)學(xué)上冊(cè)專題1.14數(shù)軸與絕對(duì)值綜合問題大題專練(重難點(diǎn)培優(yōu))-【講練課堂】2022-2023學(xué)年七年級(jí)數(shù)學(xué)上冊(cè)尖子生同步培優(yōu)題典(原卷版)【人教版】
- 社會(huì)保險(xiǎn)職工增減表
- 小學(xué)語文低年級(jí)寫話 鴿子
- 仁愛英語八年級(jí)上冊(cè)詞匯練習(xí)題全冊(cè)
- 通用BIQS培訓(xùn)資料課件
- 報(bào)價(jià)單模板及范文(通用十二篇)
- 鈑金部品質(zhì)控制計(jì)劃
評(píng)論
0/150
提交評(píng)論