摘要:针对传统软件编程的缺点,详细介绍极限编程思想的核心内容和意义,并且阐述了该方法应用于开发供电客户服务监控系统。
一、引言
进行开发软件过程中,必须考虑到各方面的因素,软件需求可能会发生变化,这些变化会包括质量、整体、范围、进度、人力资源、成本、沟通、风险、环境等方面的因素。若采用传统的软件编程方法,需求的变化可能会引起后期进行软件设计的重大变化,轻则造成成本的指数上升,重则使整个软件在整个设计中面临失败。
为了寻求迅速建立软件途径并适应不断变化的用户需求,克服许多公司的软件团队陷入不断增长的过程的泥潭,美国软件工程大师Kent Beck等人,在“敏捷联盟”中提出了一种创新的软件工程设计方法-极限编程(Extreme Programming 简称XP编程)。
Xp编程是一种轻量级的、灵活的编程方式,自身规定了核心价值和方法,强调沟通和反馈,整个设计过程由一系列简单却互相依赖的实践组成,在理念、管理和项目计划方法等方面和传统的软件开发过程不同。
二、极限编程
2.1 传统软件设计模型
如图1所示,传统软件设计中规定了各项软件工程的活动包括:制定系统计划,进行详细需求分析和说明,实现编码,对系统进行测试。整个设计规定了自上而下,相互衔接,如同瀑布一样将各个不同阶段串联起来,并用文档提交来驱动下一个环节,常有许多规则和文档,要正确的实施它,在开发流程上有较高的要求。
该模型最大的缺点是:缺乏适应需求变化的灵活性,更改程序的成本会随时间的推移而呈指数方式上升;而且对进度的估计经常容易失误,可能导致工期的延长,因而要付出高额代价来返工或者在维护中纠正错误。
2.2 Xp编程的设计模型
简单来说,极限编程是一个高迭代的过程,在控制论(Control Theory)中,迭代过程可以不断向系统提出反馈,以确保得到预计的最终结果,而在Xp编程中,将需求分析的时间大大缩短,之后的开发中4个活动(需求、设计、编码、测试)同步进行,每一次迭代都是建立在上一次迭代的基础上进行。
2.3 Xp编程的核心思想
要达到高迭代过程,开发组中必须具备以下四种不同的思想:沟通(Communication)、简单(Simplicity)、反馈(Feedback)和勇气(Courage)。Xp编程认为开发组不只是包括开发人员,还包括客户和管理人员,强调成员间要经常进行交流。尽量减少在关键性的领域决策出现严重失误;开发人员应当在进行当前阶段设计,力求以简化的方式完成已知的工作,待在以后阶段中,如有必要再做修改,避免将资源花费在