摘 要:摘要:传统的软件开发是一个自顶向下,逐步求精的过程,这种开发模式的优点是易于管理和控制,比较适合大中型软件的开发。而在现代的软件开发中,中小型软件占到了大多数,对于这些软件为了使用户的需求得到快速而准确的满足,尽量缩短软件开发的周期,人们推出了敏捷软件开发方法以之相适应,在敏捷方法中最著名的就是极限编程。
关键词:关键词:软件工程;敏捷开发;极限编程
中图分类号:TP39 文献标识码:A 文章编号:
0引言
传统的软件开发要求开发人员尽早地确定用户的需求。但在软件开发实践中,软件开发初期定义的需求常常并不能完全满足客户的实际要求【1】。系统只能根据客户的要求不断进行修改,这将会延长软件开发周期,致使开发成本上升,风险加大。自上世纪90年代后期以来,部分软件开发人员逐步把软件开发的灵活性加入到软件开发过程中,并提出了一系列新的软件开发方法,这就是敏捷方法的雏形,这种方法能够在软件开发中对未来可能出现的变化和不确定性做出全面的反应。
1.敏捷方法概述
2001年敏捷联盟协会的Kent Beck和其他16位知名软件开发者、软件工程作家以及软件咨询师共同签署了一份“敏捷软件开发宣言”。其中最重要的部分就是对一些与会者一致同意的软件开发价值观的表述:人和交互重于过程和工具;可以工作的软件重于求全责备的文档;客户协作重于合同谈判;随时应对变化重于循规蹈矩。
敏捷方法是来源于实践的方法,可在非常短的迭代周期内应对需求的不断变化,并且提供了根据需求变化快速地做出反应的软件项目管理和开发、维护的思路【2】。敏捷方法的特性有:程序员团队与业务专家之间要紧密协作;程序员与客户要进行面对面的沟通;不断交付新的软件版本;整个开发队伍要紧凑且能够进行自我组织;要能适应当需求变化时代码要重写这种情况;更注重软件开发中人的作用。总之,敏捷方法就是强调以人为核心的、采用迭代、循序渐进方式进行软件开发的方法。在软件开发过程中,敏捷方法将整个项目分割成几个能独立运行的小项目,由团队成员分别完成编码、测试,在此过程中软件将一直处于可调试状态。
2.敏捷与传统软件开发的比较
在传统的软件工程学中,一个软件开发的周期分成可行性分析、需求分析、概要设计、详细设计、编码、测试和维护等7个阶段,软件开发的过程如同瀑布流水一样,逐级向下。也就是说只有当前一个任务完成后才能进行下一个阶段的任务。传统的软件开发与敏捷开发比较如下:
(1)传统软件开发方法规定每个阶段由不同的人员来完成。敏捷开发则是从分析到设计都是由团队成员共同承担。
(2)传统软件开发要求在需求分析阶段分析员要明确用户需求,为下一步进行正确的开发做准备。敏捷方法可以允许对原有需求做更改或变化。
(3)传统软件开发要求在软件开发的每一阶段必须有相应的文档,这些文档将作为下一阶段工作的依据。敏捷方法在了解了系统需求之后就可以着手进行开发。
(4)传统软件开发在了解客户的需求之后,一般客户就不再参与了。而敏捷方法在软件整个开发过程中都要求客户协同参与。
(5)传统软件开发要求系统集成在一个独立的阶段完成。在敏捷方法软件可随时进行系统集成。
(6)传统软件开发只有到系统开发的最后阶段才能得到可执行产品,而敏捷方法在系统的分析阶段就能看到软件的雏形。
3. 敏捷开发中的XP方法
当前软件开发的产品多为中小型规模的软件,像各种MIS(管理信息系统)、过程控制系统等等。敏捷方法就是为了适用中小规模系统的开发而诞生的,它又包含多种不同模型,如:Extreme Programming (XP)、Scrum、Crystal Methodologies、Feature Driven Development (FDD)、Dynamic Systems Development Methodology(DSDM) 、Adaptive Software Development(ASD) 、Pragmatic Programming等【3】,其中XP(极限编程)是最具有代表性的一种方法。
极限编程是一个复杂而有序的、基于实践的方法,它通过非常短的迭代周期来应对需求的变化。它是一种轻量、高效、低风险、柔性、可预测、科学软件开发方式【4】。极限编程提出了四种价值观:
(1)简单:不预先做规划,而是依据客户给出的需求直接做设计。
(2)交流:强调团队成员之间口头交流、规范交流。
(3)反馈:积极与客户交流沟通,承认系统变更的客观性。
(4)勇气:要有重新设计的思想准备和在必要时进行开发的信心。
极限编程特别强调团队成员与客户的交流,要能及时将反馈结果应用在产品上,在开发中总是以简单的方式来考虑实际问题,有意识地培养开发团队成员之间的配合,将合作的优势发挥到最大,最终创造出令客户满意的软件产品。
4.敏捷开发在学生宿舍管理系统中的应用
基于校园网环境的学生宿舍管理系统以学生处宿管中心的管理工作为背景,实现了学生宿舍的寝室管理、班级管理、用户管理、查询功能、留言版管理等功能。以下结合具体开发过程,讨论一下XP模型在中小型系统中的应用。
4.1与客户沟通,制定开发计划
在软件开发过程中,团队成员首先与客户代表沟通,并从用户的角度出发考虑确定系统需求,制定系统的大致功能模块。学生宿舍管理系统计划平均每两周进行一次小型发布,共三个周期。第一个周期完成寝室管理、班级管理和用户管理这三个模块;第二个周期完成查询功能、留言版管理这两个模块;第三个周期完成系统前台的页面的显示、浏览、查询功能。每进行一次小型发布都要产生一个版本,并同时与用户进行测试反馈,不断征求用户的意见,以便在下一个版本中及时修改与调整。
4.2 结对编程
结对编程是XP方法中的一个重要开发原则,它要求两个人在同一电脑上共同完成同一功能模块,通常是团队成员中的一新一老进行搭配,老成员负责写代码,新成员负责代码走查、系统测试,以保证代码的正确性和可读性。
4.3团队共有代码
在软件开发中,开发团队始终坚持“代码集体所有”,所有成员具有相同的阅读权限,每个成员不仅清楚自己所编写的代码,也要了解其它队员代码编写情况,同时每个成员都有更改代码的权利,任何问题的出现都由全团队成员一起讨论、修改,这样,即使因某个团队成员的离开也不会影响到整个项目的开发进程。
4.4持续集成、测试
在软件开发中,所有成员每天都不断把代码更新到共享库,每产生一个新的版本都要进行一次系统集成并邀请用户一起进行测试,在这过程中仍然要注意客户的反馈意见,要及时变更部分需求,积极进行编码测试,保证开发的质量和避免风险的发生。
整个系统经过6周的迭代开发,到最后一个版本发布时,整个系统已在校园网上稳定运行了。本系统在开发过程中充分注意了安全性、易用性及灵活性,客户对系统所提出的要求均按质按量全部实现。
5.结语
在系统实践中,许多中小型项目开发时间短,需求分析多变,相对于传统的软件开发方法,敏捷开发则具有较多优势,采用该方法不仅可以提高系统的开发效率和用户的满意度,而且还会给我们带来重大的经济和社会效益。
参考文献:
[1] 马鹏烜. 基于XP的学生作业管理系统实践研究[J],现代计算机,2012(3):74~76
[2] 栾好利. 敏捷软件开发应用研究[J],沈阳工程学院学报(自然科学版),2010,6(2):163~168
[3] 高志升.改造敏捷模型在高校软件开发中的实践[J],电脑知识与技术,2010,6(7) :1772~1780
[4] 黄志明.敏捷开发-XP在管理信息系统中实践与研究[J],电脑知识与技术,2009,15(10) :2622~2624
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。 返回电子论文列表