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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

▪ OCL的出现解决了这一问题,它是一种保留了易 读易写特点的形式语言。OCL不仅用来写约束, 还能够用来对UML图中的任何元素写表达式。
▪ 每个OCL表达式都能指出系统中的一个值或者对 象。OCL表达式能够求出一个系统中的任何值或 者值的集合,因此它具有了和SQL同样的能力, 由此也可得知OCL既是约束语言,同时也是查询 语言。
▪ OCL表达式以附加在模型元素上的条件和 限制来表现对该对象的约束,其中包括附 加在模型元素上的不变量或约束的表达式、 附加在操作和方法上的前置条件和后置条 件等。
2021
3
OCL的产生
▪ OCL的产生是为了解决约束表达的问题。 ▪ OCL最初由IBM公司设计成功。 ▪ OCL已经为标准化组织OMG所接受,成为
④ 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并不能修改对 象的状态,而是用来指示对状态的修改何 时发生。
了UML标准的一部分。 ▪ OCL语言虽然是一种形式化语言,但是它
既具有形式化语言无二义性的特点,又消 除了形式化语言的复杂性。
2021
4
OCL的特点
① OCL是一种精确的、无二义性的语言,易于使 用和掌握。
② OCL是一种规范说明性语言,所有有关实现的 问题都不能用OCL来表达。
③ OCL是一种纯表达式语言,它是具有没有任何 副作用的声明性语言。对OCL表达式的计算将 返回一个值,计算不会改变系统的状态。
2021
15
1. Collection
▪ Collection是OCL中所有集合的抽象的上级类 型。
▪ 定义在Collection上的操作见表5。
▪ 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 <> obje20c2t1 )
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允许访问模型的元 级别。
▪ 集合是成组的对象或元素,可以用来作为 表达式计算过程中的结果。
▪ 集合类型除了抽象数据类型Collection以外, 还有Set(集)、Bag(袋)、 OrderedSet(有续集)和序列 (Sequence)等。
2021
14
2.4 集合类型
▪ 1. Collection ▪ 2. Set ▪ 3. OrderedSet ▪ 4. Bag ▪ 5. Sequence
2021
6
2 标准OCL类型
▪ OCL预定义的标准类型定义了一组基本类 型和集合类型。
▪ OCL的基本类型有“Boolean”、 “Integer”、“Real”和“String”等,集 合类型包括“Collection”、“Set”、“Bag” 和“Sequence”等,这些标准类型是OCL表 达式的组成部分。
12
2.3 基本类型
▪ OCL定义了很多基本类型,它的基本类型和 程序设计语言中的数据类型的含义类似。
▪ OCL还在基本类型上定义了一些操作,这些 操作也与程ቤተ መጻሕፍቲ ባይዱ设计语言中的操作类似。
▪ OCL的基本类型与操作见表3。
2021
13
2.4 集合类型
▪ 除了基本类型以外,OCL还定义了一些较 为高级的标准OCL类型称为集合类型。
对象约束语言
▪1 对象约束语言概述 ▪2 标准OCL类型 ▪3 OCL表达式 ▪4 用OCL表达对象性质约束
2021
1
1 对象约束语言概述
▪ 对象约束语言(Object Constraint Language),简称OCL,是一种指示用户 建模系统中的限制方式。它是UML可选的 附加内容,可以用来更好地定义对象的行 为,并为任何类元指定约束。
相关文档
最新文档