极限编程在Android开发过程中的应用

时间:2022-05-25 03:59:25

极限编程在Android开发过程中的应用

刘昭,1980年8月,汉族,男,山西省大同市,硕士,工程师(中级),计算机软件

摘 要:基于谷歌Android智能操作系统平台,通过一种软件工程开发模式中非常流行的、轻量级的、高效的、科学的软件开发方案 ― 极限编程开发模式,并通过Java迭代重构开发方法来满足逐渐变化的用户需求,完成Android APK(Android Package)的开发工作。本文对极限编程开发模式的核心思想、极限编程软件(APK)实施准则、 极限编程软件(APK)实施要领、 极限编程软件(APK)开发流程进行讨论。

关键词: 极限编程 Android APK开发 软件工程

中图分类号:TP3 文献标识码:A 文章编号:1672-3791(2015)01(a)-0000-00

随着移动互联网络的兴起,和以Android操作系统为平台的智能设备活跃用户不断增多, 越来越多的公司和开发者开始关注移动终端的用户体验,并积极拓展移动终端的功能提升UI界面的交互,这些需求带来大量基于Android操作系统的软件开发工作,以极限编程开发模式可以高效实现完成这件工作。

1 极限编程核心思想

1996年Kent Beck提出了极限编程(Extreme Programming,简称XP)。这种软件开发方法高效、轻量、有柔性、可预测、风险低、科学且充满乐趣,其应对需求的变化是通过迭代周期短来实现的[1]。Kent Beck建议,在进度紧、需求变化大、规模小且质量要求严格的项目中使用极限编程[2]。其核心思想有以下几点:

沟通:设计者与Android终端用户、设计者与开发者间沟通不畅,由此产生了项目开发中90%的问题,所以,在极限编程中沟通使必须的。

极简:编程尽量保留简单的代码,只要能正常工作就行。Kent Beck表示,编一个复杂的系统,还不如设计一个简单且又能满足需要的系统,因为有可能永远都不会发生预先所考虑的情况。

反馈:对用户反馈的意见要尽快获取,且越详细越好,这样开发出来的成果才能更好的满足用户的需求。

2 极限编程软件(APK)实施准则

极限编程核心思想衍生的基本准则使极限编程的开发规范化。

(1)快速反馈:反馈要尽可能的早,使Java编程人员在主要的Android 软件功能上能精力集中。

(2)假设简单性:注意力集中在简单设计的实现上,并结合燃烧图加以完成。

(3)提倡更改:“拥抱变化”是极限编程需强调的,反馈及时,就可对反馈结果采取相应的措施。

3 极限编程软件(APK)实施要领

(1) 里程碑:根据Google Android周期,决定功能计划的里程碑。

(2) 原子:TG团队以最短时间为周期迭代开发、增量方式新版本。

(3) 统一描述语言:通过统一描述开发人力、用户和项目管理人力语言来描述功能。

(4) 极简设计:只完成当前功能,复用Android SDK及Java本身的API。

(5) 测试驱动:完成CUnit/JUnit等测试用例开发,再进行编码之后进行白盒测试。

(6) 重构:利用Java的重构思想完成架构变化,同时通过重构删除冗余代码逻辑,简化系统依赖,增加代码设计的灵活性。

(7) 结对编程:共用开发设备,一人对代码进行编写,另一人负责评审以确保代码正确。

(8) 代码共享:利用Git/Perforce等工具管理整个团队的代码,团队成员都可以更改。

(9) 代码集成:注重Main branch 与Trunk branch的集成时机,以原子为思想进行集成,构造APK,自动发起检查APK版本的所有测试工作。

4 极限编程软件(APK)的实施开发流程

与传统的软件工程方法相同,Android极限编程也分为计划、设计、编码和测试四个步骤,不过具体操作方面,明显不同于传统的软件工程方法[3]。用户是Android极限编程项目的起点。APK的功能描述由用户定义,并提供测试用例。据此,若干个迭代周期可由开发人员来组织,当前用户认为最重要的APK功能是每个迭代周期的集中开发工作。一个可用的小版本在每一个迭代周期结束后提供给用户,用户并以此作为反馈依据,根据用户的反馈意见,相应的变化和改进在下一个迭代周期中再进行。具体来说:

(1)倾听:用户、设计人力,开发人力,通过头脑风暴,使得三方人员可以彻底沟通需求。

(2)设计:整个APK的设计工作不能是自顶向下的,其有着不断变化的需求。所以,设计不是一劳永逸的过程,而是一个长期性的工作。把当前需要的功能放到APK中来,就是设计的核心思想。

(3)编码:针对Android 最新版本的各个API能力,完成从C层的驱动,C++中间件及Java上层编码工作。

(4)测试:投入测试人力,可以让开发人力有更长的时间进行Bug修正。随着时间的变化,APK的稳定性会不断增加。测试有两种,即白盒测试和黑盒测试。白盒测试是编程人员的测试用例,使程序能够正常运行;另一种由测试人力或是用户指定编写的功能测试,是为了保证APK与用户需求及期望的运行方式一致。

在实践时,开发人员往往只重视眼前需求,对未来需求的变动所带来的项目风险和开销则通过Java的重构来适应,这是一个非常关键的假设。解决用户当前的问题是通过高效率和高质量来完成的,在满足用户未来需求方面付出的代价最小且灵活性最大,在平衡短期和长期之间,极限编程的安排比较巧妙[4]。

5 结束语

与用户交流、正确理解需求、简单设计、注重测试、迭代编程,是Android极限编程开发方法的核心。它使未来需求的设计弱化了,软件开发的速度也加快了,并开发出满足用户需求的高质量软件。

参考文献

[1] Kent Beck,雷剑文译.解析极限编程[M].北京:机械工业出版社,2011.

[2] 谷秀岩,关于极限编程的理论研究[J].计算机与网络,2004.12:93-95.

[3] Robert C.Marti.敏捷软件开发:原则、模式与实践[M],北京:清华大学出版社,2003.

[4] Newkirk,袁国忠译.极限编程实践[M],北京:人民邮电出版社,2002.

上一篇:关于开关磁阻电机调速系统的软件架构设计 下一篇:现代职业教育体系构建中的校园文化建设探析