- 7
- 0
- 约2.26千字
- 约 10页
- 2021-05-22 发布于北京
- 举报
面向对象分析与设计UML 第11章 对象约束语言 11.1 为什么需要OCL 11.2 OCL的特点 11.3 OCL的构成 11.3 OCL的构成 11.3 OCL的构成 11.3 OCL的构成 – 集合元素 11.3 OCL的构成 – 元组 11.4 OCL使用实例 11.5 OCL扩展讨论 * 为很好地表达所要建模的对象的一些相关细节,通常需要对模型中的元素增加一些约束。 OCL(object constraint language)是一个形式化语言,采用OCL描述不会产生二义性问题。 OCL不像其他形式化语言那样复杂,容易掌握和使用。 在UML1.1中,OCL正式被接受。 OCL不是程序设计语言,它是纯说明性的语言。 OCL必须遵循的一些原则: OCL必须是一种语言,可以用来表达一些额外的但又是必需的信息; OCL必须是精确的、无二义性的语言,同时又是很容易使用的语言; OCL必须是声明性(declaraive)语言,也就是说OCL是没有副作用的纯表达式语言。对OCL表达式的计算不会改变系统的状态。 OCL是类型化(typed)语言。 OCL可以表示一些用图形符号很难表示的细微意义。在UML中,OCL是说明类的不变量、前置条件、后置条件以及其他各种约束条件的标准语言。 基本类型 及 定义在其上的部分操作 String Real Integer Boolean 类型 ‘To be nor not to be …’ 3, 14, -2.1 1, -10, 10001, … True, False 值 toUpper(), concat() *,+,-,/,floor() *,+,-,/,abs() and, or, xor, not, implies, if-then-else 操作 OCL中操作符的优先级 , , =, = =, And, or, xor 是定义在布尔类型上的操作 Implies * 和 / “-”是二元的减法运算 + 和 - If – then – else – endif Not 和 - . 和 - @pre 操作符 “-”是负号运算 点和箭头 操作开始时刻的值 说明 OCL中的关键字 implies if endpackage endif oper not let inv then pre post package xor def context attr and In or else OCL中的注释以两个负号开头,如: -- This is a comment. Set: 不包含重复元素, 如 Set {1,2,5,88}, Set{‘apple’, ‘orange’, ‘strawberry’} Bag: 和Set 类似,但Bag中可以有重复的元素, 如 Bag{1,3,4,3,5} Sequence: 和Bag类似,但Sequence中的元素是有序的,如Sequence{1,3,45,2,3}, Sequence{‘ape’,’nut’} Collection: 是抽象数据类型,而Set、Bag、Sequence是Collection的3种具体子类型。 定义在Collection上的操作有: notEmpty, includes(object), union(set of objects), intersection(set of objects) 在OCL2.0版本中,增加了Tuple (元组)这种类型。 一个Tuple 可以把几个不同类型的值组合在一起。如: Tuple{name: String=‘John’, age: Integer=10} Tuple{a: Collection(Integer)=Set{1,3,4}, b: String=‘foo’, c: String=‘bar’} Tuple的各个组成部分之间的顺序并不重要,对于各部分的值,在不引起歧义的情况下可省略其类型说明: Tuple{name=‘John’, age=10} 或 Tuple {age=10, name=‘John’} UML模型中定义的类和接口自动成为OCL中的类型 OCL表达式可以附加在模型元素或模型元素的属性、操作等上面,以表示一个约束条件。如前置条件、后置条件、不变量等。 例1: context Person inv: Person.allInstances - forAll(p1,p2 | p1p2 implies p1.name p2.name) 例2: context Person inv: let income: Integer = self.job.salary - sum() in if isUnem
您可能关注的文档
最近下载
- 制造业信息化战略规划实施与优化-PDM.docx VIP
- 那智不二越机器人flexgui toolbox操作说明书.pdf VIP
- 智慧工厂-智慧工厂解决方案.docx VIP
- 高中化学解题方法归纳:和量法.doc VIP
- 译林牛津新版高中英语(必修1-3)单词表.pdf VIP
- 包装有限公司分切机安全风险分级清单.docx VIP
- 重庆市西南大学附属中学2025届高三下学期二诊模拟考试物理试卷 含解析.docx VIP
- 【高中英语】《星火英语同步词汇》抗遗忘速记手册.docx VIP
- 成都市锦江区2026届初三一诊(暨期末考试)数学试卷(含答案).docx
- 三坐标 培训教程.pptx VIP
原创力文档

文档评论(0)