软件工程导论 极限编程和普通编程作比较

这几天复习软件工程导论

与传统的开发过程不同,极限编程的核心活动体现在需求→测试→编码→设计过程中,因此对工作环境、需求分析、设计、编程、测试、发布等提出了新的思路和要求。

1、工作环境:XP要求每个参加项目开发的人都担任一个角色(项目经理、项目监督人等),并履行相应的权利和义务。所有的人都在一个开放式的开发环境中工作,最好是在同一个大房间中工作,随时讨论问题,强调每周40小时工作制,不加班。

2、需求分析:客户被纳入开发队伍。由于客户不具备计算机专业知识,无法用专业语言明确描述需求,所以开发人员和客户一起,用讲故事的方式把需求表达出来,这种故事被称为user story,即用user story表示需求。开发人员根据经验将许多user story 组合起来,或将其进行分解,最终记录在story card的小卡片上,这些user story将陆续被程序员在各个小的周期内,按照商业价值、开发风险的优先顺序逐个开发。

3、设计:XP强调简单设计(simple design),即用最简单的办法实现每个小需求。在XP中,没有那种传统开发模式中一次性的、针对所有需求的总体设计,这些设计只要能够满足系统客户在当前的需求就可以了,不需要考虑将来可能的变化,整个设计过程包括在整个螺旋式发展的项目中。

4、编程:成对编程(pair programming)是极限编程的一大特色,即两个人一起使用同一个屏幕,同一个键盘,共同完成一段程序的编码。成对编程的好处是,可以提高纪律性,更容易写出优质的代码,同时保证编程的流畅进行,更重要的是,能够使得整个团队更方便地分享编程经验,有利于新手的快速成长。

5、测试:在极限编程中,测试是非常重要的一个环节,它首先要求在开始写程序之前先写好测试,其目的是为了提高软件的可测试性。XP要求开发人员经常把开发好的模块整合到一起,每次整合后都要运行单元测试;做任何的代码复核和修改,都要运行单元测试;发现了漏洞,就要增加相应的测试。除了单元测试之外,还要进行整合测试、功能测试、负荷测试和系统测试等。所有这些测试是极限编程开发过程中最重要的文档之一,也是最终交付给用户的内容之一。

6、发布:XP要求按照开发计划,每经过一个开发周期,软件就发布一次,而不是像传统的开发方法那样,整个软件开发完成后才发布。在一个开发周期内,开发人员要求客户选择最有价值的user story作为未来一两个星期的开发内容,一个开发周期完成后,提交给客户的系统虽然不是最终的产品,但它已经实现了几个客户认为是最重要的story,开发人员将逐步在其基础上增加新的模块,而且在发布前软件都经过单元测试和集成测试,因此,虽然软件并不完备,但是,发布的软件客户还是可以真正使用的。

原文地址:https://www.cnblogs.com/frankzone/p/8025199.html