image

编辑人: 桃花下浅酌

calendar2025-06-09

message2

visits276

2016年11月系统架构设计师案例分析答案及解析

一、问答题

1、

试题一(25分)

阅读以下关于软件架构设计的叙述,在答题纸上回答问题1至问题3

【说明】

某软件公司为某品牌手机厂商开发一套手机应用程序集成开发环境,以提高开发手机应用程序的质量和效率。在项目之初,公司的系统分析师对该集成开发环境的需求进行了调研和分析,具体描述如下:

a.需要同时支持该厂商自行定义的应用编程语言的编辑、界面可视化设计、编译、调试等模块,这些模块产生的模型或数据格式差异较大,集成环境应提供数据集成能力。集成开发环境还要支持以适配方式集成公司现有的应用模拟器工具。

b.经过调研,手机应用开发人员更倾向于使用Windows系统,因此集成开发环境的界面需要与Windows平台上的主流开发工具的界面风格保持一致口

c.支持相关开发数据在云端存储,需要保证在云端存储数据的机密性和完整性。

d.支持用户通过配置界面依据自己的喜好修改界面风格,包括颜色、布局、代码高亮方式等,配置完成后无需重启环境。

e.支持不同模型的自动转换。在初始需求中定义的机器性能条件下,对于一个包含50个对象的设计模型,将其转换为相应代码框架时所消耗时间不超过5秒。

f.能够连续运行的时间不小于240水时,意外退出后能够在1 0秒之内自动重启。

g.集成开发环境具有模块化结构,支持以模块为单位进行调试、测试与发布口

h.支持应用开发过程中的代码调试功能:开发人员可以设置断点,启动调试,编辑器可以自动卷屏并命中断点,能通过变量监视器查看当前变量取值。

在对需求进行分析后,公司的架构师小张查阅了相关的资料,认为该集成开发环境应该采用管道—过滤器(Pipe-Filter)的架构风格,公司的资深架构师王工在仔细分析后,认为应该采用数据仓储(Data Repository)的架构风格。公司经过评审,最终采用了王工的方案。

【问题1】(10分)

识别软件架构质量属性是进行架构设计的重要步骤。请分析题干中的需求描述,填写表1-1中(1)~(5)处的空白。



【问题3】(8分)

在确定采用数据仓库架构风格后,王工给出了集成开发环境的架构图。请填写图1-1中(1)~(4)处的空白,完成该集成开发环境的架构图。



参考答案:

参考答案:

(1)f (2)性能 (3)d (4)g (5)b

参考答案:

(1)通过数据仓储间接交互的星型结构

(2)流式数据

(3)数据驱动

(4)与数据仓储进行模型适配

参考答案:

(1)语法结构树
(2)编辑器
(3)适配器
(4)模拟器


解析:

问题1主要是识别软件架构的质量属性。根据题干中的需求描述,我们可以分析出每个需求对应的软件架构质量属性,如可用性、性能、灵活性、模块化和兼容性等。这些属性是评估软件架构设计质量的重要指标。

问题3是关于集成开发环境的架构图填写。在确定采用数据仓库架构风格后,我们需要根据题干中的描述以及软件架构设计的一般原则,填写集成开发环境的架构图中的空白部分。架构图应包括数据流、主要组件及其功能等。在填写时,我们需要考虑到数据仓库的核心地位,以及各个组件如何通过数据仓储进行交互和共享数据。

2、

试题二(25分)

阅读以下关于软件系统建模的叙述,在答题纸上回答问题1至问题3。

【说明】

某软件公司计划开发一套教学管理系统,用于为高校提供教学管理服务。该教学管理系统基本的需求包括:

(1)系统用户必须成功登录到系统后才能使用系统的各项功能服务;

(2)管理员(Registrar)使用该系统管理学校(University)、系(Department)、教师(Lecturer)、学生(Student)和课程(Course)等教学基础信息;

(3)学生使用系统选择并注册课程,必须通过所选课程的考试才能获得学分;如果考试不及格,必须参加补考,通过后才能获得课程学分;

(4)教师使用该系统选择所要教的课程,并从系统获得选择该课程的学生名单;

(5)管理员使用系统生成课程课表,维护系统所需的有关课程、学生和教师的信息;

(6)每个月到了月底系统会通过打印机打印学生的考勤信息。

项目组经过分析和讨论,决定采用面向对象开发技术对系统各项需求建模。

【问题1】(7分)

用例建模用来描述待开发系统的功能需求,主要元素是用例和参与者。请根据题目所述需求,说明教学服务系统中有哪些参与者。


【问题2】(7分)

用例是对系统行为的动态描述,用例获取是需求分析阶段的主要任务之一。请指出在面向对象系统建模中,用例之间的关系有哪几种类型?对题目所述教学服务系统的需求建模时, “登录系统”用例与“注册课程”用例之间、“参加考试”用例与“参加补考”用例之间的关系分别属于哪种类型?

 

【问题3】(11分)

类图主要用来描述系统的静态结构,是组件图和配置图的基础。请指出在面向对象系统建模中,类之间的关系有哪几种类型?对题目所述教学服务系统的需求建模时,类University与类Student之间、类University和类Department之间、类Student和类Course之间的关系分别属于哪种类型?




参考答案:

参考答案:

学生、教师、管理员、时间、打印机。

参考答案:

用例之间的关系包括:包含、扩展。

“登录系统”用例与“注册课程”用例之间的关系为:包含关系。

“参加考试”用例与“参加补考”用例之间的关系为:扩展关系。

 

参考答案:

类之间的关系包括:关联、聚合、组合、依赖、泛化。

类University与类Student之间的关系是:聚合关系。

类University与类Department之间的关系是:组合关系。

类Student与类Course之间的关系是:关联关系。

解析:

根据题目所述需求,教学服务系统的功能需要用户进行交互,因此有参与者。从描述中我们可以看到,学生、教师和管理员都是系统的使用者,都是参与者。另外,系统需要按照时间进行考勤信息的打印,打印机是外部实体,也是参与者之一。因此,参与教学服务系统的包括:学生、教师、管理员、时间及打印机。

3、

试题三(25分)

阅读以下关于嵌入式实时系统设计的描述,回答问题1至问题3。

【说明】

嵌入式系统是当前航空、航天、船舶及工业、医疗等领域的核心技术,嵌入式系统可包括实时系统与非实时系统两种。某宇航公司长期从事航空航天飞行器电子设备的研制工作,随着业务的扩大,需要大量大学毕业生补充到科研生产部门。按照公司规定,大学毕业生必须进行相关基础知识培训,为此,公司经理安排王工对他们进行了长达一个月的培训。

【问题1】(7分)

王工在培训中指出:嵌入式系统主要负责对设备的各种传感器进行管理与控制。而航空航天飞行器的电子设备由于对时间具有很强的敏感性,通常由嵌入式实时系统进行管控,请用300字以内文字说明什么是实时系统,实时系统有哪些主要特性。

【问题2】(8分)

实时系统根据应用场景、时间特征以及工作方式的不同,存在多种实时特性,大致有三种分类方法,即时间类别、时间需求和工作方式结构。根据自己所掌握的“实时性”知识,将图3-1给出的实时特性按三种分类方式,填写图3-1中(1)~(8)处空白。

备选答案:时限的危害程度;时间角包;弱;时间响应;固定;时限/反应时间;时间明确;输入输出激励;时间触发;强;周期/零星/非周期;事件触发。


【问题3】(10分)

可靠性是实时系统的关键特性之一,区分软件的错误(Error)、缺陷(Defect)、故障(Fault)和失效(Failure)概念是软件可靠性设计工作的基础。请简要说明错误、缺陷、故障和失效的定义;并在图3-2中标出错误、缺陷和失效出现阶段,说明缺陷、故障和失效的表现形式,填写图3-2中(1)~(6)处的空白。



参考答案:

参考答案:

实时系统是指向系统发出一指令后,在一个极短的时间内,系统回复结果。

实时系统的特性:

(1)时间约束性(及时性)

(2)可预测性

(3)高可靠性

(4)与外部环境的交互作用性

(5)多任务类型

(6)约束的复杂性

(7)具有短暂超载的特点

参考答案:

(1)强

(2)(3)时间响应、时间明确

(4)(5)(6)时限/反应时间、输入/输出激励、周期/零星/非周期

(7)(8)时间触发、事件触发

参考答案:

软件错误:软件错误是指在软件生存期内的不希望或不可接受的人为错误,其结果是导致软件缺陷的产生。

软件缺陷:软件缺陷是存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差。

软件故障:软件故障是指软件运行过程中出现的一种不希望或不可接受的内部状态。

软件失效:软件失效是指软件运行时产生 的一种不希望或不可接受的外部行为结果。

(1)存在

(2)引起

(3)用户经历

(4)在开发过程中

(5)在产品中

(6)在运行时


解析:

问题一的回答中解释了什么是实时系统及其主要特性。实时系统是对响应时间有严格要求的系统,主要特性包括及时性、可预测性等。嵌入式系统通过管理和控制传感器实现对航空航天飞行器的电子设备进行实时管控。问题二的回答中按照时间约束的危害程度和时间响应等分类方式对实时系统的特性进行了分类描述,并根据描述填写了图3-1的空白处。问题三的回答中定义了错误、缺陷、故障和失效的概念,并解释了它们之间的关系和在软件生命周期中的出现阶段,同时根据描述填写了图3-2的空白处。

4、

试题四(25分)

阅读以下关于应用服务器的叙述,,在答题纸上回答问题1至问题3。

【说明】

某电子产品制造公司,几年前开发建设了企业网站系统,实现了企业宣传、产品介绍、客服以及售后服务等基本功能。该网站技术上采用了Web服务器、动态脚本语言PHP。随着市场销售渠道变化以及企业业务的急剧拓展,该公司急需建立完善的电子商务平台。

公司张工建议对原有网站系统进行扩展,增加新的功能(包括订单系统、支付系统、库存管理等),这样有利于降低成本、快速上线;而王工则认为原有网站系统在技术上存在先天不足,不能满足企业业务的快速发展,尤其是企业业务将服务全球,需要提供24小时不间断服务,系统在大负荷和长时间运行下的稳定性至关重要。建议采用应用服务器的Web开发方法,例如J2EE,为该企业重新开发新的电子商务平台。

【问题1】(7分)

王工认为原有网站在技术上存在先天不足,不能满足企业业务的快速发展,根据你的理解,请用300字以内的文字说明原系统存在哪几个方面的不足。

【问题2】(8分)

请简要说明应用服务器的概念,并重点说明应用服务器如何来保障系统在大负荷和长时间运行下的稳定性以及可扩展性。

【问题3】(10分)

J2EE平台采用了多层分布式应用程序模型,实现不同逻辑功能的应用程序被封装到不同的构件中,处于不同层次的构件可被分别部署到不同的机器中。请填写图4-1中(1)~(5)处的空白,完成J2EE的N层体系结构。



参考答案:

参考答案:

PHP是面向过程的语言,只要业务流程发生变化,修改工作量很大,所以可修改性差,同时可复用性也差。

PHP语言在可靠性方面比J2EE平台差,J2EE平台有大量增强可靠性的成熟解决方案,而PHP只是一种简单的脚本语言,在可靠性方面缺乏成熟解决方案。

PHP对于不同的数据库采用不同的数据库访问接口,而Java通过JDBC来访问数据库,通过不同的数据库厂商提供的数据库驱动方便地访问数据库,访问数据库的接口比较统一。所以原架构在数据库连接方面修改起来工作量也是很大的。

参考答案:

 应用服务器是指通过各种协议把商业逻辑曝露给客户端的程序。

1、若系统负荷很大,可以布署多台应用服务,多台应用服务器分担任务,以达到性能要求。

2、应用服务器可以通过灵活的增加服务器完成扩展,所以可扩展性很好。

3、应用服务器可长时间稳定运行。因为当一台应用服务器出现故障时,可以将当前运行的事务转移至正常应用服务器上完成执行,不影响业务正常执行,从而保障高可靠性与稳定性。

参考答案:

(1)Applet   (2)Servlet   (3)EJB容器    (4)SessionBean   (5)EntityBean


解析:

问题1中,通过分析王工的观点和PHP技术的特点,总结出原系统在技术架构、可修改性、可复用性、可靠性和数据库连接等方面的不足。

问题2中,解释了应用服务器的概念,并详细说明了应用服务器如何通过布署多台服务器、灵活扩展和故障转移等方式来保障系统在大负荷和长时间运行下的稳定性和可扩展性。

问题3中,根据J2EE的N层体系结构模型,填写了相应的空白处。J2EE平台采用多层分布式应用程序模型,不同逻辑功能的应用程序被封装到不同的构件中,这些构件包括Applet、Servlet、EJB容器、SessionBean和EntityBean。

5、

试题五(25分)

阅读以下关于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】(1 0分)

Scrum项目管理软件需真实模拟Scrum敏捷开发流程,请根据你的理解完成图5-1给出的Scrum敏捷开发状态图,.填写其中(1)~(5)的内容。




【问题3】(9分)

根据项目组给出的系统设计方案,将备选答案a~l的内容填写在图5-2中的空(1)~(9),完成系统架构图。



参考答案:

【问题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)f或d

(3)h

(4)e

(5)a

(6)k

(7)j

(8)b

(9)c

注: (1)、 (2)答案可互换,但不能重复选择。


解析:

问题1:基于Scrum敏捷开发流程的理解,填写Scrum敏捷开发状态图的内容。制定Product Backlog是Scrum项目的初始阶段,确定开发需求列表。然后进行Sprint计划会议,细化需求并分配任务。每日站立会议是Scrum中的日常活动,用于跟踪进度和解决问题。当Product Backlog中还有未完成的用户故事时,项目团队将继续进行下一个Sprint活动迭代。最后,当已交付所有用户故事并更新Product Backlog的状态时,表示该Sprint结束。

问题2:根据系统设计方案,填写系统架构图中的备选答案。这些答案应与系统的各个层次和组件相对应,包括视图层、Web层、Service层、DAO层以及数据库服务等。具体的答案依赖于系统设计方案的具体细节。

问题3:根据题目描述的系统设计方案,完成系统架构图的填写。该架构图应展示Scrum敏捷开发管理系统的层次结构,包括视图层、Web层、Service层、DAO层以及基于MySQL的数据库服务层。具体的填写方式依赖于系统设计方案的具体细节,包括使用的框架、技术和服务等。

喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:2016年11月系统架构设计师案例分析答案及解析

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share