大自然从不建模!试评“模型驱动开发”方法的不靠谱
By HW-WWS
文中提出“大自然从不建模”,并非有意否定人类的智慧,否定分析建模的可行性与必要性,而是希望人们能够从大自然的演化史中获得启发,唤起对建模的神话和泛化的警惕,在复杂系统面前有所敬畏,脚踏实地,解决好眼前的问题。只有这样,我们的所为才会成为模型,而不是墓碑。
说明:本文一方面为应邀之作,另一方面也是近期讨论的结晶和延伸。本文对各位专家观点做了未必尽妥的引述,更多的则是我个人的思考和观点,如其中有任何偏颇、谬误,皆为本人能力不足所致,欢迎批评,欢迎讨论。
方法层出不穷,喜报寥若晨星
“罗密欧与朱丽叶”中有一句著名的台词:“玫瑰即使换一个名字,依然芬芳如旧。”
建模是个好东西,有必要,很有用,有着如同“罗密欧”一样的魅力,每隔几年,就会以不同的面目冒出来若干以MBx或MDx冠名的神药——基于模型的系统工程(MBSE)...模型驱动开发(MDD)...基于模型的工程(MBE)...模型驱动的工程(MDE)…以模型为中心的工程(MCE)...数字线程(Digital Twin)...数字主线(Digital Thread)……这些方法都号称可以摆脱以文档为中心的开发模式,或达成端到端的跨专业协同,甚至提高生产率1000%(某些报告中声称),等等,可以说,每个概念都芬芳如旧,但一吻之下,尝到总不是甜美。
而且,这一堆MBx,MDx都有啥区别?不光公司内没几个人能说清楚,过去二十年里,业界也一直纠缠不清。几乎每篇国际会议文稿中都要去解释“什么是MBSE”、“什么是MDD”。INCOSE 2016国际大会上,超过25%的时间都花在阐述MBSE的概念上!
这说明了什么?
这里再提供几个事实:
- OMG上的 Model-Driven Architecture文本是 2001年的版本
- MBSE、MDD、PLE方面的国际会议,如MODELS,MODELSWARD,正逐年趋冷,其中,MODELS 2018的主会专题几乎找不到,2019含合作会议在内不过三天,MODELSWARD议题少到连日程表都用不着了!
- Google上关于MDD的网页较陈旧,MBSE的论文数一直不多,近年稍有上升
- QCon上最新MDD视频是2014年的
……
这些又说明了什么?
图1 2004年以来Model Driven Development相关论文发表趋势
图2 2004年以来Model-based System Engineering相关论文发表趋势
因此,出于专业良知,基于技术趋势、华为实践、经验和软件工程理论的综合思辨,我和很多同事都不看好这类方法。
或许在特定产业或产品——如航空航天、控制系统、汽车等——上,以及性能建模与仿真、安全威胁建模等具体活动中,某种MDD、MDE、MBSE或MBE方法能够发挥一定的作用,但在其它大规模产品开发中,至今未有见效者。
四个主要挑战
综合业界相关报告,MDD、MBSE等的推行通常会面临如下挑战:
1) 前期投资,尤其是工具和培训投入大,到头来,还必须靠人来想清楚问题和动手解决问题。
2) 缺乏语言,迄今为止,依然没有一种合适的建模语言,UML 2.0描述能力弱,使用人数越来越少(多位业界专家估计,全球使用UML的人数已少于10%);sysML有所改进,但一方面更接近软件工程师的使用习惯,另一方面,对于DFx需求(架构需求的主要部分)的描述能力依然薄弱。
图3 UML vs sysML
3) 技术门槛高,能很好地理解和应用模型、模型语言(UML、sysML、DSL等)的工程师并不多。这并不是说企业加强培训就可以提高工程师的相关能力。《The Pragmatic Programmers》一书中指出:“研究似乎表明,大多数人的大多数技能,在他们生命的大多数时间里,从没有高于第二阶段高级新手,‘执行他们需要做的任务并根据需求学习新任务,但是从来没有对任务环境获得更广泛的、概念上的理解’”。可以想象,你是不可能指望这样的“高级新手”能拥有很好的抽象建模能力的。
4) 文化障碍,工程师总是抗拒模型的使用,管理层往往也很犹豫。





































苏公安网备 32011402010933号