简述敏捷软件开发的原则。

题目
问答题
简述敏捷软件开发的原则。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

阅读以下关于软件开发方面的叙述,回答问题1至问题4。

当前企业中的业务都是在全球化、快速变化的环境中运营的,传统的软件开发过程无法适应由此产生的快速软件开发需求。20世纪90年代后期,一些软件开发人员在Agile Allicance 2001中系统地阐述了敏捷开发的原则,试图强调灵活性在快速且有效地生产软件中所发挥的作用。目前,众多的软件生产企业已经在实际的软件开发过程中接纳并实践了敏捷开发方法中的基本原则。

敏捷开发有许多典型方法,包括极限编程(eXtreme Programming)、Scrum、Crystal和DSDM等。请问这些方法共同的基本原则是什么?


正确答案:(1)客户参与。 (2)增量式移交。 (3)开发团队的技术应该得到承认和发扬。团队成员应该保持他们自己的工作风格不落俗套。 (4)接受变更。 (5)保持简单性。
(1)客户参与。 (2)增量式移交。 (3)开发团队的技术应该得到承认和发扬。团队成员应该保持他们自己的工作风格,不落俗套。 (4)接受变更。 (5)保持简单性。 解析:本题考查软件开发方法。
2001年,Kent Beck和其他16位知名软件开发者、软件工程作家及软件咨询师(被称为敏捷联盟)共同签署了“敏捷软件开发宣言”。该宣言声明“我们正在通过亲身实践以及帮助他人实践的方式来揭示更好的软件开发之路,通过这项工作,我们认为:个体和交互胜过过程和工具;可工作软件胜过宽泛的文档;客户合作胜过合同谈判;响应变化胜过遵循计划。亦即,虽说上述右边的各硕很有价值,但我们认为左边的各项具有更大的价值。”
目前比较典型的敏捷过程模型有极限编程、Scrum、Crystal和DSDM等,虽然过程模型实践上有差异,但都是遵循了敏捷宣言或者是敏捷联盟所定义的原则。这些原则包括客户参与、增量式移交、简单性、接受变更、强调开发者的作用和及时反馈等。
虽然敏捷开发方法近年来发展很快,但在实施的过程中也暴露出来很多问题,一些敏捷方法的基本原则很难实施。其中主要有如下4点。
(1)客户参与往往依赖于客户参与的意愿和客户自身的代表性。
(2)团队成员的性格可能不适合激烈的投入,可能无法做到与其他成员之间的良好沟通。
(3)对系统中的变更作出优先级排序可能是极端困难的。
(4)维护系统的简洁性往往需要额外的工作,但迫于移交时间表的压力,可能没有时间执行系统简化过程。
敏捷开发方法中最著名的是极限编程。极限编程中提出了12个实践操作,其中一个是结对编程。开发人员成对工作,检查彼此的工作并提供支持,圆满完成任务。但是,配对是灵活的,一个开发人员在一天可能与多个伙伴配对。
敏捷开发方法在具体实践过程中,往往需要开发环境或工具的支持,这些工具包括数据库编程语言、界面生成器、与办公应用的连接和报告生成器等。可视化开发是一种通过集成细粒度可复用软件组件来构造软件的快速应用开发方法。可视化编程技术的主要思想是用图形工具和可重用部件来交互地编制程序,可视化编程一般基于事件驱动的原理。一般可视化编程工具还有应用专家或应用向导提供模板,按照步骤对使用者进行交互式指导,让用户定制自己的应用,然后就可以生成应用程序的框架代码,用户再在适当的地方添加或修改以适应自己的需求。

第2题:

关于敏捷方法说法正确的是?

A.敏捷方法是一类软件开发流程的泛称

B.敏捷方法是相对传统的瀑布式软件过程提出来的

C.敏捷方法可以用敏捷宣言(4条)、敏捷原则(12条)来概括

D.敏捷原则通过一系列的敏捷实践来体现出来


参考答案:ABCD

第3题:

对于敏捷软件开发,下列哪三项述是错误的()

A.采用敏捷开发,主要目标是使用更少的资源完成更多的任务

B.数捷开发只有在运用得当的情况下才有效果

C.数捷开发只对较小的项目有用

D.敏捷开发不需要任何的文档


参考答案AD

第4题:

简述软件开发的项目管理功能。


正确答案:为项目管理人员提供支持。项日管理包括进度管理、资源与费用管理、质量管理三个基本内容。还包括需要提出测试方案,提供测试环境和测试数据,并进行版本管理。

第5题:

下列开发方法中,()不属于敏捷开发方法。

A.极限编程
B.螺旋模型
C.自适应软件开发
D.水晶方法

答案:B
解析:
本题考查系统开发方法知识。除螺旋模型外,其他选项均属于敏捷开发。

第6题:

对软件开发的看法可有多种观点,敏捷软件开发方法是一种(1),代表慢是极限编程XP,它的核心思想为(2)。

(1)

A.数学观

B.建模观

C.工程观

D.协作游戏


正确答案:D

第7题:

2008年上半年试题2
当前企业中的业务都是在全球化、快速变化的环境中运营的,传统的软件开发过程无法适应由此产生的快速软件开发需求。20 世纪 90 年代后期,一些软件开发人员在“Agile Allicance 2001”中系统地阐述了敏捷开发的原则,试图强调灵活性在快速且有效地生产软件中所发挥的作用。目前,众多的软件生产企业已经在实际的软件开发过程中接纳并实践了敏捷开发方法中的基本原则。
【问题1】
敏捷开发有许多典型方法,包括极限编程(eXtreme Programming)、Scrum、Crystal、DSDM等。请问这些方法共同的基本原则是什么?
【问题2】
敏捷开发的支持者往往夸大该方法的优点,但是在实践中,敏捷方法的基本原则有时确实很难实施。请用200字以内的文字说明敏捷方法中哪些原则在实践中难以实施。
【问题3】
敏捷开发方法中最有名的是极限编程。请说明极限编程中的结对编程(Pair Programming)的概念。
【问题4】
敏捷开发方法在具体实践过程中,往往需要开发环境或工具的支持,一般称为快速应用开发技术和可视化开发技术。请用150字以内的文字说明快速应用开发技术所包含的工具有哪些,并简要说明可视化开发技术的基本概念和技术原理。


答案:
解析:
一、试题分析
这是一道关于敏捷开发方法(主要是XP方法)的问答题,共4个问题。在系统分析师考试指定参考用书《系统分析师技术指南》(张友生、王勇主编,清华大学出版社)中,详细介绍了敏捷开发方法和XP方法。
【问题1】
注重个体与交互,重点关注可以工作的软件,提高客户参与度,以积极的心态响应变化是敏捷方法论的核心价值观。为了贯彻这四大价值观,敏捷联盟提出12条区别于重量级过程的原则。
(1)尽早、持续交付有价值的中间软件使客户满意。很多开发组织经常会在时间期限上进行没有原则地退让,其结果却是让客户一等再等,不仅没有按承诺兑现,甚至是时间超过一倍,但仍然不见软件的踪迹。这种不守信的状态,使得整个软件业走入了一个负螺旋发展。敏捷方法论提出了一种新的逻辑,将尽早、持续地交付可运行的中间成果,有价值的中间结果,使得客户能够尽早地、持续地了解到软件开发的进展,并且将需求的变化、系统的改进意见尽早地提出来,这会使得客户的满意度大大提高。
(2)即使到了开发后期,也欢迎需求变化,利用响应变化创造竞争优势。敏捷方法论鼓励团队拥抱变化,通过应用各种技术来提高软件结构的灵活性,本着简单的原则进行设计,以响应变化的能力作为团队的核心竞争力。
(3)经常交付可工作的软件,间隔时间可以是几周到几个月,间隔越短越好。由于敏捷方法论奉行“客户合作”、“客户参与”,而要让客户更加有效的参与,经常性、频繁地交付可工作的中间软件,将可以有效地加强开发人员与客户之间的沟通,从而将隐藏的需求变化及早触动。
(4)开发全过程,业务人员和开发人员必须天天都在一起工作。在开发中,不仅需要客户参与开发,还应该包括代表客户的业务人员。因此在开发人员、客户、业务人员等相关干系人之间建立频繁而且密切的交流与沟通,将是使项目保持高度灵活性的关键。
(5)为开发人员提供环境和支持,给予信任,以人为本地构建项目。敏捷方法论是崇尚“以人为本”精神的,认为项目成功的最关键因素是人,其意义超过过程和工具。建立一支优秀的团队,并在环境与精神上提供支持,给予信任,将是项目成功的关键。这也是与传统的“过程”为主的管理思想的最大不同。
(6)团队内部,最有效的沟通方式莫过于面对面的交谈。在重量级方法论中,人们尝试着通过编写规范、精美的文档进行交流。而在敏捷方法论中则更加重视的是开发团队成员之间的面对面交谈,大家坐在一起,用一块白板,或是一张纸,一边绘制草图,一边交谈,这是最有效的沟通方式。
(7)工作的软件是度量进度的最首要标准。要衡量工作进度,采用的基点不是文档的完成情况,不是已完成的代码行数,而是可以工作的软件完成了多少功能、实现了多少用例。这是敏捷方法论的共同点,因为只有可工作的软件才是有价值的。
(8)提倡可持续的开发速度,责任人、开发者和用户应保持一个长期的、恒定的开发速度。软件开发绝不是短跑,它更像一场挑战耐力的马拉松长跑。因此,过早的冲刺、在前期过度的工作,将不利于项目按照持续的开发速度进行下去。因此,敏捷方法论反对加班,因为这样的行为会使得团队的精力过早耗尽,过早地对项目失去兴趣和信心,从而得到事与愿违的结果。
(9)不断关注好的技能和设计会增加敏捷能力。保持软件高质量、简洁、健壮,是实现快速软件开发的重要途径。因此只有大家都致力于编写高质量的代码、不创造混乱,才能够提升敏捷能力。
(10)开发者本质是简单的——使未完成的工作最大化的艺术。不管明天的需求,只采用符合今天需求的简单设计。因为谁也不知道明天是怎么样的?变化太快了,今天的设计考虑太多明天的需求,就有可能做了过多的无用功。
(11)自组织的团队才能够做出最好的架构设计和需求分析。最优秀的团队不是被强权管理下的团队,而是形成了一个良好的协作,能够内部进行任务分解、协调的团队。
(12)团队应定期在如何更有效工作方面进行反省,然后对自己的行为做出改进。不断地回顾、总结,并从中找到团队未能最有效工作的瓶颈点和问题点,并且通过细致的分析与讨论,找到其要点,并做出相应的改进是十分重要的。
【问题2】
问题2问敏捷方法的原则中哪些原则在实践中难以实施,这与问题1是相关联的。只要理解了这些基本原则,这个问题就好解答。因为问的是在“实践中难以实施”,所以这个问题可以答得灵活些,只要说得有道理都可以得分。
【问题3】
问题3考查结对编程的概念,简单地说,结对编程就是2个人坐在一起写同一个程序。结对编程可以大大降低沟通成本,提高工作质量。
【问题4】
问题4是关于快速开发工具和可视化开发的。快速应用开发(RAD)目的是快速发布系统,RAD组合了5个方面的技术,分别是进化原型、CASE工具(可进行正向工程和反向工程)、拥有能使用先进工具的专门人员(一个RAD开发小组)、交互式JAD、时间表。例如,VB、Delphi、PB等都属于RAD工具。可视化开发就是在可视开发工具(例如,VB、Delphi、PB等)提供的图形用户界面上,通过操作界面元素(例如,菜单、按钮等),由可视开发工具自动生成应用软件。这类应用软件的工作方式是事件驱动的。对每个事件,由系统产生相应的消息,再传递给相应的消息响应函数。
二、参考答案
【问题1】
(1)客户参与。
(2)增量式移交。
(3)开发团队的技术应该得到承认和发扬。团队成员应该保持他们自己的工作风格,不落俗套。
(4)接受变更。
(5)保持简单性。
【问题2】
(1)客户的参与度往往依赖于客户参与的意愿和客户自身的代表性。
(2)团队成员的性格可能不适合激烈的投入,可能无法做到与其他成员之间的良好沟通。
(3)对系统中的变更作出优先级排序可能是极端困难的。
(4)维护系统的简洁性往往需要额外的工作,但迫于移交时间表的压力,可能没有时间执行系统简化过程。 【问题3】
结对编程:开发人员成对工作,检查彼此的工作并提供支持,圆满完成任务。
【问题4】
快速应用开发中所包括的工具有数据库编程语言、界面生成器、与办公应用的连接、报告生成器。可视化开发是一种通过集成细粒度可复用构件来构造软件的快速应用开发方法,其主要思想是用图形工具和可重用部件来交互地编制程序。可视化开发一般基于事件驱动的原理。

第8题:

试题(23)

以下敏捷软件开发方法中, (23) 方法强调以业务为核心,快速而有效地进行系统开发。

(23)A.极限编程

B.自适应软件开发

C.特性驱动开发

D.动态系统开发


正确答案:D
试题(23)分析
本题主要考查对敏捷开发方法的理解。
敏捷开发包括一系列的方法,主流的有如下7种:
①XP。XP(极限编程)的思想源自Kent Beck和Ward Cunningham在软件项目中的合作经历。XP注重的核心是沟通、简明、反馈和勇气。因为知道计划永远赶不上变化,XP无需开发人员在软件开始初期做出很多的文档。XP提倡测试先行,为了将以后出现bug的几率降到最低。
②SCRUM。SCRUM是一种迭代的增量化过程,用于产品开发或工作管理。它是一种可以集合各种开发实践的经验化过程框架。SCRUM中发布产品的重要性高于一切。
该方法由Ken Schwaber和Jeff Sutherland提出,是旨在寻求充分发挥面向对象和构件技术的开发方法,是对迭代式面向对象方法的改进。
③Crystal Methods。Crystal Methods(水晶方法族)由Alistair Cockburn在20世纪90年代末提出,之所以是个系列,是因为他相信不同类型的项目需要不同的方法。虽然水晶系列不如XP的产出效率高,但有更多的人能够接受并遵循它。
④FDD。FDD(特性驱动开发)由Peter Coad、Jeff de Luca和Eric Lefebvre共同开发,是一套针对中小型软件开发项目的开发模式。此外,FDD是一个模型驱动的快速迭代开发过程,它强调的是简化、实用、易于被开发团队接受,适用于需求经常变动的项目。
⑤ASD。ASD(自适应软件开发)由Jim Highsmith在1999年正式提出。ASD强调开发方法的适应性,这一思想来源于复杂系统的混沌理论。ASD不像其他方法那样有很多具体的实践做法,它更侧重为ASD的重要性提供最根本的基础,并从更高的组织和管理层次来阐述开发方法为什么要具备适应性。
⑥DSDM。DSDM(动态系统开发方法)是众多敏捷开发方法中的一种,它倡导以业务为核心,快速而有效地进行系统开发。实践证明DSDM是成功的敏捷开发方法之一。在英国,由于其在各种规模的软件组织中的成功,它己成为应用最为广泛的快速应用开发方法。DSDM不但遵循了敏捷方法的原理,而且也适合那些成熟的传统开发方法有坚实基础的软件组织。
⑦轻量型RUP。RUP其实是个过程的框架,它可以包容许多不同类型的过程,Craig arman极力主张以敏捷型方式来使用RUP。他的观点是:目前如此众多的努力以推进敏捷型方法,只不过是在接受能被视为RUP的主流OO开发方法而已。
参考答案
(23)D

第9题:

下面说法错误的是 ( )

A.敏捷软件开发是一种应对快速变化的需求的一种软件开发能力
B.Scrum敏捷开发的流行,越来越多的公司采用敏捷开发用于软件产品和应用的开发
C.敏捷开发是一种以人为核心、迭代、循序渐进的开发方法
D.Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发

答案:B
解析:
gile敏捷开发的流行,越来越多的公司采用敏捷开发用于软件产品和应用的开发。

第10题:

简述软件开发的类别。


正确答案:需求分析工具、设计工具、编码工具、测试工具、运行维护工具、项目管理工具。