xingd.net

.net related techonology

导航

XP与设计

Posted on 2006-03-29 21:16  xingd  阅读(1345)  评论(2编辑  收藏  举报
XP与设计
Design is there to enable you to keep changing the software easily in the long term.
Design for future.
 
对于一个良好发展的软件来说,变化是必然而且持续不断的,为了更好地支持变化,良好的设计也就成为了一个基本的需要。一些新的设计方法,设计模式,以及具备优秀设计和程序库也不断地出现。不同的软件开发方法,对于设计也有着不同的支持。
 
传统的软件工程提倡需求先行和设计优先,设计的基础来源于对产品应用领域的认识。但实际上,这样的目标很难达到。尤其是一些产品的最初版,在没有应用实践和用户反馈的情况下,许多想当然的需求理解常常会带来设计的偏差,甚至使得后续的版本发生非常大的变动。
 
但是传统的软件工程相对于早期无序、随意的软件开发还是有显著的进步,其前提就是变化越往后产生的影响越大。为了规避后期的变化,需求和设计需要尽快的确定下来。这样形成的设计,可以称之为计划设计(Planed Design)。
 
与此相对,XP方法提倡的简单、重构等实践代表了另外一种设计,演进设计(Evolutionary Design)。在这种设计方式下,设计在开发过程通过重构形成的,实际上就是由变化来推动的。这个变化不仅指需求变化,也包含了其他诸如开发人员对需求的了解,技术平台,程序库等等变化。
 
但是按照传统软件方法的观点,这些过程中的变化会对软件开发成本有着极大的影响,XP又是如何应对的呢?以测试和持续集成为代表的XP方法的能动实践,起到了降低变化成本的作用。测试可以缩短验证变化影响的过程,而持续集成则保证了变化及时可见。