以下各类敏捷开发方法的叙述中,描述的是自适应软件开发(ASD)原则的是( )。A.XP是激发开发人员创造性、使管理负担最小的一组技术 B.每一个不同的项目都需要一套不同的策略、约定和方法论 C.多个自组织和自治小组并行地递增实现产品 D.有一个使命作为指导,它设立了项目的目标,但并不描述如何达到这个目标

题目
以下各类敏捷开发方法的叙述中,描述的是自适应软件开发(ASD)原则的是( )。

A.XP是激发开发人员创造性、使管理负担最小的一组技术
B.每一个不同的项目都需要一套不同的策略、约定和方法论
C.多个自组织和自治小组并行地递增实现产品
D.有一个使命作为指导,它设立了项目的目标,但并不描述如何达到这个目标

相似考题

4.试题三 论敏捷开发方法的应用敏捷软件开发简称敏捷开发,是从20世纪90年代开始逐渐引起广泛关注的一些新型软件开发方法,以应对快速变化的需求。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作,面对面沟通,频繁交付新的软件版本,紧凑而自我组织型的团队,能够很好地适应需求变化的代码编写和团队组织方法,也更注重人的作用。敏捷开发的发展过程中,出现了多个不同的流派,例如极限编程、自适应软件开发、水晶方法、特性驱动开发等。但其中的基本原则是一致的。从开发者的角度,主要的关注点有短平快会议(Stand Up)、小版本发布(Frequent Release)、较少的文档(Minimal Documentation)、合作为重(Collaborative Focus)、客户直接参与(Customer Engagement)、自动化测试(Automated Testing)、适应性计划调整(Adaptive Planning)和结对编程(Pair Programming);从管理者的角度,主要的关注点有测试驱动开发(Test-Driven Development)、持续集成(Continuous Integration)和重构(Refactoring)。请围绕“敏捷开发方法的应用”论题,依次从以下三个方面进行论述。1.概要叙述你参与管理和开发的软件项目以及你在其中担任的主要工作,包括角色、工作内容等。2.对开发者关注点中至少三项内容进行解释:结合自己所参与项目,对使用情况予以评价。3.联系你所参与项目的实际情况,分析并讨论测试驱动开发的使用效果,并评价其优缺点。

更多“以下各类敏捷开发方法的叙述中,描述的是自适应软件开发(ASD)原则的是( )。”相关问题
  • 第1题:

    试题(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

  • 第2题:

    以下关于软件开发文档的叙述中,错误的是 (55) 。A.软件开发是程序及其相应文档的生产过程

    以下关于软件开发文档的叙述中,错误的是 (55) 。

    A.软件开发是程序及其相应文档的生产过程

    B.软件开发过程中的重要信息需要固化在文档中,以便积累开发经验

    C.由于担心设计人员中途离职,所以要让他们写下文档

    D.在软件开发过程中,面对面交流并不可靠,应当完全用文档来代替


    正确答案:D
    本题考查软件工程方面的基础知识。软件开发文档是重要的,软件产品=程序+文档。因此,软件开发就是程序和文档的生产过程。软件文档包括开发文档和用户文档两大类。开发文档记录了开发个过程、各阶段所用的技术和产生的成果,这是开发经验的积累,也是改进软件时必须参照的依据。用户文档向用户提供了使用和运行维护所需要的资料。由于软件开发周期长,开发过程中的人员流动是难免的。为避免开发人员在开发中途离职造成工作脱节,也需要实施开发过程的文档化。各阶段的评审也需要文档,这是质量保证的重要基础。在开发过程中,面对面交流的重要结果需要用文档来固化,有据可依,有据可查。但是,文档不能完全取代面对面交流。许多不成熟的意见、思想的火花(常称为软知识)是很难)用严格的文档来描述的。只有通过多次讨论甚至辩论达成某种结论后,才能成为比较成熟的硬知识,固化在在文档上。现在的敏捷开发方法特别关注面对面交流(沟通),充分发挥其作用,达到真正的一致认识和理解。单靠文档有时仍会产生不同理解甚至误解。

  • 第3题:

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

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

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

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

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


    参考答案:ABCD

  • 第4题:

    下列关于敏捷方法的叙述中,错误的是( )。

    A.与传统方法相比,敏捷方法比较适合需求变化大或者开发前期对需求不是很清晰的项目 B.敏捷方法尤其适合于开发团队比较庞大的项目 C.敏捷方法的思想是适应性,而不是预设性 D.敏捷方法以原型开发思想为基础,采用迭代式增量开发


    正确答案:B

  • 第5题:

    以下关于敏捷方法的叙述中,错误的是( )。

    A. 敏捷型方法的认为个人胜过工具
    B.敏捷开发是一种以人为核心、迭代、循序渐进的开发方法
    C.敏捷型方法认为开发预先制定计划,遵循计划,不强调"适应性"
    D.敏捷开发方法中客户合作胜过合同谈判

    答案:C
    解析:
    敏捷开发(agile development)是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发的基本原则如下:
    ·个体和交互胜过过程和工具
    ·可以工作的软件胜过面面俱到的文档
    ·客户合作胜过合同谈判
    ·响应变化胜过遵循计划

  • 第6题:

    以下各类敏捷开发方法的叙述中,描述的是水晶法Crystal的是( )。

    A.激发开发人员创造性、使管理负担最小的一组技术
    B.每一个不同的项目都需要一套不同的策略、约定和方法论
    C.多个自组织和自治小组并行地递增实现产品
    D.有一个使命作为指导,它设立了项目的目标,但并不描述如何达到这个目标

    答案:B
    解析:
    本题考查敏捷方法的基础知识。极限编程XP是激发开发人员创造性、使得管理负担最小的一组技术。水晶法Crystal认为每—个不同的项目都需要一套不同的策略、约定和方法论。并列争球法(Scrum)使用迭代的方法,其中把每30天一次的迭代称为个冲刺,并按需求的优先级来实现产品多个自组织和自治小组并行地递增实现产品,协调是通过简短的日常情况会议进行。自适应软件开发(ASD)有六个基本的原则:①在自适应软件开发中,有一个使命作为指导,它设立了项目的目标,但不描述如何达到这个目标;②特征被视为客户键值的关键,因此,项目是围绕着构造的构件来组织并实现特征;③过程中的迭代是很重要的,因此重做与做同样重要,变化也包含其中;④变化不视为是一种更正,而是对软件开发实际情况的调整;⑤确定的交付时间迫使开发人员认真考虑每一个生产版本的关键需求;⑥风险也包含其中,它使开发人员首先跟踪最艰难的问题。

  • 第7题:

    在敏捷过程的方法中( )认为每一个不同的项目都需要一套不同的策略、约定和方法论

    A.极限编程(XP)
    B.水晶法(Crystal)
    C.并列争球法(Scrum)
    D.自适应软件开发(ASD)

    答案:B
    解析:
    本题考查软件工程敏捷过程知识点。题中涉及到的敏捷开发方法分别描述如下:极限编程(XP):敏捷开发的典型方法之一,是一种轻量级(敏捷)、高效,低风险、柔性、可预测的、科学的软件开发方法,它由价值观、原则、实践和行为4个部分组成。其中4大价值观为沟通、简单性、反馈和勇气。水晶法(Crystal):水晶方法体系与XP一样,都有以人为中心的理念,但在实践上有所不同。水晶方法体系考虑到人们一般很难严格遵循一个纪律约束很强的过程,认为每一种不同的项目都需要一套不同的策、约定和方法论。因此,与XP的高度纪律性不同,水晶方法体系探索了用最少纪律约束而仍能成功的方法,从而在产出效率与易于运作上达到一种平衡。也就是说,虽然水晶系列不如XP那样的产出效率,但会有更多的人能够接受并遵循它。并列争球法(Scrum):用迭代的方法,其中把每30天一次的迭代称为一个“冲刺”,并按需求的优先级来实现产品。多个自组织和自治小组并行地递增实现产品。协调是通过简短的日常会议来进行的。自适应软件开发(ASD):ASD的核心是三个非线性的、重迭的开发阶段:猜测,合作与学习

  • 第8题:

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

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

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

  • 第9题:

    ( )中,编程开发人员分成首席程序员和"类"程序员。

    A. 自适应软件开发(ASD)
    B. 极限编程(XP)开发方法
    C. 开放统-过程开发方法(OpenUP)
    D. 功用驱动开发方法(FDD)

    答案:D
    解析:
    (1) XP (Extreme Programming,极限编程)在所有的敏捷型方法中,XP是最引人瞩目的。它源于Smalltalk圈子,特别是Kent Beck和Ward Cunningham在20世纪80年代末的密切合作。XP在一些对费用控制严格的公司中的使用,已经被证明是非常有效的。(2) Cockburn的水晶系列方法,水晶系列方法是由Alistair Cockburn提出的。它与XP方法一样,都有以人为中心的理念,但在实践上有所不同。Alistair考虑到人们一般很难严格遵循一个纪律约束很强的过程,因此,与XP的高度纪律性不同,Alistair探索了用最少纪律约束而仍能成功的方法,从而在产出效率与易于运作上达到一种平衡。也就是说,虽然水晶系列不如XP那样的产出效率,但会有更多的人能够接受并遵循它。(3) 开放式源码,这里提到的开放式源码指的是开放源码界所用的一种运作方式。开放式源码项目有一个特别之处,就是程序开发人员在地域上分布很广,这使得它和其他敏捷方法不同,因为一般的敏捷方法都强调项目组成员在同一地点工作。开放源码的一个突出特点就是查错排障(debug)的高度并行性,任何人发现了错误都可将改正源码的"补丁"文件发给维护者。然后由维护者将这些"补丁"或是新增的代码并入源码库。(4) SCRUM。SCRUM己经出现很久了,像前面所论及的方法一样,该方法强调这样一个事实,即明确定义了的可重复的方法过程只限于在明确定义了的可重复的环境中,为明确定义了的可重复的人员所用,去解决明确定义了的可重复的问题。(5) Coad的功用驱动开发方法(FDD-Feature Driven Development)FDD是由Jeff De Luca和大师Peter Coad提出来的。像其他方法一样,它致力于短时的迭代阶段和可见可用的功能。在FDD中,一个迭代周期一般是两周。在FDD中,编程开发人员分成两类:首席程序员和"类"程序员(class owner)。首席程序员是最富有经验的开发人员,他们是项目的协调者、设计者和指导者,而"类"程序员则主要做源码编写。(6) ASD方法,ASD (Adaptive Software Development)方法由Jim Highsmith提出,其核心是三个非线性的、重叠的开发阶段:猜测、合作与学习。

  • 第10题:

    ( )适用于程序开发人员在地域上分布很广的开发团队。( )中,编程开发人员分成首席程序员和“类”程序员。【答第二空】

    A. 自适应软件开发(ASD)
    B. 极限编程(XP)开发方法
    C. 开放统—过程开发方法(OpenUP)
    D. 功用驱动开发方法(FDD)

    答案:D
    解析:
    (1) XP (Extreme Programming,极限编程)在所有的敏捷型方法中,XP是最引人瞩目的。它源于Smalltalk圈子,特别是Kent Beck和Ward Cunningham在20世纪80年代末的密切合作。XP在一些对费用控制严格的公司中的使用,已经被证明是非常有效的。
    (2) Cockburn的水晶系列方法,水晶系列方法是由Alistair Cockburn提出的。它与XP方法一样,都有以人为中心的理念,但在实践上有所不同。Alistair考虑到人们一般很难严格遵循一个纪律约束很强的过程,因此,与XP的高度纪律性不同,Alistair探索了用最少纪律约束而仍能成功的方法,从而在产出效率与易于运作上达到一种平衡。也就是说,虽然水晶系列不如XP那样的产出效率,但会有更多的人能够接受并遵循它。
    (3) 开放式源码,这里提到的开放式源码指的是开放源码界所用的一种运作方式。开放式源码项目有一个特别之处,就是程序开发人员在地域上分布很广,这使得它和其他敏捷方法不同,因为一般的敏捷方法都强调项目组成员在同一地点工作。开放源码的一个突出特点就是查错排障(debug)的高度并行性,任何人发现了错误都可将改正源码的“补丁”文件发给维护者。然后由维护者将这些“补丁”或是新增的代码并入源码库。
    (4) SCRUM。SCRUM己经出现很久了,像前面所论及的方法一样,该方法强调这样一个事实,即明确定义了的可重复的方法过程只限于在明确定义了的可重复的环境中,为明确定义了的可重复的人员所用,去解决明确定义了的可重复的问题。
    (5) Coad的功用驱动开发方法(FDD-Feature Driven Development)
    FDD是由Jeff De Luca和大师Peter Coad提出来的。像其他方法一样,它致力于短时的迭代阶段和可见可用的功能。在FDD中,一个迭代周期一般是两周。
    在FDD中,编程开发人员分成两类:首席程序员和“类”程序员(class owner)。首席程序员是最富有经验的开发人员,他们是项目的协调者、设计者和指导者,而“类”程序员则主要做源码编写。
    (6) ASD方法,ASD (Adaptive Software Development)方法由Jim Highsmith提出,其核心是三个非线性的、重叠的开发阶段:猜测、合作与学习。

  • 第11题:

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


    正确答案: 1.最优先的是通过尽早地和不断地交有价值的软件来使客户满意。
    2.即使到了开发的后期,也欢迎改变需求。
    3.以几周到几个月为周期,尽快、不断地发布可运行软件。
    4.在整个项目过程中,业务人员和开发人员必须天天一起工作。
    5.以积极向上的员工为中心建立项目组,给予他们所需要的环境和支持,对他们的工作予以充分的信任。
    6.项目组内效率最高、最有效的信息传递方式是面对面的交谈。
    7.测量项目进展的首要依据是可运行的软件。
    8.敏捷过程提倡可持续的开发,项目发起者、开发者和用户应能长期保持恒定的速度。
    9.应时刻关注技术上的精益求精和好的设计,以增强敏捷性。
    10.简单化是必不可少的,这是尽可能减少不必要工作的艺术。
    11.最好的构架、需求和设计出自于自我组织的团队。
    12.团队要定期反思怎样才能更有效,并据此调整自己的行为。

  • 第12题:

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

    正确答案: 1.最优先的是通过尽早地和不断地交有价值的软件来使客户满意。
    2.即使到了开发的后期,也欢迎改变需求。
    3.以几周到几个月为周期,尽快、不断地发布可运行软件。
    4.在整个项目过程中,业务人员和开发人员必须天天一起工作。
    5.以积极向上的员工为中心建立项目组,给予他们所需要的环境和支持,对他们的工作予以充分的信任。
    6.项目组内效率最高、最有效的信息传递方式是面对面的交谈。
    7.测量项目进展的首要依据是可运行的软件。
    8.敏捷过程提倡可持续的开发,项目发起者、开发者和用户应能长期保持恒定的速度。
    9.应时刻关注技术上的精益求精和好的设计,以增强敏捷性。
    10.简单化是必不可少的,这是尽可能减少不必要工作的艺术。
    11.最好的构架、需求和设计出自于自我组织的团队。
    12.团队要定期反思怎样才能更有效,并据此调整自己的行为。
    解析: 暂无解析

  • 第13题:

    阅读以下关于软件开发方面的叙述,回答问题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个实践操作,其中一个是结对编程。开发人员成对工作,检查彼此的工作并提供支持,圆满完成任务。但是,配对是灵活的,一个开发人员在一天可能与多个伙伴配对。
    敏捷开发方法在具体实践过程中,往往需要开发环境或工具的支持,这些工具包括数据库编程语言、界面生成器、与办公应用的连接和报告生成器等。可视化开发是一种通过集成细粒度可复用软件组件来构造软件的快速应用开发方法。可视化编程技术的主要思想是用图形工具和可重用部件来交互地编制程序,可视化编程一般基于事件驱动的原理。一般可视化编程工具还有应用专家或应用向导提供模板,按照步骤对使用者进行交互式指导,让用户定制自己的应用,然后就可以生成应用程序的框架代码,用户再在适当的地方添加或修改以适应自己的需求。

  • 第14题:

    以下关于原型化开发方法的叙述中,不正确的是(30)。A.原型化方法适应于需求不明确的软件开发SXB

    以下关于原型化开发方法的叙述中,不正确的是(30)。

    A.原型化方法适应于需求不明确的软件开发

    B.在开发过程中,可以废弃不用早期构造的软件原型

    C.原型化方法可以直接开发出最终产品

    D.原型化方法利于确认各项系统服务的可用性


    正确答案:C
    原型化软件开发方法的基本思想是软件开发人员对用户提出的需求和问题进行总结,就系统的主要需求取得一致意见后,构造一个软件原型(原型是软件的一个早期版本,通常反映最终软件的部分重要特性,原型应该是可以运行和修改的),使用户在试用原型过程中得到感受和启发,并做出反应和评价。然后开发者根据用户的意见对原型进行改进,使之逐步完善,直到用户对系统完全满意为止。这种开发方法的优点是需求表示清楚,用户满意度较高、可降低开始风险和开发成本。所以原型化方法特别适应于原始需求不明确的软件,因为通过用户的不断使用和体验并提出的评价,使得不断修改的原型逐步达到用户要求。通常,软件开发过程中会得到多个软件原型,只有得到用户认可的才是最终的产品。

  • 第15题:

    ( )适用于程序开发人员在地域上分布很广的开发团队。( )中,编程开发人员分成首席程序员和“类”程序员。

    A.水晶系列(Crystal)开发方法B.开放式源码(Open source)开发方法C.SCRUM开发方法D.功用驱动开发方法(FDD) A.自适应软件开发(ASD)B.极限编程(XP)开发方法C.开放统—过程开发方法(OpenUP)D.功用驱动开发方法(FDD)


    正确答案:B,D

  • 第16题:

    以下关于敏捷方法的叙述中,错误的是(9)。

    A. 敏捷型方法的思考角度是“面向开发过程”的
    B. 极限编程是著名的敏捷开发方法
    C. 敏捷型方法是“适应性”而非“预设性”
    D. 敏捷开发方法是迭代增量式的开发方法

    答案:A
    解析:

  • 第17题:

    以下关于敏捷方法的叙述中,错误的是( )。

    A. 敏捷型方法是预设性而非适应性的开发方法
    B. 敏捷型方法最优先要做的是尽早地、持续地交付有价值的软件,让客户满意
    C. 敏捷型方法认为简单是最根本的要求
    D. 敏捷开发方法认为即使到了开发的后期,也欢迎改变需求

    答案:A
    解析:
    敏捷开发(Agile Development)方法是一种以人为核心、迭代增量式、循序渐进、适应性而非预设性的开发方法。其最基本的特征是:轻量和简单、增量、协作、直接、适应性强。敏捷开发的原则如下:(1)最优先要做的是尽早地、持续地交付有价值的软件,让客户满意。(2)即使到了开发的后期,也欢迎改变需求。敏捷过程利用变化来为客户创造竞争优势。(3)经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。(4)项目开发期间,业务人员和开发人员必须一起工作;在团队内部,最具有效果、效率的交流方法,是面对面的交谈。(5)提倡可持续的开发速度。责任人、开发者和用户应保持一个长期恒定的开发速度。(6)不断地关注优秀的技能和优秀的设计可增强敏捷能力。(7)简单是最根本的要求。

  • 第18题:

    以下各类敏捷开发方法的叙述中,描述的是scrum方法的是( )。

    A.XP是激发开发人员创造性、使管理负担最小的一组技术
    B.每一个不同的项目都需要一套不同的策略、约定和方法论
    C.多个自组织和自治小组并行地递增实现产品
    D.有一个使命作为指导,它设立了项目的目标,但并不描述如何达到这个目标

    答案:C
    解析:
    本题考查敏捷方法的基础知识。极限编程XP是激发开发人员创造性、使得管理负担最小的一组技术。水晶法Crystal认为每—个不同的项目都需要一套不同的策略、约定和方法论。并列争球法(Scrum)使用迭代的方法,其中把每30天一次的迭代称为个冲刺,并按需求的优先级来实现产品多个自组织和自治小组并行地递增实现产品,协调是通过简短的日常情况会议进行。自适应软件开发(ASD)有六个基本的原则:①在自适应软件开发中,有一个使命作为指导,它设立了项目的目标,但不描述如何达到这个目标;②特征被视为客户键值的关键,因此,项目是围绕着构造的构件来组织并实现特征;③过程中的迭代是很重要的,因此重做与做同样重要,变化也包含其中;④变化不视为是一种更正,而是对软件开发实际情况的调整;⑤确定的交付时间迫使开发人员认真考虑每一个生产版本的关键需求;⑥风险也包含其中,它使开发人员首先跟踪最艰难的问题。

  • 第19题:

    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】
    快速应用开发中所包括的工具有数据库编程语言、界面生成器、与办公应用的连接、报告生成器。可视化开发是一种通过集成细粒度可复用构件来构造软件的快速应用开发方法,其主要思想是用图形工具和可重用部件来交互地编制程序。可视化开发一般基于事件驱动的原理。

  • 第20题:

    下面说法错误的是 ( )

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

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

  • 第21题:

    以下关于敏捷方法的叙述中,()是不正确的。

    A.. 敏捷型方法的思考角度是"面向开发过程"的
    B. 极限编程是著名的敏捷开发方法
    C. 敏捷型方法是"适应性"而非"预设性"
    D. 敏捷开发方法是迭代增量式的开发方法

    答案:A
    解析:
    敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

  • 第22题:

    下列关于敏捷方法的叙述中,错误的是()

    • A、与传统方法相比,敏捷方法比较适合需求变化大或者开发前期对需求不是很清晰的项目
    • B、敏捷方法尤其适合于开发团队比较庞大的项目
    • C、敏捷方法的思想是适应性,而不是预设性
    • D、敏捷方法以原型开发思想为基础,采用迭代式增量开发

    正确答案:B

  • 第23题:

    关于敏捷方法说法正确的是()

    • A、 敏捷方法是一类软件开发流程的泛称
    • B、 敏捷方法是相对传统的瀑布式软件过程提出来的
    • C、 敏捷方法可以用敏捷宣言(4条)、敏捷原则(12条)来概括
    • D、 敏捷原则通过一系列的敏捷实践来体现出来

    正确答案:A,B,C,D