一.进化式软件开发解决的问题(或研究方向)
进化式软件开发解决的不是如何开发软件产品也不是开发软件产品的技巧。进化式软件开发是用进化、发展的眼光来研究软件产品的生命周期,以及软件生命周期中的每个阶段。具体包括以下方面:
(一) 软件产品的产生
系统架构师在设计软件的时候应该考虑到软件每部分的比重,以及每部分的后 期发展方向。
(二) 软件产品的后期维护
软件的使用者应该用发展的观点看待软件产品。至少应该认识到一个软件产品开发完成后不是一成不变的,而是发展变化的。软件产品也像自然界的生物进化一样:猴子也是可能进化成人类的。
(三) 软件产品的进化方向
进化式软件开发与自然界进化有很多相似之处。比如:软件产品中负责自动化的部分相当于大脑,该部分也是软件产品进化发展过程中的重要部分。
比如:猎豹的进化方向是跑的更快,同样,处理速度更快也是每个软件产品的进化方向;公鸡的进化方向是羽毛更靓丽,同样,操作界面美观大方也是软件产品的进化方向,这一点在Windows 98 和Windows 7操作系统界面上就很直观的体现出来;猎鹰的进化方向是眼睛更敏锐,同样,计算精度更高也是软件产品的进化方向。软件的进化方向与自然界进化也有不同之处,比如:操作简单、简洁是因为人的意志而强加给软件产品的进化方向,Apple也抓住了这一点,每个产品都具有简洁之美。
1. 软件产品如果没有主的进化方向最终将被淘汰
2. 确定软件进化方向的规则
(1) 需求
(2) 时间
(四) 软件产品进化的主要动力
1. 主要因素
软件生命中期中各个阶段的主导者,比如:软件产品前期的软件开发者以及后期的软件使用者。
2. 次要因素
在软件生命周期中其他影响软件的因素。