知识卡片

Medvidovic的UML架构建模三种途径

普通读书笔记卡

内容

面对[[UML用于架构建模的优点与局限]]中”通用但不精确”的困境,Medvidovic系统总结了用UML对架构建模的三种途径,三者本质上是在”改动UML的代价”和”获得架构专属表达能力”之间做不同程度的取舍。途径一:不改变UML用法,直接把UML符号当作架构描述语言使用——最简单,用户容易理解、可用标准UML工具编辑,但现有UML结构无法与连接件、架构风格等架构专属概念直接对应,这些对应关系必须由建模人员自己在脑子里维护,工具帮不上忙。途径二:利用UML自带的扩展机制(构造型/标记值/约束)来约束UML元模型,以满足架构建模需求——能显式表示架构约束,建出的模型仍可用标准UML工具操纵,UML用户也容易理解,但目前能对OCL约束进行检查的工具还不多,”约束写了但没人帮你验证”。途径三:直接对UML元模型进行扩充,增加架构专属的模型元素,让UML直接支持架构概念——这样UML就能具备各种ADL(架构描述语言)的优良特性,直接支持架构建模能力,但代价是扩展后的概念不再符合UML标准,因而与现有UML工具不兼容。三种途径呈现出一条清晰的递进关系:越往后走,架构表达能力越强,但离开”标准UML、工具通用”这个生态位就越远——这也是为什么实践中真正常见的做法往往是结合前两种途径的优点、同时保留对UML工具生态的兼容,而非直接采用最激进的第三种途径。

参考来源

- 位置:《软件架构理论与实践》第3章《软件架构模型》"3.2.2 基于UML的建模方法"节(源文件:_epub-src/OEBPS/text00024.html) - 结论依据:原文逐一说明Medvidovic总结的三种途径及各自代价("这种方法最简单……但现有的UML结构无法与架构的概念直接对应起来"、"这种方法能显式地表示软件架构的约束……然而,对OCL约束进行检查的工具还不是很多"、"该方法使UML中包含各种ADL所具有的优良特性……然而,扩展的概念不符合UML标准,因而与UML工具不兼容"),直接支撑本卡片对三种途径取舍关系的归纳。 - 原始内容:Medividovic比较系统地总结了用UML对架构进行建模的三种途径:1)不改变UML用法而是将UML看作一种软件架构描述语言并直接对架构建模……2)利用UML支持的扩展机制约束UML的元模型以满足软件架构建模的需求……3)对UML的元模型进行扩充,增加架构模型元素,使其直接支持软件架构的概念。