毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

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

更新时间:2010-5-24:  来源:毕业论文
敏捷软件方法的学习辅助管理系统设计 第3页
第2章 敏捷软件开发方法与相关技术综述
2.1敏捷方法的特点
任何软件开发方法都有一个相应的价值系统(Value system),而价值系统的基础是对世界的信仰和对软件开发特点的认识,可以说是核心理念。
 敏捷开发方法的代表人之一Martin Fowler提出的Agile方法的核心理念:适应和以人为本。
1.敏捷方法基于适应而非预测
人们不可能在软件开发之前就能准备了解当时的需求,这点由Peter Wegner用数学的方法给出了严格的证明[27,28] 。所以传统软件开发方法在这方面不能满足需求及时变化的要求。而敏捷软件开发方法正是基于适应性的特点,通过快速、短迭代式的开发,不断产出和演化可运行软件,通过加强有关人员的信息交流等手段来提高反馈的速度、力度和准确型。
2.敏捷方法是以人为导向而非过程导向
软件开发中最重要的因素就是人,但是每个人的工作承受力都是有限的,任何超出人的正常工作承受力都会导致工作的失败,这一点在传统软件开发过程中较被忽视。敏捷方法认为,软件开发过程中应该要充分发挥软件人员的能动性和创造力。软件开发应该首先着眼于有用的可执行的软件,即先考虑商业目标,而不是为过程而过程。
敏捷方法还特别强调软件开发中相关人员间的交流,认为开发人员面对面的交流的成本要远远低于文档交流的成本。
2.2敏捷方法中的价值系统和指导原则
敏捷联盟提出了“四个价值”、“十二个指导原则”[1]
1.敏捷方法的四个价值:
    (1)较之于过程和工具,更注重人及其相互作用的价值。
(2)较之于无所不及的各类文档,更注重可运行的软件的价值。
(3)较之于合同谈判,更注重与客户合作的价值。
(4)较之于按计划行事,更注重响应需求变化的价值。
2.敏捷方法的指导原论文网http://www.youerw.com/  优文毕业论文http://www.youerw.com/ 求的变化(不管该变化出现在开发早期还是后期)。敏捷过程紧密围绕变化展开并利用变化来实现客户的竞争优势。
(3)以几周到几个月为周期,尽快、不断地交付可运行的软件供用户使用。
(4)在项目过程中,业务人员和开发人员最好能一起工作。
(5) 以积极向上的员工为中心建立项目组,给予他们所需的环境和支持,对他们的工作给予充分的信任。
(6)在项目组中,最有用、最有效的信息沟通手段是面对面的交谈。
(7)项目进度度量的首要依据是可运行的软件。
(8)敏捷过程高度重视可持续开发。项目发起者、开发者和用户应能始终保持步调一致。
(9)应时刻关注技术上的精益求精和设计的合理,这样能提高软件的快速应变力。
(10)简单化(尽可能减少不必要工作的艺术)是基本原则。
(11)最好的框架结构、需求和设计产生于自组织的项目组。
(12)项目组要定期对其运作方面进行反思,提出改进意见,并相应进行细调。
 此外,敏捷方法实施中一般采用面向对象技术(接口定义良好的其他开发技术也可)。另外还强调在开发中要有足够的工具(如配置管理工具、建模工具等)支持。
2.3敏捷开发具体方法介绍
敏捷方法是一组开发方法的统称,下面介绍几个典型的敏捷开发方法。通过以下几种方法的比较,本人决定采取其中的极限编程即(XP)方法。
2.3.1 XP(Extreme Programming)[3-9]
由Kent Beck 提出,是Agile 方法中最引人注目的一个,名称中Extreme 的含义是将好的开发实践(Practices)运用到极致。XP最初实践于1997年Crysler 公司的C3 项目(人员薪金管理),采用Smalltalk 语言开发,适用于10 人以下项目组、开发地点集中的场合,现已成为小组开发方法的一个典型,被业界广泛用于需求模糊和挥发性强的场合。XP 基于四个价值(values)提出了十二个核心实践(Practices):
1.XP方法的四个价值
    (l)交流(Communication):项目相关人员之间充分、多渠道(最好面对面)的沟通。
(2)简化(Simplicity):在系统可运转的前提下,做最简洁的工作;在开发中不断优化设计,时刻保持代码简洁、无冗余。
(3)反馈(Feedback):强调各种形式的反馈,如小交付、短迭代和先考虑测试再编码等。
(4)胆识(Courage):面对压力做正确的判断并敢于付诸行动,比如敢于丢弃设计不良的代码,疲惫时立即休息等。
2.XP方法的十二个核心实践
(l)工作团队(Whole Team):所有的小组成员应在同一个工作地点工作。成员中必须有一个用户代表(On-site User),由他/她来提出需求,确定开发优先级,把握开发的动向。通常还设一个“教练”(Coach)角色,来指导XP方法的实施及与外部的沟通协调等。小组每个成员都应围绕用户代表,充分贡献自己的技能。
(2)计划(Planning Game):包括交付计划和迭代(Iteration)计划两类,前者是在项目开始时对软件交付日期的粗略估计,后者是在每个迭代开始时对本次迭代的工作安排。二者都可在执行时调整,只不过迭代计划要更为具体和准确。
(3)系统比拟(Metaphor):系统比拟是待开发软件系统的一个形象化比喻,这个比喻必须是每个组员都熟悉的,它相当于一个粗略的软件体系结构(Architecture),使用户和开发人员建立一个一致的框架,从而指导开发的进行。
(4)小交付(Small release):经常交付可运行的、具有商业价值的小软件,供用户代表评估或最终使用。这里的“小”意味着软件模块能尽快(可在一个迭代内完成)、不断地交付。
(5)测试(testing):XP要求先开发测试用例(可自动执行)然后进行编码(testing thencoding),而且测试要不断进行,保证代码测试要100%通过。分两种测试:单元测试和验收测试(Acceptance test)。单元测试由开发人员负责,验收测试由用户代表负责。
(6)简洁设计(Simple Design):有两个含义:一是设计只考虑当前定义的功能而不考虑以后需求的变化,二是指该设计是完成目前功能所需的最简洁的设计,要简单易懂、没有冗余。
(7)结对开发(Pair Programming):开发人员两人结一对,在一台机

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

敏捷软件方法的学习辅助管理系统设计 第3页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。