2020年下半年系统架构设计师考试案例分析真题(参考答案)_2020年下半年系统架构设计师 案例分析真题-程序员宅基地

技术标签: 软考  系统架构师  系统架构  

试题一

1、阅读以下关于软件架构设计与评估的叙述,在答题纸上回答问题1和问题2。
[说明]
某公司拟开发--套在线软件开发系统,支持用户通过浏览器在线进行软件开发活动。该系统的重要功能包括代码编辑、语法高亮显示、代码编译、系统调试、代码仓库管理等。在需求分析与架构设计阶段,公司提出的需求和质量属性描述如下:
a)根据用户的付费情况对用户进行分类,并根据类别提供相应的开发功能;
b)在正常负载情况下,系统应该在0.2s内对用户的界面操作请求进行响应;
c)系统应该具备完善的安全防护措施,能够对黑客的攻击行为进行检测和防御;
d)系统主站点断电后,应在3s内将请求重定向到备用站点;
e)系统支持中文昵称,但用户名必须以字母开头,长度不少于8个字符; .
f)系统宕机后,需要在15s内发现错误并启用备用系统;
g)在正常负载情况下,用户的代码提交请求应在0. 5s内完成;
h)系统支持硬件设备灵活扩容,应保证在2人●天内完成所有的部署与测试工作;
i)系统需要针对代码仓库的所有操作进行详细记录,便于后期查阅与审计;
j)更改系统web界面风格需要在4人●天内完成;
k)系统本身需要提供远程调试接口,支持开发团队进行远程排错;
在对系统需求、质量属性和架构特性进行分析的基础上,该公司的系统架构师给出了两种候选的架构设计方案,公司目前正在组织相关专家对候选系统架构进行评估。
 

[问题1] (13 分)
针对该系统的功能,李工建议采用管道过滤器(pipe and filter) 的架构风格,而王工则建议采用仓库(repository)架构风格。请指出该系统更适合采用哪种架构风格,并针对系统的主要功能,从数据处理方式、系统的可扩展性和处理性能三个方面对这两种架构风格进行比较与分析,填写表1-1中的(1)~ (4)空白处。

[问题2] (12 分)
在架构评估过程中,质量属性效用树(utilitytree)是对系统质量属性进行识别和优先级排序的重要工具。请将合适的质量属性名称填入图1-1中(1)、(2) 空白处,并选择题干描述的(a)~(k)填入(3)~ (6) 空白处,完成该系统的效用树。

参考答案:

[问题1]
1.应该采用仓库风格。(5 分)
2.表(1) - (4)空的空白分别为: (8分)
(1)数据存储在中心仓库,处理流程独立,支持交互式处理。
(2)数据与处理紧密关联,调整处理流程需要系统重新启动。
(3) 数据与处理分离,需要加载数据,性能降低。
(4)数据处理组件之间一般无依赖关系,可并发调用,提高性能。
[问题2] (12 分)
(1)安全性
(2)可修改性
(3) g
(4) i
(5) f
(6) j

 

试题二

2、阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
[说明]
某企业委托软件公司开发一-套包裹信息管理系统,以便于对该企业通过快递收发的包裹信息进
行统一管理。在系统设计阶段,需要对不同快递信息的包裹单信息进行建模,其中,邮政包裹
单如图2-1所示:

 [问题1] (14 分)
请说明关系型数据库开发中,逻辑数据模型设计过程包含哪些任务?该包裹单的逻辑数据模型
中应该包含哪些实体?并指出每个关系模式的主键属性。
[问题2] (6 分)
请说明什么是超类实体?结合图中包裹单信息,试设计一种超类实体,给出完整的属性列表。
[问题3] (5分)
请说明什么是派生属性?结合图2-1中包裹单信息说明哪个属性是派生属性。

参考答案:

[问题1]
逻辑数据模型设计过程包含的任务:
(1)构建系统上下文数据模型,包含实体及实体之间的联系;
(2)绘制基于主键的数据模型,为每个实体添加主键属性;
(3)构建全属性数据模型,为每个实体添加非主键属性;
(4)利用规范化技术建立系统规范化数据模型。
包裹单的逻辑数据模型中包含的实体:
(1) 收件人(主键:电话);
(2)寄件人(主键:电话);
(3)包裹单(主键:编号)。
[问题2]
超类实体是将多个实体中相同的属性组合起来构造出的新实体。
用户(姓名、电话、单位名称、详细地址)
[问题3]
派生属性是指某个实体的非主键属性由该实体其他非主键属性决定。
包裹单中的总计是由资费、挂号费、保价费、回执费计算得出,所以是派生属性。

 

试题三

3、阅读以下关于开放式嵌入式软件架构设计的相关描述,回答问题1至问题3。
[说明]
某公司一直从事宇航系统研制任务,随着宇航产品综合化、网络化技术发展的需要,公司的业务量急剧增加,研制新的软件架构已迫在眉睫。公司架构师王工广泛调研了多种现代架构的基础,建议采用基于FACE (Future Ai rborne Capabi li ty Envi ronment)的宇航系统开放式软件架构,以实现宇航系统的跨平台复用,实现宇航软件高质量、低成本的开发。公司领导肯定了王工的提案,并指出公司要全面实施基于FACE的开放式软件架构,应注意每个具体项目在实施中如何有效实现从需求到架构设计的关系,掌握基于软件需求的软件架构设计方法,并做好开放式软件架构中各段间的接口标准化设计工作。
[问题1] (9分)
王工指出,软件开发中需求分析是根本,架构设计是核心,不考虑软件需求便进行软件架构设计很可能导致架构设计的失败,因此,如何把软件需求映射到软件架构至关重要。请从描述语言、非功能性需求描述、需求和架构的一致性等三个方面,用 300字以内的文字说明软件需求到架构的映射存在哪些难点。
[问题2] (10分)
图3-1是王工给出的FACE架构布局,包括操作系统、I/O 服务、平台服务、传输服务和可移植组件等5个段;操作系统、I/0 和传输等3个标准接口。请分析图3-1给出的FACE架构的相关信息,用300字以内的文字简要说明FACE5个段的含义。

[问题3] (6 分)
FACE架构的核心能力是可支持应用程序的跨平台执行和可移植性,要达到可移植能力,必须解决应用程序的紧耦合和封装的障碍。请用200字以内的文字简要说明在可移植性上,应用程序的紧耦合和封装问题的主要表现分别是什么,并给出解决方案。
 

参考答案:

[问题1]
(1)需求和架构描述语言存在差异:软件需求是频繁获取的非正规的自然语言,而软件架构常用的是一种正式语言。
(2)非功能属性难于在架构中描述:系统属性中描述的非功能性需求通常很难在架构模型中形成规约。
(3)需求和架构的一致性难以保障:从软件需求映射到软件架构的过程中,保持-.致性和可追溯性很难,且复杂程度很高,因为单一的软件需求可能定位到多个软件架构的关注点。反之,架构元素也可能有多个软件需求。
[问题2]
操作系统服务段:为FACE架构其他段提供操作系统、运行时和操作系统级健康监控等服务。通过开放式OSGi框架为上层功能提供OS标准接口,并可实现上层组件的即插即用能力。I/0服务段:主要针对专用I/O设备进行抽象,屏蔽平台服务段软件与硬件设备的关系。由于图形服务软件和GPU处理器紧密相关,因此I/0服务段不对GPU驱动进行抽象。,平台服务段:主要是指用户需要的共性软件,如:系统级健康监控(HM)、配置、日志和流媒体等服务。本段可包括平台公共服务、平台设备服务和平台图像服务等三类。传输服务段:主要为.上层可移植组件段提供平台性的数据交换服务。可移植组件将通过传输服务段提供的服务实现交换,禁止组件间直接调用。可移植组件段:提供了多组件使用能力和功能服务。主要包括公共服务和可移植组件两类。
[问题3]
紧耦合问题主要表现在: I/O 问题、业务逻辑问题和表现问题。解决方案:可采用分离原则,通过隔离实现硬件特定信息和少数模块的代码,减少耦合性。封装问题主要表现在: ICD 硬编码问题、组件的紧耦合问题、直接调用问题。解决方案:可以通过提供数据源或槽的软件服务的方法,将紧耦合组件分解出应用程序,并将平台相关部分加入计算环境中,在计算平台内提供数据源或槽的软件服务,并实现接口标准化。

 

试题四

4、阅读以下关于数据库缓存的叙述,在答题纸上回答问题1至问题3。
[说明]
某互联网文化发展公司因业务发展,需要建立网上社区平台,为用户提供一个对网络文化产品(如互联网小说、电影、漫画等)进行评论、交流的平台。该平台的部分功能如下:
(a)用户帖子的评论计数器;
(b)支持粉丝列表功能;
(c)支持标签管理;
(d)支持共同好友功能等;
(e)提供排名功能,如当天最热前10名帖子排名、热搜榜前5排名等;
(f)用户信息的结构化存储;
(g)提供好友信息的发布/订阅功能。
该系统在性能上需要考虑高性能、高并发,以支持大量用户的同时访问。开发团队经过综合考虑,在数据管理上决定采用Redis+数据库(缓存+数据库)的解决方案。
[问题1] (10分)
Redis支持丰富的数据类型,并能够提供--些常见功能需求的解决方案。请选择题干描述的(a)~(g) 功能选项,填入表4-1中(1)~ (5)的空白处。

[问题2] (7 分)
该网_上社区平台需要为用户提供7X24小时的不间断服务。同时在系统出现宕机等故障时,能在最短时间内通过重启等方式重新建立服务。为此,开发团队选择了Redis持久化支持。Redis有两种持久化方式,分别是RDB(Redis DataBase) 持久化方式和AOF (Append OnlyFile)持久化方式。开发团队最终选择了RDB方式。请用200字以内的文字,从磁盘更新频率、数据安全、数据一致性、重启性 能和数据文件大小五个方面比较两种方式,并简要说明开发团队选择RDB的原因。
[问题3] (8 分)
缓存中存储当前的热点数据,Redis为每个KEY值都设置了过期时间,以提高缓存命中率。为了清除非热点数据,Redis 选择“定期删除+惰性删除”策略。如果该策略失效,Redis 内存使用率会越来越高,一般应采用内存淘汰机制来解决。请用100字以内的文字简要描述该策略的失效场景,并给出三种内存淘汰机制。

参考答案:

[问题1]
(1) (a)
(2) (b)、(g)
(3) (c)、(d)
(4) (f)
(5) (e)
[问题2]
磁盘更新频率:AOF比RDB文件更新频率高。
数据安全:“AOF 比RDB更安全。
数据一致性: RDB 间隔一-段时间存储,可能发生数据丢失和不一致; AOF通过append模式写文件,即使发生服务器宕机,也可通过redis-check-aof工具解决数据一致性 问题。
重启性能: RDB 性能比AOF好。
数据文件大小: AOF文件比RDB文件大。
综合上述五个方面的比较,考虑在系统出现宕机等故障时,需要在最短时间内通过重启等方式重新建立服务,因此开发团队最终选择了RDB方式。
[问题3]
失效场景:如果“定期删除”没删除KEY,也没即时去请求KEY,也就是说“惰性删除”也没生效。这样,Redis默认的“定期删除+惰性删除”策略就失效了。

对此,可采用内存淘汰机制解决:
(1)从已设置过期时间的数据集最近最少使用的数据淘汰。
(2)从已设置过期时间的数据集将要过期的数据淘汰。
(3)从已设置过期时间的数据集任意选择数据淘汰。
(4)从数据集最近最少使用的数据淘汰。
(5)从数据集任意选择数据淘汰。

 

试题五

5、阅读以下关于Web系统架构设计的叙述,在答题纸上回答问题1至问题3。
[说明]
某公司拟开发一款基于Web的工业设备检测系统,以实现对多种.工业数据的分类采集,运行状态检测以及相关信息的管理。该系统应具备以下功能:

现场设备状态采集功能:根据数据类型对设备检测指标状态信号进行分类采集;
设备采集数据传输功能:利用可靠的传输技术,实现将设备数据从制造现场传输到系统后台;
设备检测显示功能:对设备的运行状态、工作状态以及报警状态进行检测并提供相应的图形化界面;
设备信息管理功能:支持设备运行历史状态,报警记录、参数信息的查询。
同时,该系统还需满足以下非功能性需求:
(a)系统应支持大于100个工业设备的运行检测;
(b)设备数据从制造现场传输到系统后台传输时间小于1s;
(c)系统应在7*24小时工作;
(d)可抵御常见XSS攻击;
(e)系统在故障情况下,应在0. 5小时内恢复;
(f)支持数据审计。
面对系统需求,公司召开项目讨论会议,制定系统设计方案,最终决定使用三层拓扑结构,即
现场设备数据采集层、Web检测服务层和前端Web显示层。


问题内容:
[问题1] (6 分)
请按照性能、安全性和可用性三种非功能性需求分类将题干的(a)~(f)填入(1)~(3)空白处。非功能性需求归类表: .

 [问题2] (14 分)
该系统Web检测服务层拟采用SSM框架进行系统研发。SSM工作流程图如下图5-1所示,请从
下面给出的(a) ~ (k)中进行选择,补充完善图5-1中(1) ~ (7)处空白的内容。
(a)Connection Pool
(b) Struts2
(c)Persi stent Layer
(d)Mybatis
(e)HTTP
(f)MVC
(g)Kafka
(h) View Layer
(i )JSP
(j)Controller Layer
(k)Spring

[问题3] (5 分)
该工业设备检测系统拟采用工业控制领域中统--的数据访问机制,实现与各种不同设备的数据交互,请用100以内的文字说明采用标准的数据访问机制的原因。

参考答案:
[问题1]
(1) a、b
(2) d、f
(3) c、e
[问题2]
(1) a

(2) c
(3) d
(4) k
(5) j
(6) h
(7) i
[问题3]
该工业设备检测系统需与不同设备进行数据交互,采用标准的数据访问机制可以在硬件供应商
和软件开发商之间建立一套完整的规则。只要遵循这套规则,数据交互对两者来说都是透明
的,硬件供应商只需考虑应用程序的多种需求和传输协议,软件开发商也不必了解硬件的实质
和操作过程,实现对设备数据采集的统一管 理。


 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/java_faep/article/details/131835083

智能推荐

5G时代探索互动立体视频信息承载的新可能-程序员宅基地

文章浏览阅读908次。5G时代对于视频行业的发展和业务形态将是一个重要的助推,但5G时代带来的改变不只是带宽提升和延迟降低这两个最直接的因素。本次LiveVideoStackCon 2020线上峰会我们邀请到..._探索从平面到三维视频信息表达的新可能

combiner优化_合路器 combiner csdn-程序员宅基地

文章浏览阅读484次。combiner为何物1. Combiner是MR程序中Mapper和Reduce之外的一种组件2. Combiner组件的父类是Reducer3. Combiner和Reducer之间的区别在于运行的位置,Combiner可以看做局部的Reducer(local reducer)4. Reducer接收全局的MapTask 所输出的结果5. Combiner在MapTask节点中运行..._合路器 combiner csdn

Cloudera Manager 5.15.2离线安装笔记(一)_cdh-5.15.2-1.cdh5.15.2.p0.3-el7.parcel-程序员宅基地

文章浏览阅读1k次。Cloudera Manager 5.15.2离线安装笔记(一)工欲善其事必先利其器,想要学好一门技术首先得有趁手的工具,要想学好大数据技术,还是得有比较好的工具才行。本笔记记录的是安装Cloudera Manager的过程。CDH的全称是Cloudera’s Distribution Including Apache Hadoop,是hadoop众多发行版本中的一种,是由Cloudera维护..._cdh-5.15.2-1.cdh5.15.2.p0.3-el7.parcel

新版Android Studio火烈鸟 在新建项目工程时 无法选java的语言模板解决方法_androidstudio没有java语言选项-程序员宅基地

文章浏览阅读2w次,点赞52次,收藏65次。最近下载最新版androidstudio时 发现不能勾选java语言模板了如果快速点击下一步 新建项目 默认是kotlin语言模板 这可能和google主推kt语言有关。_androidstudio没有java语言选项

如何用java开发一个网站?_java开发网站-程序员宅基地

文章浏览阅读1w次,点赞25次,收藏196次。问题:如何用java开发一个网站?下载了最新的JDK软件、最新的Eclipse、数据库mysql以及tomcat、struts但是不知道怎么连接起来,在数据库连接的时候mysql-connector-java-5.1.44中没有Driver.jar,tomcat配置环境的时候也有问题,tomcat plugin没有和最新的JDK配套的怎么办?看了问题,我建议题主还是好好先学一轮基础的东西。基于问题我简单提几点:Eclipse是开发工具,最新的没问题。JDK其实不需要用最新,现在市面上大多数还是JDK_java开发网站

HDU 3605 Escape(最大流+状态压缩)_acm3605题答案csdn-程序员宅基地

文章浏览阅读338次。题意:现有n个人要移居到m个星球去,给定一个n*m的矩阵,第 i 行第 j 列如果为1,表示第 i 个人可以去第 j 个星球,如果为0,表示不可以去。然后给出这m个星球都最多分别能住多少人,问你n个人是不是都能找到星球住? (1 思路:看到这个n的范围我震惊了...然后不知道怎么做了... 明显的最大流问题,不过n数目太大,直接做肯定超时. 留意到m最多有10个,所_acm3605题答案csdn

随便推点

Vue.js devtools插件:超实用的浏览器扩展,使项目更容易地调试和优化-程序员宅基地

文章浏览阅读1.2k次,点赞11次,收藏12次。Vue.js devtools插件:超实用的浏览器扩展,使项目更容易地调试和优化_vue.js devtools

基于Matlab使用蒙特卡洛法对机器人运动空间的求解等_matlab运动学之蒙特卡罗法求积分与机器人工作域分析 秦迷天下 2023-12-08 19:-程序员宅基地

文章浏览阅读773次。基于Matlab使用蒙特卡洛法 几何解析法求解机器人运动空间_matlab运动学之蒙特卡罗法求积分与机器人工作域分析 秦迷天下 2023-12-08 19:

spark scala-transformation基础操作_spark scala transform-程序员宅基地

文章浏览阅读269次。本文章主要通过scala实现spark的transformation的常用功能:1 map算子2 flatMap算子3 sortByKey算子4 join算子5 filter算子import org.apache.spark.SparkConfimport org.apache.spark.SparkContext/** * @author jhp */object Transform..._spark scala transform

Harmony OS WiFi编程——连接热点、创建热点-程序员宅基地

文章浏览阅读938次,点赞25次,收藏19次。在Harmony OS上STA模式扫描其他WiFi热点,需要注意以下事项。可以将本仓整体拷贝到openharmony源码树下,和。接口只是触发扫描动作,并不会等到扫描完成才返回;扫描状态监听回调函数内,不能直接调用。拷贝到openharmony源码的。前两章中的方法——将当前目录下的。修改openharmony源码的。4.鸿蒙开发系统底层方向。1.项目开发必备面试题。5.鸿蒙音视频开发方向。扫描完成后要及时调用。

python not in string_每周一个 Python 模块 | string-程序员宅基地

文章浏览阅读50次。同时,也欢迎关注我的微信公众号 AlwaysBeta,更多精彩内容等你来。目的:包含用于处理文本的常量和类。string 模块可以追溯到最早的 Python 版本。先前在此模块中实现的许多功能已移至 str 对象方法。string 模块保留了几个有用的常量和类来处理 str 对象。函数 capwords()直接看下面的事例:import strings = 'The quick brown fox..._python not in string

python|简介和运行-程序员宅基地

文章浏览阅读628次,点赞18次,收藏25次。通过控制台的错误提示和错误代码行找问题,报错中有显示多个文件,需要关注的自己的代码文件和错误信息# 定义请求头header = {Win64;q=0.9'pyload = {"id":1,"code":"BJWT","name":"北京万泰","remark":"001","isEnabled":1}try:print('代码没有执行到!')加print调试代码找错误。