UML-OCL对象约束语言PPT课件

合集下载

第13章对象约束语言

第13章对象约束语言

7
13.4 OCL语法 语法
OCL指定了每一个约束都必须有 一个上下文.上下文(context)指定了 哪一个项目被约束.OCL是一个类型化 的语言,因此数据类型扮演了重要角色 ,如高级语言C++,Java一样,也有多 种数据类型.
8
13.3.1 固化类型
一个约束就是对一个(或部分)面向对象 模型或者系统的一个或者一些值的限制. UML类图中的所有值都可以使用OCL来约 束.约束的应用类似于表达式,在OCL中 编写的约束上下文可以是一个类或一个操 作.其中需要指定约束的固化类型,而约 束的固化类型可以由以下三项组成: invariant pre-condition post-condition
OclVoid类型是与所有其他类型相一致的一种类型,它只 有一个叫OclUndefined的实例,应用于未定义类型的任 何特性调用,除了oclIsUndefined()返回"真",其他都 会产生OclUndefined. colIsUndefined(): Boolean 如果对象与OclUndefined相 同,那么oclIsUndefined()的计算结果为"真". OclAny类型是一个UML模型里所有类型和OCL标准库的 父类,它包括了诸多子类例如Real,Boolean,Sring, OclState和Integer等,如图13-3所示.模型里所有的子 类都继承由OclAny定义的特性.下面是对所有OclAny中 操作的描述. =(object:OclAny):Boolean 如果self与object是同一对象 ,则返回值为"真". post:result = (self = object) <>(object:OclAny):Boolean 如果self是一个与object不 同的对象,则返回值为"真". pre:result = (self <> object)

软件体系结构课件第5章统一建模语言

软件体系结构课件第5章统一建模语言

2:GetPrefSet()
10:PrefSet(date_mg)
1:GetPrefSet()
:MeetingInitiator
第5章 统一建模语言 直接使用UML建模 – 会议安排系统的类图
Person
StronglyConflicts With
Conflicts With
Important Attendee
0..* 0..*
0..* Profers
Attendee
1..* 1..* 0..* 0..*
11 1 1
1
Meeting Initiator
Find.exe
Query .dll
部署图 定义系 统中软 硬件的 物理体
系结构
第5章 统一建模语言 部署图
客户端:个人PC QueryClient.exe
服务器
《TCP/IP》 查询
QueryServer.exe 部署图
定义系
统中软
Find.exe
硬件的
物理体
Query.dll系结构
第5章 统一建模语言
第5章 统一建模语言
直接使用UML建模 – UML中的通用表示
➢ 字符串:表示有关模型的信息; ➢ 名字:表示模型元素; ➢ 标号:不同于编程语言中的标号,是用于表示或说明图形符号的字
符串; ➢ 特殊字符串:表示某一模型元素的特性; ➢ 类型表达式:声明属性、变量及参数,含义同编程语言中的类型表
0
10
20
30s 时间刻度
第5章 统一建模语言 状态图
提交订单 已审核 印前处理
客户付钱
已付款
已处理
进行冲印
冲印中 冲印完成
描述满足 用例要求 所要进行 的活动以 及活动间 的完约成束关 系,有利 于识别并 行活动

ocl语法

ocl语法

OCL(Object Constraint Language)是一种用于对对象进行约束描述的规则语言,它是UML(Unified Modeling Language)的一部分,用于对类、对象、关联关系等进行约束描述。

OCL规则通常由一个条件和一个约束组成,其中条件部分描述了规则的前提条件,约束部分描述了规则的执行结果。

OCL规则通过使用关系运算符、逻辑运算符、集合运算符等进行表达。

OCL语法包括以下部分:1. 类型和语法:OCL是强类型的语言,任何表达式的值都是属于一个类型的。

这个类型可以是预定义的标准类型例如Boolean或者Integer,也可以是UML图中的元素例如对象。

因为OCL是宣言式语言,所以UML中的表达式被提升到了纯建模的领域,而不必理会实现的细节和实现的语言。

OCL起源于1997年BIM公司为响应OMG 的"面向对象分析和设计标准"征求稿所提交的"对象时间限制提议",OCL是该提议的部分内容。

用OCL可以描述四类约束,分别是不变量、前置条件、后置条件和监护条件。

2. OCL规则的应用:OCL规则在软件开发中有多种应用,包括数据验证、业务逻辑验证、数据推导和约束生成等。

例如,在银行系统中,可以使用OCL规则对用户输入的金额进行验证,确保金额大于等于零且小于用户账户余额;在电商系统中,可以使用OCL规则对订单状态进行验证,确保订单在不同状态下的合法操作;在学生管理系统中,可以使用OCL规则根据学生的成绩和出勤情况推导出学生的绩点;在航空订票系统中,可以使用OCL规则生成乘客姓名的约束条件,确保乘客姓名只包含字母和空格。

以上信息仅供参考,如需了解更多信息,请查阅相关书籍或咨询专业人士。

对象约束语言简称OCL

对象约束语言简称OCL

对象约束语言简称OCL(Object Constraint Language),它是一种用于施加在指定的模型元素上约束的语言。

OCL表达式以附加在模型元素上的条件和限制来表现对该对象的约束,其中包括附加在模型元素上的不变量或约束的表达式,附加在操作和方法上的前置条件和后置条件等。

对象约束语言概述对象约束语言是一种形式化语言,它主要用于表示UML模型中施加于模型上的约束。

OCL具有如下特点:1、OCL是一种精确的,无二义性的语言2、OCL是一种规范说明性语言,所有有关实现的问题都不能用OCL来表达3、OCL是一种纯表达式语言,它是具有没有任何副作用的申明性语言。

4、OCL是一种类型化语言,即OCL中的每一个表达式都是具有类型的。

5、OCL不是一种程序设计语言,不能用OCL编写程序逻辑和控制流程。

标准OCL类型OCL预定义的标准类型定义了一组基本类型和集合类型。

OCL的基本类型有"Boolean"、"Integer"、"Real"、"String"等。

集合类型包括"Collection"、"Set"、"Bag"、"Sequence"等。

这些标准型是OCL表达式的组成部分。

OCL标准型的层次结构如下:OCL表达式OCL表达式对于一个OCL类型求值。

OCL表达式有以下特点:1、OCL表达式可以附加在模型元素上,模型元素的所有实例都应该满足表达式的条件。

2、OCL表达式可以附加在操作上。

3、OCL表达式可以指定附加在模型元素上的监护条件。

4、OCL表达式的计算顺序是从左到右。

5、OCL表达式既可以使用基本类型又可以使用集合类型。

用OCL表达对象性质约束OCL表达式可以附加在模型元素或模型元素的属性和操作上表达一个约束条件。

精确域模型的需求让我们拿系谱树形结构作为一个范例,从图 1 之中的图表开始。

第十一篇对象约束语言(UML)

第十一篇对象约束语言(UML)
第11章 对象约束语言
►11.1 对象约束语言概述 ►11.2 标准OCL类型 ►11.3 OCL表达式 ►11.4 用OCL表达对象性质约束
1
面 向 对
11.1 对象约束语言概述


UML

►UML中的图形符号有时候不能很好的表达所
教 程
要建模的对象一些细节。
►需要对模型中的元素增加一些约束
►约束条件可以采用形式化语言
教 程
型。
第 十 一 章
对 象 约 束 语 言
11
WUHAN UNIVERSITY OF SCIENCE AND 对
2. Set


UML

►Set是不包括重复元素的对象组,Set中的元
教 程
素是无序的。
第 十 一 章
对 象 约 束 语 言
12
WUHAN UNIVERSITY OF SCIENCE AND ENGINEERING

向 对
3. Bag


UML

►Bag也是对象组,Bag和Set不同之处在于Bag
教 程
中可以包含重复元素。
第 十 一 章
对 象 约 束 语 言
13
WUHAN UNIVERSITY OF SCIENCE AND ENGINEERING

向 对
4. Sequence


UML

►Sequence和Bag相似,也可以包含重复元素,
第 十 一 章
对 象 约 束 语 言
15
WUHAN UNIVERSITY OF SCIENCE AND ENGINEERING

UML-OCL对象约束语言

UML-OCL对象约束语言

OCL的产生
OCL的产生是为了解决约束表达的问题。 OCL最初由IBM公司设计成功。 OCL已经为标准化组织OMG所接受,成为 了UML标准的一部分。 OCL语言虽然是一种形式化语言,但是它 既具有形式化语言无二义性的特点,又消 除了形式化语言的复杂性。
OCL的特点
① OCL是一种精确的、无二义性的语言,易于使 用和掌握。 ② OCL是一种规范说明性语言,所有有关实现的 问题都不能用OCL来表达。 ③ OCL是一种纯表达式语言,它是具有没有任何 副作用的声明性语言。对OCL表达式的计算将 返回一个值,计算不会改变系统的状态。 ④ OCL是一种类型化语言,即OCL中的每个表达式 都是具有类型的。 ⑤ OCL不是一种程序设计语言,不能用OCL编写程 序逻辑和控制流程。
8. 元组(Tuple)
元组是对一组数据元素,如文件中的一个记录或 数据库中的一行等内容的定义,每个元素被赋予 名称和类型。元组可以使用字符或基于表达式的 赋值来创建。在OCL中,元组是使用被花括号包 围的一系列“名称-类型”对和可选值来定义的, 其定义形式如下所示: Tuple{name:String= 'Jim',age:Integer=23} 元组只是将一组值集合在一起的一种途径,然后 元组必须被赋予一个变量。以下表达式使用def 表达式来创建一个代理类元上下文内叫sales的新 属性。
前置条件指的是操作开始执行前必须为真 的条件,后置条件指的是操作成功结束执 行后必须为真的条件。 前置条件用保留字“pre”标识,后置条件 用保留字“post”标识。
4.3 let表达式与约束
let表达式附加在模型元素的属性上,它通 常用于定义约束中的一个变量。
5 示例-管理信用卡账户

第17章 对象约束语言

第17章 对象约束语言
返回Sequence中指定位置的元素 返回由参数对象加上Sequence中所有元 素组成的Sequence 返回Sequence中表达式为假的元素组成 的Sequence 返回Sequence中表达式为真的元素组成 的Sequence
Iterate(OclExpression)
在Sequence上迭代
表17-4 : 集合类型
类型 值
Set
Bag Sequence
{1,5,4,2,3} //特点:不包括重复元素,无序的
{1,2,3,2,4} //特点:可以包括重复元素,无序的 {1,2,2,3,4} //特点:可以包括重复元素,有序的
1. Collection
Collection是OCL中所有集合的抽象的上级 类型。 定义在Collection上的操作见表17-5。
返回Sequence中移除重复元素后所有元素 组成的Set
返回对Sequence中每个成员应用此表达式 得到的所有元素组成的Sequence 返回参数对象在Sequence中出现的次数 返回包含在Sequence中除参数对象以外所 有元素的Sequence 返回包含在Sequence中的所有元素,并加 上参数对象作为最后元素的Sequence 返回包含在Sequence中的所有元素,并在 后面加上参数对象的Sequence
-1.2 , 3.4 ,
“My name is “
Implies:逻辑异或运算。 Floor:取小于或等于一个实数的最大整数。
17.2.4 集合类型
除了基本类型以外,OCL还定义了一些较 为高级的标准OCL类型称为集合类型。 集合是成组的对象或元素,可以用来作为 表达式计算过程中的结果。 集合类型除了抽象数据类型Collection以 外,还有Set(集)、Bag(袋)和序列 (Sequence)等。

软件建模与UML 第八章 对象约束语言

软件建模与UML 第八章 对象约束语言

返回指定Collection中所有元素的和
返回指定Collection与c2 Collection的迪卡尔积
访问集合中的元素并查询或计算表达式
4、集合类型
2)Set类型 Set类型是不包括重复元素的对象组,Set 类型中的元素是无序的。

4、集合类型
定义在Set类型上的操作
操作 union(s : Set(T)) : Set(T) union(bag : Bag(T)) : Bag(T) = (s : Set(T)) : Boolean intersection(s : Set(T)) : Set(T) intersection(bag: Bag(T)) : Set(T) – (s : Set(T)) : Set(T) including(object : T) : Set(T) excluding(object : T) : Set(T) symmetricDifference(s : Set(T)) : Set(T) count(object : T) : Integer asSet() : Set(T) asOrderedSet() : OrderedSet(T) asSequence() : Sequence(T) asBag() : Bag(T) 说明 返回指定Set与参数s的联合体,结果是Set类型 返回指定Set与参数bag的联合体,结果是Bag类型 当指定Set与s包含相同的元素时,返回真 返回指定Set与参数s的交集 返回指定Set与参数bag的交集 返回指定Set与参数s的差集 返回包含在指定Set中的所有元素以及参数对象的Set 返回指定Set中的除参数对象以外的所有元素的Set 返回包含在指定Set和参数Set中,但不同时包含在这两个Set中的元 素组成的Set 返回参数对象在指定Set中出现的次数 返回指定Set本身 返回指定Set中移除所有重复元素后,所有元素以随机顺序组成的 OrderedSet 返回指定Set中所有元素的以随机顺序组成的Sequence 返回包含Set中所有元素的Bag

ocl语句

ocl语句

ocl语句OCL语句简介什么是OCL语句?OCL(Object Constraint Language)是一种用于描述和约束面向对象模型的语言。

它能够通过简洁明了的语法来对对象模型中的元素进行约束和查询操作,是软件开发过程中的重要工具之一。

OCL语句的特点•灵活可扩展 OCL语句可以根据需求进行灵活的扩展,满足不同业务领域的需求。

它提供了丰富的操作符和表达式,可以清晰地描述对象模型的约束条件。

•表达性强 OCL语句采用自然语言的形式,易于理解和编写。

通过声明式的语法,可以直观地表达对对象模型中数据的约束和查询。

•与UML紧密集成 OCL语句与UML紧密集成,可以对UML类图、对象图等进行约束和查询操作。

它为软件开发提供了一个统一的模型描述和分析工具。

OCL语句的应用场景•软件验证 OCL语句可以用于对软件模型进行约束验证。

通过定义合适的OCL语句,可以对模型中的元素进行静态分析,检测潜在的错误和问题。

•软件开发 OCL语句可以用于指导软件开发过程中的代码实现。

通过定义OCL语句,可以明确对象模型中元素之间的关系,从而更好地组织代码逻辑。

•软件测试 OCL语句可以用于生成测试用例和进行测试。

通过定义适当的OCL语句,可以生成各种测试场景,覆盖不同的业务逻辑。

•软件维护 OCL语句可以用于软件维护和重构。

通过定义OCL语句,可以对现有的代码进行静态分析,识别代码中的潜在问题,从而进行优化和改进。

OCL语句的实例以下是一些OCL语句的实例,用于展示OCL语句的应用能力:•查询满足条件的对象context Personinv: > 18 and = 'Male'•约束关联关系context Studentinv: = 'Beijing'•约束集合属性context Libraryinv: >select(book | = 'borrowed')->isEmpty()•约束操作的前提条件context Orderpre: = 'Confirmed'总结OCL语句是一种强大的面向对象模型描述和约束工具,它具有灵活可扩展、表达性强等特点,并在软件开发的各个阶段和领域具有重要的应用价值。

对象约束语言简称OCL

对象约束语言简称OCL

对象约束语言简称OCL(Object Constraint Language),它是一种用于施加在指定的模型元素上约束的语言。

OCL表达式以附加在模型元素上的条件和限制来表现对该对象的约束,其中包括附加在模型元素上的不变量或约束的表达式,附加在操作和方法上的前置条件和后置条件等。

对象约束语言概述对象约束语言是一种形式化语言,它主要用于表示UML模型中施加于模型上的约束。

OCL具有如下特点:1、OCL是一种精确的,无二义性的语言2、OCL是一种规范说明性语言,所有有关实现的问题都不能用OCL来表达3、OCL是一种纯表达式语言,它是具有没有任何副作用的申明性语言。

4、OCL是一种类型化语言,即OCL中的每一个表达式都是具有类型的。

5、OCL不是一种程序设计语言,不能用OCL编写程序逻辑和控制流程。

标准OCL类型OCL预定义的标准类型定义了一组基本类型和集合类型。

OCL的基本类型有"Boolean"、"Integer"、"Real"、"String"等。

集合类型包括"Collection"、"Set"、"Bag"、"Sequence"等。

这些标准型是OCL表达式的组成部分。

OCL标准型的层次结构如下:OCL表达式OCL表达式对于一个OCL类型求值。

OCL表达式有以下特点:1、OCL表达式可以附加在模型元素上,模型元素的所有实例都应该满足表达式的条件。

2、OCL表达式可以附加在操作上。

3、OCL表达式可以指定附加在模型元素上的监护条件。

4、OCL表达式的计算顺序是从左到右。

5、OCL表达式既可以使用基本类型又可以使用集合类型。

用OCL表达对象性质约束OCL表达式可以附加在模型元素或模型元素的属性和操作上表达一个约束条件。

精确域模型的需求让我们拿系谱树形结构作为一个范例,从图 1 之中的图表开始。

《对象约束语言》PPT课件

《对象约束语言》PPT课件
也必须等于0 (7) 分支
context 订单 inv 酬金 = if (订单和<100) then 2.00 else (订单和*0.01) endif 求“订单”的“酬金”,如果订单和<100,酬金为2,否则为 订单和的百分之一.
精选PPT
(8) 导航 OCL可以从初始的上下文导航到与它有关系的其它类。
精选PPT
群的操作(Collection) OCL定义的群的操作有下表中列出的操作.
精选PPT
小结
• OCL是一种形式化语言 • OCL已经成为UML规范说明的一部分 • OCL可以表示施加于模型元素或模型元素的属性、操作
等上面的约束条件
精选PPT
精选PPT
9.2 OCL的特点
• 声明性语言,不会改变模型中的内容。 • 形式化语言语言。 • 无二义规范语言。 • 类型性语言,每一个表达式都有类型; • 易学好用。
精选PPT
9.3 OCL的构成
• OCL作为形式化语言,基本语言要素包括: • 类型(基本类型,高级类型) • 操作 • 表达式 • 语句
context 订单 inv: --”订单”类中的所有对
订单和 > 10
--象的”订单和”都应该大于10
context 订单 inv: --”订单”类的”酬金”的求法
酬金= 0.01 * 订单和
也可以:
context 订单 inv: --”订单”类的”酬金”的求法
self.酬金 = 0.01 * self.订单和
精选ppt93ocl93ocl的构成的构成语句精选ppt93ocl93ocl的构成的构成精选ppt93ocl93ocl的构成的构成ocl在基本类型上的部分运算符精选ppt解释解释整型i1i2加法整型i1i2除法实型i1abs取绝对值整型i1maxi2取最大数整型实型i1i2加法实型i1abs取绝对值实型r1round四舍五入取整整型r1floor向下取整整型精选ppt解释解释字符串型s1concats2连接字符串s1size字符串长度整型s1tolower转换成为小写字母字符串s1touper转换成为大写字母字符串s1substringi1i2字符串s1s2等于布尔型精选ppt解释解释布尔型b1b2逻辑与布尔型b1逻辑非布尔型b1b2等于布尔型b1b2不等于布尔型b1impliesb2蕴涵布尔型当b1和b2均为真或b1为假时表达式为真1expr1elseexpr2endif分支判断精选ppt解释解释运算符的优先级别优先级决定了操作顺序

5.2对象约束 课件(共14张PPT)-中职《AutoCAD》同步教学(华南理工大学版).ppt

5.2对象约束 课件(共14张PPT)-中职《AutoCAD》同步教学(华南理工大学版).ppt
导航】选项板中单击【范围】按钮旁边 的下三角按钮,即可打开【缩放】列表。
任务二
对象约束
一、几何约束 二、尺寸约束
三、视图的控制
3、重画和重生成视图 利用重画和重生成工具,可以将当
前图形中的临时标记删除,以提高图形 的清晰度和整体效果,或者对图形进行 重生成更新,使某些操作对图形生效, 以提高图形的实时显示。
任务二
对象约束
一、几何约束 二、尺寸约束
三、视图的控制
1.添加尺寸约束 2.尺寸约束的种类 3.用户变量和方程式
任务二
对象约束
一、几何约束 二、尺寸约束
三、视图的控制
在绘制或观察图形的过程中,为了
更方便地观察图形的不同位置,可以对 图形进行平移或缩放操作,然后对图形 进行相应的观察,还可以利用视图的重 画和重生成工具更新视图,提高绘图的 准确性和画面清晰度。
1.实时平移 2.定点平移
任务二
对象约束
一、几何约束 二、尺寸约束
三、视图的控制
2、缩放视图 通常在绘制图形的局部细节时,需
要使用相应的缩放工具放大绘图区域, 当绘制完成后,再使用缩放工具缩小图 形来观察图形的整体效果。
任务二
对象约束
一、几何约束 二、尺寸约束
三、视图的控制
切换至【视图】选项卡,在【二维
任务二 对象约束
任务二
对象约束
一、几何约束 二、尺寸约束 三、视图的控制
利用AutoCAD提供的对象约束工具 可以使绘图变得更加智能化。对象约束 包括几何约束和尺寸约束,且几何约束 能够在对象或关键点之间建立关联,而 添加尺寸约束可以利用尺寸参数驱动图 形形体的变化。
任务二
对象约束
一、几何约束 二、尺寸约束 三、视图的控制
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

▪ OCL的出现解决了这一问题,它是一种保留了易 读易写特点的形式语言。OCL不仅用来写约束, 还能够用来对UML图中的任何元素写表达式。
▪ 每个OCL表达式都能指出系统中的一个值或者对 象。OCL表达式能够求出一个系统中的任何值或 者值的集合,因此它具有了和SQL同样的能力, 由此也可得知OCL既是约束语言,同时也是查询 语言。
④ OCL是一种类型化语言,即OCL中的每个表达式 都是具有类型的。
⑤ OCL不是一种程序设计语言,不能用OCL编写程 序逻辑和控制流程。
2021
5
▪ UML图(例如类图)通常不够精细,无法提供与 规范有关的所有相关部分。这其中就缺少描述模 型中关于对象的附加约束。这些约束常常用自然 语言描述。而实践表明,这样做经常造成歧义。 为了写出无歧义的约束,已经开发出几种所谓的 “形式语言”。传统上的形式语言,缺点是仅适 合于有相当数学背景的人员,而普通商务或系统 建模者则难以使用。
▪ OclType的操作见表1。
2021
10
2.2 OclAny类型
▪ OclType类型是一个模型里所有类型的上 级类型。模型里所有的类都继承由OclAny 定义的特性。
▪ OclAny的操作见表2。
2021
11
▪ OclVoid类型是与所有其他类型相一致的一种类型,它只 有一个叫OclUndefined的实例,应用于未定义类型的任 何特性调用,除了oclIsUndefined()返回“真”,其他都 会产生OclUndefined。
▪ 在对象约束语言中,对象代表了系统的组 件,它定义了完善的项目,约束代表限制, 而语言并非是指一种正式的计算机语言。
2021
2
1 对象约束语言概述
▪ OCL是一种形式语言,可以应用于任何实 现方式的非正规语言。对象约束语言对 UML中图形或其他组件都没有控制权,它 只是在使用时返回值。OCL并不能修改对 象的状态,而是用来指示对状态的修改何 时发生。
▪ 集合是成组的对象或元素,可以用来作为 表达式计算过程中的结果。
▪ 集合类型除了抽象数据类型Collection以外, 还有Set(集)、Bag(袋)、 OrderedSet(有续集)和序列 (Sequence)等。
2021
14
2.4 集合类型
▪ 1. Collection ▪ 2. Set ▪ 3. OrderedSet ▪ 4. Bag ▪ 5. Sequence
▪ =(object:OclAny):Boolean 如果self与object是同一对 象,则返回值为“真”。
▪ post:result = (self = object)
▪ <>(object:OclAny):Boolean 如果self是一个与object不 同的对象,则返回值为“真”。
▪ pre:result = (self <> obje20c2t1 )
对象约束语言
▪1 对象约束语言概述 ▪2 标准OCL类型 ▪3 OCL表达式 ▪4 用OCL表达对象性质约束
2021
1
1 对象约束语言概述
▪ 对象约束语言(Object Constraint Language),简称OCL,是一种指示用户 建模系统中的限制方式。它是UML可选的 附加内容,可以用来更好地定义对象的行 为,并为任何类元指定约束。
▪ colIsUndefined(): Boolean 如果对象与OclUndefined 相同,那么oclIsUndefined()的计算结果为“真”。
▪ OclAny类型是一个UML模型里所有类型和OCL标准库的 父类,它包括了诸多子类例如Real、Boolean、Sring、 OclState和Integer等,如图13-3所示。模型里所有的子 类都继承由OclAny定义的特性。下面是对所有OclAny中 操作的描述。
▪ OCL表达式以附加在模型元素上的条件和 限制来表现对该对象的约束,其中包括附 加在模型元素上的不变量或约束的表达式、 附加在操作和方法上的前置条件和后置条 件等。
2021
3
OCL的产生
▪ OCL的产生是为了解决约束表达的问题。 ▪ OCL最初由IBM公司设计成功。 ▪ OCL已经为标准化组织OMG所接受,成为
2021
15
1. Collection
▪ Collection是OCL中所有集合的抽象的上级类 型。
▪ 定义在Collection上的操作见表5。
2021
7
2 标准OCL类型
▪ OCL标准类型的层次结构
2021
8
2 标准OCL类型
▪ 2.1 OclType类型 ▪ 2.2 OclAny类型 ▪ 2.3 基本类型 ▪ 2.4 集合类型 ▪ 2.5 OCL中的关键字
2021
9
2.1 OclType类型
▪ OclType类型是OCL预定义的和在模型中 定义的类型,OclType允许访问模型的元 级别。
了UML标准的一部分。 ▪ OCL语言虽然是一种形式化语言,但是它
既具有形式化语言无二义性的特点,又消 除了形式化语言的复杂性。
2021
4
OCL的特点
① OCL是一种精确的、无二义性的语言,易于使 用和掌握。
② OCL是一种规范说明性语言,所有有关实现的 问题都不能用OCL来表达。
③ OCL是一种纯表达式语言,它是具有没有任何 副作用的声明性语言。对OCL表达式的计算将 返回一个值,计算不会改变系统的状态。
2021
6
2 标准OCL类型
▪ OCL预定义的标准类型定义了一组基本类 型和集合类型。
▪ OCL的基本类型有“Boolean”、 “Integer”、“Real”和“String”等,集 合类型包括“Collection”、“Set”、“Bag” 和“Sequence”等,这些标准类型是OCL表 达式的组成部分。
12
2.3 基本类型
▪ OCL定义了很多基本类型,它的基本类型和 程序设计语言中的数据类型的含义类似。
▪ OCL还在基本类型上定义了一些操作,这些 操作也与程序设计语言中的操作类似。
▪ OCL的基本类型与操作见表3。
202113ຫໍສະໝຸດ 2.4 集合类型▪ 除了基本类型以外,OCL还定义了一些较 为高级的标准OCL类型称为集合类型。
相关文档
最新文档