1、本科毕业论文(科研训练、毕业设计)题 目:敏捷方法研究及其在中小型Web项目中的应用姓 名:学 院: 软件学院专 业: 软件工程年 级:学 号:指导教师(校内): 职称: 指导教师(校外): 职称: 年 月 日摘要敏捷软件开发方法近年来不管在学术界或在软件工程界都引起越来越多的注意,极限编程是其中最流行的一种。本文将通过在该公司开发的三个Web项目,展示敏捷方法在该公司的应用,并分析敏捷方法在提高软件质量,进行过程改进以及对开发人员个人提高的作用。我们以极限编程作为开发过程基线,根据敏捷方法的原则,把软件开发分为项目,发布,迭代,故事,任务等几个层 , 人的 我们 的 ,提 项目,迭代,故事,
2、任务的 ,作为开发 的工作流程, ,项目 ,工程师等多个 进行管。我们在根据 ,在原 极限编程Stand-up Meeting的基 ,提 一个Stand-down Meeting。 ,我们 极限编程对故事/任务的限,研发并应用的AgilePlanner,对工作流程的currency1个分进行管 , “文的fi。fl ,本文我们对应用 对编程 的一”,并提 是导 对方在其 工作的应用 三人以 编程不行的原,个论 对编程用的 题。fl ,本文通过三个Web项目的故事 任务,展示用极限编程方法进行软件开发的过程,并通过三个项目的开发 据来极限编程方法对开发 提高的进。 管 并 极限编程 提 的, 训
3、, 我们本 敏捷应 的 ,在三个项目的开发中 应用 ,并 中 一 示。 示,将在最进行一个 。关键词 极限编程 对编程 开发A Study of Agile Methods and Their Application in Web ProjectsAbstractIn recent years, agile software development methods have been arousing more and more attentionfrom both academic and software engineering domain, among which extreme pr
4、ogramming is the mostpopular one. This paper illustrates the application of extreme programming in three web applicationprojects, and analyzes extreme programmings influence in improving software quality, developmentprocess and assisting personal development.With Extreme Programming as baseline, acc
5、ording to principles of Agile, we manage the process inlevels of project, release, iteration, story and task, and propose the left cycles of each of them,providing customers, projects managers and engineers with insight of the developed project. Out of theneed of practice, we invented a stand-down m
6、eeting besides stand-up meeting of ExtremeProgramming. Breaking the convention of paper story/task cards proposed by classic ExtremeProgramming, we developed AgilePlanner to enable the management of different aspects of theworkflow and digitization of story/task cards. This paper then tries to intro
7、duce some rules we had toapply test driven development and pair programming and proposes that conflict may lead to theinfeasibility of triple programming and the application of pairing in other work. Then this paper uses the stories and tasks of the three projects to illustrate the software developm
8、entprocess using extreme programming methods, and shows the improvement of the team duringdevelopment process by velocity data of the three projects. Striving to be Agile, which meansresponding to changes, we adopted some practices, such training, based on the need from reality, inspite that Extreme
9、 Programming does not value this. These practices are summarized in the end.Keywords: Extreme Programming; Pair Programming; Test Driven Development目录一 论 11.1 题 11.2 研究“ 31.3 在 题 本文 41.4 论文 5极限编程开发 AgilePlanner 62.1 的 软件开发项目 62.2 近 的迭代 82.3 用 的故事 112.4 程 员的工作任务 132.5 开发(TDD) 152.5.1 是软件 .152.5.2 的种
10、.162.5.3 .162.5.4 工具支持.182.6 对编程 192.7 小 21三 敏捷方法在三个Web项目的应用 223.1 引言 223.2 “敏捷计者”(AP)项目 223.2.1 AP项目迭代10.233.2.2 AP项目迭代11.243.3 “喜爱乐”(CIY)项目 253.3.1 CIY项目迭代1.263.3.2 CIY项目迭代2.263.3.3 CIY项目迭代3.263.3.4 CIY项目迭代4.273.3.5 CIY项目迭代5.273.3.6 任务列表以CIY项目58号故事为例.273.4 “谣言”(Scuttlebutt)项目 283.5 小 29四 开发过程的分析 示
11、 314.1 分析 314.2 示 32五 总 展望 365.1 总 365.2 进一步工作37参考文献 38谢语40Content TableChapter 1 Introduction .11.1 Background . 11.2 Current Research .31.3 Problems and the Focus of the Paper .41.4 Article Structure .5Chapter 2 The Framework of XP Development Process and AgilePlanner . 62.1 Global Scope-Project .
12、 62.2 Recent Plan-Iteration. 82.3 Needed Feature of the System-Story . 112.4 Programmers Job-Task .132.5 Test Driven Development . 152.5.1 What is Software Testing.152.5.2 Types of Test. 162.5.3 Test Driven. 162.5.4 Enabling Tools . 182.6 Pair Programming. 192.7 Summary .21Chapter 3 The Application
13、of Agile Methods in Three Web Projects .223.1 Introduction. 223.2 AP Project . 223.2.1 AP Project Iteration 10 .233.2.2 AP Project Iteration 11 .243.3 CIY Project . 253.3.1 CIY Project Iteration 1 .263.3.2 CIY Project Iteration 2 .263.3.3 CIY Project Iteration 3 .263.3.4 CIY Project Iteration 4 .271
14、3.3.5 CIY Project Iteration 5 .273.3.6 Task ListThe Example of CIY Story 58.273.4 Scuttlebutt Project . 283.5 Summary .29Chapter 4 The Analysis to the Process and Inspirations .304.1 Analysis.304.2 Inspirations .31Chapter 5 Conclusion and Future Works. 355.1 Conclusion . 355.2 Future Works. 36Refere
15、nces. 37Acknowledgements. 492一 论第一章 绪论1.1 题过去的几年中,业界 “一种新风格的软件开发方法学,人们将 称为敏捷软件开发。敏捷软件开发以其快响应 求而著称。敏捷软件开发是一种 施软件工程项目的概念模型。敏捷软件开发 许多方法, 多 敏捷方法为减少风险,都在短的间盒(short time boxes)里进行软件开发。 间盒又称迭代, 们一般都只 一四个星 , 包含发布一个 量 的 任务:计、 求分析、设计、编码、 、文。在很多情况下,软件在每个迭代之发布。 敏捷方法强调 交流,特别是 对 交流,而不是书 文。 对于完成软件开发必须的人员都在 一间 厅里工作
16、。人员包括开发人员和 。 ,敏捷方法强调利用运行的软件作为进 的量 ,造成敏捷方法相对于其 方法来,产 常少的文。 在2001年,17位轻量级方法学(light-weight methodologies)的顶级人物来 美国犹他州的雪鸟滑雪场,讨论 何更轻,更快,更人本 (lighter, faster, morepeople-centric)开发软件。他们发表“敏捷宣言”,并且被广泛 认为是敏捷开发的”义1:我们正通过 和帮助他人 ,揭示更好的软件开发方法。我们的价值观是:人 交流 于过程 工具;工作的软件 于包罗万象的文;作 于 谈判;应 于循蹈矩;就是,虽然右边的项具 价值, 我们认为左边
17、的项具 更 的价值。敏捷方法在过去一直被认为只 小型开发 开发小型项目, 最近开始 型公司探 用敏捷方法开发 型项目2。敏捷方法是一 开发过程,而不是一个 一的软件开发方 。极限编程是其中最流行的一种。 1敏捷方法研究及其在中小型 项目中的应用极限编程软件开发方法的一个分支, 基于 、交流、 的价值观,用 的 把 个 在一起,用 的 个 的位 ,并且调 来应他们 特的过程3。其 敏捷方法一 ,极限编程 方法学的最 别在于 更 注 应 (adaptability) (predictability)。极限编程的支持者将fl 不 的 求 fi成是软件开发项目 然的,不 的和 的方 。他们相 在项目
18、的任何 应 求的 fi 在项目的 ”义 求并 去 求fi更 ,而且是更好的方 。极限编程认 五 价值4:(1) 通。项目中发“的 题currency1currency1是于开发人员 设计人员、设计人员 之间通不“造成的。极限编程(XP)项目中 通是不的。(2) 。XP认为应该 量持代码的 ,只 工作就以。Kent Bent指 , 其 “一个fifl的,不 设计一个 目 的、 的,为 考的情况 都不发 。(3) 。 快 用 的 ,并且越越好, 开发人员 的成员” 的 。(4) 。是最 的价值。为XP强调 “ fi”,对于用的 , 于对 的代码进行改, 的代码。为价值,极限编程为项目 和开发人员提 一列 , 包括( 1)4: (1) 计:通过 业 及 术 计,快”下一个发布的。事 计,则更新计。(2) 短发布: 将 的 成产 ,在很短的 间内发布新的 本。(3) :用一个 、 的故事来指导 个的开发,个故事 个 何工作。(4) 设计 :在任何 ,将以最 的方设计。多 的fifl 一 发“, 被 。2