软件建模技术之比较

forbbsreg 2010-10-10 08:20:05
UML就是大忽悠

现在UML给人的感觉就是杂凑, 看什么好,就加什么. 比如,UML现在还所谓支持硬件设计SOC. 它把许多适用于专门领域的东西, 如电信, 硬件, 看到人家的好, 就拿过来, 凑到一起, 成为所谓UML.

结果是, UML整体膨大, 各部分之间没有什么关系.

再看UML本身,最严重的问题是,循环描述,它用UML本身的一小部分来描述其他UML。
UML里,最核心和最有用的概念其实非常简单,就是:关联,及关联派生的:聚合,和组合,在到关联的角色和重数。 然而,就是这个和核心概念,也非UML首创的。 “关联”的概念,在UML之前,已在面向对象数据库里出现,并且是面向对象数据库的核心概念。 如果说UML对这些概念有什么创新的话,也许就是UML提出了表示关联的带箭头和菱形的图形符号来表示关联。 一般学习并不教面向对象数据库课程,因此,很多人并不知道,UML里这几个核心概念,早就在面向对象数据库里出现了。

关于UML里的其他图来说, 序列图:电信里早就有MSC(message sequence chart),比UML序列图强大多。活动图:基本上就是程序流程图,没有什么创新。


UML的问题还不在于它是否创新,或者严谨, 关键问题是它不实用。UML追求统一性和普遍性,而普遍性往往带来实用性的削弱。

学了UML的人,都有一种感觉: 云里雾里, 不知道怎么用, 不知道用来做什么. 这就是杂凑的结果. UML基本上就是大公司玩概念, 忽悠人的东西.

实际上,实用的还是针对专业领域的建模语言. 比如,用在电信的SDL, 硬件设计的verilog, VHDL,数学建模的matLab,测控领域的LabView, 个个都比UML用得好. 这种针对专门领域,才能解决实际问题.

也许有人会说,UML就是软件系统本身的建模。这种看法未必对。因为,软件都是要解决实际的行业问题的。比如,SDL语言,也可用来为软件系统建模,在电信软件开发领域,SDL比UML好用。 其他如ERP,CRM,财务,银行等领域,随着软件开发的深入,有可能出现针对该领域的软件建模技术。 总之,UML企图用单一语言,涵盖所有领域,基本上很难,如果一定要这样做,它无非就是把各领域的东西凑一起,就会成为大杂烩,使得它不实用。


UML就是忽悠.   (个人看法)

下面是在专门领域用得很好的建模语言及实现该语言的软件:

数学建模: 软件:matLab
硬件建模: 语言:VHDL, Verilog HDL, system C; 软件: synopsys, cadence, mentor graphic等产品
测控建模型: 软件:LabView
电信软件及系统建模: 语言:SDL; 软件:TeleOffice, Telelogic Tau
网络建模及仿真: 软件: OPNET,OMNET++, TeleOffice
结构、流体、电场、磁场、声场建模及仿真: 软件:ansys
物流仿真: 软件:flexsim

等等

(一般来说,仿真都涉及到建模)
...全文
170 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
tashiwoweiyi 2010-10-10
  • 打赏
  • 举报
回复
UML就是大忽悠

588

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧