Chinaunix首页 | 论坛 | 博客
  • 博客访问: 669848
  • 博文数量: 96
  • 博客积分: 2005
  • 博客等级: 上尉
  • 技术积分: 1061
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-21 13:59
文章分类

全部博文(96)

文章存档

2013年(11)

2012年(30)

2011年(55)

分类: IT职场

2011-12-07 14:32:44

13   XP方法

敏捷方法是近几年兴起的一种轻量级的开发方法,它强调适应性而非预测性、强调以人为中心,而不以流程为中心,以及对变化的适应和对人性的关注,其特点是轻载、基于时间、Just Enough、并行并基于构件的软件过程。在所有的敏捷方法中,XP(eXtreme Programming)方法是最引人注目的一种轻型开发方法。它规定了一组核心价值和方法,消除了大多数重量型过程的不必要产物,建立了一个渐进型开发过程。该方法将开发阶段的4个活动(分析、设计、编码和测试)混合在一起,在全过程中采用迭代增量开发、反馈修正和反复测试。它把软件生命周期划分为用户故事、体系结构、发布计划、交互、接受测试和小型发布6个阶段,采用这种开发模型的软件过程如图1-15所示。

 

图1-15   采用XP方法的软件过程

 

XP模型通过对传统软件开发的标准方法进行重新审视,提出了由一组规则组成的一些简便易行的过程。由于这些规则是通过在实践中观察使软件高效或缓慢的因素而得出的,因此它既考虑了保持开发人员的活力和创造性,又考虑了开发过程的有组织、有重点和持续性。XP模型是面向客户的开发模型,重点强调用户的满意程度。开发过程中对需求改变的适应能力较高,即使在开发的后期,也可较高程度地适应用户的改变。

XP开发模型与传统模型相比具有很大的不同,其核心思想是交流(Communication)、简单(Simplicity)、反馈(Feedback)和进取(Aggressiveness)。XP开发小组不仅包括开发人员,还包括管理人员和客户。该模型强调小组内成员之间要经常进行交流,在尽量保证质量可以运行的前提下力求过程和代码的简单化;来自客户、开发人员和最终用户的具体反馈意见可以提供更多的机会来调整设计,保证把握正确的开发方向;进取则包含于上述3个原则中。

XP开发方法中有许多新思路,如采用“用户故事”代替传统模型中的需求分析,“用户故事”由用户用自己领域中的词汇并且不考虑任何技术细节准确地表达自己的需求。XP模型的优点如下。

① 采用简单计划策略,不需要长期计划和复杂模型,开发周期短。

② 在全过程采用迭代增量开发、反馈修正和反复测试的方法,软件质量有保证。

③ 能够适应用户经常变化的需求,提供用户满意的高质量软件。

 

14   第4代技术

第4代技术(4GT)包含一系列软件工具,它们都具有一个共同点,即能使软件工程师在较高级别上规约软件的某些特征,然后根据开发者的规约自动生成源代码。毫无疑问,软件在越高级别上被规约就能越快速地构造出程序。软件工程的第4代技术模型集中于规约软件的能力,即使用特殊的语言形式或一种采用客户可以理解的术语描述待解决问题的图形符号体系。

与其他模型一样,第4代技术也是从需求收集开始的。理想情况下,客户能够描述出需求,而这些需求能被直接转换成可操作原型。但这是不现实的,客户可能不能完全确定需要什么,在规约已知的事实时可能出现二义性,因此其他模型中所描述的用户/开发者对话在第4代技术中仍然是一个必要的组成部分。

要将一个第4代技术实现变成最终产品,开发人员还必须进行彻底的测试、开发有意义的文档,并且同样要完成其他模型中同样要求的所有集成活动。此外,采用第4代技术开发的软件还必须使得维护能够被迅速完成的方式建造。

与其他所有软件过程模型一样,第4代技术模型也有其优点和缺点。其优点是缩短了软件开发时间,提高了建造软件的效率并为很多不同的应用领域提供了一种可行性途径和解决方案;其缺点是用工具生成的源代码可能是“低效”的,生成的大型软件的可维护性目前还令人怀疑并且在某些情况下可能需要更多的时间。

总之,第4代技术已经成为软件工程的一个重要方法。当与基于构件的开发方法结合起来后,可能成为软件开发的主流方法。

 

15   小结

软件工程是集成计算机软件开发的过程、方法和工具的学科,已经产生的一系列的软件工程过程模型各自有其优点和缺点,但是它们均有一系列共同的一般阶段。

软件过程模型发展经历了以下阶段。

① 以软件需求完全确定为前提的第1代软件过程模型,如瀑布模型等。这类开发模型的特点是软件需求在开发阶段已经被完全确定,将生命周期的各项活动依顺序固定,强调开发的阶段性;其缺点是开发后期要改正早期存在的问题需要付出很高的代价,用户需要等待较长时间才能够看到软件产品,增加了风险系数。并且如果在开发过程存在阻塞问题,则影响开发效率。

② 在开始阶段只能提供基本需求的渐进式开发模型,如螺旋模型和原型实现模型等。这类开发模型的特点是软件开发开始阶段只有基本的需求,软件开发过程的各个活动是迭代的。通过迭代过程实现软件的逐步演化,最终得到软件产品。在此引入了风险管理,采取早期预防措施,增加项目成功几率,提高软件质量;其缺点是由于需求的不完全性,从而为软件的总体设计带来了困难和削弱了产品设计的完整性,并要求对风险技能管理水平的高要求。

③ 以体系结构为基础的基于构件组装的开发模型,如基于构件的开发模型和基于体系结构的开发模型等。这类模型的特点是利用需求分析结果设计出软件的总体结构,通过基于构件的组装方法来构造软件系统。软件体系结构的出现使得软件的结构框架更清晰,有利于系统的设计、开发和维护。

综上所述,软件开发模型随着软件设计思想的改变而发展,经历了由最初以结构化程序设计思想为指导的瀑布模型等,到以面向对象思想为指导的喷泉模型等,到以构件开发思想为指导的基于体系结构的开发模型等,到现在的4GT技术。每次新的软件设计思想的突破都会出现新的软件开发过程模型,以达到提高软件的生产效率和质量为目标,提出新的解决方案。

阅读(2705) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~