欢迎来到天天文库
浏览记录
ID:41282909
大小:271.51 KB
页数:24页
时间:2019-08-21
《对象约束语言(UML)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第11章对象约束语言11.1对象约束语言概述11.2标准OCL类型11.3OCL表达式11.4用OCL表达对象性质约束111.1对象约束语言概述UML中的图形符号有时候不能很好的表达所要建模的对象一些细节。需要对模型中的元素增加一些约束约束条件可以采用形式化语言形式化语言对于数学知识很好的人才能熟练运用,普通的开发人员使用起来比较困难.对象约束语言是一个形式化的语言,但是不复杂.WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程 第十一章 对象约束
2、语言211.1对象约束语言概述对象约束语言简称OCL(ObjectConstraintLanguage),它是一种用于施加在指定的模型元素上约束的语言。OCL表达式以附加在模型元素上的条件和限制来表现对该对象的约束,其中包括附加在模型元素上的不变量或约束的表达式、附加在操作和方法上的前置条件和后置条件等。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程 第十一章 对象约束语言3OCL的产生OCL的产生是为了解决约束表达的问题。OCL最初由IBM公
3、司设计成功。OCL已经为标准化组织OMG所接受,成为了UML标准的一部分。OCL语言虽然是一种形式化语言,但是它既具有形式化语言无二义性的特点,又消除了形式化语言的复杂性。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程 第十一章 对象约束语言4OCL的特点OCL是一种精确的、无二义性的语言,易于使用和掌握。OCL是一种规范说明性语言,所有有关实现的问题都不能用OCL来表达。OCL是一种纯表达式语言,它是具有没有任何副作用的声明性语言。对OCL表
4、达式的计算将返回一个值,计算不会改变系统的状态。OCL是一种类型化语言,即OCL中的每个表达式都是具有类型的。OCL不是一种程序设计语言,不能用OCL编写程序逻辑和控制流程。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程 第十一章 对象约束语言511.2标准OCL类型OCL预定义的标准类型定义了一组基本类型和集合类型。OCL的基本类型有“Boolean”、“Integer”、“Real”和“String”等,集合类型包括Collection(群
5、集)以外,还有Set(集合)、Bag(袋)和Sequence(序列)等,这些标准类型是OCL表达式的组成部分。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程 第十一章 对象约束语言611.2标准OCL类型11.2.1基本类型11.2.2集合类型11.2.3OCL中的关键字WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程 第十一章 对象约束语言711.2.1基本类型OCL定义了很多基本类型,它的基
6、本类型和程序设计语言中的数据类型的含义类似。OCL还在基本类型上定义了一些操作,这些操作也与程序设计语言中的操作类似。OCL的基本类型与操作见表11.1、11.2。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程 第十一章 对象约束语言811.2.2集合类型除了基本类型以外,OCL还定义了一些较为高级的标准OCL类型称为集合类型。集合是成组的对象或元素,可以用来作为表达式计算过程中的结果。集合类型除了抽象数据类型Collection(群集)以外,
7、还有Set(集合)、Bag(袋)和Sequence(序列)等。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程 第十一章 对象约束语言911.2.4集合类型1.Collection(群集)2.Set(集合)3.Bag(袋)4.Sequence(序列)WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程 第十一章 对象约束语言101.CollectionCollection是OCL中所有集合的抽象的上级
8、类型。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程 第十一章 对象约束语言112.SetSet是不包括重复元素的对象组,Set中的元素是无序的。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教程 第十一章 对象约束语言123.BagBag也是对象组,Bag和Set不同之处在于Bag中可以包含重复元素。WUHANUNIVERSITYOFSCIENCEANDENGINEERING面向对象技术UML教
此文档下载收益归作者所有