软件开发成败预付与软件开发人员有关,更是商业目标决定

软件开发的好坏在根本上决定了软件的优劣。可以说“差的软件开发必定产生差的软件”,但是不能保证“好的软件开发必定产生好的软件”。因为在开发之前有需求开发工作,在开发之后还有编码,测试和维护工作,无论哪个环节出了差错,都会把好事搞砸了。

软件开发的源头是需求,这是由商业目标决定的。高水平的软件开发人员高就高在“开发出恰好满足客户需求的软件,并且使开发方和客户方”获取最大的利益,而不是不惜代价开发出最先进的软件。

评估体系结构好不好的第一个指标就是“合适性”,即体系结构是否符合适合于软件的“功能性需求”和“非功能性需求”。人们一般不会在需求文档中指定软件的体系结构,需求与体系结构之间并没有一一对应的关系,甚至没有明显的对应关系。所以软件开发人员可以充分发挥主观能动性,根据需求的特征,通过推理和归纳的方法开发出合适的体系结构。经验不丰富的软件开发人员往往把注意力集中在“功能性需求”而疏忽了“非功能性需求”,殊不知后者恰恰是最能体现开发水平的地方。

比如开发住宅。住宅的最基本的功能性需求是“吃喝拉撒睡”,全世界人民“吃喝拉撒睡”的方式都是差不多的。住宅的非功能性需求主要是让人住得舒服。住宅的种类非常多,如茅草屋、窑洞、筒子楼、酒店、别墅等等。窑洞的体系结构与别墅的有天壤之别,你能说后者一定比前者好吗?不能,因为没有可比度。

如果一名建筑师受政府委托给广大的中国陕北农民开发住宅,他应当开发更好的窑洞而非别墅。理由很简单,因为广大的陕北农民住不起别墅,而那里的条件特别适合于建窑洞。窑洞对于当地的农民而言是非常实用而且成本低廉的住宅。

对于软件而言,能够满足需求的开发方案可能有很多种,究竟该选择哪一种呢?这时候商业目标是决策依据,即选择能够为开发方和客户方带来最大利益的那个方案。大部分开发人员天生有使用新技术的倾向,而这种倾向对开发商业产品而言可能是不利的,切记切记!

体系结构是软件开发的第一要素,详细开发阶段的工作如用户界面开发,数据库开发,模块开发,数据结构开发等等,都是在体系结构确定之后开展的,而编程和测试是最后面的工作。如果体系结构经常变动,那么建筑在体系结构之上的用户界面、数据库、模块、数据结构等也跟着经常变动,用“树倒猢狲散”来比喻很恰当,这将导致项目发生混乱。

当前中国有几句流行的至理名言:“稳定压倒一切”、“发展才是硬道理”。发展的前提条件是稳定,社会如此,开发软件产品也是如此。

所以体系结构一旦开发完成,应当在一定的时间内保持稳定不变,只有这样才能使后续工作顺利开展。

前面讲了,体系结构是依据需求而开发的。如果需求变更了,很有可能导致体系结构发生变更,那么“保持结构稳定”岂不是成了空想?

高水平的软件开发人员应当能够分析需求文档,判断出哪些需求是稳定不变的,哪些需求是可能变动的。于是根据那些稳定不变的需求开发体系结构,而根据那些可变的需求开发软件的“可扩展性”。

可扩展性是指软件扩展新功能的容易程度。可扩展越好,表示软件适应“变化”的能力越强。由于软件是“软”的,那是否所有的软件必须开发能扩展新功能呢?这要视软件的规模和复杂性而定。

如果软件规模很小,问题很简单,那么扩展功能的确比较容易。要是软件的代码只有100行,这时就无所谓“可扩展性”了,你想怎么扩展都可以。如果软件规模很大,问题很复杂,倘若软件的可扩展性不好,那么该软件就像用卡片造成的房子,抽出或者塞进去一张卡片都有可能使房子倒塌。

是否任何软件在开发的时候都要考虑可扩展性呢?不见得,如果确信某个软件在它淘汰之前永远都不会变更(如一涡圆?罚??敲丛谏杓平锥尉兔槐匾?悸强衫┱剐裕?庋?∈率×Α?/P>

可扩展性越来越重要,社会的商业越来越发达,需求变化就越快。需求变化必将导致修改(或扩展)软件的功能,如果软件的扩展性比较差的话,那么修改(或扩展)功能的代价会很高。

现代软件产品通常采用“增量开发模式”开发商不断地推出软件产品的新版本,从而不断地获取增值利润。如果软件的可扩展性比较差的话,每次开发新版本的代价就会很高。虽然开发商抓住了商机,但却由于开发水平差而导致没有赚取多少利润,真是要活活气死。体系结构的稳定性是根据那些稳定不变的需求而开发的,体系结构的可扩展性则是依据那些可变的需求而开发的。从字面上看,稳定性和可扩展性似乎有点矛盾。两者之间存在辩证的关系:如果软件不可扩展的话,那么就没有发展前途,所以不能只关心稳定性而忽视可扩展性;而软件“可扩展”的前提条件是“保持结构稳定”,否则软件难以按计划开发出来,稳定性是使软件能够持续发展的基础。所以稳当性和扩展性都是体系结构开发的要素。

人们对物质有喜新厌旧的天性,你可以经常改变房子的装潢和摆设,但不能每次都去拆墙,挖地基。在软件开发过程中,

陕西弈聪软件信息技术股份有限公司
电话:13679229477    02989322522
陕西省西安航天基地神州四路科为城墅20栋4301