任何一个软件项目从规划到开发完成,都需要经过大量的艰苦劳动。处于不同职位的人因为作为不同的脚色,会把自己的工作认为是更重要的。当然,负责需求分析的人如果能够更深入的洞察客户需求,做出超乎用户想象的产品设计将是最精彩的开始。接下来,数据结构、用户界面、功能模块的设计和划分都会决定整体成败的因素。
开发人员总会抱怨频繁的需求变更。其实,要完成一个完美的软件产品,没有经过至少三次巨大的修改是不可能让人满意的。要对付不断增加的竞争压力,必须想办法提高开发效率。不像那些辅助开发软件所说的那样乐观,有些开发组件宣称可以使用低素质的开发人员实现高效、高质量的开发,实际上,这样没有足够素质的开发队伍将会导致无法收拾的烂摊子。除了那些应付单独任务的小程序,任何一个能够配置使用的软件系统都需要开发人员创造性的工作。也许我们因该掌握众多的CASE工具,但是大多数这样的工具都有它们适用的局限性,而且,设计优秀的软件需要有多角度的抽象,这个在CASE工具中也很难体现出来。而且在大量的小型项目中,需要更灵活和简单的方法来实现开发的便捷。
成熟的开发小组在做一个项目时,他们的工作中包含四大部分:1、积累的成熟的组件、代码、函数、编码规则等作为开发框架,2、在开发框架的基础上,根据本项目的数据结构,根据框架规则来实现具体的功能,3、本项目特有的算法的开发,4:对开发框架在本项目中适用性进行调整和补充。
新手的所有工作都是第三部分的工作,随着经验的增加,他会逐渐重视第四部分的工作,充实第一部分的内容。
越成熟的开发组织,他在第一部分中的内容越丰富;第二部分的工作呈现出一种成熟的模式化,第三部分是每个项目都要必须要做的;越成熟的开发,在第四部分中的工作会变得越少。
通过购买组件来充实第一部分的内容是非常有价值的,不仅仅是提高了开发效率,它还能够带来很多很难实现的功能。在这方面我也是感觉受益匪浅。
但日益的成熟会带来另一个问题,第一部分的复杂性会变的不受控制的增加;新手需要花更多的时间来适应并记住大量的使用方法,当系统出错时,有经验的开发者有时也很难定位错误的位置。所以必须有恰当的方法控制复杂度才能解决这个问题。
www.bz2008.com这个网站提供了一种解决方法,这个网站的特点是完全用WEB的方式提供了复杂的程序功能,他假设使用这个系统得程序员已经经过了复杂的系统分析阶段,已经进入了代码编写阶段,用这个系统代替第二阶段的工作,生成代码后复制到开发平台和第一部分结合起来,从而实现高效的开发。由于使用了选择方式和菜单的帮助来使用第一部分的功能,用这套系统可以提高对第一部分复杂程度的适应。
这套系统的模式积累也是很出色的特点,随着用户自定义的增加,使用的越多,可以使开发的效率提高的越多。
在这个系统中,只需要定义好第一部分的接口就可以,所以对源代码的安全性保障也很有帮助。我们也不必担心会泻露重要的信息,因为仅仅有少量的信息,很难把一个使用者从其它人大量的信息中区分出来。
在这套系统中试验了一个最常用的例子,数据的输入和校验,查询修改和多个汇总报表,对不同的语言和数据库开发都可以在几分钟内完成。对于数据字段很多,超过十几个字段的表或视图用起来更感觉方便。而且,对自控软件、芯片设计等低层开发,在理论上也可以有很好的支持。