敏捷软件方法的学习辅助管理系统设计 第2页

敏捷软件方法的学习辅助管理系统设计 第2页
 课题研究意义
敏捷软件开发方法[5][6]正是在这种形势下应运而生的,敏捷方法没有严格的过程控制,过程比较灵活。相对于前面的重型软件开发方法,敏捷开发方法可称为轻型软件开发方法,主要是解决需求发生多变的问题。此外,敏捷软件开发对测试极端重视[7],并将其作为开发的基础,这可以解决传统方法开发过程中后期测试弊端过多这一问题,它可将问题消灭于软件开发的早期阶段。现在的社会是一个不断变革、需求多变的社会,对于那些具有需求快速变化、动荡无序的问题敏捷开发方法无疑是最适合的[8]。
由于现在已有很多文献资料对敏捷软件方法做了介绍,且有资料[5]显示,敏捷软件方法已经受到广泛的应用,前景广阔。因此,本人想用敏捷软件方法开发一个管理文献及读书笔记功能的学习辅助管理系统。希望能够通过本学习辅助管理系统能够对敏捷软件开发方法进行一些实证研究。并且,通过该系统能有效地把参考文献及自己的读书笔记管理起来。利用本系统可以对存储的参考文献和自己所写的笔记进行排列整理、查询及分析,还可以看出相关文献之间的相互引用关系。可以使得客户通过对参考文献的操作,直接产生新的灵感甚至是新的课题,间接的发挥了参考文献的巨大作用。因此,本课题研究具有相当大的现实意义。
1.3 敏捷软件开发方法的国内外研究现状
对于在软件开发技术研究的过程中,传统的软件开发方法[1]严格遵循预先计划的需求、分析、设计、编码、测试的步骤顺序执行。步骤及成果作为衡量进度的方法,它对于软件生命周期的阶段划分,有利于人们研究每一个阶段的规律并改进开发手段。然而问题不久就暴露出来,它缺乏灵活性,开发阶段的严格分级导致执行的自由度降低,并且传统开发方法在需求不明确以及在项目进行的过程当中出现变化的情况下基本上是不可行的,因为这将可能导致直到软件开发完成时才发现所开发的软件并非用户所需要的,此时必将付出高额的代价才能纠正这一偏差。
针对这种情况,敏捷开发方法被提出来。从那时起,“敏捷”这个词汇就多次出现在欧美国家的许多学术文献中,文献[4]-[7]就什么是敏捷及敏捷软件方法给出了详细的解答。为了避免在什么样的过程是敏捷的问题上引起混淆,在2001年初,一批软件业界专家聚集在一起,就什么是敏捷达成一致意见,并研讨软件过程未来发展的趋势,这次会议的成果之一就是成立了敏捷联盟。在随后的几个月中,他们创建了一份价值观声明,也就是敏捷联盟宣言(The Manifesto of the Agile Alliance)。文献[6]就敏捷联盟及敏捷联盟宣言做了详细的介绍,并概括了一些可以让软件开发团队具有快速工作和响应变化能力的价值观和准则。
敏捷编程崭露头角还得益于IT行业的惨痛历史:软件项目失败、成本超支,以及业务人员因而对传统的IT设计和开发方法,即瀑布方法的不满意。据敏捷联盟和Version One在2006年开展的《敏捷开发状况》调查显示[8]:只有29%的传统项目“有点成功”或者“非常成功”。反过来,调查对象称,获得这种成功的敏捷项目多达81%。敏捷开发团队编写项目开展过程中的“用户故事”,取代了许多传统项目中的需求,这些故事详细描述了业务功能的改进、技术、成功以及难题,是传达业务需要的主要机制。文献[8]中显示,美国一家软件公司推出的项目中,每个瀑布项目平均有大约100个缺陷,而敏捷项目平均只有0到2个缺陷。敏捷软件开发技术在国外已经成为了一项相当成熟的技术。文献[8]中又有调查报告指出,ThoughtWorks公司(1993年在美国成立)服务过的许多财富500强企业,很多项目都采用了敏捷式开发。印度的许多软件公司也已经开始使用敏捷开发的方法。
敏捷开发技术近些年来在国内也取得了很大的发展,现在每年都举行一次由ThoughtWorks公司主办的敏捷中国开发者大会,大会的宗旨就是致力于推广敏捷开发技术。近些年来中国软件外包业取得了巨大的发展,对软件交付速度的追求也促进了敏捷式开发方法的流行。因为使用传统的方法时,开发的速度、成本和质量是个相互制约的因素,而先进的敏捷软件开发方法可以做到这三个因素很好的兼顾。
1.4本文研究的主要内容、目标和方法
1.4.1研究的主要内容
研究敏捷软件方法中的迭代开发[4][5]、测试用例、测试驱动[9]-[11]和重构等技术以及设计模式的应用。迭代的思路是敏捷软件方法的核心价值之一,通过一系列的迭代来完成软件开发。早期的迭代重点强调获取需求、分析和设计,后期的迭代重点强调实现和测试。敏捷软件方法强调测试先行,改变传统的先编码后测试的习惯。重构是在适当的时机(通常是实现功能的前后),在不改变模块功能的前提下对模块代码加以更改,以简化、优化设计,代码重构成功的标志是测试通过。但是测试驱动也有不足,缺点就是在前期过少的考虑整个系统框架,过多的强调了先测试后编码的原则,导致后来增加了重构的难度。通过测试驱动、重构与设计模式相结合就可以解决测试驱动前期开发对系统结构设计不足的问题,从而更加高效地进行测试驱动开发,并能使得修改朝着有序的方向进行,为以后的系统重构打下良好的基础。其中文献[11]就设计模式的相关知识及具体应用作了详细的介绍。最后通过将敏捷软件开发方法和学习辅助管理系统联系起来,对敏捷软件开发方法的具体应用做一些实证研究。
1.4.2研究目标
研究目标是利用敏捷软件方法开发出实用的学习辅助管理系统,重点是研究敏捷软件方法在实践中的具体应用,通过迭代开发、测试用例、测试驱动和重构等敏捷开发技术来与传统开发方法相比较,验证敏捷开发方法的优越性。
1.4.3研究方法
采取敏捷软件开发方法中极限编程(XP)方法中的的迭代开发,测试驱动,重构及设计模式等技术,并利用UML工具来进行系统的需求,设计工作。重点是测试驱动和UML的应用。

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有