UML培训感言

深秋的季节,天气的变冷让有些人措手不及,犹如软件系统即将开发完成时,客户说要增加需求。哪怕就是一个小小的需求也会考验我们的心理承受能力,轻者两眼发直,重者茶饭不思,睡不好觉,甚至让你的更年期提前。有句话:这世界唯一不变的就是变化。不要去怕变化,因为这是世界的本质,只是我们还没有掌握一种应对变化的武器。虽然没有银弹,但至少可以防止更年期的提前到来。

虽然我很早就知道UML这个东西,但完整的应用于项目却没有,最多叙述一些需求和画一幅静态对象模型,就开始实现,也许到最后连自己都看不懂当初的类图了,因为在编码的过程中已经对它进行了很多的改变,早已把类图等等忘得一干二净了。所以每每在开发的时候,总是觉得少了什么东西,类图的关系怎么来的,功能怎么分配的,这些都凭着经验和感觉在做,没有一套有效的机制来捕获。这就是一直让我感到惴惴不安的原因。

为什么系统会经常出错,不稳定,不能很好的应付需求的变化,甚至满足不了客户的需求? 问题出在哪里? 是程序员没有尽职尽责?还是客户有什么问题? 也许都有,但根本的问题是没有发现需求的复杂性,从心里上认为需求已经很清楚了,因为客户已经都这样说了,真的是这样吗? 没有人去再深究,就马上劈哩啪啦开始写代码实现了。为什么不好好的分析设计系统呢?原因也许很多,但首先要问问自己的是:“我真正掌握了某种有效的分析设计方法吗”?“有啊,我是用面向对象语言开发的,有N层,早就实现了面向对象了”,有些人心里暗暗想。

不可否认,技术很重要,每个程序员都应该不断的提高自己的技术能力,尤其是分析设计技术。 只是不要仅仅停留在某个技术点上,还要学会从系统的整体角度看问题。现在的开发工具虽然都支持面向对象技术,认为这样开发出来系统就是达到了面向对象的目标,但是很多程序员只是用面向对象语言来编写面向过程的程序,思维仍没有面向对象化。其实面向对象分析与实现的平台无关,现实的需求都是一直就是以对象存在的。只是我们一直用开发者的视角来分析现实中的对象,这样就不能深入发现很多客户的实际需求,与用户所描述的需求脱节,做出的系统模型僵硬,不能很好的适应外部需求的变化。

面向对象与面向过程的区别又是什么呢? 是类与模块的区别, 还是方法与函数的不同,是继承与非继承, 还是多态与非多态? 这些都只是概念上的,从开发语言的实现上来区别的,通过支持面向对象的语言只是可以更能体现他的特性,但一样可以用过程语言实现面向对象技术。不管用什么开发工具,面向对象分析仍然可以应用在实际项目中。

通过学习UML 可以引导你从用户的角度来分析和解决问题,避免了一开始就陷入系统的视角来看问题。并不是说掌握了UML就可以一定使项目成功,但至少通过这种技术可以还原需求复杂多变的本质,开发出来的软件更贴近用户的需求,更符合用户的目标。学习UML不仅是学那些图形语法,还要读懂这些图形背后的玄机。我想掌握这种分析问题和解决问题的思维,才是UML所体现的精髓。

转载于:https://www.cnblogs.com/wildman/archive/2009/06/06/1497694.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值