《对象约束语言》ppt课件_第1页
《对象约束语言》ppt课件_第2页
《对象约束语言》ppt课件_第3页
《对象约束语言》ppt课件_第4页
《对象约束语言》ppt课件_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、为什么需求为什么需求OCLOCL的特点的特点OCL的构成的构成OCL的高级数据类型的高级数据类型小结小结对象约束言语对象约束言语(Object Constraint Language, OCL)作为作为图形符号的补充,阐明建模元素的有关细节,例如:约图形符号的补充,阐明建模元素的有关细节,例如:约束,前置条件,后置条件等。束,前置条件,后置条件等。OCL(object constraint language) 对象约束言语。用来对象约束言语。用来进展约束定义的,方式化的无二义的言语。进展约束定义的,方式化的无二义的言语。OCL于于1995年由年由Warmer等人,在等人,在IBM设计胜利,并开

2、设计胜利,并开场运用。场运用。1997年年UML的的1.1版本正式采用版本正式采用OCL2003年年1月推出月推出OCL1.4版本版本OCL2.0版本正在征求意见版本正在征求意见声明性言语,不会改动模型中的内容。声明性言语,不会改动模型中的内容。方式化言语言语。方式化言语言语。无二义规范言语。无二义规范言语。类型性言语,每一个表达式都有类型;类型性言语,每一个表达式都有类型;易学好用。易学好用。 OCL作为方式化言语,根本言语要素包括作为方式化言语,根本言语要素包括:类型类型(根本类型,高级类型根本类型,高级类型) 操作操作表达式表达式语句语句 OCL的根本类型:包括整型,实型,字符串型,布尔

3、的根本类型:包括整型,实型,字符串型,布尔型型 OCL在根本类型上的部分运算符在根本类型上的部分运算符整型整型 i1 + i2 加法加法,整型整型 (-,*) i1 / i2 除法除法,实型实型 i1.abs 取绝对值取绝对值, 整型整型 i1.max(i2) 取最大数取最大数, 整型整型实型实型 i1 + i2 加法加法,实型实型 ( -, *, / ) i1.abs 取绝对值取绝对值,实型实型 r1.round 四舍五入取整四舍五入取整, 整型整型 r1.floor 向下取整向下取整, 整型整型 字符串型字符串型 s1.concat(s2) 衔接衔接,字符串字符串 s1.size 字符串长

4、度字符串长度,整型整型 s1.toLower 转换成为小写字母转换成为小写字母,字符串字符串 s1.toUper 转换成为大写字母转换成为大写字母, 字符串字符串 s1.substring(i1,i2) 取子串取子串, 字符串字符串 s1 = s2 等于等于, 布尔型布尔型 布尔型布尔型 b1 and b2 逻辑与逻辑与,布尔型布尔型( or, xor) not b1 逻辑非逻辑非, 布尔型布尔型 b1 = b2 等于等于,布尔型布尔型 b1 b2 不等于不等于,布尔型布尔型 b1 implies b2 蕴涵蕴涵,布尔型布尔型 当当b1和和b2均为真均为真,或或b1为假时为假时,表达式为真表达

5、式为真1 if b1 then else endif 分支判别分支判别 运算符的优先级别运算符的优先级别OCL的表达式的表达式(1) 表达式的含义表达式的含义 OCL的表达式由操作数和运算符按一定规那么构的表达式由操作数和运算符按一定规那么构成。表达式和特定的上下文有关,表达式具有确定的值。成。表达式和特定的上下文有关,表达式具有确定的值。 (2) 表达式的上下文表达式的上下文 表达式的上下文表示这个表达式所作用表达式的上下文表示这个表达式所作用的范围。可以是类,类的属性和操作的范围。可以是类,类的属性和操作. context 订单订单 - 上下文为上下文为“订单类订单类 context 订单

6、订单.订单和订单和 -上下文为上下文为“订订单类单类 的属性的属性“订单订单和和 context 订单订单.求税金求税金( ) -上下文为上下文为“订单订单 类的操作求类的操作求“税金税金( ) (4) 表达式的前置条件和后置条件表达式的前置条件和后置条件 context 订单订单.求税金求税金(): Real pre: - post: result = 订单和订单和 * 0.065 (6) 蕴涵蕴涵 context 订单订单 inv 订单的文章订单的文章-size = 0 implies 订单和订单和 = 0 “订单的文章的数量假设等于订单的文章的数量假设等于0,那么那么 “订订单的单的“订

7、单和也必需等于订单和也必需等于0 (7) 分支分支 context 订单订单 inv 酬金酬金 = if (订单和订单和100) then 2.00 else (订订单和单和*0.01) endif 求求“订单的订单的“酬金酬金,假设订单和假设订单和 18 context 客户客户 inv 订单订单-size = 1 OCL定义的高级数据类型有群定义的高级数据类型有群,集合集合,袋和序列袋和序列.其中群是其中群是笼统数据类型笼统数据类型,集合集合,袋和序列是群的子集袋和序列是群的子集. 集合集合(set):不包含反复元素不包含反复元素; 袋袋(Bag):允许包含反复元素允许包含反复元素; 序列序列(Sequence):元素具有有序性的袋元素具有有序性的袋. 群的操作群的操作(Collection) OCL定义的群的操作有下表中列出的操作定义的群的操作有下表中列出的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论