一、[材料型]问答题
试题一(共25分)
阅读以下关于软件架构的叙述,在答题纸上回答问题1和问题2。
【说明】
某电子商务公司为了更好地管理用户,提升企业销售业绩,拟开发一套用户管理系统。该系统的基本功能是根据用户的消费级别、消费历史、信用情况等指标将用户划分为不同的等级,并针对不同等级的用户提供相应的折扣方案。在需求分析与架构设计阶段,电子商务公司提出的需求、质量属性描述和架构特性如下:
(a)用户目前分为普通用户、银卡用户、金卡用户和白金用户四个等级,后续需要能够根据消费情况进行动态调整;
(b)系统应该具备完善的安全防护措施,能够对黑客的攻击行为进行检测与防御;
(c)在正常负载情况下,系统应在0.5秒内对用户的商品查询请求进行响应;
(d)在各种节假日或公司活动中,针对所有级别用户,系统均能够根据用户实时的消费情况动态调整折扣力度;
(e)系统主站点断电后,应在5秒内将请求重定向到备用站点;
(f)系统支持中文昵称,但用户名要求必须以字母开头,长度不少于8个字符;
(g)当系统发生网络失效后,需要在15秒内发现错误并启用备用网络;
(h)系统在展示商品的实时视频时,需要保证视频画面具有1024x768像素的分辨率,40帧/秒的速率;
(i)系统要扩容时,应保证在10人•月内完成所有的部署与测试工作;
(j)系统应对用户信息数据库的所有操作都进行完整记录;
(k)更改系统的Web界面接口必须在4人•周内完成;
(l)系统必须提供远程调试接口,并支持远程调试。
在对系统需求、质量属性描述和架构特性进行分析的基础上,该系统架构师给出了两种候选的架构设计方案,公司目前正在组织相关专家对系统架构进行评估。
1、【问题1】(13分)
针对用户级别与折扣规则管理功能的架构设计问题,李工建议采用面向对象的架构风格,而王工则建议采用基于规则的架构风格。请指出该系统更适合采用哪种架构风格,并从用户级别、折扣规则定义的灵活性、可扩展性和性能三个方面对这两种架构风格进行比较与分析,填写表1-1中的(1)~(3)空白处。

参考答案:
试题一
本题主要考查考生对于软件架构风格和软件质量属性的理解、掌握和运用,在解答该题目时,应认证阅读题干中给出的场景于需求描述,分析业务场景适合采用何种架构风格,然后分析需求描述了何种质量属性,根据质量属性描述对其归类。
【问题1】
答案:
该系统更适合采用基于规则的虚拟机架构风格。
(1)根据用户级别建立用户级别-折扣规则矩阵,在系统启动时加载并支持运行过程中动态更新,灵活性好
(2)加入新的用户级别和折扣规则时需要增加相应的类来扩展,可通过系统重启、动态反射或动态加载扩展,扩展性较差
(3)可根据类型判断或策略模式直接获得用户级别对应的折扣规则对象实时计算,性能很好
解析:
面向对象设计模式中的策略模式和虚拟机中的基于规则的架构风格是动态规则场景中两种组常用的解决方案。从灵活性、可扩展性和性能方面综合比较来看,基于规则的虚拟机风格在灵活性和可扩展性两个方面均具备较大优势,而从性能方面会比面向对象处理速度差一些。
解析:
本题主要考查了软件架构风格和软件质量属性的理解、掌握和运用。针对用户级别与折扣规则管理功能,基于规则的架构风格能够更好地满足系统的需求。从用户级别、折扣规则定义的灵活性和可扩展性来看,基于规则的架构风格具有优势。然而,从性能角度考虑,面向对象架构风格可能具有更好的性能。因此,在实际设计中需要综合考虑各种因素,选择最适合的架构风格。
2、【问题2】(13分)
在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。请将合适的质量属性名称填入图1-1中(1)、(2)空白处,并选择题干描述的(a)~(l)填入(3)~(6)空白处,完成该系统的效用树。
参考答案:
【问题2】
(1)安全性,(2)可修改性,(3)h,(4)j,(5)e,(6)k
解析:
质量属性效用树时对质量属性进行分类、权衡、分析的架构分析工具,主要关注系统的性能、可用性、可修改性和安全性四个方面。根据对相关质量属性的定义和含义,题干中:(c)在正常负载情况下,系统应在0.5秒内对用户的商品查询请求进行响应和(h)系统在展示商品的实时视频时,需要保证视频画面具有1024x768像素的分辨率,40帧/秒的速率,描述的是系统的性能属性;(e)系统主站点断电后,应在5秒内将请求重定向到备用站点和(g)当系统发生网络失效后,需要在15秒内发现错误并启用备用网络,描述的是系统的可用性属性;(i)系统要扩容时,应保证在10人?月内完成所有的部署与测试工作和(k)更改系统的Web界面接口必须在4人?周内完成,描述的是系统的可修改性属性;(b)系统应该具备完善的安全防护措施,能够对黑客的攻击行为进行检测与防御和(j)系统应对用户信息数据库的所有操作都进行完整记录,描述的是系统的安全性属性。
解析:
质量属性效用树是用于对系统质量属性进行识别和优先级排序的重要工具。在架构评估过程中,主要关注系统的性能、可用性、可修改性和安全性。
- 空白处(1)应填写“安全性”,因为系统中需要完善的安全防护措施,对黑客的攻击行为进行检测与防御,这是系统安全性的体现。
- 空白处(2)应填写“可修改性”,因为系统需要支持远程调试,并且在更改Web界面接口时有一定的时间限制,这涉及到系统的可修改性。
- 空白处(3)应填写描述系统性能的质量属性,如(c)“在正常负载情况下,系统应在0.5秒内对用户的商品查询请求进行响应”和(h)“系统在展示商品的实时视频时,需要保证视频画面具有特定的分辨率和帧率”,这些都是关于系统性能的要求。
- 空白处(4)应填写描述系统安全性的质量属性,如(j)“系统应对用户信息数据库的所有操作都进行完整记录”,这是为了保障系统的安全性。
- 空白处(5)应填写描述系统可用性的质量属性,如(e)“系统主站点断电后,应在5秒内将请求重定向到备用站点”,这是提高系统可用性的措施。
- 空白处(6)应填写描述系统可修改性的质量属性,如(k)“更改系统的Web界面接口必须在一定的时间内完成”,这涉及到系统的可修改性要求。
试题二(共25分)
阅读以下关于系统设计的叙述,在答题纸上回答问题1至问题3。
【说明】
某软件企业为快餐店开发一套在线订餐管理系统,主要功能包括:
(1)在线订餐:己注册客户通过网络在线选择快餐店所提供的餐品种类和数量后提交订单,系统显示订单费用供客户确认,客户确认后支付订单所列各项费用。
(2)厨房备餐:厨房接收到客户已付款订单后按照订单餐品列表选择各类食材进行餐品加工。
(3)食材采购:当快餐店某类食材低于特定数量时自动向供应商发起采购信息,包括食材类型和数量,供应商接收到采购信息后按照要求将食材送至快餐店并提交己采购的食材信息,系统自动更新食材库存。
(4)生成报表:每个周末和月末,快餐店经理会自动收到系统生成的统计报表,报表中详细列出了本周或本月订单的统计信息以及库存食材的统计信息。
现采用数据流图对上述订餐管理系统进行分析与设计,系统未完成的0层数据流图如图2-1所示。
3、【问题1】(8分)
根据订餐管理系统功能说明,请在图2-1所示数据流图中给出外部实体E1~E4和加工P1~P4的具体名称。
参考答案:
本题考查系统过程建模的相关知识。
数据流图(Data Flow Diagram, DFD)从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。为了表达数据处理过程的数据加工情况,用一个数据流图往往是不够的。层次结构的数据流图按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统。
层次结构数据流图一般分为:顶层数据流图,中层数据流图和底层数据流图。中层数据流图中最高层次一般从0开始,最高层级的中层数据流图即是0层数据流图,0层数据流图主要目的是将顶层流图的系统分解为若干子系统,并决定每个子系统间的数据接口和活动关系。
【问题1】
E1 客户,E2 厨房,E3 快餐店经理,E4 供应商
P1 订餐,P2 备餐,P3 生成报表,P4 采购食材
解析:
根据题目描述的功能,我们可以确定数据流图中的外部实体和加工的具体名称。
外部实体(External Entities)是系统的边界,表示系统与外部环境的交互。在本系统中,主要的外部实体包括:客户、厨房、快餐店经理和供应商。
加工(Processes)表示数据处理的步骤或任务。根据系统功能的描述,我们可以确定以下加工:
- P1:提交订单和在线订餐。这是客户通过在线平台选择并提交订单的过程。
- P2:备餐加工。这是厨房接收到订单后,根据订单内容准备餐品的过程。
- P3:生成报表统计信息。这是系统每周或每月自动生成关于订单和库存的报表的过程。
- P4:采购食材更新库存。当食材库存低于特定数量时,系统向供应商发起采购信息,供应商送货后,系统自动更新库存信息。
以上是对问题1的解答。
4、根据数据流图规范和订餐管理系统功能说明,请说明在图2-1中需要补充哪些数据流可以构造出完整的0层数据流图。
参考答案:
1)E1 - -> P1 餐品订单
2)P1 - -> P2 餐品订单
3)D1 - -> P3 订单汇总
4)P3 - -> E3 统计报表
解析:
根据题目描述和参照解析,我们需要完善数据流图中的四个要素:外部实体、加工、数据存储和数据流。在数据流图中,数据流表示数据在系统中的流动路径。根据提供的系统功能说明,我们需要补充与订单统计信息和库存食材统计信息相关的数据流。除了参考答案中的数据流外,系统生成的库存食材统计报表是从加工(处理)流向数据存储的重要数据流,因此也需要进行补充。
5、根据数据流图的含义,请说明数据流图和系统流程图之间有哪些方面的区别。
参考答案:
(1)数据流图中的处理过程可并行;系统流程图在某个时间点只能处于一个处理过程。
(2)数据流图展现系统的数据流; 系统流程图展现系统的控制流。
(3)数据流图展现全局的处理过程,过程之间遵循不同的计时标准;系统流程图中处理过程遵循一致的计时标准。
解析:
数据流图和系统流程图都是描述系统或数据流程的图形工具,但它们之间存在一些区别。
数据流图(Data Flow Diagram,DFD)主要关注系统中的数据流程,强调数据的来源、处理、存储和去向。它描述的是数据在系统中的流动路径以及各个处理过程之间的关系。数据流图中的处理过程可以是并行的,即可以同时进行多个处理过程。此外,数据流图展现的是全局的处理过程,过程之间遵循不同的计时标准。
系统流程图(System Flow Chart)则更侧重于描述系统的控制流程,即系统的各个部分如何协同工作以实现特定的功能。它展示的是系统的控制结构,包括各个处理过程、决策点、输入/输出等。系统流程图描述的是在某个时间点系统所处的状态以及所执行的处理过程,处理过程通常是顺序执行的,即系统在一个时间点只能处于一个处理过程中。此外,系统流程图中的处理过程遵循一致的计时标准。
参照解析中提到的外部实体、加工、数据存储和数据流四要素在数据流图中的常见错误与本题关系不大,因为本题主要询问的是数据流图和系统流程图之间的区别,而非数据流图的绘制细节。
试题三(共25分)
请详细阅读有关信息物理系统架构方面的描述,回答问题1至问题3。
【说明】
信息物理系统(Cyber Physical Systems, CPS)技术己成为未来宇航装备发展的重点关键技术之一。某公司长期从事嵌入式系统的研制工作,随着公司业务范围不断扩展,公司决定进入宇航装备的研制领域。为了做好前期准备,公司决定让王工程师负责编制公司进军宇航装备领域的战略规划。王工经调研和分析,认为未来宇航装备将向着网络化、智能化和综合化的目标发展,CPS将会是宇航装备的核心技术,公司应构建基于CPS技术的新产品架构,实现超前的技术战略储备。
6、【问题1】(7分)
通常CPS结构分为感知层、网络层和控制层,请用300字以内文字说明CPS的定义,并简要说明各层的含义。
参考答案:
本题主要考查CPS系统的定义、架构层次结构和安全性质量属性。
信息物理系统(CPS, Cyber-Physical Systems)是一个综合计算、网络和物理环境的多维复杂系统,通过3C(Computation、Communication、Control)技术的有机融合与深度协作,实现大型工程系统的实时感知、动态控制和信息服务。CPS实现计算、通信与物理系统的一体化设计,可使系统更加可靠、高效、实时协同,具有重要而广泛的应用前景。
【问题1】
答案:
信息物理系统作为计算进程和物理进程的统一体,是集成计算、通信与控制于一体的下一代智能系统,通过人机交互接口实现和物理进程的交互,使用网络化空间以远程的、可靠的、实时的、安全的、协作的方式操控一个物理实体。
感知层主要是由传感器、控制器和采集器等设备组成,主要是通过传感器获取环境的信息数据,定时发送给服务器,并接收服务器处理结果数据后进行相应的控制器变化;网络层是连接信息世界和物理世界的桥梁,主要实现数据传输,为系统提供实时的网络服务,保证网络分组的实时可靠;控制层根据感知层的认知结果,根据物理设备传回来的数据进行相应的分析,将分析结果通过客户端以可视化的界面呈现给客户。
解析:
信息物理系统(Cyber Physical Systems,CPS)作为计算进程和物理进程的统一体,是集成计算、通信与控制于一体的下一代智能系统。信息物理系统通过人机交互接口实现和物理进程的交互,使用网络化空间以远程的、可靠的、实时的、安全的、协作的方式操控一个物理实体。
信息物理系统包含了将来无处不在的环境感知、嵌入式计算、网络通信和网络控制等系统工程,使物理系统具有计算、通信、精确控制、远程协作和自治功能。它注重计算资源与物理资源的紧密结合与协调,主要用于一些智能系统上如设备互联,物联传感,智能家居,机器人,智能导航等。
信息物理系统主要分为3个部分,分别是感知层、网络层和控制层,感知层主要是由传感器、控制器和采集器等设备组成。感知层中的传感器作为信息物理系统中的末端设备,主要采集的是环境中的具体信息感知层主要是通过传感器获取环境的信息数据,并定时地发送给服务器,服务器接收到数据之后进行相应的处理,再返回给物理末端设备相应的信息,物理末端设备接收到数据之后要进行相应的变化;网络层主要是连接信息世界和物理世界的桥梁,主要实现的是数据传输,为系统提供实时的网络服务,保证网络分组的实时可靠;控制层主要是根据认知层的认知结果,根据物理设备传回来的数据进行相应的分析,将相应的结果返回给客户端以可视化的界面呈现给客户。
解析:
本题要求说明CPS的定义及各层的含义。信息物理系统是一个集计算、通信与控制于一体的复杂系统,能够实现实时感知、动态控制和信息服务。感知层主要负责获取环境信息数据,网络层负责连接信息世界和物理世界并实现数据传输,控制层则根据感知层的数据进行分析并以可视化的方式呈现给客户。这个答案充分满足了题目的要求,用300字以内的文字简明扼要地说明了CPS的定义和各层的含义。
7、【问题2】(10分)
王工在提交的战略规划中指出:飞行器中的电子设备是一个大型分布式系统,其传感器、控制器和采集器分布在飞机各个部位,相互间采用高速总线互连,实现子系统间的数据交换,而飞行员或地面指挥系统根据飞行数据的汇总决策飞行任务的执行。
请参考图3-1给出的功能图,依据你所掌握的CPS知识,说明以下所列的功能分别属于CPS结构中的哪层,哪项功能不属于CPS任何一层。
1.飞行传感器管理
2.步进电机控制
3.显控
4.发电机控制
5.环控
6.配电管理
7.转速传感器
8.传感器总线
9.飞行员
10.火警信号探测
参考答案:
【问题2】
答案:
感知层:2,4,7,10
网络层:8
控制层:1,3,5,6
非CPS:9
解析:
根据信息物理系统(CPS)的架构,我们可以将列出的功能分配到感知层、网络层和控制层。
- 感知层主要负责收集和感知环境中的信息。在这里,步进电机控制和发电机控制属于控制器,转速传感器和火警信号探测属于传感器,因此它们都属于感知层设备。
- 网络层主要负责数据的传输和通讯。传感器总线是负责数据传输的通讯链路设备,因此它属于网络层。
- 控制层负责根据收集到的信息做出相应的控制和决策。飞行传感器管理、显控、环控和配电管理都是关于飞行器的控制和管理的功能,因此它们属于控制层。
- 飞行员是系统的使用者,不属于CPS系统本身,因此不属于任何一层。
这个分析基于CPS的架构和对题目中提到的功能的理解。
8、【问题3】(8分)
王工在提交的战略规划中指出:未来宇航领域装备将呈现网络化、智能化和综合化等特征,形成集群式的协同能力,安全性尤为重要。在宇航领域的CPS系统中,不同层面上都会存在一定的安全威胁。请用100字以内文字说明CPS系统会存在哪三类安全威胁,并对每类安全威胁至少举出两个例子说明。
参考答案:
【问题3】
答案:
1.感知层威胁
信息窃听:通过搭线或电磁泄漏造成数据隐私泄露
感知破坏:未经授权对感知层信息篡改、增删或破坏
2.网络层威胁
拒绝服务:发送大量请求迫使服务器停止接受新请求
选择性转发:恶意节点接收数据后有选择性的转发,破坏数据完整性
3.控制层威胁
非授权访问:未经授权情况下不合理进入系统执行恶意操作
恶意代码:注入对系统造成不良影响的恶意代码,对系统造成破坏
解析:
根据题目描述,王工认为未来宇航领域装备将呈现网络化、智能化和综合化等特征,形成集群式的协同能力,安全性尤为重要。在宇航领域的CPS系统中,不同层面上都会存在一定的安全威胁。因此,需要从感知层、网络层和控制层三个层面来分析可能存在的安全威胁,并针对每个层面给出具体的例子进行说明。感知层主要负责信息的采集和感知,因此可能存在信息窃听和感知破坏等威胁;网络层负责数据的传输,因此可能存在拒绝服务和选择性转发等威胁;控制层负责系统的控制和操作,因此可能存在非授权访问和恶意代码等威胁。
试题四(共25分)
阅读以下关于数据系统方面的叙述,在答题纸上回答问题1至问题3。
【说明】
某初创企业的主营业务是为用户提供高度个性化的商品订购业务,其业务系统支持PC端、手机App等多种访问方式。系统上线后受到用户普遍欢迎,在线用户数和订单数量迅速增长,原有的关系数据库服务器不能满足高速并发的业务要求。
为了减轻数据库服务器的压力,该企业采用了分布式缓存系统,将应用系统经常使用的数据放置在内存,降低对数据库服务器的查询请求,提高了系统性能。在使用缓存系统的过程中,企业碰到了一系列技术问题。
9、【问题1】(11分)
该系统使用过程中,由于同样的数据分别存在于数据库和缓存系统中,必然会造成数据同步或数据不一致性的问题。该企业团队为解决这个问题,提出了如下解决思路:应用程序读数据时,首先读缓存,当该数据不在缓存时,再读取数据库;应用程序写数据吋,先写缓存,成功后再写数据库;或者先写数据库,再写缓存。
王工认为该解决思路并未解决数据同步或数据不一致性的问题,请用100字以内的文字解释其原因。
参考答案:
本题主要考查分布式架构中数据库和缓存双写一致性的架构策略和方案。
Redis是企业级系统高性能、高并发、高可用架构中非常重要的一个环节。Redis主要解决了关系型数据库并发量低的问题,有助于缓解关系型数据库在高并发场景下的压力,提高系统的吞吐量。而在Redis的实际使用过程中,难免会遇到缓存与数据库双写时数据不一致的问题,这是架构策略必须要考虑的问题。
【问题1】
答案:
在高并发条件下存在不同线程间网络延迟不同的情况,且缓存和数据库数据不同写入请求的速度也存在差异,并且缓存和数据库删除和写入均存在失败的可能性,这些会导致解决思路无法解决数据同步和不一致性问题。
(a)读数据库,
(b)写缓存
(c)数据库
(d)更新缓存key值/删除缓存key值/使缓存key值失效
解析:
问题1提到的解决思路试图通过优先读取缓存数据或先写入缓存来解决数据同步和不一致性问题。然而,在实际的高并发环境下,网络延迟、系统处理速度等因素会导致数据不同步。例如,当先修改数据库再删除缓存时,如果删除缓存失败,数据库中已经是新数据,但缓存中仍然是旧数据,造成数据不一致。反之,如果先删除缓存再修改数据库,在缓存读不到数据的情况下,查询数据库并更新缓存时可能拿到最新的数据,也会导致数据不一致。因此,单纯的这种策略无法完全解决数据同步和不一致性问题。需要更复杂的同步机制和策略来确保数据的一致性。
10、【问题2】(8分)
缓存系统一般以key/value形式存储数据,在系统运维中发现,部分针对缓存的查询,未在缓存系统中找到对应的key,从而引发了大量对数据库服务器的查询请求,最严重时甚至导致了数据库服务器的宕机。 经过运维人员的深入分析,发现存在两种情况:
(1) 用户请求的key值在系统中不存在时,会查询数据库系统,加大了数据库服务器的压力;
(2) 系统运行期间,发生了黑客攻击,以大量系统不存在的随机key发起了査询请求,从而导致了
数据库服务器的宕机。
经过研究,研发团队决定,当在数据库中也未查找到该key时,在缓存系统中为key设置空值,防止对数据库服务器发起重复查询。 请用100字以内文字说明该设置空值方案存在的问题,并给出解决思路。
参考答案:
【问题2】
答案:
存在问题:空值缓存需要更多的键,浪费内存空间
解决思路:查询缓存前,对 key 值进行过滤,只允许系统中存在的 key 进行后续操作(例如采用 key 的 bitmap 进行过滤)
解析:
缓存穿透是指查询的数据在缓存和数据库中都不存在,导致每次查询都会直接访问数据库。本题中描述的问题即为缓存穿透问题。针对该问题,设置空值方案虽然可以一定程度上减少数据库查询压力,但会造成缓存系统的资源浪费。更合理的解决方案是在查询缓存前对key进行过滤,只允许系统中存在的key进行查询,避免对不存在的key进行查询,从而防止缓存穿透。采用key的bitmap过滤是一种有效的解决方案,将系统中存在的key映射到bitmap中,对于不在bitmap中的key直接过滤掉,这样可以避免对数据库服务器发起不必要的查询请求,提高系统性能。
11、【问题3】(6分)
缓存系统中的key—般会存在有效期,超过有效期则key失效;有时也会根据LRU算法将某些key移出内存。当应用软件查询key时,如key失效或不在内存,会重新读取数据库,并更新缓存中的key。
运维团队发现在某些情况下,若大量的key设置了相同的失效时间,导致缓存在同一时刻众多key同时失效,或者瞬间产生对缓存系统不存在key的大量访问,或者缓存系统重启等原因,都会造成数据库服务器请求瞬时爆量,引起大量缓存更新操作,导致整个系统性能急剧下降,进而造成整个系统崩溃。
请用100字以内文字,给出解决该问题的两种不同思路。
参考答案:
【问题3】
答案:
1.搭建高可用Redis集群,正式部署前提前进行数据预热,在大并发访问前加载缓存键并尽量均匀分布缓存过期时间;
2.将热点数据设置为永不过期,开启Redis的持久化功能,当Redis启动时,从磁盘恢复数据到缓存中。
解析:
缓存雪崩是指缓存中大量数据同时过期,导致大量请求直接打到数据库上,造成数据库压力过大甚至宕机。针对这个问题,有两种常见的解决思路。
第一种思路是通过搭建高可用的Redis集群来增强系统的健壮性。同时,通过提前进行数据预热,在大并发访问前将缓存键加载好,以避免大量请求同时访问数据库。此外,为了分散过期数据的压力,可以尽量均匀分布缓存的过期时间,防止同一时间大量数据过期。
第二种思路是针对热点数据,将其设置为永不过期,这样就不会因为过期而导致缓存失效。同时,开启Redis的持久化功能,将缓存数据保存到磁盘上。当Redis重启时,可以从磁盘恢复数据到缓存中,确保热点数据始终可用,避免瞬时大量访问导致的系统崩溃。
试题五(共25分)
请详细阅读有关Web架构设计方面的叙述,在答题纸上回答问题1至问题3。
【说明】
某公司拟开发一个物流车辆管理系统,该系统可支持各车辆实时位置监控、车辆历史轨迹管理、违规违章记录管理、车辆固定资产管理、随车备品及配件更换记录管理、车辆寿命管理等功能需求。其非功能性需求如下:
(1)系统应支持大于50个终端设备的并发请求;
(2)系统应能够实时识别车牌,识别时间应小于1s;
(3)系统应7X24小时工作;
(4)具有友好的用户界面;
(5)可抵御常见SQL注入攻击;
(6)独立事务操作响应时间应小于3s;
(7)系统在故障情况下,应在1小时内恢复;
(8)新用户学习使用系统的时间少于1小时。
面对系统需求,公司召开项目组讨论会议,制订系统设计方案,最终决定基于分布式架构设计实现该物流车辆管理系统,应用Kafka、Redis数据缓存等技术实现对物流车辆自身数据、业务数据进行快速、高效的处理。
12、【问题1】(4分)
请将上述非功能性需求(1)~(8)归类到性能、安全性、可用性、易用性这四类非功能性需求。
参考答案:
本题考查高性能、高并发、高可用的分布式系统架构设计实践相关知识。
在当前的技术环境下,高性能、高并发、高可用的三高架构设计是众多技术企业需要在日常工作中经常面对的常见架构需求。这些需求的常见架构策略有:分层、冗余、分隔、异步通信、分布式、安全、自动化、集群、缓存、微服务等。
【问题1】
答案:
性能∶ (1)、(2)、(6)
安全性∶ (5)
可用性∶ (3)、(7)
易用性∶ (4)、(8)
解析:
在软件工程中,非功能性需求同样重要,它们描述了系统的质量和特性,但不涉及具体功能。这些需求包括性能、安全性、可用性和易用性。针对题目中的非功能性需求,可以进行如下归类:
- 性能:涉及到系统的运行效率和响应速度。(1)系统应支持大于50个终端设备的并发请求、(2)系统应能够实时识别车牌,识别时间应小于1s、(6)独立事务操作响应时间应小于3s,这三点都是对系统性能的明确要求。
- 安全性:(5)可抵御常见SQL注入攻击,这是对系统安全性的直接描述。
- 可用性:描述了系统在面对不同使用情况下的表现。(3)系统应7X24小时工作和(7)系统在故障情况下,应在1小时内恢复,都是对系统可用性的要求。
- 易用性:涉及到用户与系统的交互体验。(4)具有友好的用户界面、(8)新用户学习使用系统的时间少于1小时,这两点都是对系统易用性的要求。
因此,根据上述分析,可以将非功能性需求归类到相应的类别中。
13、【问题2】(14分)
经项目组讨论,完成了该系统的分布式架构设计,如图5-1所示。请从下面给出的(a)~(j)中进行选择,补充完善图5-1中(1)~(7)处空白的内容。
(a)数据存储层
(b)Struct2
(c)负载均衡层
(d)表现层
(e)HTTP协议
(f)Redis数据缓存
(g)Kafka分发消息
(h)分布式通信处理层
(i)逻辑处理层
(j)CDN内容分发
参考答案:
【问题2】
答案:
(1)d (2)e (3)i (4)h (5)g (6)f (7)a
解析:
问题2要求根据分布式架构设计的图示,补充完善图中的空白内容。根据题目描述和参考解析,可以分析得出:
- (1)表现层:负责用户与系统的交互,提供用户界面。因此选择d。
- (2)HTTP协议:是表现层与后端服务进行交互的常用协议,因此选择e。
- (3)逻辑处理层:负责对业务逻辑进行处理,因此选择i。
- (4)分布式通信处理层:负责处理分布式系统中的通信,因此选择h。
- (5)Kafka分发消息:在分布式架构中,Kafka用于实现消息队列,进行消息分发,因此选择g。
- (6)Redis数据缓存:用于缓存数据,提高系统性能,因此选择f。
- (7)数据存储层:负责数据的存储和管理,因此选择a。
这样,根据题目描述和解析,完成了对分布式架构设计图的补充完善。
14、【问题3】(7分)
该物流车辆管理系统需抵御常见的SQL注入攻击,请用200字以内的文字说明什么是SQL注入攻击,并列举出两种抵御SQL注入攻击的方式。
参考答案:
【问题3】
答案:
SOL 注入攻击,就是通过把 SOL 命令插入到 Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的 SQL 命令。
可以通过以下方式抵御 SQL 注入攻击∶
1、使用PreparedStatement
2、使用存储过程
3、验证输入/过滤输入
4、专业的安全产品
解析:
SQL注入攻击是一种安全漏洞攻击方式,攻击者通过在用户输入字段插入恶意SQL代码,欺骗数据库执行非法的命令,从而获取敏感数据或对数据库进行非法操作。为了抵御SQL注入攻击,可以采取多种措施。例如,使用PreparedStatement或存储过程可以确保用户输入被正确地处理,避免直接执行恶意代码。同时,验证和过滤用户输入也是一种有效的防御手段,通过移除或转义潜在的恶意字符来防止注入攻击。此外,使用专业的安全产品,如防火墙、入侵检测系统等,也可以提供额外的安全保障。分级管理、数据库加密等多层验证措施也是重要的补充手段。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!