臭鸡蛋什么的等下再扔,UML是个很大的主题,轮不到我来做什么总结,只是谈谈我的观点
软件工程领域在1995年至1997年取得了前所未有的进展,其成果超过软件工程领域过去15年来的成就总和。其中最重要的、具有划时代重大意义的成果之一就是统一建模语言(UML:Unified Modeling Language)的出现。(书上说的)
它对软件工业产生和将要产生什么样的影响呢?
- 规范化了软件设计规则
我始终认为,软件工业是与传统工业具有共同特征的工业,注意:仅仅是工业而已,并不是像一些人叫嚣的“软件设计是科学”、“软件设计是艺术”。软件——就是设计来满足某种特定需要的工业产品,从这个角度来看,软件与录音机、水杯子并没有什么区别。
那究竟是什么让软件工业、软件工程如此之难又如此具有魅力呢?关键是软件设计的创造性和复杂性。我们仍然热衷于软件工程和软件设计的探索,很大程度上是因为它的复杂性和不确定性。换句话说,由于软件工业发展时间短、本身的逻辑体系比较复杂,以致于到目前为止,还没有任何人或者任何技术能够完整的归纳软件设计的体系。举个例子,大家有没有想过在化工领域,几十年以前,人们对分子结构、分子式表达都没有概念时,化学工业是个什么样子呢?不确定、依靠大量实验总结规律、复杂,难以解释的现象一定不比现在的软件工业问题少。
所以说,UML是软件工业的一项革命性的探索和尝试,它的设计理念并不新鲜,无非就是分子式之于化工、机械制图于机械设计制造。它给软件工业带来的,是一门共同语言,形成基本的可相互理解的语言平台。 - 使得团队间沟通更加顺畅
软件团队最主要的工作和问题是什么?相信不论是老教授、软件个体户还是上百人的大开发团队都有一个共识——交流。然而在过往的经历中,我们付出了太多的沟通代价,许多简单的问题,却要花费大量的精力来沟通以达成一致。
UML的出现,使得很多复杂设计可以用快速的图示方法表现出来,形成可以“观赏”的设计图稿。要知道,人对于具象影像的理解和记忆能力,要远远大于抽象的文字符号和语义。 - 加快了设计模式、最佳实践的推广和普及
软件开发,代码重用是基本,也是每个程序员都必须掌握的技能,那软件设计呢?概念重用,最大限度的重用现有设计概念,也会大大简化和加快设计的进度。Design Pattern大家都听说过了吧,大量的设计模式和最佳实践可以被反复重用,极大的提高设计的质量和效率。
如果没有UML,
首先,Pattern是什么,恐怕就会难到一大片设计员了。记得第一次看Design Pattern的时候,一个字——晕,很多概念非常难以理解(天资鲁顿,又没文化),UML表现的Pattern,相对就简单多了,也更容易为软件设计人员所接受了。
其次,任何时候,设计师只要想利用原有模式或者创造新的模式,只需要简单的勾划UML草图,这较之伪代码要高效的多了。其他参与人员也非常容易利用UML设计图纸,理解设计师的概念。
另外,XP软件工程所倡导的Refactor(重构),需要对设计进行经常性的迭代式更新,UML的设计图纸会使得这类设计变更更加容易实现。 - 提高了软件的设计质量
有了这样的统一设计工具之后,才能够真正谈得上设计软件,否则,恐怕只能叫做“编”软件,编到哪里就算哪里,谁也不知道软件最终是个啥样。
结合XP工程的Test Driven(测试驱动)模式,在软件设计阶段就结合需求,设计软件的测试用例代码。这是对测试的深刻理解,是降低测试代价最佳方案,当然,也是最终软件产品的强有力的保障。