XP方法与传统软件工程方法的比较与研究

更新时间:2024-05-22 04:10:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

XP方法与传统软件工程方法的比较与研究1

[摘 要] 软件工程是一类工程,在近年来的计算机领域中的地位越来越重要,不仅大型项目离不开它,就是一般的中小型软件开发项目也必须运用它的概念,原则和方法。本文从一个角度对传统软件工程方法与XP方法进行了比较和研究。 [关键词] 传统软件工程方法 , XP方法, 结构化

一、 引言

当计算机硬件有了飞速发展之后,各种应用领域对软件系统提出了更高的要求。传统系统分析与设计方法---结构化分析法,从系统的功能入手,用它开发的系统是实现模块功能的函数和过程的集合。由于用户的需求和软,硬件技术的不断发展,按照功能划分设计的系统模块必然是易变的和不稳定的,这样开发出来的模块可重用性不高。因而,结构化系统分析与设计已无法满足用户需求的变化。发展软件质量,缩短软件开发周期,发展软件可靠性,可扩充性和可重用性迫使软件界人士不断研究新方法,新技术,探索新途径。面向对象技术是传统软件开发技术的自然演进,他把程序看成是离散的相互通信的对象集合,使人认识世界的思维方式与计算机求解问题的方法更接近。他的提出主要是为了解决结构化系统分析与设计所不能解决的代码重用问题。它从所处理的数据入手,以数据为中心,把编程问题视为一个数据集合,数据相对功能而言,更具稳定性。

二、 传统软件工程方法

(一) 传统软件工程方法概念

我们所说的传统软件工程方法主要指结构化软件工程方法,目前较新的部分文献将传统软件工程方法划分为以下阶段:系统工程,分析,设计,测试,软件维护。传统软件工程方法的前期工作主要集中在分析和设计阶段,实际上分析和设计师传统软件工程方法中最为重要的阶段。传统软件工程方法以功能,数据和数据流进行分析,也是基于数据的。在传统软件工程方法的分析阶段,所使用的主要工具有数据字典,实体—关系图,数据流图和状态—变换图;在传统软件工程方法的设计阶段,所使用的主要工具有针对总体设计的模块结构图和针对详细设计的流程图,在目前实际的软件开发中,通常不适用流程图,而直接通过编程完成详细设计,所以交心的部分文献中,设计阶段包括了总体设计,详细设计和编程阶段,三者之间的界限较模糊。

(二) 传统软件工程方法的缺点

传统软件工程方法的主要缺点是在分析阶段以功能,数据和数据流进行分析,对问题域的认识和描述不是以问题与众的固有事物作为基本单位并保持他们的原貌,这些方法的分析结果不能直接的映射到问题域;在设计阶段分析的结果----数据流图和设计的结果---模块

信息管理系学年论文 XP方法与传统工程方法的比较与研究

结构图是两种不同的表示体系,从分析到设计的转换实际上没有可靠的转换规则,带有人为的随意性,导致为软件开发带来隐患和实际结果与问题域偏差过大。

三、 XP软件工程方法

XP软件工程方法是一门针对业务和软件开发的规则,它的作用在于将两者的力量集中在共同的、可以达到的目标上。它是以符合电脑自动开关机软件需要的软件为目标而产生的一种方法论,xp使开发者能够更有效的响应客户的需求变化,哪怕是在软件生命周期的后期。它强调,软件开发是人与人合作进行的过程,因此成功的摄像头软件开发过程应该充分利用人的优势,而弱化人的缺点,突出了人在软件开发过程中的作用。极端编程属于轻量级的方法,认为文档、架构不如直接编程来的直接。Xp实际上是一种经历过很多实践考验的一种软件开发的方法,它软件工程方法论了大概有5年,它已经被成功的应用在许多大型的公司, xp的成功软件工程方法论它对客户满意度的特别强调,xp是以开发符合计算机应用软件下载需要的软件为目标而产生的一种方法论,xp使开发者能够更有效的响应客户的需求变化,哪怕在软件生命周期的后期。

(一) 核心思想

从软件工程方法论看,早期发现错误以及降低复杂度可以节约成本。极限编程强调我们将任务/系统细分为可以在较短周期解决的一个个子任务/模块,并且强调测试、代码质量和及早发现问题。通常,通过一个个短小的迭代周期,我们就可以获得一个个阶段性的进展,并且可以及时形成一个版本供用户参考,以便及时对用户可能的需求变更作出响应。

(二) 十二种方法

规划策略(theplanninggame) 结对编程(pairprogramming) 测试(testing)

重构(refractoring) 简单设计(simpledesign)

代码集体所有权(collectivecodeownership) 持续集成(continuousintegration) 现场客户(on-sitecustomer) 小型发布(smallrelease)

每周40小时工作制(40-hourweek) 编码规范(codestandards) 系统隐喻(systemmetaphor)

四、 传统软件工程方法与XP方法的区别

(一)传统软件工程方法

传统软件工程方法,即结构化方法面向的是过程它,按照数据变化的过程寻找问题的结点,对问题进行分解。由于不同人对过程的理解不同,故面向过程的功能所分割出的功能模块会因人而异。对于问题世界的抽象结论,结构化方法可以用数据流图,系统结构图,数据词典,状态转移图,实体关系图来进行系统逻辑模型的描述。传统软件工程方法关心的是功能,强调以模块为中心,采用模块化,自顶向下,逐步求精设计过程,系统是实现模块功能的函数和过程的集合结构清晰,可读性好,是提高软件开发质量的一种有效手段。

2

信息管理系学年论文 XP方法与传统工程方法的比较与研究

(二)XP软件工程方法

XP方法的核心价值观包括点点:交流、反馈、简单、勇气。在这四点核心价值观的基础上,XP方法又定义了十二个的必须遵循的实践。其实这些实践的大多数都已经是一些经过测试和实践证明的老方法了。然而却常常被忽略,即便是在有充分计划的项目中。随着这些方法的兴起,XP方法把他们又融为了一个相互影响、相互促进的整体。

xp也很强调团队合作。团队工程方法论:项目经理,客户,开发者。他们团结在一起来保证高质量的软件。xp其实是一种保证成功的团队开发的简单而有效的方法。

方法论强调四种价值:交流,简易,回馈,勇气。xp程序员之间紧密的相互交流,xp程序员也和客户紧密的交流。他们总是保持他们的设计简单明了。项目一开始,xp就强调方法论对软件的不断测试来获得反馈,程序员尽可能早的把软件交给客户,并实现office2007软件下载对软件需求提出的变化,有了这些基础,xp程序员就可以自信的面对需求和office2007软件下载技术的变化。

xp是与众不同的,它有点象快步的舞蹈。软件工程方法论开发过程包括许多的小卡片,独立的看,这些小卡片没有什么意义,但是当它们组合在一起,一幅完整的美丽的图片就可以看见,xp方法有别于传统软件开发,它是软件开发的一种新的重要的发展。它改变了我们开发程序的传统思维方式。下面我们将介绍它带给我们那些改变。

xp属于轻量开发方法中较有影响的一种方法。轻量开发方法是相对于传统的重量开发方法而言。简单地理解,“量”的轻重是指用于软件过程管理和控制的、除程序量以外的“文档量”的多少。xp等轻量常用工具软件论文方法认识到,在当前很多情况下,按传统观念建立的大量文档,一方面需要消耗大量开发资源,同时却已失去帮助“预见、管理、决策和控制的依据”的作用。因此必须重新审视开发环节,去除工程方法论累赘,轻装上阵。

五、 我国软件工程的XP前景

xp方法的产生是因为难以管理的需求变化,从一开始你的客户并不是很完全的知道他们要的系统是怎么样的,你可能面对的系统的功能一个月变化多次。在大多数软件开发环境中不断变化的需求是唯一的不变,这个时候应用xp就可以取得别的方法不可能取得的成功。xp方法的建立同时也是为了解决软件开发项目中的风险问题。假如你的客户在特定的时间内,需要一个相当难开发的系统,而且对于你的项目组来说,这个系统是一个新的挑战(从来没有做过),那风险就更大了,如果这个系统对于整个软件行业来说都是新的挑战,那么它的风险就更大了,采用xp将可以减少风险,增加成功的可能。

(一) XP方法是为小团体开发建立的,在2-10个人之间。假如你的团体恰好合适,你就不需要用其他的软件工程方法了,就用xp,但是要注意你不能将xp方法应用于大团体的开发项目中。我们应该注意,在需求一惯呈动态变化或者高具有高风险的项目中,你就会发现xp方法在小团体的开发中的作用要远远高于在大团体的开发。

xp方法需要一个扩展的开发团体,xp团体不仅仅包括开发者,经理、客户也是其中的一员,所有的工作一环扣一环,问问题,商讨方法和日程,增加功能测试,这些问题的解决不仅仅涉及到软件的开发者。

(二)另一个需要是可测试性,你必须能增加自动的单元测试和功能测试,然而在你进行这个需求的时候,你会发现有许多的问题很难测试,这需要充分发挥你的测试的经验和智慧,而且你有时还要改变你的设计以便它可以更容易的进行测试。记住:那儿有需求,那儿就应该有测试的方法。

3

信息管理系学年论文 XP方法与传统工程方法的比较与研究

(三)在xp方法的好处的清单上,最后一条是生产力。在同样的合作环境下,xp项目都一致的表现出比使用其他方法高的多的生产力。但这从来不是xp方法学的真正目标。xp真实追求的目标是:在规定的时间生产出满足客户需要的软件。假如对于你的开发来说,这是很重要的方面,你就可以选择xp了。

六 小结

总之,传统软件工程方法注重面的积累,XP工程方法注重质的飞跃。二者相互补充相互依存,只有住爱好传统软件工程方法的面性特点和XP方法的专攻特点,才能更好的取长补短, 提高我国软件工程行业的先进性和创新性。

参考文献:

[1]孙永。现代软件工程。北京希望电子出版社。2002 [2]张海藩。软件工程导论。清华大学出版社,1998

[3]赵伟忠,面向对象的系统分析。清华大学出版社,2003 [4]王新,软件工程概论。清华大学出版社。2004

[5]张海涛。XP软件工程概论。吉林任命出版社。2005

4

本文来源:https://www.bwwdw.com/article/3p27.html

Top