极限编程技术 (e Xtreme Programming简称XP) 是一种轻量级软件工程方法, 它是由Kent Beck在20世纪90年代提出的。极限编程技术方法和传统的软件工程方法存在着巨大的差别, 它的提出在软件行业引起了非常巨大的震撼, 一些人很难认可极限编程技术的可行性。通过许多科学研究和实践发现, 极限编程技术是一种具备较高的效率的轻量级的软件工程方法。
极限编程技术的组成部分包括:价值、原则、实践和行为。这些组成部分互相联系, 彼此密不可分。其中, 原则来自于价值;而价值和原则又都是以12个实践为基础的;12个实践关联着四个主要的软件开发活动。
极限编程技术的价值包括以下五个方面:沟通、简单、反馈、勇气、尊重。
极限编程技术的原则包括以下五个方面:快速反馈、简单性假设、逐步修改、拥抱变化、高质量的工作。
极限编程技术的实践包括以下十二个方面:计划、小版本、隐喻、简单设计、测试、重构、结对编程、集体所有权、每周工作40h、持续集成、现场客户和编码标准等。
极限编程技术的行为包括以下四个方面:倾听、测试、编码、设计。
极限编程技术作为一种新型的编程理念, 它的优势非常多, 主要包括以下几个方面。
第一, 极限编程技术提倡的小型发布能够对于错误进行及时地检测, 从而使错误的范围尽可能缩小。
第二, 极限编程技术倡导高效率地处理需求的变动问题, 能够降低和避免由于需求的变动所导致的对软件项目的影响有利于最大限度地符合用户的需求。
第三, 极限编程技术所倡导的简化设计的价值观可以降低软件开发工作者的工作量, 有利于软件开发工作效率的提升。在现阶段, 大部分企业认为必须在软件设计结束之后才可以编写代码, 但是设计通常是存在着一定的缺陷的, 大而全的设计就会造成软件的开发进度的滞缓。在这样的背景下, 极限编程技术为软件行业创造出了一种崭新的开发理念。
3.2极限编程技术的劣势
在看到极限编程技术的优势的同时也应该看到极限编程技术的劣势, 主要涵盖了下面的几个方面。
第一, 极限编程技术所倡导的结对编程实践方法在可以降低错误发生率的同时, 也会导致程序编码的不一致性, 甚至由于解决问题的矛盾而使软件的开发进度滞缓。
第二, 极限编程技术更加重视代码的规范性, 将程序代码的规范看作是全部的规范, 却没有充分重视到软件的设计、计划等全过程, 这是非常不利于软件以后的维护工作的, 不利于将来的可持续性的开发尤其是对于一些编程团队时常出现变动的情况不利。
第三, 极限编程技术更加注重在编码阶段的重构, 这只是局部重构, 没有在设计阶段充分重视重构, 导致对于分析设计的重视不足。
第四, 极限编程技术所倡导的代码全体拥有虽然可以实现代码的透明化, 然而为软件项目的安全性、稳定性埋下了巨大的安全隐患。
3极限编程技术的生命周期
从总体上来说, 极限编程技术的生命周期主要包括以下几个方面:调查、规划、迭代、产品化、维护。极限编程技术要求客户和开发人员协同起来, 从而共同打造出具备实际价值的软件。客户对于开发人员应该进行指导, 并且积极参与到整个生命周期过程中来, 以便开发人员能够努力探索在极限编程技术软件的整个生命周期中实现业务价值的提升的新途径。
极限编程技术的周期是一个持续定义和实现价值的过程。整个开发过程就是客户定义价值, 而开发人员负责提供价值。极限编程技术具备非常快速的循环速度。开发人员在几分钟之内、几小时之内或者是几天之内就能够完成一个功能的编码设计, 从而保证客户可以及时进行指导, 以便开发人员及时整改, 有利于整改软件的逐步顺利开展, 相对于传统的软件开发方法, 这是一个重要的突破。
另外, 极限编程技术项目应该将客户的产品预想划分为发布, 并且将发布划分为迭代。规划是一个持续进行的过程, 在项目的全部生命周期过程中会进行持续地完善。
在迭代的过程中, 开发人员会进行多次的定期构建。构建次数是和所选择的技术类型以及开发人员所选择的开发风格相关联的。发布和迭代之间所存在的不同之处在于发布时开发人员将工作软件交给客户, 而迭代的过程中存在一个内部焦点, 使现场客户和开发人员可以对于进度进行度量和调整。
在极限编程技术项目的整个生命周期过程中, 在进行软件项目的调查分析之后, 开发人员会进行发布规划和不断迭代的循环, 最终实现软件的开发, 并且为下一步骤的生产打下坚实的基础。所谓生产或发布, 就是说把已经实现的软件部署在工作环境中。生产是非常关键的, 这是由于生产就代表着企业会在新的软件中得到真正的价值。但是, 也应该看到, 失败的代价也是非常高的, 因此, 众多的客户会非常重视软件最终的验收测试, 并且进行软件的维护, 以便软件能够得到正常的运行, 为客户带来更大的效益。
综上所述, 本文探索了极限编程技术。虽然极限编程技术已经被提出了十多年的时间了, 然而, 这种编程理念仍然是一种新兴的软件开发方法, 值得相关领域的专家和学者继续进行在不断的探索和完善。希望通过本文的研究, 能够抛砖引玉, 引起国内外专家学者对于极限编程技术领域的进一步的重视。
摘要:极限编程技术是一种新形式的轻量级的软件工程方法。本文首先简单地概述了极限编程技术的组成部分;然后, 详细分析了极限编程技术的优势和劣势;最后, 具体阐述了极限编程技术的生命周期。
关键词:极限编程技术,组成部分,优势,劣势,生命周期
[1] 段琳琳, 王如龙.极限编程在软件项目开发中的研究与应用[J].计算技术与自动化, 2008 (1) .
[2] 韩利凯, 李向军.基于组织行为学的极限编程中的沟通准则[J].西安文理学院学报 (自然科学版) , 2009 (4) .
[3] 张惠彦, 廉保旺, 逯野.极限编程的研究和应用[J].科学技术与工程, 2007 (12) .
[4] 周立力.极限编程的质量保证分析[J].计算机应用与软件, 2010 (4)
[5] 汪灏, 陈丹敏, 杨建豪.基于极限编程方法的教育软件项目开发[J].软件导刊, 2012 (3) .
[6] 郎波.浅谈极限编程技术及其应用[J].青海大学学报 (自然科学版) , 2005 (4) .
推荐阅读:
基于Linux管道技术的编程方法研究09-10
编程技术论文提纲11-15
可编程控制技术05-29
数控编程研究管理论文提纲11-15
数控编程研究管理论文(推荐3篇)04-19
浅析数控机床的编程方法研究12-12
计算机软件JAVA编程特点及其技术05-10
由动态表动态创建数据窗口的编程技术09-12
飞机结构件快速数控加工编程系统研究12-08