- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十一章对象约束语言(UML)
第11章 对象约束语言 11.1 对象约束语言概述 11.2 标准OCL类型 11.3 OCL表达式 11.4 用OCL表达对象性质约束 11.1 对象约束语言概述 UML中的图形符号有时候不能很好的表达所要建模的对象一些细节。 需要对模型中的元素增加一些约束 约束条件可以采用形式化语言 形式化语言对于数学知识很好的人才能熟练运用,普通的开发人员使用起来比较困难. 对象约束语言是一个形式化的语言,但是不复杂. 11.1 对象约束语言概述 对象约束语言简称OCL(Object Constraint Language),它是一种用于施加在指定的模型元素上约束的语言。 OCL表达式以附加在模型元素上的条件和限制来表现对该对象的约束,其中包括附加在模型元素上的不变量或约束的表达式、附加在操作和方法上的前置条件和后置条件等。 OCL的产生 OCL的产生是为了解决约束表达的问题。 OCL最初由IBM公司设计成功。 OCL已经为标准化组织OMG所接受,成为了UML标准的一部分。 OCL语言虽然是一种形式化语言,但是它既具有形式化语言无二义性的特点,又消除了形式化语言的复杂性。 OCL的特点 OCL是一种精确的、无二义性的语言,易于使用和掌握。 OCL是一种规范说明性语言,所有有关实现的问题都不能用OCL来表达。 OCL是一种纯表达式语言,它是具有没有任何副作用的声明性语言。对OCL表达式的计算将返回一个值,计算不会改变系统的状态。 OCL是一种类型化语言,即OCL中的每个表达式都是具有类型的。 OCL不是一种程序设计语言,不能用OCL编写程序逻辑和控制流程。 11.2 标准OCL类型 OCL预定义的标准类型定义了一组基本类型和集合类型。 OCL的基本类型有“Boolean”、“Integer”、“Real”和“String”等,集合类型包括Collection(群集)以外,还有Set(集合)、Bag(袋)和Sequence(序列)等,这些标准类型是OCL表达式的组成部分。 11.2 标准OCL类型 11.2.1 基本类型 11.2.2 集合类型 11.2.3 OCL中的关键字 11.2.1 基本类型 OCL定义了很多基本类型,它的基本类型和程序设计语言中的数据类型的含义类似。 OCL还在基本类型上定义了一些操作,这些操作也与程序设计语言中的操作类似。 OCL的基本类型与操作见表11.1、11.2。 11.2.2 集合类型 除了基本类型以外,OCL还定义了一些较为高级的标准OCL类型称为集合类型。 集合是成组的对象或元素,可以用来作为表达式计算过程中的结果。 集合类型除了抽象数据类型Collection(群集)以外,还有Set(集合)、Bag(袋)和Sequence(序列)等。 11.2.4 集合类型 1. Collection (群集) 2. Set(集合) 3. Bag(袋) 4. Sequence(序列) 1. Collection Collection是OCL中所有集合的抽象的上级类型。 2. Set Set是不包括重复元素的对象组,Set中的元素是无序的。 3. Bag Bag也是对象组,Bag和Set不同之处在于Bag中可以包含重复元素。 4. Sequence Sequence和Bag相似,也可以包含重复元素,不过Sequence中的元素是有序的。 11.2.3 OCL中的关键字 与程序设计语言一样,OCL也定义了一些关键字。 OCL中的关键字见表11.4(P117)。 11.3 OCL表达式 11.3.1 OCL表达式的语法 11.3.2 操作符的优先级 OCL表达式的特点 OCL表达式可以附加在模型元素上。 OCL表达式可以附加在操作上。 OCL表达式可以指定附加在模型元素上的监护条件。 OCL表达式的计算原则是从左到右 OCL表达式既可以使用基本类型又可以使用集合类型。 11.3.1 OCL表达式的语法 OCL表达式的语法用扩展的巴斯科范式(EBNF)定义,在EBNF中: “|”表示选择 “?”表示可选项 “*”表示零次或多次 “+”表示一次或多次 11.3.2 操作符的优先级 OCL中的操作符有优先级顺序。 操作符的优先级从高到低见表11.3(P116)。 改变操作符的优先顺序可以使用括号。 11.4 用OCL表达对象性质约束 所谓对象性质,就是指一个对象的属性、操作等对象有关的特性,在建模中具体是指定义的模型元素的特性。 OCL表达式可以表达对模型元素性质的约束,常见的使用情况有三种:不变量、前置条件与后置条件和let表达式。 11.4 用OCL表达对象性质约束 11.4.1 不变量 11.4.2 前置条件和
您可能关注的文档
- 第三章动量定理动量守恒定律(习题).pdf
- 第三章几种重要随机过程.ppt
- 第三章相互作用单元综合测试1学生版.doc
- 第三章基本概念和方程.ppt
- 第三章离散傅里叶变换1.pdf
- 第三章集合代数.ppt
- 第三节隐函数的导数与取对数求导法.ppt
- 第九章第八节n次独立重复试验与二项分布.doc
- 第九章曲线积分与曲面积分6.ppt
- 第三课时几何代数综合题.pdf
- 新高考生物二轮复习讲练测第6讲 遗传的分子基础(检测) (原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第3讲 酶和ATP(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第9讲 神经调节与体液调节(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第8讲 生物的变异、育种与进化(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(检测)(原卷版).docx
文档评论(0)