软工国标简介 |工具和方法:UML对象约束语言
Posted 全国信标委软件与系统工程分委会
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软工国标简介 |工具和方法:UML对象约束语言相关的知识,希望对你有一定的参考价值。
【工具和方法】(7):
统一建模语言(UML)
第3部分:对象约束语言(OCL)
UML图(例如类图)在一定程度上存在精细度较差的问题,无法覆盖与规范有关的所有部分,其中就缺少描述模型中关于对象的附加约束。过去,这些约束常常使用自然语言来描述,经常造成各种歧义。OCL的出现解决了这一问题,它在IBM的保险分部作为业务建模语言开发出来,是一种保留了易读易写特点的形式化语言,常用于:
●作为一种查询语言;
●在类模型中规定对类和类型的不变式;
●规定衍型(Stereotype)的类型不变式;
●描述对操作和方法的前置条件与后置条件;
●描述守卫(Guards);
●规定消息和动作的目标(集);
●规定对操作的约束;
●规定对属性的衍生规则;
●用于UML模型中的任一表达式。
GB/T 28174.3-2011 《统一建模语言(UML)第3部分:对象约束语言(OCL)》规定了用于对各类软件系统进行可视化、详述、构造和文档化的统一建模语言。
OCL是一种类型化语言,它的抽象语法移入了UML元模型的若干元类。OCL每一个表达式都有一类型,或以显示声明、或以静态方式衍生。图1的模型图给出了OCL类型,其中基本类型是UML的类目(Classifier),其中包括UML基础设施中Classifier的所有子类型。
图1 OCL类型的抽象句法内核元模型
图2 给出了OCL抽象句法元模型层次概览。
图2 表达式的抽象句法元模型概览
OCL的具体语法使得建模者能够以标准化方式编写OCL表达式。具体语法的描述采用全属性语法形式,属性语法中的每一产生式,都可具有与其附接的合成属性。产生式规则左侧元素的合成属性值,总由该产生式规则右侧元素的属性衍生。产生式也可具有与其附接的继承属性。产生式规则右侧元素的继承的属性值,总由该产生式左侧元素的属性衍生。
OCL描述语义采用UML包的形式,包含UML类图、类、关联和属性。本标准定义了各种包之间的相互关系,以及与抽象句法中包的相互关系,如图3所示。
图3 基于UML的语义的各种包个概述
其中:
域(Domain)包描述值与求值,分为Value包和Evaluations包。
作为域映射(AS-Domain-Mapping)包描述值和求值与抽象句法中的元素的关联,分为Type-value包和Expression-Evaluation包。
抽象语法、具体语法和采用UML描述的语义定义的是OCL的结构、句法和语义,OCL的标准库定义了预定义的类型和操作库。类型分为基本类型和集合类型:其中基本类型包含“Boolean”、“Integer”、“Real”和“String”等;集合类型包括“Collection”、“Set”、“Bag”和“Sequence”等。除了类型定义之外,OCL标准库还定义了若干模板表达式,并将这些操作映射到IteratorExp上。
请点击“阅读原文”浏览标准全文。
软件工程国标简介系列文章将对各个领域的标准进行详细的介绍。
下一篇将介绍GB/T 28174 《统一建模语言(UML)》的第3部分。
以上是关于软工国标简介 |工具和方法:UML对象约束语言的主要内容,如果未能解决你的问题,请参考以下文章