知识卡片

UML语义形式化的三种思路

普通读书笔记卡

内容

UML的语法结构本身采用形式化规格说明、是精确的,但其语义部分用自然语言描述、缺乏精确性,导致无法对UML模型进行严格的分析和论证——这正是[[UML用于架构建模的优点与局限]]中”通用但不精确”局限的根源。研究人员为解决这一问题探索了三种思路:一是对UML核心语法进行形式化,目标是运用数学知识把UML本身发展成一种精确的建模语言,这种方法在元模型层次进行,能保证在此基础上建立的UML模型层有可靠的数学基础,但实现难度大,且核心语法形式化处理后容易与现有各种UML图形不匹配。二是约束语言方法,通过设置更好的约束来消除语义歧义性,例如扩展OCL以加强其约束能力,但这种方法经常需要获取难以拿到的元模型数据。三是形式化转换方法,利用形式化语言把UML对象模型转换为具有一致性管理过程和强大工具支持的形式化注释,即把UML相关图形转换成Z语言、B语言、XYZ/E、Petri网等已有的形式化语言——由于前两种思路难度极大或数据难以获得,这条路径成为目前研究最多、成果最丰富的方向。以Z语言为例,UML类图、用例图、状态图这类结构相对规整的图,转换后能得到精确的模式(schema)描述;但书中也提醒:用形式化描述方法处理其他更松散的UML图(如某些自由格式的注释性图形)反而会使描述过程更复杂、降低效率——形式化转换不是”越多越好”,而要看被转换的图本身结构化程度够不够高。

参考来源

- 位置:《软件架构理论与实践》第3章《软件架构模型》"3.5.4 第4层:形式化模型"节(源文件:_epub-src/OEBPS/text00027.html) - 结论依据:原文说明"UML的语法结构采用形式化规格说明,是精确的;但是其语义部分采用自然语言描述,缺乏精确性……目前,对UML语义的形式化研究主要有以下三种思路",并逐一说明三种思路的做法与代价("由于前两种方法难度极大或要获得难以得到的元模型数据……现在研究最多的是第3种方法"),直接支撑本卡片结论。 - 原始内容:目前,对UML语义的形式化研究主要有以下三种思路:1)对UML核心语法进行形式化,使得UML成为精确的语言……2)约束语言方法……3)形式化转换方法:利用形式化语言在不丢失或者少丢失信息的前提下,把对象模型转换为具有一致性管理过程和强有力的工具支持的形式注释。