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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第11章对象约束语言►11.1对象约束语言概述►11.2标准OCL类型►11.3OCL表达式►11.4用OCL表达对象性质约束211.1对象约束语言概述►UML中的图形符号有时候不能很好的表达所要建模的对象一些细节。►需要对模型中的元素增加一些约束►约束条件可以采用形式化语言►形式化语言对于数学知识很好的人才能熟练运用,普通的开发人员使用起来比较困难.►对象约束语言是一个形式化的语言,但是不复杂.WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程第十一章对象约束语言311.1对象约束语言概述►对象约束语言简称OCL(ObjectConstraintLanguage),它是一种用于施加在指定的模型元素上约束的语言。►OCL表达式以附加在模型元素上的条件和限制来表现对该对象的约束,其中包括附加在模型元素上的不变量或约束的表达式、附加在操作和方法上的前置条件和后置条件等。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程第十一章对象约束语言4OCL的产生►OCL的产生是为了解决约束表达的问题。►OCL最初由IBM公司设计成功。►OCL已经为标准化组织OMG所接受,成为了UML标准的一部分。►OCL语言虽然是一种形式化语言,但是它既具有形式化语言无二义性的特点,又消除了形式化语言的复杂性。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程第十一章对象约束语言5OCL的特点①OCL是一种精确的、无二义性的语言,易于使用和掌握。②OCL是一种规范说明性语言,所有有关实现的问题都不能用OCL来表达。③OCL是一种纯表达式语言,它是具有没有任何副作用的声明性语言。对OCL表达式的计算将返回一个值,计算不会改变系统的状态。④OCL是一种类型化语言,即OCL中的每个表达式都是具有类型的。⑤OCL不是一种程序设计语言,不能用OCL编写程序逻辑和控制流程。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程第十一章对象约束语言611.2标准OCL类型►OCL预定义的标准类型定义了一组基本类型和集合类型。►OCL的基本类型有“Boolean”、“Integer”、“Real”和“String”等,集合类型包括Collection(群集)以外,还有Set(集合)、Bag(袋)和Sequence(序列)等,这些标准类型是OCL表达式的组成部分。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程第十一章对象约束语言711.2标准OCL类型►11.2.1基本类型►11.2.2集合类型►11.2.3OCL中的关键字WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程第十一章对象约束语言811.2.1基本类型►OCL定义了很多基本类型,它的基本类型和程序设计语言中的数据类型的含义类似。►OCL还在基本类型上定义了一些操作,这些操作也与程序设计语言中的操作类似。►OCL的基本类型与操作见表11.1、11.2。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程第十一章对象约束语言911.2.2集合类型►除了基本类型以外,OCL还定义了一些较为高级的标准OCL类型称为集合类型。►集合是成组的对象或元素,可以用来作为表达式计算过程中的结果。►集合类型除了抽象数据类型Collection(群集)以外,还有Set(集合)、Bag(袋)和Sequence(序列)等。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程第十一章对象约束语言1011.2.4集合类型►1.Collection(群集)►2.Set(集合)►3.Bag(袋)►4.Sequence(序列)WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程第十一章对象约束语言111.Collection►Collection是OCL中所有集合的抽象的上级类型。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程第十一章对象约束语言122.Set►Set是不包括重复元素的对象组,Set中的元素是无序的。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程第十一章对象约束语言133.Bag►Bag也是对象组,Bag和Set不同之处在于Bag中可以包含重复元素。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程第十一章对象约束语言144.Sequence►Sequence和Bag相似,也可以包含重复元素,不过Sequence中的元素是有序的。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程第十一章对象约束语言1511.2.3OCL中的关键字►与程序设计语言一样,OCL也定义了一些关键字。►OCL中的关键字见表11.4(P117)。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程第十一章对象约束语言1611.3OCL表达式►11.3.1OCL表达式的语法►11.3.2操作符的优先级WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程第十一章对象约束语言17OCL表达式的特点①OCL表达式可以附加在模型元素上。②OCL表达式可以附加在操作上。③OCL表达式可以指定附加在模型元素上的监护条件。④OCL表达式的计算原则是从左到右⑤OCL表达式既可以使用基本类型又可以使用集合类型。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程第十一章对象约束语言1811.3.1OCL表达式的语法►OCL表达式的语法用扩展的巴斯科范式(EBNF)定义,在EBNF中:①“|”表示选择②“?”表示可选项③“*”表示零次或多次④“+”表示一次或多次1911.3.2操作符的优先级►OCL中的操作符有优先级顺序。►操作符的优先级从高到低见表11.3(P116)。►改变操作符的优先顺序可以使用括号。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程第十一章对象约束语言2011.4用OCL表达对象性质约束►所谓对象性质,就是指一个对象的属性、操作等对象有关的特性,在建模中具体是指定义的模型元素的特性。►OCL表达式可以表达对模型元素性质的约束,常见的使用情况有三种:不变量、前置条件与后置条件和let表达式。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程第十一章对象约束语言2111.4用OCL表达对象性质约束►11.4.1不变量►11.4.2前置条件和后置条件►11.4.3let表达式与约束2211.4.1不变量►不变量常用于附加在模型元素上,它规定的约束条件通常需要该模型元素的所有实例都满足。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程第十一章对象约束语言2317.4.2前置条件和后置条件►OCL表达式附加在操作上可以规定一个前置条件或后置条件。►前置条件指的是操作开始执行前必须为真的条件,后置条件指的是操作成功结束执行后必须为真的条件。►前置条件用保留字“pre”标识,后置条件用保留字“post”标识。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程第十一章对象约束语言2411.4.3let表达式与约束►let表达式附加在模型元素的属性上,它通常用于定义约束中的一个变量。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程第十一章对象约束语言

1 / 24
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功