当我们嘲笑UML的时候,我们应该嘲笑什么

霏昀 评论 统一软件开发过程 3 2011-08-01 10:40:41
兔子等着瞧
兔子等着瞧 2011-08-01 10:50:51

为什么不存在从模型出发的编程语言?

是不是因为语言本身就是无法完全模化的?

问题出在语言还是模型?

膘
(人有节操我有膘) 2011-08-01 11:21:39

  - 比如,以为UML只包含类图;以为类图是银弹;以为使用UML就是画一张事无巨细的类图。其实UP中包含构造系统类图的完整流程方法,这包括:首先抽象现实世界的概念关系构造领域模型类图。而后以用例为中介精化领域类图,从用例中抽取包含新辨识概念关系的分析类图。而分析类图又会在后面的过程中被精化为设计类图,直到被用来指导具体实现。
  
  - 比如,因为各种误用,以为软件开发的复杂性是UML造成的,以为摆脱UML就摆脱了软件开发的复杂性。实际上,软件开发天然复杂。摆脱UML不意味着人们可以用编程语言直接描述(具备一定复杂度的)最终系统。相反人们还是会以“土法炼钢”的方式构造自己的中介物。
  
  此处我也无意为UP布道。不过我想说当我们像上面那样使用UML并造成混乱的时候,我们不应该嘲笑UML,UML应该嘲笑我们,因为我们才是混乱的根源。
  
  当我们嘲笑UML的时候,我们到底应该嘲笑什么?
  
  UML或曰UP的最大问题在于:它们认为模型是解决一切问题的银弹。

============
这部分说的很好。

iano
iano (244,187,183|232,159,155) 2011-08-01 11:46:33

不要说UML,撇开自然语言不谈,迄今的人造逻辑/符号系统对现实或知识的抽象都是失败的吧

学校导师对UML教条式的追求让我对这货更生反感

黄小毛
黄小毛 (假如生活欺骗了你) 2011-08-01 13:12:33

上周五谁跟你扯UML了?

霏昀
霏昀 (忽然想通了) 2011-08-01 13:13:37

@兔子等着瞧

语言都是从模型出发的,但这是计算模型(图灵机),而不是现实世界的模型。所以,纯从模型角度去理解这个问题,那就是需要从现实模型到计算模型的转换。

现在人类还没有发明一种有效的方法可以把一个充满细节的现实模型转换到一个充满细节的计算模型。所以只能用一个粗略的模型做中介。但这种从细节到粗略再到细节的过程,造成了很大的混乱。

至于说为什么两个模型之间不能直接转换,这超出了我能解说的范围。事实上如果能精确地言说这一不能,那也是巨大的进步了

霏昀
霏昀 (忽然想通了) 2011-08-01 13:19:53

@iano

要定义什么是抽象。如果意思是说对现实和知识的表达,我觉得编程语言这个系统虽然又巨大的门槛,但是极为成功——毕竟看看我们所收获的。

我写这篇的意思,其实是想说很多人对UML还没有理解,就反感了。这里面当然有多方面的原因,但整体谈不上一种正确的态度。特别对于软件从业人员来说,统一过程虽然有种种问题,但是还是毕竟是那个时代智慧的结晶,在今天看依然有很大的价值。

霏昀
霏昀 (忽然想通了) 2011-08-01 13:20:28

@黄小毛 你呀。

兔子等着瞧
兔子等着瞧 2011-08-01 15:29:17

我的意思就是为什么没有基于现实世界模型工作的语言?或者说计算过程?

兔子等着瞧
兔子等着瞧 2011-08-01 15:30:13

想了想原因和牛顿力学无法解释宇宙是一样的。信息不足,干扰太多。

霏昀
霏昀 (忽然想通了) 2011-08-01 15:48:00

@兔子等着瞧 差不多就是这个意思。

smallqiao
smallqiao 2011-08-02 20:22:44

知识人

DeepBlue
DeepBlue (很多事其实都是无关痛痒的...) 2012-08-30 15:07:45

那么 使用UML工具的转化功能 得到JAVA等语言的代码 是否具有广泛的实用价值呢?
个人觉得UML做做草图就足够了 太详细不如直接开始编程。

霏昀
霏昀 (忽然想通了) 2012-08-30 16:04:24

没有任何实用价值

kidmirror
kidmirror (万物皆虚,万事皆允) 2012-12-21 15:03:57

test

黄小毛
黄小毛 (假如生活欺骗了你) 2012-12-21 15:07:38

test

霏昀
霏昀 (忽然想通了) 2012-12-21 15:16:12

什么情况……

菜菜
菜菜 (3 岁,30 岁) 2013-02-01 22:43:40

看到了,看迟了!