作者tinlans ( )
看板Programming
标题Re: UML正面的看得多了, 看点反面的吧
时间Wed Jun 4 08:02:57 2008
※ 引述《Lordaeron (Terry)》之铭言:
: 请针对原文来回应, 我只是将别人的简介列出.
: 针对简介来回应, 实在是有点会摸不着边.
其实那样回只是预防标题杀人,
毕竟会真的进去认真看原文的中文语系 user 并不多,
所以实际上我是把简介当成另一篇来回没错,
因为既然原文是以简介形式被翻译和重新散布的,
所以比较理想的方式还是针对中文标题回应为主。
基本上原作者对 UML 有一定程度的误解,
我要表达的东西也很简单,
就像 programming language 是一种工具,
你要写出好程式不可能不学些资料结构跟演算法一样,
UML 它也是一种辅助物件导向软体开发的工具,
但是你还是必须搭配一套物件导向方法论才行;
此外,
原作者对 UML 的定位实在不是很正确,
也过度狭义的解释 UML 被设计出来的意图,
我不晓得为什麽他对 generate code 这项功能特别执着;
原作者对相关的方法论认知显然也不足,
譬如:
9. Lack of model clarity
Pictures are interpretable. I heard this kind of complaints from programmers
trying to understand the design of a system from UML diagrams: you need to
read the code to understand what the diagrams mean.
会有这种现象一般是人为疏失,
有 ambiguous 现象发生时应该尽可能 attach 更多资讯到图上,
譬如 attach 一些 note 或 constraint,
甚至 attach 一张 activity diagram 或 object diagram,
也可以针对该专案所属的领域制作专属的 profile 来规范和扩充;
即使不另外制作 profile,
很多人应该知道某些社群会把 UML 分类为静态图跟动态图两大族系,
而描述不清楚的模型通常是只有描述静态图 (如 class diagram),
这样自然会有 ambiguities 发生,
而使用动态族系的图或使用 constraint 都能解决这方面的问题;
我想读过 GoF 那本 design pattern 的应该也知道,
有时候作者会用 sequence diagram 和 object diagram 补足 class diagram 的不足,
而且也会 attach 一些内含 pseudo code 的虚拟码。
UML 明明提供了一堆 adornment 的功能但是都没在用,
不能因为不会睡觉就怪床歪。
逐字逐句回原作也实在太花时间,
不过也欢迎板友从原文中提出真的觉得是缺点的片段来做讨论。
--
Ling-hua Tseng (
[email protected])
Department of Computer Science, National Tsing-Hua University
Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design
Researching: Software pipelining for VLIW architectures
Homepage:
https://it.muds.net/~uranus
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.230.218.232
1F:→ tinlans:另外 UML 可以用 collaboration 直接表示 61.230.218.232 06/04 08:13
2F:→ tinlans:一些 well-known 的 design patterns,简 61.230.218.232 06/04 08:13
3F:→ tinlans:洁又能快速消除 ambiguities。 61.230.218.232 06/04 08:14
4F:→ tinlans:另外主导设计模型的通常是 Architect,要 61.230.218.232 06/04 08:31
5F:→ tinlans:是做到 Architect 能力还这麽差,那阿猫阿 61.230.218.232 06/04 08:31
6F:→ tinlans:狗都能当 Architect 了。 61.230.218.232 06/04 08:31
7F:→ Lordaeron:anyway,我从来都只相信, 一切都是人的125.232.147.159 06/04 17:44
8F:→ Lordaeron:问题, 什麽L 不L 的, 就随便就好.125.232.147.159 06/04 17:44
9F:→ tinlans:有共通的语言可以沟通,至少能解决一些人 61.230.218.232 06/04 17:55
10F:→ tinlans:的问题,至於是什麽 L 倒不重要。 61.230.218.232 06/04 17:55
11F:→ Lordaeron:根据我的经验, 不管用什麽L 到後来都是125.232.147.159 06/04 18:43
12F:→ Lordaeron:要花大量时间和口水, 去跟一堆牛解释.125.232.147.159 06/04 18:43
13F:→ Lordaeron:更会有牛来跟你鲁哪明明不是哪意思, 是125.232.147.159 06/04 18:44
14F:→ Lordaeron:他的意思才对.125.232.147.159 06/04 18:44
15F:推 abcdefghi:至少UML提供了大量的图库,想画图描述架 140.113.23.107 06/04 21:07
16F:→ abcdefghi:构时,不用再花脑袋想要用圆形还是矩形. 140.113.23.107 06/04 21:08
17F:→ Lordaeron:是的, 你不用去想, 但还是要讲(解释)给125.232.147.159 06/05 00:03
18F:→ Lordaeron:客户听125.232.147.159 06/05 00:03
19F:→ tinlans:请问是工程师直接跟客户解释吗?一般公司 61.230.218.232 06/05 04:41
20F:→ tinlans:不应该这麽做才对,而且真要跟客户谈也顶 61.230.218.232 06/05 04:42
21F:→ tinlans:多是拿 use-case 讲 what 而不是 how。 61.230.218.232 06/05 04:42
22F:→ Lordaeron:因为你待的不是一般公司罗, 你的系统125.232.140.214 06/05 09:07
23F:→ Lordaeron:也不用转移, 所以有这种想法, 很正常.125.232.140.214 06/05 09:08
24F:推 huggie:他并没有特别执着,他只是说 management 140.129.160.62 06/05 11:03
25F:→ huggie:常会被 code gen 吸引 140.129.160.62 06/05 11:04
26F:推 abcdefghi:唉~~以前也很着迷codegen,Tau,Rhapsody, 140.113.23.107 06/05 11:26
27F:→ abcdefghi:visualSTATE,到现在单纯拿来作文件而已. 140.113.23.107 06/05 11:28
28F:→ tinlans:原作者一直提 code gen 然後怎样怎样的啊 61.230.218.232 06/05 13:48
29F:→ tinlans:感觉他完全把 UML 当成只能 gen code 用。 61.230.218.232 06/05 13:49