收藏 分享(赏)

第十一章 对象约束语言(UML).ppt

上传人:gnk289057 文档编号:6213264 上传时间:2019-04-02 格式:PPT 页数:24 大小:144.50KB
下载 相关 举报
第十一章 对象约束语言(UML).ppt_第1页
第1页 / 共24页
第十一章 对象约束语言(UML).ppt_第2页
第2页 / 共24页
第十一章 对象约束语言(UML).ppt_第3页
第3页 / 共24页
第十一章 对象约束语言(UML).ppt_第4页
第4页 / 共24页
第十一章 对象约束语言(UML).ppt_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、1,第11章 对象约束语言,11.1 对象约束语言概述 11.2 标准OCL类型 11.3 OCL表达式 11.4 用OCL表达对象性质约束,2,11.1 对象约束语言概述,UML中的图形符号有时候不能很好的表达所要建模的对象一些细节。 需要对模型中的元素增加一些约束 约束条件可以采用形式化语言 形式化语言对于数学知识很好的人才能熟练运用,普通的开发人员使用起来比较困难. 对象约束语言是一个形式化的语言,但是不复杂.,3,11.1 对象约束语言概述,对象约束语言简称OCL(Object Constraint Language),它是一种用于施加在指定的模型元素上约束的语言。 OCL表达式以附加

2、在模型元素上的条件和限制来表现对该对象的约束,其中包括附加在模型元素上的不变量或约束的表达式、附加在操作和方法上的前置条件和后置条件等。,4,OCL的产生,OCL的产生是为了解决约束表达的问题。 OCL最初由IBM公司设计成功。 OCL已经为标准化组织OMG所接受,成为了UML标准的一部分。 OCL语言虽然是一种形式化语言,但是它既具有形式化语言无二义性的特点,又消除了形式化语言的复杂性。,5,OCL的特点,OCL是一种精确的、无二义性的语言,易于使用和掌握。 OCL是一种规范说明性语言,所有有关实现的问题都不能用OCL来表达。 OCL是一种纯表达式语言,它是具有没有任何副作用的声明性语言。对

3、OCL表达式的计算将返回一个值,计算不会改变系统的状态。 OCL是一种类型化语言,即OCL中的每个表达式都是具有类型的。 OCL不是一种程序设计语言,不能用OCL编写程序逻辑和控制流程。,6,11.2 标准OCL类型,OCL预定义的标准类型定义了一组基本类型和集合类型。 OCL的基本类型有“Boolean”、“Integer”、“Real”和“String”等,集合类型包括Collection(群集)以外,还有Set(集合)、Bag(袋)和Sequence(序列)等,这些标准类型是OCL表达式的组成部分。,7,11.2 标准OCL类型,11.2.1 基本类型 11.2.2 集合类型 11.2.

4、3 OCL中的关键字,8,11.2.1 基本类型,OCL定义了很多基本类型,它的基本类型和程序设计语言中的数据类型的含义类似。 OCL还在基本类型上定义了一些操作,这些操作也与程序设计语言中的操作类似。 OCL的基本类型与操作见表11.1、11.2。,9,11.2.2 集合类型,除了基本类型以外,OCL还定义了一些较为高级的标准OCL类型称为集合类型。 集合是成组的对象或元素,可以用来作为表达式计算过程中的结果。 集合类型除了抽象数据类型Collection(群集)以外,还有Set(集合)、Bag(袋)和Sequence(序列)等。,10,11.2.4 集合类型,1. Collection (

5、群集) 2. Set(集合) 3. Bag(袋) 4. Sequence(序列),11,1. Collection,Collection是OCL中所有集合的抽象的上级类型。,12,2. Set,Set是不包括重复元素的对象组,Set中的元素是无序的。,13,3. Bag,Bag也是对象组,Bag和Set不同之处在于Bag中可以包含重复元素。,14,4. Sequence,Sequence和Bag相似,也可以包含重复元素,不过Sequence中的元素是有序的。,15,11.2.3 OCL中的关键字,与程序设计语言一样,OCL也定义了一些关键字。 OCL中的关键字见表11.4(P117)。,16,

6、11.3 OCL表达式,11.3.1 OCL表达式的语法 11.3.2 操作符的优先级,17,OCL表达式的特点,OCL表达式可以附加在模型元素上。 OCL表达式可以附加在操作上。 OCL表达式可以指定附加在模型元素上的监护条件。 OCL表达式的计算原则是从左到右 OCL表达式既可以使用基本类型又可以使用集合类型。,18,11.3.1 OCL表达式的语法,OCL表达式的语法用扩展的巴斯科范式(EBNF)定义,在EBNF中: “|”表示选择 “?”表示可选项 “*”表示零次或多次 “”表示一次或多次,19,11.3.2 操作符的优先级,OCL中的操作符有优先级顺序。 操作符的优先级从高到低见表1

7、1.3(P116)。 改变操作符的优先顺序可以使用括号。,20,11.4 用OCL表达对象性质约束,所谓对象性质,就是指一个对象的属性、操作等对象有关的特性,在建模中具体是指定义的模型元素的特性。 OCL表达式可以表达对模型元素性质的约束,常见的使用情况有三种:不变量、前置条件与后置条件和let表达式。,21,11.4 用OCL表达对象性质约束,11.4.1 不变量 11.4.2 前置条件和后置条件 11.4.3 let表达式与约束,22,11.4.1 不变量,不变量常用于附加在模型元素上,它规定的约束条件通常需要该模型元素的所有实例都满足。,23,17.4.2 前置条件和后置条件,OCL表达式附加在操作上可以规定一个前置条件或后置条件。 前置条件指的是操作开始执行前必须为真的条件,后置条件指的是操作成功结束执行后必须为真的条件。 前置条件用保留字“pre”标识,后置条件用保留字“post”标识。,24,11.4.3 let表达式与约束,let表达式附加在模型元素的属性上,它通常用于定义约束中的一个变量。,

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

当前位置:首页 > 网络科技 > UML理论/建模

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报