知识卡片

模型成熟度级别的六个层次

结构图卡

内容

模型成熟度级别(MML,Modeling Maturity Level)是衡量”模型效率与层次”的一套标尺,价值在于把”这个建模方法到底算先进还是落后”这个模糊判断,变成一个可以对号入座的六层阶梯,从而指导建模技术如何朝着”完备、灵活、精确、可扩展”这一共同目标演进。第0层没有标准,模型只存在于开发者头脑中;第1层是文本表达,用自然语言描述想法(对应[[软件架构建模五类方法的历史演进]]中的文本建模);第2层是文本和图结合,用自然语言辅以图形;第3层是模型和图,用建模语言描述的图来表达模型、自然语言只做辅助(UML建模正处于这一层);第4层是精确的模型,用一致连贯、没有歧义的文本/图精确描述模型,能直接映射到编程语言(形式化建模方法对应这一层);第5层是只有模型——这是一个尚未实现的设想,模型对系统的描述完备、一致、详细、精确到可以直接生成全部代码且无须任何改动即可运行。理解这个阶梯的关键是:它不是一条必须顺序攀爬的单行道,而是”各层次技术都在不断进步、共同发展”——从第0-3层,技术发展的核心是让模型更完备地反映架构设计决策,重心在”模型本身好不好”;从第4层开始,关注点转移到”模型到代码的转换过程精不精确”。书中同时给出了一个提醒:更高层次的方法虽然方法论上更先进,但实践中不一定更有效——一项47人参与的实验表明,UML主导的图形化方式和自然语言主导的文本化方式在架构设计决策交流上都不能被证明更优,也有调查显示业界常把非形式化图表、自然语言和形式化符号混合使用效果反而更好。

结构图

flowchart LR
    L0["第0层<br/>无标准<br/>模型在开发者头脑中"] --> L1["第1层<br/>文本表达<br/>自然语言描述"]
    L1 --> L2["第2层<br/>文本和图<br/>自然语言+图形"]
    L2 --> L3["第3层<br/>模型和图<br/>建模语言的图为主"]
    L3 --> L4["第4层<br/>精确的模型<br/>无歧义,可映射到代码"]
    L4 --> L5["第5层(设想)<br/>只有模型<br/>直接生成全部可运行代码"]

参考来源

- 位置:《软件架构理论与实践》第3章《软件架构模型》"3.5 软件架构建模方法的发展趋势分析"及"3.5.5 第5层:未来模型"节(源文件:_epub-src/OEBPS/text00027.html) - 结论依据:原文逐层列出MML六层的定义("第0层:没有标准,模型存在于开发者的头脑中……第5层:只有模型,此时的模型是对系统的完备、一致、详细和精确的描述"),并说明"软件架构建模技术并不是顺序地从一个层次发展到下一个层次,而是各个层次上的技术都在不断进步、共同发展",以及一项47人实验和一项11家工业系统调查的结论,直接支撑本卡片的结构图与末段提醒。 - 原始内容:MML有六层示意图,分别如下:第0层:没有标准,模型存在于开发者的头脑中。第1层:文本表达,用自然语言描述想法……第5层:只有模型,此时的模型是对系统的完备、一致、详细和精确的描述。它足以完成全部代码的生成工作,生成的代码无须任何改动即可运行。