当前位置: 主页 > 论文库 > 计算机 > 计算机理论 >

极限编程及其android开发应用

时间:2013-01-04 14:35 来源:www.lunwen163.com 作者:163论文网 点击:

    
 

摘要 本文主要介绍了极限编程的开发特点和方法,并给出了应用举例。
关键词 极限编程 测试驱动开发 android开发
ABSTRACT This paper mainly introduses the developing features and methods of XP,and gives an example.
KEY WORDS eXtreme Programming(XP);Test-Driven Development(TDD);Android developing
1   引言
当今时代,国内有很多中小型软件项目开发时间紧迫,需求也经常发生变化,如果使用传统的软件开发方法,会导致开发资源浪费,甚至质量低下。敏捷开发方法为有效解决这种状况提供了良好的解决方案。其中,以极限编程XP(eXtreme Programming)最为典型代表。XP是一个基于实践的、混乱而有序的方法,它通过非常短的迭代周期来应对需求的变化。
笔者正在做一个android手机情景模式自动切换的软件开发创新训练计划项目,虽然不敢与国内的那些中小型软件项目相比,但是,自己也主动尝试使用敏捷开发方法。虽有不到与不周之处,但也小有收获。
2   流行的敏捷开发方法:极限编程(XP)
在所有敏捷开发方法中,XP(eXtreme Programming)是最引人注目的,它适用于需求快速变动背景下的中小规模的开发团队。
XP所呈现的生命周期,如图1所示。

 

 

 

 


2.1   极限编程的四个核心准则
1. 沟通:注意开发人员、设计人员、测试人员及客户之间的沟通。
2. 简单:尽量保持代码的简单,只要它能工作就可以。
3. 反馈:尽快获得用户的反馈意见,且越详细越好,使开发人员能够保证自己的成果符合用户的需要。
4. 勇气:最重要的核心价值。因为XP 强调要“拥抱变化”,因此对于用户的反馈,要勇于对自己的代码进行修改,丢掉坏的代码。
2.2   极限编程的五个基本原则
1. 快速反馈:XP 提倡尽可能早的,迅速的反馈。
2. 假设简单性:XP 倡导为完成今天的工作而工作,并不计划未来对软件的扩展。
3. 提倡更改:XP 强调要“拥抱变化”,有快速的反馈,就应有对反馈结果的执行措施。
4. 递增更改:XP 提倡小改动,用期望的功能逐步增强系统。递增更改应用在XP 的诸多方面:设计、计划、团队等每次只改动一小点。
5. 优质工作:质量是最重要的。XP 强调团队中的成员要对工作充满兴趣和信心,保持编程人员的最高热情和水平。
2.3   XP主要特点
最为一种轻量级方法论,XP明确放弃了系统建档和分析以外的任何外在活动。文档明确不予鼓励,编码才是最主要的活动。
基于测试驱动开发(Test-Driven Development,TDD)的思想,在编码开始之前将测试用例或者脚本设计好。
3   极限编程开发应用
3.1   发布计划
3.1.1   项目简介
开发一个软件,可以通过手机自带话筒收集手机周围的声音信息,通过软件对采集信息的分析和标示,选择默认设置或者用户预先设置里面对应的情景模式,进行模式的自动匹配选择和切换。本项目首先面向的对象是学生android手机用户。
3.1.2   项目模块划分
XP是明确不支持文档的,只要设计出系统架构,各模块不必详细设计,在测试驱动的开发中进行完善。本项目模块划分如表1。
表1  项目模块

模块名称 模块功能 模块信息传递
main 实现系统功能层 控制Activity、View、Intent等类,实现数据传递
collection 通过硬件设置搜集周围环境数据,返回数据值 把搜集到的信息分类存储,返回给main
model analysing 分析main函数赋予的数据值,选取对应的情景模式 选择mute standard outdoor vibration 中一个传入值
mute 设置无铃声、无振动 设置静音模式
standard 设置有铃声、无振动 设置标准模式
outdoor 设置有铃声、有振动 设置户外模式
vibration 设置无铃声、有振动 设置振动模式

3.2   开发
开发过程中主要分为以下过程:
1. 模块基本功能实现
在该阶段,团队队员进行分工,独立编写模块。由队长搭建模块架构,确定模块之间相互传递数据时的数据结构定义以及各模块函数命名等。规定各模块输入值和预期输出值。
2. 模块整合
按照主函数的结构安排,插入各模块的功能函数调用部分。对变量、结构体等进行初步检查,防止同名变量的影响。
3. 测试驱动
可以全部团队的人员(团队人数在3-4人时)加入测试设计和代码修改的过程中,避免忽略细节,同时也可以避免沟通不畅带来的不必要的麻烦。
对于不同的环境输入,进行运行过程和结果测试。
测试的典型环境选取、环境特点和测试内容表示如表2。
表2  测试的典型环境、环境特点和测试内容

典型环境 环境特点 测试内容
图书馆、自习室等 基本安静,避免打扰 静音模式
会场、上课时间等 有扩音设备,需要安静 振动模式
商场、操场等 嘈杂,需要声音振动提示 户外模式
默认 其他通常状态 标准模式
使用语句覆盖测试、分支覆盖测试、条件覆盖测试、谓词覆盖测试、路径覆盖测试、边界值测试、特殊值测试等单元测试方法,对代码进行测试和修改。消除代码错误,完善代码实现功能。
3.3   应用经验总结
1. 个人创新
 为实现新技术的突破,解决遭遇到的许多新挑战、新困难,团队中的每一个人都需要创新意识。
2. 统一与一致
    只有和所在团队规定的格式一致时,才能方便地对其他人的代码的理解。
3. 减少文档
对于小规模团队而言,直接的交流和沟通才是最有效的。
4. 民主和荣辱与共
参考文献(References)
 [1]  朱少民,左智 软件过程管理[M] 清华大学出版社 2007.4
 [2]  易金刚 极限编程理论的研究[J] 计算机时代 2010年第6期(1-2)
 [3]  B.Kent. Test-Driven Development:By Example[M]. Pearson Education,Inc. 2003
 [4]  F.Michael. Working Effectively with Legancy Code[M]. Prentice Hall,Inc. 2004.10
 [5]  F. Martin. Refactoring:Improving the Design of Existing Code[M]. Pearson Education,Inc. 2003.8