极限编程在用电信息采集系统中的实践探讨

2017-11-20 08:05张鸿鸣
电脑知识与技术 2017年25期

张鸿鸣

摘要:极限编程是敏捷的和基于实践的软件开发方法学。目前国际上最有影响力的软件过程方法有:Rational统一过程(RUP),敏捷过程(AP),极限编程(XP),微软过程(MP)。通过介绍极限编程的特点及其在一个用电信息采集系统项目实际开发中的成功实践,探讨研究了极限编程对于中小型需求易变的软件开发项目应用的优势和不足。

关键词:敏捷开发;极限编程;用电信息采集管理系统

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)25-0218-02

Abstract:Extreme programming is agile and practice-based software development methodology.At present,the most influential international software process methods are:Rational Unified Process(RUP),Agile Process (AP),Extreme Programming(XP),Microsoft Process(MP).By introducing the characteristics of extreme programming and its successful practice in the actual development of a project of electricity consumption information collection and system,this paper discusses the advantages and disadvantages of extreme programming for small and medium-sized software development projects with variable demand.

Key words:agile development;extreme programming;electricity information collection and management system

随着计算机和通信技术的不断进步,新类型、新版本的设备涌现及不断升级,与此同时,新的操作系统、新的程序设计语言、新的通讯方式、新的应用程序使得软件的生存周期大大地缩短了。同时,这一系列产品及软件服务的出现,原有的软件系统已不能满足日夜增长的工作生活的需要。为此,软件研究人员需要不断探索新的软件开发方法。敏捷开发就是在这一背景下提出的一种新概念。其是一种以人为核心的、迭代循序渐进的软件开发方法,目前有极限编程XP(Extreme Programming)、Cockburn水晶系列方法和SCRUM等方法,其中极限编程以其灵活、高效的编程方式得到了许多程序开发工作者的青睐。国家电网用电信息采集系统开发采用了极限编程的开发方法,其灵活、高效的特点最大限度地保证了系统的成功开发及运行。

1 极限编程概述

1996年,Kent Beck提出了一种敏捷软件开发方法——极限编程。XP是敏捷开发的代表,具有轻巧灵活、“纪律性”等特点。极限编程是以一系列价值观、指导原则为基础的,在此基础之上扩展出一系列的实践和行为。如图1所示,极限编程是由相互之间共同作用的四个要点组成的,各要点组合成一个整体、共同作用,最后得到高质量的产品服务于用户。

1.1 极限编程的价值观

最初的极限编程只提出了四条价值观,后来加入了第五条,共有:沟通、简单、反馈、勇气和尊重。

(1) 沟通。客户需将系统的明确需求告知系统开发者,这一任务是通过文档来完成的。

(2) 简单。极限编程秉持简洁、明朗、高效的编码风格,以最简模式保证系统的正常运行。

(3) 反馈。系统初始设计时难免存在缺陷,可以通过编写测试模块来验证代码的正确性。

(4) 勇气。极限编程提倡面对压力做正确的判断并敢于付诸行动。

(5) 尊重。团队成员之间应该相互尊重彼此,不应因为沟通不畅等问题导致延误工作。

价值观是在特定情形下是否能够按时按量、高质量完成一项工作的内在驱动力,直接体现在团队成员处事原则和行为实践当中。极限编程的五条价值观构成了一个有机的整体,任何一条都不应该被孤立看待。

1.2 极限编程的主要原则

极限编程的主要原则与价值观相比,更加具体化,同时,其还是连接行为实践和价值观的桥梁。

(1) 反馈迅速。极限编程要求在与客户的不断接触中,迅速的理解客户的反馈意见,掌控系统的开发进程。

(2) 假设简单。极限编程要求在最可能短的时间内将用户不断变化的需求转换为高质量的软件产品,因此提出合理、简单的假设显得尤为重要。

(3) 增量变化。极限编程采用逐步推进工作进程的方式,逐步完成系统的开发工作。

(4) 包容變化。软件开发过程中会不断出现各种变化情况,极限编程要求能够及时处理、解决这些问题,保证工作进度。

1.3 极限编程的实践行为

常规的软件开发过程描述了四种典型的实践行为,即框架设计、交流沟通、代码编写和软件测试。极限编程也不例外,也描述了这四种实践行为。

(1) 框架设计。极限编程体现的是简单设计的原则,在实际工程中项目需求是会经常变化的,一个良好的设计框架需要能够适应不断变化的项目需求。

(2) 交流沟通。交流沟通是极限编程的基础,其不依赖于正式的书面文档,更强调高质量的口头交流。

(3) 代码编写。极限编程开发方法中最重要的产出就是软件代码,这里谈论的是代码本身而不是代码注释。endprint

(4) 软件测试。极限编程采用自动化测试工具,在代码重构前后都进行准确性和缺陷测量方面的测试。

2 极限编程的开发过程

极限编程的开发过程分为前期探索阶段、中期规划阶段和后期实施阶段。如图2所示。

极限编程前期的主要工作放在探索项目的各项需求上,目的是确定各种类型的需求、确定各类需求的优先级大小,并且评估开发过程中的各项风险。中期规划阶段的目的是制定一套可行性强、最小程度简化工作进程的计划,包括迭代和发行计划。实施阶段需要在迭代周期内完成所有的工作,包括完成各项功能的验收测试工作,达到客户的各项需求。

以上的极限编程的开发过程,可以概括为如图3所示的状态迁移图。

3 极限编程在用电信息采集系统中的应用

3.1 用电信息采集管理系统开发模式设计

用电信息采集管理系统采用B/S(Browser/Server,浏览器/服务器)和C/S(Client/Server,客户机/服务器)相结合的设计模式。现今的B/S结构采用了WWW浏览技术、Script和ActiveX技术,使用通用浏览器就可以实现原来需要专用软件才能实现的功能,最大程度地节约了开发资源。如图4所示,B/S结构为用户实现各种平台间的访问提供了可能性。

另一种C/S结构即客户机/服务器结构,用于实现资源共享。C/S结构分为前台、后台,其中后台服务器的主要职责是管理数据,前台客户机主要的职责是完成与用户的各种形式的交互任务。

用电信息采集系统的开发模式结构如图5所示。

3.2 用电信息采集系统功能模块设计

用电信息采集系统采用分布式数据库结构,各个应用子系统既可以与其他子系统相互协调分工,通过TCP/IP网络共同完成数据格式转换、加载/停用模块等功能,也可以独立运行完成某一个功能,极大地提高了系统的可扩展性。用电信息采集系统各功能模块图如图6所示。

3.3 基于XP的用电信息采集系统过程设计

在极限编程软件开发过程中,一个高效的团队要求所有参与人员各司其职。在用电信息采集系统的开发团队中共有3类人员:程序开发人员、客户代表和项目管理人员。

(1) 程序开发人员是极限编程项目的核心,其职责主要不仅包括組合程序员对,完成任务的快速设计,而且还需要编写代码、测试案例,最大程度优化代码结构。该系统的程序开发人员一天大致的工作流程如图7所示。

(2) 极限编程不同于传统开发方法之一就是极端强调客户的参与,程序员根据客户的具体需求进程编程,客户的参与度直接决定团队的开发速度和产品质量。用电信息采集系统需要依据不同的客户,确定不同的信息来源。国家电网用电信息采集系统的用户需求来源如图8所示。

(3) 第三类人员是管理人员,包括:项目经理、项目跟踪人员等,用电信息采集系统项目设有1位项目经理和2位项目跟踪人员。项目经理主要负责获取客户需求、组建并管理团队,同时还需要应付外部的团体,在出现问题是能够及时解决。项目跟踪人员主要帮助团队成员了解其是否是遵循客户需求来开展工作的,跟踪掌握版本计划、迭代计划和验收测试。

4 结束语

目前国家电网用电信息采集系统项目组经过努力,完成了用电信息采集系统的设计与实现。极限编程方法在用电信息采集管理系统项目中的成功实施证明了将项目分成多次迭代,每一次迭代交付需通过各种类型的质量检验,体现了新实现的用户故事的迭代开发方法的合理性和高效性。国家电网用电信息采集系统开发时间紧迫,采用的极限编程开发方法,在遵循相关原则和价值观的基础上,有效地保证了项目进度和产品质量。

参考文献:

[1] 金敏周翔.高级软件开发过程-Rational统一过程、敏捷过程与微型过程[M].清华大学出版社,2005.

[2] Martin Fowler.敏捷开发原则、模式与实践[M].北京:清华大学出版社,2004,6-8.

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

[4] Scott W.Martin.张嘉路等译.敏捷建模:极限编程和统一过程的有效实践[M].机械工业出版社,2003.

[5] 俞定国,谭成翔.敏捷方法在企业应用系统开发中的应用与改进[J].微计算机应用,2005,20(1).

[6] 周红涛,季新生.三层C/S结构中数据库连接管理器的构造[J].微计算机信息,2005,(21):98-100.endprint