查看文章 |
毋庸质疑的是,计算机的发展和人类的历史相比甚至和其他很多科技产品相比都是非常短的,从第一台计算机的研制成功到现在也没有百年的历史,但是计算机及其相关技术的发展却绝对可以说是最快的。抛开硬件的发展(硬件的发展基本上是按照摩尔定律来的,每18个月,机器的速度性能都要提高一倍),单从软件的发展来说,从体系结构来讲,我们经历了从主机结构到文件服务器结构,从客户服务器系统到基于Internet的服务器浏览器结构的体系结构的变化。从编码的角度来讲,我们经历了从最开始的机器代码到汇编代码,从高级程序语言到人工智能语言,从专用的程序设计语言到通用的程序设计语言。从开发工具来讲,我们经历了从分离的开发工具(有代码编辑器,中间代码生成器和连接器)到集成的开发系统,从最简单的单行命令式调试器到方便灵活的多功能的调试器。
但是,今天所有的软件厂商和软件开发人员依然会想起当年的黑人人权运动领袖马丁?路德?金曾经说过的一句名言我有一个梦想。是的,所有的开发人员依然怀着梦想,希望能够有一个万能的系统开发的框架和方法,只要我们沿着这个框架,我们将能开发出适合所有领域的应用系统,于是,我们在念书的时候把这个希望投到了一门课上,这么课就是软件工程。但是当我们在学完这门课的时候,我们依然没有找到这么一个框架甚至连接近这么一个框架的东西也没有碰到。 不管我们认为软件工程可能是多么的虚无,但是所有学工科并且有逻辑头脑的人都坚信理论对实践的指导意义,因为有了爱因斯坦及其许多伟大的科学家关于能量和质量方面的理论以后,我们才造出了原子弹。但是,遗憾的是软件工程并不是一个具体的理论,它更象一门抽象的科学。软件工程是一种方法论,而不是一种具体的摸的着,看的见的产品。它告诉我们在设计一个系统的时候,我们需要进行可行性研究、计划制订、需求分析、系统设计、编码、测试、维护等等。并且对这些过程中应该做什么提出了一个指导性的东西。但是没有任何专家和标准委员会保证只要按照这些标准,我们的系统肯定会顺利完成。而且事实上,软件开发针对的领域是如此之多并不没有一种对所有领域适用的万能框架。 言归正传,我们还是回到我们的文章标题上来,我们在开发的时候是兵马未动、粮草先行还是摸着石子过河。兵马未动、粮草先行当然意味着我们在开发的时候先不忙着编写代码做程序,我们先要制订一个关于开发的方法。这点就象元数据(metadata)的概念,元数据并不定义数据,它是对数据的说明,也就是通常所说的关于数据的数据。我们设计的时候也是这样,定义开发的标准,如何进行开发、怎样开发。摸着石子过河就意味着我们先不管什么理论,方法,科学的问题,我们先动手做起来,如果做的也算成功的话,那就可以按照这种模式来,实际上,在任何事情的最初,我们都是这样。从辨证唯物主义者的观点来说,就是从实践中来,然后升华到理论,再用理论来指导实践。记得一个笑话说:外国人搞软件工程是在一个黑屋子里面抓黑猫,不过到现在还是没有抓住,而中国人是在一个黑屋子里面,而里面连猫都没有,然后有人说,我已经抓到猫了。这个笑话一方面是说明直到现在,软件工程还是一个在继续探索、发展的过程,另一个侧面也说明中国搞软件工程摸不着边的局面。 实际上,不管有没有软件工程,不管是否存在一个万能的框架系统,我们的应用系统还是要做,各种各样的软件还是要开发。说到底,软件系统是因为有需求才存在的。有了应用域才有了软件存在的意义。很多时候,我们可以看到国外有各种各样的软件和创新,而我们没有,我们更多的是模仿和一些重复的功能相近的软件的原因就是因为我们没有这方面的需求,这也正解释了为什么ERP系统能在国外开展的很好,而在国内失败多于成功的原因。一方面当然是因为我们的企业按照市场经济发展的时间还不长,另一方面是我们的企业确实也没有这方面的需求。 |