“ UML对MDD来说是最糟糕的事情。”为什么?


17

威廉·库克William Cook)在一条推文中写道:

UML对MDD来说是最糟糕的事情。幸运的是,现在许多人意识到了这一点……

我想知道该说法背后的原因(显然,我不是在指他的个人观点)。

我注意到那里的许多人不太喜欢UML。同样值得一提的是,他在学术界,UML成为有效设计和建模的圣杯。


15
我想说MDD是有史以来最糟糕的事情。
Michael Borgwardt 2012年

Answers:


39

好吧,我是发布原始推文的学者。推文并不意味着学术文章。它们是广告,我认为它们也可能引起争议。这是我的后续推文:

1)创建UML来建模OO设计。这会影响您正在对系统代码进行建模,而不是对系统行为进行建模。UML处于错误级别。

2)UML中的7(或13)种图表格式可以涵盖所有内容的想法是疯狂的。GUI,Web线框,授权等如何?

3)UML鼓励了模型必须是图形化的想法。荒谬!文本和图形模型既有用又经常可以互换

4)UML既太大又复杂,同时又非常有限。刻板印象和配置文件对可用扩展无效。

请注意,我并不一定要说UML不好。我只是说这对我感兴趣的“模型驱动开发”目标无济于事。我不理解关于“圣杯”的评论。


10
+1,用于在prog.SE上查找和回答有关您自己的推文的问题!
沃伦·P

因此,在我看来,模型驱动的开发始终与拥有可视模型有关。如果不是UML,那又如何呢?(请注意,我从不喜欢MDD,但我讨厌UML。但我愿意尝试一下MDD-sans-UML。我应该尝试什么?
Warren P

1
@Warren P:您不喜欢MDD和UML吗?
dan_l 2012年

1
我删除了答案,因为显然我对您的意思有误。但是我坚持说,UML像任何语言一样,都是一种交流工具,而不是一种设计工具。您回答说:“许多编程语言的名称中都有“语言”一词,但这并不意味着它们仅用于通信,而不是用于执行。”-我认为您错过了执行就是与计算机进行通信这一点。您也不会将COBOL用作设计工具。
pdr 2012年

我认为“圣杯”评论是指被教导的频率。


3

我认为还有一种情况可以说MDD是UML发生的最糟糕的事情(为什么我们还要拥有我们拥有的UML2?),但是暂时忽略了这一点...

MDD =模型驱动<设计|开发>。这个想法是为了能够在适合问题域的抽象级别上开发解决方案-也就是说,这是尝试以最自然的语法来表达问题的解决方案,以表达那些解决方案。问题域本身的特征在于操作模型(即,可以由计算机执行的模型)。因此,MDD可能是一种非常有吸引力的方法,尽管它有两个主要要求:

  1. 一个人必须能够将该语言编译成适合计算机执行的形式(该模型必须是可操作的);和
  2. 必须为问题域创建一种建模语言。

我的理解是,UML2的工作旨在解决第1点,这可能是基于以下信念:UML的行业经验表明,对于某些较大的问题域子集,第2点已得到满足。不幸的是,这就是我认为William Cook所要达到的目标,UML对于所考虑的问题范围之内的任何地方都不满足第2点的要求。我并不是从个人经验谈起的,但是我认为将MDD与UML结合使用的行业经验有两个共同的结果:

  • 需要调整从UML生成的源代码,以解决UML设计和程序要求之间的微小差距(迫使开发人员使用生成的代码具有不同的可维护性标准,并减少UML工件对实现的适用性); 要么
  • UML包含很多细节,从而降低了其作为用于传达设计信息的语言的可用性。

    无论哪种情况,MDD的承诺都无法实现。UML可能被认为是MDD发生的最糟糕的事情,因为它引起了MDD工具开发人员的注意,即排除了可能实际起作用的模型(尽管存在较少的软件问题)。


  • -2

    只要它只是一种建模语言,UML就很棒。如果您尝试将MDD连接到UML以获取图形视图,则它是无用的。没有UML的MDD以及没有MDD的UML都会很棒。

    假设UML和MDD今天离婚是为了不再拥有更好的生活:-)


    在任何级别上都不是“伟大的”。灾难性的ADA编程语言(Booch)的用户创建了一些幼稚的图,并使用了几种更为严肃的类图方法来创建UML。UML立即变成了大型软件供应商的收入来源。这太可怕了,但是可以通过简单地添加新的图类型(早于UML)来解决,例如序列,数据流等。它没有任何可扩展性。没有数据库模式,没有层图,同时充满了空白和无用的图表。
    Rick O'Shea
    By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
    Licensed under cc by-sa 3.0 with attribution required.