UML好文章系列四

zouwenyan 2003-04-08 10:57:02
1.一段废话
  写了前面三节,我发现确实需要继续写下去,把自己的观点拿来和别人分享自己也是快乐的吗?看了网上我的文章被访问的情况,自己在私下窃喜,侯捷先生是个业界的知识的传播者,他有个观点我十分地赞同:发表是最好的记忆!
  我很久以前就想写这段废话了,但是不好意识,原因很简单,知识层次不够。但最近有些朋友发来消息问我关于UML的具体问题,但我发现这样一个问题,知其然而不知所以然,我当初写UML释义的动机就是来解释关于所以然的问题。
  前三段很简短,告诉兄弟们UML的来历,也简单地谈了一下心态。但很多时候,我想说的不是UML本身,其实本身也没有什么。就是关于如何对待UML,这个问题如何来看呢?可能大家心里还疑惑?对待这个词当然包括'使用','学习','发展'和'参与'等所有的人类行为。
  但并不是所有的计算机界的人都需要了解UML的,但什么样的人需要了解呢?什么时候是最适当去了解UML的呢?好了,时间的概念,人的概念都已经知道了这是个因素,那我们先来谈谈这些因素,然后在谈这个因素带来的结果。
2.人的因素
  我收的信件中,有很多关于询问如何学习UML的,我的回复很简单,我告诉他们,UML很简单,而且也无须学习,它是一个标准,标准是不需要学习,你只要知道。但有些人又问了,那么不学,有怎么知道呢? 问的彻底!
  说明这个问题,我需要先解释一个词:协议。什么是协议,搞过通讯的人都知道,若需要使得通讯双方都能明白对方说什么,就需要规定一个标准,这个标准是大家都需要遵守的,并一直贯彻,不然,就不会明白对方说什么。这个标准就是一个协议。在说明明白一点,我们对方进行语言交流,我们需要采用同一种语言时,双方才能听懂,那么语言是什么?是协议。
  那么UML是什么?是一种软件在开发过程中,可以被各类人事理解的软件构架的描述。当然这个描述不是简单地描述,而是详尽地描述待开发的软件(开发完毕,基本上没有什么用处,当经验积累吧)。
  这个需要学习吗?我的学习是研究之意,而非是为之认识而进行辨认地记忆。
  你这个时候回答是:好象不需要。
  那么UML就一无是处了,不是的,既然它是标准,我们就必须贯彻它,如果你不贯彻它也可以,但你需要找一个更好的标准来贯彻(以之来取代UML,技术是发展的吗,这是早晚的事)。
  UML是个标准,我早就在这里描述过,这个东西已经不是新鲜的东西,所以没有大惊小怪的必要。既然有许多人希望学习它,那它自然有可学习的地方。
  接着讨论上面叙述的问题。
  什么人需要学习它?
  开发人员,项目经理,软件设计者,系统分析员等等,一切需要在软件项目和别人进行交流的所有人,都需要学习UML,但小组中的这些成员除外-客户或伪客户(公司领导或市场方面人员)。
  学习UML需要基础吗?
  不同类型的人需要不同基础,但有个基本要求就是你必须有关于软件工程开发的部分经验,若你没有,也可以去学,但理解起来很难。我给个基本的要求,就是在从事行业工作两年及以上,有一定的面向对象的编程基础(所有学习Smalltake 、Java 或 C++(还不是纯种OO语言)的人有些优势)。但UML的标准是否适合其他的例如采用汇编语言开发单片机程序的项目,我很怀疑(我一般很少怀疑一件事)。
  如果你想成为系统分析员,或者系统的构建师,你就需要学习UML的语言,当然这远远是不够的,更多的是关于软件工程管理的基本知识。
  如果你已经有了OO的编程经验,已经有了部分的软件工程管理知识,但你现在还不知道UML的具体应用,没关系,我告诉你,你现在完全可以拿个凳子和一本UML的参考手册就可以到电脑面前去尝试(仅仅是尝试)着建模了。
3.管理因素
  有些朋友给我来信,关于讲课的事,我显得很茫然,并不是口才不行,也不是害羞,而是对一个UML的本体没有很好的把握,其实我写UML释义其实就是来证明,UML是不需要学习的,但什么是需要学习的呢?那就是软件工程的具体实施的各个过程地描述和步骤,这些过程需要大量规范化的东西,这些东西需要学习(研究、分析、理解和总结)。
  (若是软件工程实施的课,我喜欢听,现在还有资格上讲台。这令想起在电力系统时,我开培训班的情景,下面坐着听课所有人用一种异样眼光看我,当时我太小了!)
  科学技术上有天才,但管理上没有,既然我们都不是天才,那么就坐下来,认真地总结经验,听取前辈的教导,少对世界保有敌视,少走弯路。
  老毛说了,多快好省地建设社会主义吗,呵呵!
  管理上需要学什么呢?
  软件工程的方法,这些方法很重要,而且也难理解,有些时候,你会站在这个观点的相反方向,这个时候也没有关系,你继续想,直到把它想通(它是不会错的,至少目前的最高水平如此,你也可以来改变世界吗?)。
  从需求设计、系统分析、系统构建、代码编写、单元测试、集成测试等等,这些应该是UML之前就应该落实的基础,如果没有落实一个管理化的开发环境,你实施UML干什么?用它来提高开发进度?不可能!用它来规范开发流程?也不可能!那么用它能来干什么?浪费时间!
  这就是目前国内UML实施环境的现状,也是很多人知道UML很有用,但它根本就不知道任何用,所以学习起来也茫然。一个企业如果没有软件开发管理的环境是无法实施UML的具体运作的,这个时候倒有必要静下心来首先搞好企业运转的管理,等到开发过程有记录了,那么这个时候就有实施UML 的成熟的时机和土壤,这个并不要需要为了实施而实施,不然我们不就是为了标准而标准的吗?大家现在对ISO的质量标准有什么认识。(中国的软件企业,现在还没有染上CMM 认证的综合症,不然又是陷入劳民伤财,没有好处的泥潭。)
  UML是个语言,也是个标准,它用于沟通的,不是用来为企业贴金的。但从深层次的管理角度上,它会为企业带来更大的利益。但对于个人来说,固化人的劳动范围,对于创造性的程序员来说,并不是一件好事。 <待续>
...全文
17 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
icegirl914 2003-04-14
  • 打赏
  • 举报
回复
似懂非懂,不好意思,因为我刚在学这方面的东西。
wltsui 2003-04-08
  • 打赏
  • 举报
回复
good!

1,265

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 管理版
社区管理员
  • 研发管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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