chapter17对象约束语言

chapter17对象约束语言

ID:40839090

大小:208.00 KB

页数:27页

时间:2019-08-08

chapter17对象约束语言_第1页
chapter17对象约束语言_第2页
chapter17对象约束语言_第3页
chapter17对象约束语言_第4页
chapter17对象约束语言_第5页
资源描述:

《chapter17对象约束语言》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第17章对象约束语言17.1对象约束语言概述17.2标准OCL类型17.3OCL表达式17.4用OCL表达对象性质约束17.1对象约束语言概述对象约束语言简称OCL(ObjectConstraintLanguage),它是一种用于施加在指定的模型元素上约束的语言。OCL表达式以附加在模型元素上的条件和限制来表现对该对象的约束,其中包括附加在模型元素上的不变量或约束的表达式、附加在操作和方法上的前置条件和后置条件等。OCL的产生OCL的产生是为了解决约束表达的问题。OCL最初由IBM公司设计成功。OCL已经为标准化组织OMG所接受,成为

2、了UML标准的一部分。OCL语言虽然是一种形式化语言,但是它既具有形式化语言无二义性的特点,又消除了形式化语言的复杂性。OCL的特点OCL是一种精确的、无二义性的语言,易于使用和掌握。OCL是一种规范说明性语言,所有有关实现的问题都不能用OCL来表达。OCL是一种纯表达式语言,它是具有没有任何副作用的声明性语言。对OCL表达式的计算将返回一个值,计算不会改变系统的状态。OCL是一种类型化语言,即OCL中的每个表达式都是具有类型的。OCL不是一种程序设计语言,不能用OCL编写程序逻辑和控制流程。17.2标准OCL类型OCL预定义的标准类

3、型定义了一组基本类型和集合类型。OCL的基本类型有“Boolean”、“Integer”、“Real”和“String”等,集合类型包括“Collection”、“Set”、“Bag”和“Sequence”等,这些标准类型是OCL表达式的组成部分。17.2标准OCL类型OCL标准类型的层次结构17.2标准OCL类型17.2.1OclType类型17.2.2OclAny类型17.2.3基本类型17.2.4集合类型17.2.5OCL中的关键字17.2.1OclType类型OclType类型是OCL预定义的和在模型中定义的类型,OclTyp

4、e允许访问模型的元级别。OclType的操作见表17-1。7.2.2OclAny类型OclType类型是一个模型里所有类型的上级类型。模型里所有的类都继承由OclAny定义的特性。OclAny的操作见表17-2。17.2.3基本类型OCL定义了很多基本类型,它的基本类型和程序设计语言中的数据类型的含义类似。OCL还在基本类型上定义了一些操作,这些操作也与程序设计语言中的操作类似。OCL的基本类型与操作见表17-3。17.2.4集合类型除了基本类型以外,OCL还定义了一些较为高级的标准OCL类型称为集合类型。集合是成组的对象或元素,可以

5、用来作为表达式计算过程中的结果。集合类型除了抽象数据类型Collection以外,还有Set(集)、Bag(袋)和序列(Sequence)等。17.2.4集合类型1.Collection2.Set3.Bag4.Sequence1.CollectionCollection是OCL中所有集合的抽象的上级类型。定义在Collection上的操作见表17-5。2.SetSet是不包括重复元素的对象组,Set中的元素是无序的。定义在Set上的操作见表17-6。3.BagBag也是对象组,Bag和Set不同之处在于Bag中可以包含重复元素。定义在

6、Bag上的操作见表17-7。4.SequenceSequence和Bag相似,也可以包含重复元素,不过Sequence中的元素是有序的。定义在Sequence上的操作见表17-8。17.2.5OCL中的关键字与程序设计语言一样,OCL也定义了一些关键字。OCL中的关键字见表17-9。17.3OCL表达式17.3.1OCL表达式的语法17.3.2操作符的优先级OCL表达式的特点OCL表达式可以附加在模型元素上。OCL表达式可以附加在操作上。OCL表达式可以指定附加在模型元素上的监护条件。OCL表达式的计算原则是从左到右OCL表达式既可以

7、使用基本类型又可以使用集合类型。17.3.1OCL表达式的语法OCL表达式的语法用扩展的巴斯科范式(EBNF)定义,在EBNF中:“

8、”表示选择“?”表示可选项“*”表示零次或多次“+”表示一次或多次17.3.1OCL表达式的语法OCL基本表达式的语法用EBNF定义如下:PrimaryExpression:=literalCollection

9、literal

10、pathNametimeExpression?FeatureCallparameters?

11、“(“expression”)”

12、ifExpressionLiteral:=

13、ng>

14、

15、“#”timeExpression:=”@”featrueCallParameters:=”(”(declarator)?(actualParameterList)?”)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。