列表

详情


阅读以下关于Scrum敏捷开发过程的叙述,在答题纸上回答问题1至问题3。
【说明】
Scrum是一个增量的、迭代的敏捷软件开发过程。某软件公司计划开发一个基于Web的Scrum项目管理系统,用于支持项目团队采用Scrum敏捷开发方法进行软件开发,辅助主管智能决策。此项目管理系统提供的主要服务包括项目团队的管理、敏捷开发过程管理和工件的管理。
Scrum敏捷开发中,项目团队由Scrum主管、产品负责人和开发团队人员三种不同的角色组成,其开发过程由若干个Sprint(短的迭代周期,通常为2到4周)活动组成。
Product Backlog是在Scrum过程初期产生的一个按照商业价值排序的需求列表,该列表条目的体现形式通常为用户故事。在每一个Sprint活动中,项目团队从Product Backlog中挑选最高优先级的用户故事进行开发。被挑选的用户故事在Sprint计划会议上经过细化分解为任务,同时初步估算每一个任务的预计完成时间,编写Sprint Backlog。
在Sprint活动期间,项目团队每天早晨需举行每日站立会议,重新估算剩余任务的预计完成时间,更新Sprint Backlog、Sprint燃尽图和Release燃尽图。在每个Sprint活动结束时,项目团队召开评审会议和回顾会议,交付产品增量,总结Sprint期间的工作情况和问题。此时,如果Product Backlog中还有未完成的用户故事,则项目团队将开始筹备下一个Sprint活动迭代。
为完成Scrum项目管理系统,考虑到系统的智能决策需求,公司决定使用MVC架构模式开发该项目管理系统。具体来说,系统采用轻量级J2EE架构和SSH框架进行开发,使用MySQL数据库作为底层存储。
【问题1】(10分)
Scrum项目管理软件需真实模拟Scrum敏捷开发流程,请根据你的理解完成图5-1给出的Scrum敏捷开发状态图,填写其中(1)~(5)的内容。


【问题2】(6分)
根据题干描述,本系统采用MVC架构模式,请从备选答案a~n中分别选出属于MVC架构模型中的模型(Model)、视图(View)和控制器(Controller)的相关内容描述填入表5-1的空(1)~(3)处。
表5-1  架构模式中包含的内容
备选答案:
【问题3】(9分)
根据项目组给出的系统设计方案,将备选答案a~l的内容填写在图5-2中的空(1)~(9),完成系统架构图。
图5-2 系统架构图
备选答案:

  

参考答案:

【问题1】
(1)制定Product Backlog
(2)Sprint计划会议
(3)每日站立会议
(4)Product Backlog中还有未完成的用户故事
(5)已交付Product Backlog中的所有用户故事
【问题2】
(1)b、c、d、h、k、l,m、n
(2)a、f
(3)e、j
【问题3】
(1)d或f (2)d或f (3)h (4)e (5)a
(6)k (7)j (8)b (9)c

详细解析:

本题看似是考敏捷+MVC,但事实上是考状态图+MVC。
很多考生在回答问题1时,被Scrum的详细流程给吓倒了,认为自己没有用Scrum做过项目,对这种细节并不清楚,肯定做不对。事实并非如此。本题只是一个状态图的题而已,知道状态图的基本表达方式就能解决问题。因为题目已详细介绍了Scrum的处理流程,把这个文字版的转化为图片版的即可。

【问题1】
状态图主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件(Event),以及因状态转移而伴随的动作(Action)。一般可以用状态机对一个对象的生命周期建模,状态图用于显示状态机(State Machine Diagram),重点在于描述状态图的控制流。因此,基于题目描述的Scrum敏捷开发流程,对该Scrum项目管理系统中动态行为进行建模,(1)(2)(3)对应的状态应为“制定Product Backlog”“Sprint 计划会议”“每日站立会议”,(4)(5)对应的使状态发生改变的事件为“Product Backlog中还有未完成的用户故事”“已交付Product Backlog中的所有用户故事”。
【问题2】
本问题考查MVC架构模式在Web系统设计中的应用。MVC是一种目前广泛流行的软件体系结构,该架构模式的三个基本组件包括模型(Model)、视图(View)和控制器(Controller)。
模型(Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。Model有对数据直接访问的权利,例如对数据库的访问。Model不依赖View和Controller,也就是说,Model不关心它会被如何显示或是如何被操作。但是Model中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此Model 的View必须事先在此Model上注册,从而,View可以了解在数据Model上发生的改变。视图(View)能够实现数据有目的的显示。在View中一般没有程序上的逻辑。为了实现View 上的刷新功能,View需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。控制器(Controller)起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。“事件”包括用户的行为和数据Model上的改变。
【问题3】
根据题干中的描述,该项目管理系统基于MVC架构设计,采用轻量级J2EE架构和SSH框架进行开发,使用MySQL数据库作为底层存储。在图5-2给出的系统架构图的基础上,可以分析出该Scrum敏捷开发管理系统的层次系统架构包括5层,依次为视图层、Web层、Service层、DAO、Hibermate持久层和基于Mysql实现的数据库服务。

上一题