《对象约束语言》PPT课件.ppt

上传人:小飞机 文档编号:5496919 上传时间:2023-07-14 格式:PPT 页数:22 大小:268.99KB
返回 下载 相关 举报
《对象约束语言》PPT课件.ppt_第1页
第1页 / 共22页
《对象约束语言》PPT课件.ppt_第2页
第2页 / 共22页
《对象约束语言》PPT课件.ppt_第3页
第3页 / 共22页
《对象约束语言》PPT课件.ppt_第4页
第4页 / 共22页
《对象约束语言》PPT课件.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《《对象约束语言》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《对象约束语言》PPT课件.ppt(22页珍藏版)》请在三一办公上搜索。

1、武汉大学国际软件学院,第九章 对象约束语言,武汉大学国际软件学院,内容,为什么需要OCLOCL的特点OCL的构成OCL的高级数据类型小结,武汉大学国际软件学院,9.1 为什么需要OCL,对象约束语言(Object Constraint Language,OCL)作为图形符号的补充,说明建模元素的有关细节,例如:约束,前置条件,后置条件等。,武汉大学国际软件学院,9.1 为什么需要OCL,OCL(object constraint language)对象约束语言。用来进行约束定义的,形式化的无二义的语言。OCL于1995年由Warmer等人,在IBM设计成功,并开始使用。1997年UML的1.1

2、版本正式采用OCL2003年1月推出OCL1.4版本OCL2.0版本正在征求意见,武汉大学国际软件学院,9.2 OCL的特点,声明性语言,不会改变模型中的内容。形式化语言语言。无二义规范语言。类型性语言,每一个表达式都有类型;易学好用。,武汉大学国际软件学院,9.3 OCL的构成,OCL作为形式化语言,基本语言要素包括:类型(基本类型,高级类型)操作表达式语句,武汉大学国际软件学院,9.3 OCL的构成,OCL的基本类型:包括整型,实型,字符串型,布尔型,武汉大学国际软件学院,9.3 OCL的构成,OCL在基本类型上的部分运算符,武汉大学国际软件学院,解释,整型 i1+i2 加法,整型(-,*

3、)i1/i2 除法,实型 i1.abs 取绝对值,整型 i1.max(i2)取最大数,整型实型 i1+i2 加法,实型(-,*,/)i1.abs 取绝对值,实型 r1.round 四舍五入取整,整型 r1.floor 向下取整,整型,武汉大学国际软件学院,解释,字符串型 s1.concat(s2)连接,字符串 s1.size 字符串长度,整型 s1.toLower 转换成为小写字母,字符串 s1.toUper 转换成为大写字母,字符串 s1.substring(i1,i2)取子串,字符串 s1=s2 等于,布尔型,武汉大学国际软件学院,解释,布尔型 b1 and b2 逻辑与,布尔型(or,x

4、or)not b1 逻辑非,布尔型 b1=b2 等于,布尔型 b1 b2 不等于,布尔型 b1 implies b2 蕴涵,布尔型 当b1和b2均为真,或b1为假时,表达式为真1 if b1 then else endif 分支判断,武汉大学国际软件学院,解释,运算符的优先级别,优先级决定了操作顺序;优先级从上到下,改变顺序用括号。,武汉大学国际软件学院,9.3 OCL的构成,OCL的表达式(1)表达式的含义 OCL的表达式由操作数和运算符按一定规则构成。表达式和特定的上下文有关,表达式具有确定的值。,(2)表达式的上下文 表达式的上下文表示这个表达式所作用的范围。可以是类,类的属性和操作.c

5、ontext 订单-上下文为“订单”类 context 订单.订单和-上下文为“订单”类 的属性“订单和”context 订单.求税金()-上下文为“订单”类的操作求“税金()”,(3)表达式的不变量 不变量由inv关键字规定。上下文表示这个表达式所作用的范围。可以是类,类的属性和操作.context 订单 inv:-”订单”类中的所有对 订单和 10-象的”订单和”都应该大于10 context 订单 inv:-”订单”类的”酬金”的求法 酬金=0.01*订单和 也可以:context 订单 inv:-”订单”类的”酬金”的求法 self.酬金=0.01*self.订单和,(4)表达式的前置

6、条件和后置条件 context 订单.求税金():Real pre:-post:result=订单和*0.065,(6)蕴涵 context 订单 inv 订单的文章-size=0 implies 订单和=0“订单的文章”的数量如果等于0,则“订单”的“订单和”也必须等于0(7)分支 context 订单 inv 酬金=if(订单和100)then 2.00 else(订单和*0.01)endif 求“订单”的“酬金”,如果订单和100,酬金为2,否则为订单和的百分之一.,(8)导航 OCL可以从初始的上下文导航到与它有关系的其它类。这些类与初始的类有关联或组合关系.context 订单 inv 订单客户.age 18 context 客户 inv 订单-size=1,9.4 OCL的高级数据类型,OCL定义的高级数据类型有群,集合,袋和序列.其中群是抽象数据类型,集合,袋和序列是群的子集.集合(set):不包含重复元素;袋(Bag):允许包含重复元素;序列(Sequence):元素具有有序性的袋.,群的操作(Collection)OCL定义的群的操作有下表中列出的操作.,武汉大学国际软件学院,小结,OCL是一种形式化语言OCL已经成为UML规范说明的一部分OCL可以表示施加于模型元素或模型元素的属性、操作等上面的约束条件,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号