浅谈软件体系结构在项目中的作用

  记得几年前在别人的微博上看到Mitchell Kapor的这么一句:软件缺乏可用性以及糟糕的程序设计是软件业不愿公开的羞耻。的确作为一个软件的设计者与开发者,做出来的程序不符合需求,那么这个软件就是失败的。在IT软件行业中,每个人都有自己关于项目失败的经历,尽管没人知道到底如何追究责任,但肯定都存在着严重的错误。而这些错误所带来的失败却有着相应的负担,好比说:项目没用带来的痛苦,从而去否定自己等。调查显示,财富500强企业开发的软件项目,有23.6%的项目能够按时成功完成,40%在完成前被取消,其余的由于困难、超支、范围蔓延等等原因被结束了。

  科学的发展就是从经验到理论的发展。伴随着软件的发展,尽管有越来越多复杂的工具和方法,程序员还在编写着达不到期望或者完全失败的项目。而那些可怜的客户还在为这些失败的工作不得不继续付钱,他们经常问自己:“到底什么才是正确的方法”。由于失败多了,业界人士因此借鉴传统工业成功做法,主张通过工程化的方法来解决项目的失败,从而发展出一门新的科学,软件体系结构。大多数的系统按功能分解都能形成功能模块或者功能子系统,因此咱们可以运用软构生产应用软件的过程。做到唯一的业务架构,多种技术架构以及具有唯一的逻辑和物理结构的数据结构。

  在开发项目过程中,我们写的程序需要遵守,清晰第一,效率第二,因为在软件过程中唯一不变的事就是在变化。我们还需要摒弃一些不正确的观念。1)我们拥有一套讲述如何开发软件的书籍,那么就可以利用书籍中的标准和示例来帮助我们解决软件开发遇到的任何问题;2)我们拥有最好的开发工具和电脑就一定能做出优秀的软件;3)我们需要增加更多的程序员来解决项目进度的滞后问题;4)需求分析很困难,不管三七二十一就先把软件做了再说,反正软件是灵活的,可以随时修改;5)软件运行速度慢了,程序员不去设计一个更快的算法,而是一味的要求更换一台更快的计算机。

  硬件让电脑越来越快,而软件却让电脑越来越慢。程序员可以运用软件体系结构的知识,尽量把项目分解开,分解成一个一个子模块,再把一个一个子模块分解成一个一个构件。设计出优秀的算法来支撑项目,不让软件来拖硬件的后腿。最后程序员不要在编程的时候想着睡觉,而应该要在睡觉的时候想着编程。

  作者:中软卓越厦门ETC林英奋

posted on 2013-09-13 15:52  zretc  阅读(512)  评论(0编辑  收藏  举报