模型或模式

不论是吵吵嚷嚷的软件工程、XP建模,还是死灰复燃的MDA、一心统一的UML,软件领域越来越多的新名词似乎展现着软件开发繁华的现状,或者是预示着软件开发光辉的未来。可是在实际的开发中,任何的理论都是力不从心。典型的例子,就是越到开发后期,越发现程序的现状偏离初始的设计。作为一种本身不可控的开发项目,我们没有什么很好的办法对它进行有效的控制和管理。当然我们可以用包括Together在内的一些很好的工具进行辅助,可是Together的作用也仅仅是对解决问题的辅助而非解决问题本身。

为什么我们会这么迷信软件工程可能会解决开发中的所有问题?因为我们已经相信了一点:一定有什么方法或者技术可以解决软件开发中存在的各种问题。而今,我们习惯于把这种希望甚至理想寄托在UML、MDA、软件工程……等等各种各样的理论上了。可是细想一想,UML的那些奇形怪状的图真的能比代码本身更有说服力么,至少我是宁愿观察、调试代码也不愿去看Rose里那些配色其丑没有丝毫美感的黄图的。顺序图、用例图、结构图,合在一起除了让人发晕之外说明不了什么问题。问题的关键在于,软件开发是要解决真实世界中许多流动场景的管理,UML本身根本不可能描述这个真实世界的流动场景。这是UML自身的缺陷。

MDA看上去很美,似乎可以解决很多问题,可是MDA也是基于UML而发展出来的。这种矛盾的结果也限制了MDA的发展。而且以变为本的世界上的问题并不是图上拉两根线就能解决得了的。代码我可以调试、可以测试,图呢? 而XP更是需要批判的继承了,众所周知,它的许多细节要求都是只能纸上谈兵的。

在形式化语言表现真实场景的问题没有得到根本解决的条件下,任何的模型、任何的模式都只能是小打小闹,无关大局。当然,不论是什么模型、什么模式,我们的初衷都是要脱离纯粹代码的层面,而希望可以从一个更高的角度、更全面的眼光审视、构建、搭造我们的软件。而不是始终停留在底层,只能继续没有休息的coding和应付没有止境的需求更改。可惜的是,在一段时间内,我们仍然得停留在底层。

你可能感兴趣的:(设计模式,软件测试,XP,领域模型,UML)