软工国标简介 |工具和方法: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的所有子类型。

软工国标简介 |【工具和方法】(7):UML对象约束语言

图1  OCL类型的抽象句法内核元模型


图2 给出了OCL抽象句法元模型层次概览。

软工国标简介 |【工具和方法】(7):UML对象约束语言 图2 表达式的抽象句法元模型概览

 

OCL的具体语法使得建模者能够以标准化方式编写OCL表达式。具体语法的描述采用全属性语法形式,属性语法中的每一产生式,都可具有与其附接的合成属性。产生式规则左侧元素的合成属性值,总由该产生式规则右侧元素的属性衍生。产生式也可具有与其附接的继承属性。产生式规则右侧元素的继承的属性值,总由该产生式左侧元素的属性衍生。

 

OCL描述语义采用UML包的形式,包含UML类图、类、关联和属性。本标准定义了各种包之间的相互关系,以及与抽象句法中包的相互关系,如图3所示。

软工国标简介 |【工具和方法】(7):UML对象约束语言

图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对象约束语言的主要内容,如果未能解决你的问题,请参考以下文章

软工国标简介 |工具和方法:UML图交换

汽车国标代码:国IV是指国标4还是国标5?

“外行”带你看国标38900-2020

国标视频平台搭建配置说明

国标地址采集

中文字库简介,GB2312字库用法