《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > XP方法在外贸管理信息系统开发中的应用与研究
XP方法在外贸管理信息系统开发中的应用与研究
邓靖颖 黄 穗
摘要: 通过XP在一个外贸管理信息系统的实际开发应用,阐述XP方法的主要特点。
Abstract:
Key words :

    摘  要: 通过XP在一个外贸管理信息系统的实际开发应用,阐述XP方法的主要特点。

    关键词: 极限编程  用户故事  测试先行

 

  XP(Extreme Programing)是敏捷编程方法的代表,适用于需求经常发生变化的中小型项目的开发。大多数用户在系统发布之前,对系统功能往往只有一个模糊的想法,系统实际功能很难确定,且系统经常改变。XP是一种高度动态的过程,它通过非常短的迭代周期来应对需求的变化。某外贸公司欲开发一套外贸管理信息系统(FTMIS)软件,但面临时间紧迫、开发人员不足二个问题。基于此,这里利用极限编程方法XP进行系统开发,以求在最短的时间内获得客户最满意的结果。

1  XP方法特点

  XP运作项目的方法是将项目分成多次迭代,每一次迭代交付一个通过质量检验、可投入使用、包含了一些新实现的用户故事(User stories,即用户素材,定义一些小的功能模块)软件。图1为一个XP项目状态变迁的过程。

 

  图1中用户故事同时产生需求和测试场景。从需求定义开始,XP省略了常规的系统和架构的设计步骤,在进行初步架构探索后,就从简短的计划发布直接进入编码的迭代循环。测试场景则用来进行功能测试。编码和设计是同时进行的,而且特别强调测试的重要性,提倡测试驱动。测试驱动的编码方式实际是一个循环:写对应新功能的测试→运行测试发现错误→编写代码→运行测试成功→写对应新功能的测试。最后,测试完成并得到用户认可后进行小型发布。

  XP方法具有如下特点:

  (1)重视客户满意度:XP的宗旨是开发满足客户需要的软件。XP让开发人员即使是在开发周期的后期也能自信地面对需求变化。

  (2)强调团队合作:项目经理、用户和开发工程师共同组成一个完整的开发团队,目的是开发出高质量的软件。

  (3)开发原则:XP从四个基本的方面改变原有的开发方式,即交流、简单、反馈和勇气,其目的在于克服由人为因素带来的项目失败。开发人员要与用户、同事交流;系统设计必须简单、明晰;通过不间断的测试和发布得到用户反馈;根据用户的要求修改代码,并争取尽早地将软件交付给用户。在此基础上,开发人员将会有足够的勇气面对需求和技术的变化。

  (4)轻量级过程:XP认为重量级方法有些本末倒置,让开发人员远离了自己的专业,做了他们既不擅长、也不喜欢的事情。因此需要改变,让开发人员提高效率。

2 XP在外贸管理信息系统开发中的应用

2.1 发布计划

  很多项目都会在前期消耗过多的时间,只有等所有的需求完成之后才开始设计工作。而采用XP方法,只需进行短时间的需求分析就可以开始设计工作。在经过一段时间的需求分析后,FTMIS的几个管理模块就基本确定了,如图2所示,各个模块之间的数据交换一般建立在共享数据库上。

 

  XP要求结合业务和技术情况,快速确定下一次发布的范围,即小型发布。一个版本的发布周期一般以1~3个月合适。客户代表确定系统的核心内容。甲方外贸公司主要做的是出口产品,所以该客户代表制定了第一次发布需要实现的内容:商品管理、客户管理、报价单管理、订单管理、出口合同管理、业务报表,并将这些模块细化为各个用户故事(User stories),加上程序员对这些故事的估算,定下第一个发布计划的时间是6周。客户对每个发布版本的选择在技术上可能不是最有效的,但可以确保每个版本都给企业带来最大的收益。商业价值重于技术效率。在进行第一个版本的开发过程中,客户继续计划了第二个版本和第三个版本要实现的内容,整个开发周期的发布计划如表1所示。

 

  小型发布的形式可以让系统最快地投入生产。用户的意见也可以迅速地得到反馈,及时在系统中得到解决。

2.2 迭代计划

  系统的一个版本被分解为若干个为时一周的迭代,以便尽快地从客户代表处得到反馈意见。迭代长度在项目开始时即已选定,并且以后保持不变。客户代表为用户故事定下优先级后,程序员将这些故事分解为任务,每个任务执行的时间一般不超过一、二天。用户故事根据迭代的时间适当进行合并或拆分或移到下一迭代周期。FRMIS的第一个版本的迭代计划如表2所示。

 

  XP提倡模块间的松藕合,它可使系统因变更所受的影响最少。通常开发MIS的步骤都是先做用户界面,再进行数据库设计,最后制作报表。由于XP强调现场客户的参与,该客户代表从用户角度考虑,在制定用户故事时定下了报表故事的优先级最高的要求。根据客户这一需求,先设计数据库,用实验数据或客户提供的业务数据加以填充,然后制作报表。这样当报表模块开发出来并通过客户验收后,数据库结构就非常确定了。这时再进行界面的开发,整体速度就提高很多。现场客户的参与保证了开发出来的系统具备用户最需要的功能。

2.3 开  发

  XP方法的一个重要开发原则就是结对编程。结对编程是由二个开发人员在同一台电脑上共同编写解决同一问题的代码。通常一个人负责写代码,另一个负责保证代码的正确性和可读性。结对编程的优点是:重要的设计决策至少由二个人决定,不易出现大的失误;至少有二个人熟悉系统的每一部分,二人同时离开的可能性比较小,保证了开发的延续;二人可以很好地交流工具的使用,学习新的技巧,提高很快。但并不是任何时候结对编程都是绝对高效的。

  XP还提倡在实现功能代码之前,先编写单元测试。由于系统需求的不断变化,程序的测试也要频繁地进行。为了降低开发成本,测试的自动化变得非常重要。系统采用DELPHI进行开发,所以将适于DELPHI的测试框架DUNIT集成到开发环境中。DUNIT使用很简单,例如在开发中为编写一个加密解密的类TCipher的测试单元TestCipher,首先在单元TestCipher中引用测试框架单元TestFramework,新建测试框架的主类TtestCase的子类TCipherTestCase,并重载TtestCase类的Setup和TearDown过程,这二个过程分别在测试之前和之后被调用。接下来在过程TCipherTestCase.TestEncryption中就可以编写测试代码,主要代码及注解如下:

    

  即可在程序初始化时对本测试类进行注册。之后在工程源文件引用单元TestCipher,并将APPLICATION.RUN;改为GUITestRunner.RunRegisteredTests;即可运行已注册的类。

  编写非GUI类的自动化测试单元所花费的时间不多,所带来的好处显而易见。但对有些GUI类的编写测试就比较复杂,费时费力。所以在实际运用中应只选择一定的合适的类来编写单元测试,避免得不偿失。

  除了程序员编写的单元测试外,在每个迭代完成时还应由客户代表进行功能测试。实际用户和开发人员看问题的角度有所不同,尤其在需求不完善的情况下。每周的迭代完成后的用户测试使得意见反馈迅速而高效,减少了错误积累带来的项目失败风险,需要返工重构的工作量也不至太多。

  整个FTMIS开发周期经过18周的迭代,到最后第三个版本发布时,系统已经稳定地为企业服务多时。同时因为开发过程比较严格地遵守代码规范,大幅度减少了后期开发人员所不愿意写的技术文档。迭代周期及用户故事制订得比较合适也使开发人员始终工作在松紧有度的环境中。最终客户和开发人员都得到了比较满意的结果。

3  结束语

  XP方法在FTMIS项目中的成功实施证明了以代码设计为中心的自底向上过程的合理性和有效性。国内诸多中小型项目开发时都是时间紧迫、需求分析过于简单,此时XP比重量级开发过程显得更有优势,并且易于实施。但对于XP的一些原则和方法,不能生搬硬套,应该灵活进行一些修剪补充,使项目获得最大的成功。

 

参考文献

1  Beck K.解析极限编程:拥抱变化.北京:人民邮电出版社,2002

2  Jeffries R,Anderson A,Hendrickson C.极限编程实施.北京:人民邮电出版社,2002

3  张恂.XP的价值和局限.非程序员,2002;(15)

4  Newkirk J,Martin R.极限编程实践.北京:人民邮电出版社,2002

此内容为AET网站原创,未经授权禁止转载。