敏捷开发在上午综合,下午的案例分析和论文写作当中都出现了,看起来像一个比较重要的知识点;但是敏捷似乎真题都出现在早些年代久远的时候,最近五年不怎么出现了。尤其是在案例和论文当中已经消失殆尽了。难道在系统分析师里面已经不重要了?至少在PMP考试中,敏捷的占分比一直在上升,不过咱们系统分析师考试不侧重这个,顶多敏捷知识开发方法开发模型当中的一个比较常见的内容罢了。不过偶尔论文中冒出一个敏捷的论文也不足为奇,所以还是应该认真准备这块知识。
01)敏捷宣言的概念
02)极限编程的概念和基本常识
03)敏捷开发的详细分类:包括水晶方法,Scrum,特征驱动开发等
04)敏捷开发的基本原则和关注点
05)敏捷开发难以实施的情况
06)结对编程的概念和优点
【2008年下系分真题第17题:绿色】
17.敏捷软件过程强调:让客户满意和软件尽早增量发布;小而高度自主的项目团队;非正式的方法;最小化软件工程工作产品以及整体精简开发。(24)不是采用这种软件开发过程的原因。
(24)
A.难以提前预测哪些需求是稳定的和哪些需求会变化
B.对于软件项目开发来说,设计和实现可以做到基本分离
C.从制定计划的角度来看,分析、设计、实现和测试并不容易预测
D.可执行原型和部分实现的可运行系统是了解用户需求和反馈的有效媒介
解答:答案选择B。送分题。
【2009年系分真题第21题:绿色】
21.极限编程是一种重要的敏捷开发方法,包含策划、设计、编码和测试四个框架活动的规则和实践。下面关于极限编程的叙述,错误的是(26)。
(26)
A.极限编程中使用的重要技术是重构,既包括设计技术的重构,也包括构建技术的重构
B.极限编程提倡在基本设计完成后,立即进行编码实现,并进行测试
C.极限编程活动中的关键概念之一是“结对编程”,推荐两个人面对同一台计算机共同开发代码
D.极限编程过程中建立的单元测试应当使用一个可以自动实施的框架,支持代码修改后即时的回归测试策略
解答:答案选择B
【2010系分真题第18题:绿色】
18.某小型软件公司欲开发一个基于Web的考勤管理系统,客户对系统的基本功能,表现形式等要求并不明确,在这种情况下,采用(23)开发方法比较合适。
(23)
A.瀑布式
B.形式化
C.结构化
D.极限编程
解答:答案选择D。送分题。
【2011年系分真题第19题:黄色】
19.以下敏捷软件开发方法中,(23)方法强调以业务为核心,快速而有效地进行系统开发。
(23)
A.极限编程
B.自适应软件开发
C.特性驱动开发
D.动态系统开发
解答:答案选择D。二周目红色变黄色。
【2013年系分真题第29题:绿色】
29.下列关于敏捷方法的叙述,(38)是错误的。
(38)
A.敏捷方法强调可工作的软件胜过大量的文档
B.敏捷方法强调软件过程与工具胜过个体和交互
C.敏捷方法强调尽早提交有价值的软件
D.敏捷方法强调小版本发布
解答:答案选择B。送分题。
【2015年系分真题第17题:绿色】
17.某软件公司欲开发一个基于Web的考勤管理系统。在项目初期,客户对系统的基本功能、表现形式等要求并不明确,在这种情况下,采用(21)开发方法比较合适。
(21)
A.瀑布式
B.形式化
C.结构化
D.极限编程
解答:答案选择D。本题考查软件开发方法的基础知识与应用。
【2019年系分真题第24题:绿色】
24、下列开发方法中,( )不属于敏捷开发方法。
A、极限编程
B、螺旋模型
C、自适应软件开发
D、水晶方法
解答:答案选择B。考察开发方法开发模型。送分题。
试题二
阅读以下关于软件开发方面的叙述,在答题纸上回答问题 1至问题4。
当前企业中的业务都是在全球化、快速变化的环境中运营的,传统的软件开发过程无法适应由此产生的快速软件开发需求。20 世纪 90 年代后期,一些软件开发人员在“Agile Allicance 2001”中系统地阐述了敏捷开发的原则,试图强调灵活性在快速且有效地生产软件中所发挥的作用。目前,众多的软件生产企业已经在实际的软件开发过程中接纳并实践了敏捷开发方法中的基本原则。
【问题1】(8分)
敏捷开发有许多典型方法,包括极限编程(eXtreme Programming)、Scrum、Crystal、DSDM等。请问这些方法共同的基本原则是什么?
【问题2】(8分)
敏捷开发的支持者往往夸大该方法的优点,但是在实践中,敏捷方法的基本原则有时确实很难实施。请用200字以内的文字说明敏捷方法中哪些原则在实践中难以实施。
【问题3】(2分)
敏捷开发方法中最有名的是极限编程。请说明极限编程中的结对编程(Pair Programming)的概念。
【问题4】(7分)
敏捷开发方法在具体实践过程中,往往需要开发环境或工具的支持,一般称为快速应用开发技术和可视化开发技术。请用150字以内的文字说明快速应用开发技术所包含的工具有哪些,并简要说明可视化开发技术的基本概念和技术原理
【问题1标准答案】
1)客户参与
2)增量式提交
3)开发团队的技术应该得到承认和发扬,团队成员应该保持它们自己的工作风格,不落俗套。
4)接受变更
5)保持简单性
【问题2标准答案】
1)客户参与往往依赖于客户自身的意愿和客户自身的代表性
2)有些成员的性格可能不适合激烈的投入,可能无法做到和其他成员之间的良好的沟通
3)对系统中的变更做出优先级排序可能是极其困难的
4)维护系统的简洁性往往需要额外的工作,但迫于移交时间表的压力,可能没有时间执行系统简化过程。
【问题3标准答案】
开发人员成对工作,检查彼此的工作并提供支持,圆满完成任务。
【问题4标准答案】
快速应用开发中所包括的工具有数据库编程语言,界面生成器,与办公应用的连接,报告生成器。
可视化开发是一种通过集成细粒度可复用软件组件来构造软件的快速应用方法,其主要思想是用图形工具和可重用部件来交互地编制程序。可视化开发一般是基于事件驱动的原理。
试题二 论敏捷开发方法的应用
敏捷软件开发简称敏捷开发,是从 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.联系你所参与项目的实际情况,分析并讨论测试驱动开发的使用效果,并评价其优缺点
对于敏捷开发,从开发者的角度,主要关注的内容有:
试题二 论敏捷开发在企业软件开发中的应用
敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。尽管目前敏捷开发的具体名称、理念、过程、术语尚不尽相同,但业界普遍认为:相对于“非敏捷”,敏捷开发更强调程序员团队与业务专家之间的紧密协作、面对面的沟通、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用。
请围绕“敏捷开发在企业软件开发中的应用”论题,依次从以下三个方面进行论述。
1.概要叙述你参与实施的应用敏捷开发的软件项目以及你所担任的主要工作。
2.叙述你在软件项目实践过程中采用了怎样的敏捷开发基本原则并说明理由。
3.具体阐述该项目采用的敏捷开发方法,以及实施过程中存在问题和解决方法。
2001年2月的《敏捷宣言》(Agile Manifesto)是由多位当时称之为“轻量级方法学家”所编写签署的,他们的价值观是:个人与交互重于开发过程与工具;可用的软件重于复杂的文档;寻求客户的合作重于对合同的谈判;对变化的响应重于始终优于遵循固定的计划。
常见的敏捷开发方法有极限编程,Scrum,水晶方法等。
极限编程
主要目标在于降低因需求变更而带来的成本,极限编程透过引入基本价值、原则、方法等概念来达到降低变更成本的目的。
Scrum
是一种迭代式增量软件开发过程,通常用于敏捷软件开发。包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括Scrum主管,产品负责人和开发团队。它使用迭代的方法,把每个30天一次的迭代称为一个“冲刺”(Sprint),按照需求优先级别来实现产品。多个自组织和自治小组并行递增地实现产品。通过简短的日常情况会议(称为“Scrum”)进行。
水晶敏捷方法
发展和提倡了一种机动性的软件开发方法,定义了一系列方法,包含核心元素,角色、过程模式、工作产品和实践。水晶敏捷方法实际是一组经过证明对不同类型项目都非常有效的敏捷过程,其目的是使得敏捷团队可以根据其项目和环境选择最合适的水晶系列成员。