架构师考点汇总:历年案例题目

历年案例题目,从公开渠道获取到,渠道包括:百度能找到的,广西区图书馆数字资源,手机APP

2020年下

试题一 架构风格和效用树

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

问题1

请问该需求应该采用哪一种风格。表1-1是对这两种风格分别从数据处理方式、系统拓展方式和处理性能三个方面进行了比较,请填写表1-1中(1)~(4)处的空白。

image-20211013175419685

答案:
应该采用仓库风格。
(1)模型驱动,处理流程事先不确定,交互性强
(2)数据与处理紧耦合,以接口适配方式实现扩展
(3)知识源之间不直接通讯,它们之间的交互只能通过黑板完成,性能较低。
(4)更容易处理任务间的协作,系统更加灵活、性能好。

问题2

请分析题干中的需求描述,填写图1-2中(1)~(6)处的空白。

image-20211013175454337

答案:
(1) 安全性 (2) 可修改性 (3)g (4)i (5)f (6)j

试题二 数据库属性设计

某企业委托软件公司开发一套包裹信息管理系统,以便于对该企业通过快递收发的包裹信息进行统一管理,在系统设计阶段,需要对不同快递信息的包裹单信息进行建模,其中,邮政包裹单如图2-1所示:

image-20211013175636220

问题1

请说明关系型数据库开发中,逻辑数据模型设计过程包含哪些任务?根据图2-1包裹详情单应该设计出哪些关系模式的名称,并指出每个关系模式的主键属性。

答案:
逻辑结构设计包含的任务主要有:
(1)把概念结构设计阶段设计好的基本E-R图转换为关系数据库的关系模式;(2)对关系模式进行优化;(3)设计用户视图。
设计的关系模式主要有:
收件人信息。主键:证件号
寄件人信息。主键:用户代码
包裹单信息。主键:包裹单编号
快递员信息。主键:员工编号
邮局站点信息。主键:邮局编号

问题2

请说明什么是超类实体?结合图中包裹单信息,试设计一种超类实体,给出完整的属性列表。

答案:
将一些子实体所共有的属性抽象为一个单独的新实体,这个新的实体就是超类实体。
比如根据这个包裹单信息可以设计一个 “人员信息”的超类:人员信息(姓名,电话,单位名称,详细地址,邮政编码)。

问题3

请说明什么是派生属性?结合图中包裹单信息说明哪个属性是派生属性。

答案:
可以从其它属性得来的属性就叫派生属性。包裹图中的“总计”属性是派生属性。

试题三 缓存redis

互联网公司因业务发展要建立网上平台为用户提供一个对网络文化产品进行评论(小说,电影等)交流的平台,该平台的部分功能如下
(a)用户帖子的评论计数器
(b)支持粉丝列表功能
(c)支持标签管理
(d)支持共同好友功能
(e)提供排名功能
(f)用户的信息结构化存储
(g)提供好友信息的发布/订阅功能。
该系统在性能上需要考虑高性能,并发,以支持大量的用户同时访问,经过考虑,在数据管理上,决定采用Redis+数据库的解决方案。

问题1

Redis支持丰富的类型,请选择题干描述的(a)-(g)功能选项。填入表4-1中(1)-(5)空白处。

image-20211013222840954

答案:
(1)a (2)b (3) c d (4)f (5)e

问题2
缓存中存储当前的热点数据Redis为每个key值都设置了过期时间,以提高缓存命中率,为了消除非热点数据Redis选择了定期删除加惰性删除策略。如果该策略失效Redis内存使用率会越来越高,一般采用内存淘汰机制来解决。请用100字以内的文字,简要描述该策略的失效场景,并给出三种内存淘汰机制。

答案:
由于redis定期删除是周期性轮询redis库中的时效性数据,采用随机抽取的策略,利用过期数据占比的方式控制删除频度,不可能扫描清除掉所有过期的key并删除,而惰性策略就是在客户端访问这个key的时候,对过期时间进行检查,如果过期了就立即删除。如果一些key定期删除没有抽取到,惰性删除也未触发,这样redis的内存占用会越来越高,此时就需要内存淘汰机制。
常用的内存淘汰机制:
(1)volatile-lru:从已设置过期时间的数据集中挑选最近最少使用的数据淘汰。
(2)volatile-ttl:从已设置过期时间的数据集中挑选将要过期的数据淘汰。
(3)volatile-random:从已设置过期时间的数据集中任意选择数据淘汰。
(4)volatile-lfu:从已设置过期时间的数据集挑选使用频率最低的数据淘汰。
(5)allkeys-lru:从数据集中挑选最近最少使用的数据淘汰
(6)allkeys-lfu:从数据集中挑选使用频率最低的数据淘汰。
(7)allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
(8)no-enviction(驱逐):禁止驱逐数据,这也是默认策略。

试题四 web(与2019年类似)

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

问题1

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

image-20211013175922618

问题2

该系统Web检测服务层拟采用SSM框架进行系统研发,SSM工作流程图如下图5-1所示,请从下面给出的(a)~(k)中进行选择,补充完善图5-1中(1)~(7)处空白的内容:
(a)Connection pool
(b)Struts2
(c)Persistent Layer
(d)Mybatis
(e)HTTP
(f)MVC
(g)Kafka
(h)ViewLayer
(i)Jsp
(j)Conrtoller Layer
(k)Spring

image-20211013175947375

问题3

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

答:通过采用标准的数据访问机制,可以屏蔽不同设备之间数据交互的差异,解决了系统使用数据不一致性,又在一定程度上减低了数据结构与应用系统的耦合度,减少了应用的工作量。

2019年下

试题一 架构风格和效用树

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

问题1: 针对用户级别与折扣规则管理功能的架构设计问题,李工建议采用面向对象的架构风格,而王工则建议采用基于规则的架构风格。请指出该系统更适合采用哪种架构风格,并从用户级别、折扣规则定义的灵活性、可扩展性和性能三个方面对这两种架构风格进行比较与分析,填写表1-1中的(1)~(3)空白处。

image-20211013223226112

答:

用户级别与折扣规则管理功能更适合采用基于规则的架构风格。
(1) 将用户级别、折扣规则等描述为可动态改变的规则数据;
(2) 加入新的用户级别和折扣规则时需要重新定义新的对象,并需要重启系统;
(3) 用户级别和折扣规则已经在系统内编码,可直接运行,性能较好。

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

image-20211013223239086

试题二 数据流图 不看

【说明】
某软件企业为快餐店开发一套在线订餐管理系统,主要功能包括:
(1)在线订餐:己注册客户通过网络在线选择快餐店所提供的餐品种类和数量后提交订单,系统显示订单费用供客户确认,客户确认后支付订单所列各项费用。
(2)厨房备餐:厨房接收到客户已付款订单后按照订单餐品列表选择各类食材进行餐品加工。
(3)食材采购:当快餐店某类食材低于特定数量时自动向供应商发起采购信息,包括食材类型和数量,供应商接收到采购信息后按照要求将食材送至快餐店并提交己采购的食材信息,系统自动更新食材库存。
(4)生成报表:每个周末和月末,快餐店经理会自动收到系统生成的统计报表,报表中详细列出了本周或本月订单的统计信息以及库存食材的统计信息。
现采用数据流图对上述订餐管理系统进行分析与设计,系统未完成的0层数据流图如图2-1所示。

问题:2.1 根据订餐管理系统功能说明,请在图2-1所示数据流图中给出外部实体E1E4和加工P1P4的具体名称。

image-20211013223401208

问题:2.2 根据数据流图规范和订餐管理系统功能说明,请说明在图2-1中需要补充哪些数据流可以构造出完整的0层数据流图。

问题:2.3 根据数据流图的含义,请说明数据流图和系统流程图之间有哪些方面的区别。

试题四 redis缓存

【说明】
某初创企业的主营业务是为用户提供高度个性化的商品订购业务,其业务系统支持PC端、手机App等多种访问方式。系统上线后受到用户普遍欢迎,在线用户数和订单数量迅速增长,原有的关系数据库服务器不能满足高速并发的业务要求。
为了减轻数据库服务器的压力,该企业采用了分布式缓存系统,将应用系统经常使用的数据放置在内存,降低对数据库服务器的查询请求,提高了系统性能。在使用缓存系统的过程中,企业碰到了一系列技术问题。

问题:4.1 该系统使用过程中,由于同样的数据分别存在于数据库和缓存系统中,必然会造成数据同步或数据不一致性的问题。该企业团队为解决这个问题,提出了如下解决思路:应用程序读数据时,首先读缓存,当该数据不在缓存时,再读取数据库;应用程序写数据吋,先写缓存,成功后再写数据库;或者先写数据库,再写缓存。
王工认为该解决思路并未解决数据同步或数据不一致性的问题,请用100字以内的文字解释其原因。
王工给出了一种可以解决该问题的数据读写步骤如下:
读数据操作的基本步骤:
1.根据key读缓存;
2.读取成功则直接返回;
3.若key不在缓存中时,根据key (a) ;
4.读取成功后, (b) ;
5.成功返回。
写数据操作的基本步骤:
1.根据key值写 (c) ;
2.成功后 (d) ;
3.成功返回。 .
请填写完善上述步骤中(a)~(d)处的空白内容。

问题:4.2 缓存系统一般以key/value形式存储数据,在系统运维中发现,部分针对缓存的杳询,未在缓存系统中找到对应的key,从而引发了大量对数据库服务器的查询请求,最严重时甚至导致了数据库服务器的宕机。 经过运维人员的深入分析,发现存在两种情况: (1)用户请求的key值在系统中不存在时,会查询数据库系统,加大了数据库服务器的压力; (2)系统运行期间,发生了黒客攻击,以大量系统不存在的随机key发起了査询请求,从而导致了数据库服务器的宕机。 经过研究,研发团队决定,当在数据库中也未查找到该key时,在缓存系统中为key设置空值,防止对数据库服务器发起重复查询。 请用100字以内文字说明该设置空值方案存在的问题,并给出解决思路。

问题:4.3 缓存系统中的key—般会存在有效期,超过有效期则key失效;有时也会根据LRU算法将某些key移出内存。当应用软件查询key时,如key失效或不在内存,会重新读取数据库,并更新缓存中的key。
运维团队发现在某些情况下,若大量的key设置了相同的失效时间,导致缓存在同一时刻众多key同时失效,或者瞬间产生对缓存系统不存在key的大量访问,或者缓存系统重启等原因,都会造成数据库服务器请求瞬时爆量,引起大量缓存更新操作,导致整个系统性能急剧下降,进而造成整个系统崩溃。
请用100字以内文字,给出解决该问题的两种不同思路。

试题五 web 非功能需求和MVC

【说明】
某公司拟开发一个物流车辆管理系统,该系统可支持各车辆实时位置监控、车辆历史轨迹管理、违规违章记录管理、车辆固定资产管理、随车备品及配件更换记录管理、车辆寿命管理等功能需求。其非功能性需求如下:
(1)系统应支持大于50个终端设备的并发请求;
(2)系统应能够实时识别车牌,识别时间应小于1s;
(3)系统应7X24小时工作;
(4)具有友好的用户界面;
(5)可抵御常见SQL注入攻击;
(6)独立事务操作响应时间应小于3s;
(7)系统在故障情况下,应在1小时内恢复;
(8)新用户学习使用系统的时间少于1小时。
面对系统需求,公司召开项目组讨论会议,制订系统设计方案,最终决定基于分布式架构设计实现该物流车辆管理系统,应用Kafka、Redis数据缓存等技术实现对物流车辆自身数据、业务数据进行快速、高效的处理。

问题:5.1 请将上述非功能性需求(1)~(8)归类到性能、安全性、可用性、易用性这四类非功能性需求。

问题:5.2 经项目组讨论,完成了该系统的分布式架构设计,如图5-1所示。请从下面给出的(a)(j)中进行选择,补充完善图5-1中(1)(7)处空白的内容。
(a)数据存储层
(b)Struct2
(c)负载均衡层
(d)表现层
(e)HTTP协议
(f)Redis数据缓存
(g)Kafka分发消息
(h)分布式通信处理层
(i)逻辑处理层
(j)CDN内容分发

image-20211013224013920

问题:5.3 该物流车辆管理系统需抵御常见的SQL注入攻击,请用200字以内的文字说明什么是SQL注入攻击,并列举出两种抵御SQL注入攻击的方式。

答:
SQL注入攻击,就是通过把SQL命令插入到 Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。可以通过以下方式抵御SQL注入攻击:
▪ 使用正则表达式;
▪ 使用参数化的过滤性语句;
▪ 检查用户输入的合法性;
▪ 用户相关数据加密处理;
▪ 存储过程来执行所有的查询;
▪ 使用专业的漏洞扫描工具。

2018年下

试题一 质量属性及需求

阅读以下关于软件系统设计的叙述,在答题纸上回答下来问题。

【说明】

某文化产业集团委托软件公司开发一套文化用品商城系统,业务涉及文化用品销售、定制、竞拍和点评等板块,以提升商城的信息化建设水平。该软件公司组织项目组完成了需求调研,现已进入到系统架构设计阶段。考虑到系统需求对架构设计决策的影响,项目组先列出了可能影响系统架构设计的部分需求如下:

(a)用户界面支持用户的个性化定制;
(b)系统需要支持当前主流的标准和服务,特别是通信协议和平台接口;
(c)用户操作的响应时间应不大于3秒,竞拍板块不大于1秒;
(d)系统具有故障诊断和快速恢复能力;
(e)用户密码需要加密传输;
(f) 系统需要支持不低于2G的数据缓存;
(g)用户操作停滞时间超过一定时限需要重新登录验证;
(h)系统支持用户选择汉语、英语或法语三种语言之一进行操作。

项目组提出了两种系统架构设计方案:瘦客户端C/S架构和胖客户端C/S架构,经过对上述需求逐条分析和讨论,最终决定采用瘦客户端C/S架构进行设计。

问题1:

在系统架构设计中,决定系统架构设计的非功能性需求主要有四类:操作性需求、性能需求、安全性需求和文化需求。请简要说明四类需求的含义。

答案:
操作性需求:指用户对系统操作与使用方面的相关需求,如操作的便利性等。
性能需求:指用户对系统响应时间、吞吐量、并发用户数等方面的要求,以达到系统的及时响应和资源的有效利用。
安全性需求:系统为合法用户提供服务并阻止非授权用户使用服务的能力需求。
文化需求:为满足不同人群或种族(文化背景差异)使用系统而形成的系统服务方面的要求。

操作性需求(Operational Requirements):指系统完成任务所需的操作环境要求及如何满足系统将来可能的需求变更的要求。
性能需求(Performance Requirements):针对系统性能要求的指标。常见的包括:响应时间、吞吐率。
安全性需求(Security Requirements):防止系统崩溃和保证数据安全所需要采取的保护措施或预防措施。
文化需求(Cultural Requirements):使用本系统的不同用户群体对系统提出的特有要求。

问题2

根据表1-1的分类,将题干所给出的系统需求(a)~(h)分别填入(1) ~ (4)。
表1-1 需求分类

需求类别 系统需求
操作性需求 (1)
性能需求 (2)
安全性需求 (3)
文化需求 (4)

答案:

需求类别 系统需求
操作性需求 (a)(b) (b)(d)
性能需求 (c)(d)(f) (c)(f)
安全性需求 (e)(g)
文化需求 (h) (a)(h)

问题3(答案存疑)

请说明瘦客户端C/S架构能够满足题干中给出的哪些系统需求(只需要回答出三个系统需求)。

答案:
(a)(b)(g)
题目问题3主观性比较强,其实题目中提到的这些要求,如果要做,两种架构都是能完成的。所以在此对比一下相对优势。
(a) 无论胖还是瘦,要做到用户界面的个性化都没有问题,但从更新的角度来看,胖客户端针对新增的个性化要求,更新起来比较困难。所以相对来说,瘦客户端更有优势。
(b) 从单次实现来看,都能实现,但要随时保持最新,瘦客户更有优势。
(c) 胖客户端,在客户端的运算能力强一些。
(d) 瘦客户端将业务逻辑迁移到应用服务器上,所以有故障只要修复服务器上的内容,而胖客户端要更新所有客户端,工作量大,所以此情况下瘦客户端有优势。
(e) 瘦客户端与胖客户端无明显差异。
(f) 胖客户端做到2G数据缓存很容易,而瘦客户端不容易实现。
(g) 瘦客户端与胖客户端无明显差异。
(h) 瘦客户端与胖客户端均可做到,但若涉及到更新,瘦客户端有优势。

试题二 数据流图 不看

试题四 缓存redis和memcache

阅读以下关于分布式数据库缓存设计的叙述,在答题纸上回答下列问题。

【说明】
某企业是为城市高端用户提供高品质蔬菜生鲜服务的初创企业,创业初期为快速开展业务,该企业采用轻量型的开发架构(脚本语言+关系型数据库)研制了一套业务系统。业务开展后受到用户普遍欢迎,用户数和业务数量迅速增长,原有的数据库服务器已不能满足高度并发的业务要求。为此,该企业成立了专门的研发团队来解决该问题。
张工建议重新开发整个系统, 采用新的服务器和数据架构,解决当前问题的同时为日后的扩展提供支持。但是,李工认为张工的方案开发周期过长,投入过大,当前应该在改动尽量小的前提下解决该问题。李工认为访问量很大的只是部分数据,建议采用缓存工具MemCache来减轻数据库服务器的压力,这样开发量小,开发周期短,比较适合初创公司,同时将来也可以通过集群进行扩展。然而,刘工又认为李工的方案中存在数据可靠性和一致性问题,在宕机时容易丢失交易数据,建议采用Redis来解决问题。在经过充分讨论,该公司最终决定采用刘工的方案。

在李工和刘工的方案中,均采用分布式数据库缓存技术来解决问题。请说明分布式数据库缓存的基本概念。
表4-1中对MemCache和Redis两种工具的优缺点进行了比较,请补充完善表 4-1中的空(1)~ (6)。

表4-1 MemCache与Redis能力比较

Memcache Redis
数据类型 简单key/value结构 (1)
持久性 (2) 支持
分布式储存 (3) 多种方式,主从、Sentine、Cluster等
多线程支持 支持 (4)
内存管理 (5)
事务支持 (6) 有限支持

答案:
分布式数据库缓存是在内存中管理数据并提供数据的一致性保障,采用数据复制技术实现高可用性,具有较优的扩展性与性能组合,这种数据存储机制,实现了更短的响应时间,同时极大的降低数据库的事务处理负载,极好地解决了大流量情况下数据库服务器和Web服务器质检的瓶颈。

Memcache Redis
数据类型 简单key/value结构 (string、hash、set、sortedset、list)
持久性 (不支持) 支持
分布式储存 (不支持) 多种方式,主从、哨兵(Sentine)、集群(Cluster)等
多线程支持 支持 (不支持)
内存管理 (有 私有内存池)
事务支持 (不支持) 有限支持

刘工认为李工的方案存在数据可靠性和一致性的问题,请说明原因。
为避免数据可靠性和一致性的问题,刘工的方案采用Redis作为数据库缓存,请说明基本的Redis与原有关系数据库的数据同步方案。

答案:
Memcache不支持数据持久化操作,所以掉电数据会全部丢失,而且无法直接恢复,这存在可靠性问题。
Memcache不支持事务,所以操作过程中可能产生数据的不一致性。

请给出Redis分布式存储的2种常见方案和Redis集群切片的几种常见方式。

答案:
Redis分布式存储的2种常见方案:redis主从方案、redis cluster方案、哨兵模式。
Redis集群切片的几种常见方式:
客户端分片:在客户端通过key的hash值对应不同服务器。
对数据根据key散列到不同的slot上,不同slot对应不同的服务器。

客户端分片
即在客户端就通过Key的hash值对应到不同的服务器
中间件实现分片
在应用软件和Redis中间,例如Twemproxy,Codis等,由中间件实现服务到后台Redis节点的路由分派。
客户端服务端协作分片
RedisCluster,客户端可以采用一致性Hash,服务端提供错误节点的重新定向服务Slot上。不同Slot对应到不同的服务器。

试题五 web设计 SOA

阅读以下关于Web系统设计的叙述,在答题纸上回答下列问题。

【说明】

某银行拟将以分行为主体的银行信息系统,全面整合为由总行统一管理维护的银行信息系统,实现统一的用户账户管理、转账汇款、自助缴费、理财投资、贷款管理、网上支付、财务报表分析等业务功能。但是,由于原有以分行为主体的银行信息系统中,多个业务系统采用异构平台、数据库和中间件,使用的报文交换标准和通信协议也不尽相同,使用传统的EAI解决方案根本无法实现新的业务模式下异构系统间灵活的交互和集成。因此,为了以最小的系统改进整合现有的基于不同技术实现的银行业务系统,该银行拟采用基于ESB的面向服务架构(SOA)集成方案实现业务整合。

请说明什么是面向服务架构(SOA)以及ESB在SOA中的作用与特点。

答案:
面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务质检定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。
支撑SOA的关键是其消息传递架构——企业服务总线(ESB)。ESB用于实现企业应用不同消息和信息的准确、高效和安全传递。
面向服务的元数据管理:他必须了解被他中介的两端,即服务的请求以及请求者对服务的要求,以及服务的提供者和他所提供的服务的描述。
通信:服务的发布/订阅、响应/请求、同步/异步消息、、路由和寻址等。
服务交互:服务接口定义,服务实现的置换,服务消息模型,服务目录和发现等。
服务安全:认证和授权、不可否认和机密性、安全标准的支持等。

基于该信息系统整合的实际需求,项目组完成了基于SOA的银行信息系统架构设计方案。该系统架构图如图5-1所示:

image-20211013171053998

请从(a)~ (j)中选择相应内容填入图5-1的(1)~ (6),补充完善架构设计图。

(a)数据层
(b)界面层
(c)业务层
(d) bind
(e) 企业服务总线ESB
(f) XML
(g) 安全验证和质量管理
(h) publish
(i) UDDI
(j) 组件层
(k) BPEL

答案:
(1) c
(2) i
(3) h
(4) e
(5) g
(6) j
image-20211013171410938

注:最下面的不是数据层,因为图中没有数据库,图中也没有界面。

针对银行信息系统的数据交互安全性需求,列举3种可实现信息系统安全保障的措施。

答案:
1.采用挑战/应答的认证机制,防止重放攻击。
2.采用加密技术保证信息在网络传输过程的安全。
3.采用数字签名技术保证信息传输过程的完整性和不可否认。

1、引入https协议或采用加密技术对数据先加密再传输
2、采用信息摘要技术对重要信息进行完整性验证
3、防火墙系统
4、安全检测
5、网络扫描

2017年下

试题一 质量属性效用树概念

阅读以下关于软件架构评估的叙述,在答题纸上回答下列问题。
【说明】
某单位为了建设健全的公路桥梁养护管理档案,拟开发一套公路桥梁在线管理系统。在系统的需求分析与架构设计阶段,用户提出的需求、质量属性描述和架构特性如 下:
(a) 系统用户分为高级管理员、数据管理员和数据维护员等三类:
(b) 系统应该具备完善的安全防护措施,能够对黑客的攻击行为进行检测与防御:
(c) 正常负载情况下,系统必须在 0.5 秒内对用户的查询请求进行响应:
(d) 对查询请求处理时间的要求将影响系统的数据传输协议和处理过程的设计:
(e) 系统的用户名不能为中文,要求必须以字母开头,长度不少于 5 个字符;
(f) 更改系统加密的级别将对安全性和性能产生影响;
(g) 网络失效后,系统需要在 10 秒内发现错误并启用备用系统,
(h) 查询过程中涉及到的桥梁与公路的实时状态视频传输必须保证画面具有1024x768的分辨率, 40帧 /秒的速率:
(i) 在系统升级时,必须保证在 10 人月内可添加一个新的消息处理中间件:
(j) 系统主站点断电后,必须在 3 秒内将请求重定向到备用站点:
(k) 如果每秒钟用户查询请求的数量是 10 个,处理单个请求的时间为 30 毫秒,则系统应保证在 1秒内完成用户的查询请求:
(l) 对桥梁信息数据库的所有操作都必须进行完整记录:
(m) 更改系统的 Web 界面接口必须在 4 人周内完成:
(n) 如果”养护报告生成”业务逻辑的描述尚未达成共识,可能导致部分业务功能 模块规则的矛盾,影响系统的可修改性
(O) 系统必须提供远程调试接口,并支持系统的远程调试。
在对系统需求,质量属性描述和架构特性进行分析的基础上,系统的架构师给出了三个候选的架构设计方案,公司目前正在组织系统开发的相关人员对系统架构进行评估。

在架构评估过程中,质量属性效用树 (utility tree) 是对系统质量属性进行识别和优 先级排序的重要工具。请给出合适的质量属性,填入图 1-1 中 (1)、(2) 空白处:并选择题干描述的 (a)(0) ,填入(3) (6) 空白处,完成该系统的效用树。

image-20211013173150697

答案:
image-20211013173408515

在架构评估过程中,需要正确识别系统的架构风险、敏感点和权衡点,并进行合理的架构决策。请用 300 字以内的文字给出系统架构风险、敏感点和权衡点的定义,并从题干(a) - (0) 中分别选出 1个对系统架构风险、敏感点和权衡点最为恰当的描述。

答案:
1、系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。
2、敏感点是指为了实现某种特定的质量属性,一个或多个构件所具有的特性。
3、权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。
4、风险点:(n)
5、敏感点:(d)
6、权衡点:(f)

试题二 系统设计 MVC

阅读以下关于软件系统设计的叙述,在答题纸上回答下列问题。
【说明】
某软件企业受该省教育部门委托建设高校数字化教育教学资源共享平台,实现以众筹众创的方式组织省内普通高校联合开展教育教学资源内容建设,实现全省优质教学资 源整合和共享。该资源共享平台的主要功能模块包括:
(1)统一身份认证模块,提供统一的认证入口,为平台其他核心业务模块提供用 户管理、身份认证、权限分级和单点登录等功能:
(2) 共享资源管理模块:提供教学资源申报流程服务,包括了资源申报、分类定 制、资料上传、资源审核和资源发布等功能:
(3)共享资源展示模块z 提供教育教学共享资源的展示服务,包括资源导航、视 频点播、资源检索、分类展示、资源评价和推荐等功能:
(4) 资源元模型管理模块 z 依据资源类型提供共享资源的描述属性、内容属性和展示属性,包括共享资源统一标准和规范、资源加工和在线编辑工具、数字水印和模板 定制等功能:
(5) 系统综合管理模块 z 提供系统管理和维护服务,包括系统配置、数据备份恢 复、资源导入导出和统计分析等功能。
项目组经过分析和讨论,决定采用基于 Java EE 的 MVC 模式设计资源共享平台的 软件架构,如图 2-1 所示。

image-20211013175117798

MVC架构中包含哪三种元素,它们的作用分别是什么?请根据图 2-1 所示架构将JavaEE 中 JSP、Servlet、Service、JavaBean、DAO 五种构件分别填入空 (1)–(5) 所示位置。

答案:
MVC架构包含:视图、控制器、模型
视图(View):视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理。
控制器(Controller):控制器接受用户的输入并调用模型和视图去完成用户的需求。
该部分是用户界面与Model的接口。一方面它解释来自于视图的输入,将其解释成为系统能够理解的对象,同时它也识别用户动作,并将其解释为对模型特定方法的调用;另一方面,它处理来自于模型的事件和模型逻辑执行的结果,调用适当的视图为用户提供反馈。
模型(Model):模型是应用程序的主体部分。模型表示业务数据和业务逻辑。一个模型能为多个视图提供数据。
image-20211013175217354

项目组架构师王工提出在图 2-1 所示架构设计中加入EJ B构件,采用企业级 JavaEE架构开发资源共享平台。请说明EJB构件中的 Bean (构件)分为哪三种类型,每种类型Bean 的职责是什么。

答案:
1、EJB中的Bean分三种类型:Session Bean、Entity Bean和Message-Driven Bean。
2、Session Bean的职责是:维护一个短暂的会话。
3、Entity Beans的职责是:维护一行持久稳固的数据。
4、Message-Driven Bean的职责是:异步接受消息。

如果采用王工提出的企业级 JavaEE 架构,请说明下列(a)-(e) 所给出的业务功能构件中,有状态和无状态构件分别包括哪些。
(a)Identification Bean (身份认证构件)
(b)ResPublish Bean(资源发布构件)
(c)ResRetrieval Bean(资源检索构件)
(d)OnlineEdit Bean(在线编辑构件)
(e)Statistics Bean(统计分析构件)

答案:
1、有状态:(a)、(d)
2、无状态:(b)、(c)、(e)

试题四 数据库 ORM

阅读以下关于数据库设计的叙述,在答题纸上回答下列问题 。
【说明】
某制造企业为拓展网上销售业务,委托某软件企业开发一套电子商务网站。初期仅 解决基本的网上销售、订单等功能需求。该软件企业很快决定基于。NET平台和SQL Server数据库进行开发,但在数据库访问方式上出现了争议。王工认为应该采用程序在 线访问的方式访问数据库:而李工认为本企业内部程序员缺乏数据库开发经验,而且应 用筒单,应该采用 ORM (对象关系映射)方式。最终经过综合考虑,该软件企业采用 了李工的建议。
随着业务的发展,该电子商务网站逐渐发展成一个通用的电子商务平台,销售多家 制造企业的产品,电子商务平台的功能也日益复杂。目前急需对该电子商务网站进行改 造,以支持对多种异构数据库平台的数据访问,同时满足复杂的数据管理需求。该软件 企业针对上述需求,对电子商务网站的架构进行了重新设计,新增加了数据访问层,同 时采用工厂设计模式解决异构数据库访问的问题。新设计的系统架构如图 4-1 所示。

image-20211013174104472

请用 300 字以内的文字分别说明数据库程序在线访问方式和 ORM 方式的优缺点,说明该软件企业采用 ORM 的原因。

答案:
数据库程序在线访问方式优点:
1、性能比直接SQL好
2、可以处理复杂查询语句
数据库程序在线访问方式缺点:
1、要求程序员懂SQL语句
2、修改与维护相对困难
ORM优点:
1、使用ORM可以大大降低学习和开发成本。
2、程序员不用再写SQL来进行数据库操作。
3、减少程序的代码量。
4、降低由于SQL代码质量差而带来的影响。
ORM缺点:
1、不太容易处理复杂查询语句。
2、性能较直接用SQL差。
本题中的场景之所以选择RM,主要考虑的是程序缺数据库开发经验,这样SQL语句质量有很大风险。同时学习成本很高。此外应用简单,不也担心ORM对性能的影响。

请用 100 宇以内的文字说明新体系架构中增加数据访问层的原因。请根据图 4-1 所示,填写图中空白处(1) - (3)。

答案:
增加数据访问层的原因:
1、由于涉及到多种异构数据库平台,数据访问复杂性增加,不宜与业务逻辑混合在一起。
2、数据管理变复杂之后,需要使用的代码量增加,分单独层次有利于让逻辑更清晰。
3、业务逻辑应以相同的方式应对异构的数据库,此时需要单独的数据访问层屏蔽差异性。
(1)执行业务逻辑(2)工厂层(3)数据访问接口层

应用程序设计中,数据库访问需要良好的封装性和可维护性,因此经常使用工厂设 计模式来实现对数据库访问的封装。请解释工厂设计模式,并说明其优点和应用场景: 请解释说明工厂模式在数据访问层中的应用。

答案:
工厂模式分抽象工厂方法,题目中场景适合采用抽象工厂设计模式。
抽象工厂设计模式提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定它们具体的类。其优点是可以非常方便的创建一系列的对象,其使用场景也是创建系列对象的情况。在本题中,乐意针对Oracle、MySQL、SQLSerner分别建立抽象工厂莫若指定当前工厂为Oracle工厂,则创建出来的数据库连接,数据集等一系列的对象都是符合Oracle操作要求的。这样便于数据库之间的切换。

试题五 响应式web设计

阅读以下关于 Web 系统架构设计的叙述,在答题纸上回答下列问题。
【说明】
某电子商务企业因发展良好,客户量逐步增大,企业业务不断扩充,导致其原有的B2C 商品交易平台已满足现有业务需求。因此,该企业委托某软件公司重新开发一 套商品交易平台。该企业要求新平台应可适应客户从手机、平板设备、电脑等不同终端设备访问系统,同时满足电商定期开展”秒杀”、”限时促销”等活动的系统高并发访问量的需求。面对系统需求,软件公司召开项目组讨论会议,制定系统设计方案。讨论会议上,王工提出可以应用响应式鞠Web设计满足客户从不同设备正确访问系统的需求。 同时,采用增如镜像站点、CDN 内容分发等方式解决高并发访问量带来的问题。李工在王工的提议上补充,仅仅依靠上述外网加速技术不能完全解决高用户并发访问问题,如果访问量持续增加,系统仍存在崩溃可能。李工提出应同时结合负载均衡、缓存服务器、web 应用服务器、劳布提文件系统、分布式数据库等方法设计系统架构。经过项目组讨论,最终决定综合王工和李工的思路,完成新系统的架构设计。

请用 200字以内的文字描述什么是”响应式 Web 设计”,并列举 2 个响应式 Web 设计的实现方式。

答案:
响应式web设计是一种网络页面设计布局,其理念是:集中创建页面的图片排版大小,可以智能德根据用户行为以及使用的设备环境(系统平台、屏幕大小、屏幕定向等)做出相应的响应来调整页面的布局,以提供用户的感知的、流畅的阅读和操作体验。
实现方式:
(1)流式布局
(2)弹性布局加媒体查询

综合王工和李工的提议,项目组完成了新商品交易平台的系统架构设计方案。新系统架构图如图 5-1 所示。请从选项 (a) - (j) 中为架构图中(1) - (8) 处空白选择相应的内容,补充支持高并发的 Web 应用系统架构设计图。
(a)Web 应用层
(b)界面层
(c)负载均衡层
(d)CDN 内容分发
(e)主数据库
(f)缓存服务器集群
(g)从数据库
(h)写操作
(i) 读操作
(j) 文件服务器集群

image-20211013174438888

答案:

(1)(d)
(2)(c)
(3)(f)
(4)(a)
(5)(6)(e)(h)
(7)(8)(g)(i)

根据李工的提议,新的 B2C 商品交易平台引入了主从复制机制。请针对交易平台的特点,简要叙述引入该机制的好处。

答案:
1、提升性能
交易平台要求高并发,主从复制方式一主多从,不同的用户请求可以从不同的从数据库读取数据,提高并发度。
2、可扩展性更优
如果采用单台数据库服务器,则访问量持续增加时,数据库瓶颈暴露,且无法迅速解决问题。而主从结构可以快速增加从服务器数量,一满足需求。
3、提升可用性
一主多从,一台从服务器出现故障不影响整个系统正常工作。
4、相当于负载均衡
一主多从分担任务,相当于负载均衡。
5、提升数据安全性
系统中的数据冗余存放多份,不会因为某台及其硬件故障而导致数据丢失。

2016年下

试题一 质量属性和架构风格 一些答案存疑

阅读以下关于软件架构设计的叙述,在答题纸上回答问题1至问题3。
【说明】
某软件公司为某品牌手机厂商开发一套手机应用程序集成开发环境,以提高开发手机应用程序的质量和效率。在项目之初,公司的系统分析师对该集成开发环境的需求进行了调研和分析,具体描述如下:
a.需要同时支持该厂商自行定义的应用编程语言的编辑、界面可视化设计、编译、调试等模块,这些模块产生的模型或数据格式差异较大,集成环境应提供数据集成能力。集成开发环境还要支持以适配方式集成公司现有的应用模拟器工具。
b.经过调研,手机应用开发人员更倾向于使用Windows系统,因此集成开发环境的界面需要与Windows平台上的主流开发工具的界面风格保持一致。
c.支持相关开发数据在云端存储,需要保证在云端存储数据的机密性和完整性。
d.支持用户通过配置界面依据自己的喜好修改界面风格,包括颜色、布局、代码高亮方式等,配置完成后无需重启环境。
e.支持不同模型的自动转换。在初始需求中定义的机器性能条件下,对于一个包含50个对象的设计模型,将其转换为相应代码框架时所消耗时间不超过5秒。
f.能够连续运行的时间不小于240小时,意外退出后能够在10秒之内自动重启。
g.集成开发环境具有模块化结构,支持以模块为单位进行调试、测试与发布。
h.支持应用开发过程中的代码调试功能:开发人员可以设置断点,启动调试,编辑器可以自动卷屏并命中断点,能通过变量监视器查看当前变量取值。
在对需求进行分析后,公司的架构师小张查阅了相关的资料,认为该集成开发环境应该采用管道一过滤器(Pipe-Filter)的架构风格,公司的资深架构师王工在仔细分析后,认为应该采用数据仓储(Data Repository)的架构风格。公司经过评审,最终采用了王工的方案。

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

image-20211013225955056

答案:
(1)f (2)性能 (3)g (4)h (5)b 注:可修改性存疑

问题:1.2 请在阅读题干需求描述的基础上,从交互方式、数据结构、控制结构和扩展方法4个方面对两种架构风格进行比较,填写表1-2中(1)~(4)处的空白。

image-20211013230010071

答案:
(1)星型 (2)数据流 (3)数据流驱动 (4)模型适配

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

image-20211013230024767

答案:
(1)语法结构树 (2)编辑器 (3)适配器 (4)应用模拟器工具

试题二 面向对象系统建模 用例和类关系

阅读以下关于软件系统建模的叙述,在答题纸上回答问题1至问题3。
【说明】
某软件公司计划开发一套教学管理系统,用于为高校提供教学管理服务。该教学管理系统基本的需求包括:
(1)系统用户必须成功登录到系统后才能使用系统的各项功能服务;
(2)管理员(Registrar)使用该系统管理学校(University)、系(Department)、教师(Lecturer)、学生(Student)和课程(Course)等教学基础信息;
(3)学生使用系统选择并注册课程,必须通过所选课程的考试才能获得学分;如果考试不及格,必须参加补考,通过后才能获得课程学分;
(4)教师使用该系统选择所要教的课程,并从系统获得选择该课程的学生名单;
(5)管理员使用系统生成课程课表,维护系统所需的有关课程、学生和教师的信息;
(6)每个月到了月底系统会通过打印机打印学生的考勤信息。
项目组经过分析和讨论,决定采用面向对象开发技术对系统各项需求建模。

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

答案:学生、教师、管理员、时间、打印机。
注:参与者是指系统以外的,需要使用系统或与系统交互的事物,包括:人或组织、设备、外部系统等。在本题中,较为容易识别的参与者包括:学生、教师、管理员,比较隐晦的参与者包括:时间、打印机。

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

答案:
用例之间的关系包括:包含、扩展、泛化。
“登录系统”用例与“注册课程”用例之间的关系为:包含关系。
“参加考试”用例与“参加补考”用例之间的关系为:扩展关系。

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

答案:
类之间的关系包括:关联、聚合、组合、依赖、泛化、实现(可写可不写,因为实现是接口与类之间的关系,而接口是一种特殊的类)。
类University与类Student之间的关系是:聚合关系。
类University与类Department之间的关系是:组合关系。
类Student与类Course之间的关系是:关联关系。

注:
依赖关系:一个事物发生变化影响另一个事物。
泛化关系:特殊/一般关系。
关联关系:描述了一组链,链是对象之间的连接。
聚合关系:整体与部分生命周期不同。
组合关系:整体与部分生命周期相同。
实现关系:接口与类之间的关系。

试题四 web设计 J2EE和PHP

阅读以下关于应用服务器的叙述,在答题纸上回答问题1至问题3。
【说明】
某电子产品制造公司,几年前开发建设了企业网站系统,实现了企业宣传、产品介绍、客服以及售后服务等基本功能。该网站技术上采用了Web服务器、动态脚本语言PHP。随着市场销售渠道变化以及企业业务的急剧拓展,该公司急需建立完善的电子商务平台。
公司张工建议对原有网站系统进行扩展,增加新的功能(包括订单系统、支付系统、库存管理等),这样有利于降低成本、快速上线;而王工则认为原有网站系统在技术上存在先天不足,不能满足企业业务的快速发展,尤其是企业业务将服务全球,需要提供24小时不间断服务,系统在大负荷和长时间运行下的稳定性至关重要。建议采用应用服务器的Web开发方法,例如J2EE,为该企业重新开发新的电子商务平台。

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

答案:
答案:
1、PHP只能实现简单的分布式两层或三层的架构,而JAVA在这方面就比较强大,可以实现多层的网络架构。数据库层(持久化层)、应用(业务)逻辑层、表示逻辑层彼此分开,而且现在不同的层都已经有一些成熟的开发框架的支持。
2、PHP是面向过程的语言,Java是面向对象的,面向过程语言开发的程序只要业务流程发生变化,修改工作量很大,所以可修改性差,同时可复用性也差。
3、PHP语言在可靠性方面比J2EE平台差,J2EE平台有大量增强可靠性的成熟解决方案,而PHP只是一种简单的脚本语言,在可靠性方面缺乏成熟解决方案。
4、PHP对于不同的数据库采用不同的数据库访问接口,而Java通过JDBC来访问数据库,通过不同的数据库厂商提供的数据库驱动方便地访问数据库,访问数据库的接口比较统一。所以原架构在数据库连接方面修改起来工作量也是很大的。
5、PHP适合于小型项目,所以本项目中以前采用PHP是合适的,但目前大量功能需要增加,PHP在稳定性方面也达不到要求。
6、PHP比Java的可维护性差。
7、PHP比Java的扩展性差。
8、PHP比Java的安全性差。

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

答案:
应用服务器是指通过各种协议把商业逻辑曝露给客户端的程序。
1、若系统负荷很大,可以布署多台应用服务,多台应用服务器分担任务,以达到性能要求。
2、应用服务器可以通过灵活的增加服务器完成扩展,所以可扩展性很好。
3、应用服务器可长时间稳定运行。因为当一台应用服务器出现故障时,可以将当前运行的事务转移至正常应用服务器上完成执行,不影响业务正常执行,从而保障高可靠性与稳定性。

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

image-20211013230805167

答案:
(1)Applet ; (2)Servlet ;(3)EJB容器 ;(4)SessionBean ; (5)EntityBean

2015年下

2014年下

试题一 MVC架构

【说明】
某软件公司欲开发一个网络设备管理系统,对管理区域内的网络设备(如路由器和交换机等)进行远程监视和控制。公司的系统分析师首先对系统进行了需求分析,识别出如下3项核心需求:
(a)目前需要管理的网络设备确定为10类20种,未来还将有新类别的网络设备纳入到该设备管理系统中;
(b)不同类别的网络设备,监视和控制的内容差异较大;同一类网络设备,监视和控制的内容相似,但不同厂商的实现方式(包括控制接口格式、编程语言等)差异较大;
(c)网络管理员能够在一个统一的终端之上实现对这些网络设备的可视化呈现和管理操作。
针对上述需求,公司研发部门的架构师对网络设备管理系统的架构进行了分析与设计,架构师王工认为该系统可以采用MVC架构风格实现,即对每种网络设备设计一个监控组件,组件通过调用网络设备厂商内置的编程接口对监控指令进行接收和处理;系统管理员通过管理模块向监控组件发送监控指令,对网络设备进行远程管理;网络状态、监控结果等信息会在控制终端上进行展示。针对不同网络设备的差异,王工认为可以对当前的20种网络设备接口进行调研与梳理,然后通过定义统一操作接口屏蔽设备差异。李工同意王工提出的MVC架构风格和定义统一操作接口的思路,但考虑到未来还会有新类别的网络设备接入,认为还需要采用扩展接口的方式支持系统开发人员扩展或修改现有操作接口。公司组织专家进行架构评审,最终同意了王工的方案和李工的改进意见。

问题:1.1 请用300字以内的文字解释什么是MVC架构风格以及其中的组件交互关系,并根据题干描述,指出该系统中的M、V、C分别对应什么。

答案:
MVC架构风格最初是Smalltalk-80中用来构建用户界面时采用的架构设计风格。其中M代表模型(Model),V代表视图(View),C代表控制器(Controller)。在该风格中,模型表示待展示的对象,视图表示模型的展示,控制器负责把用户的动作转成针对模型的操作。模型通过更新视图的数据来反映自身的变化。
在本系统中,模型(M)代表监控组件、视图(V)代表控制终端、控制器(C)代表管理模块。

问题:1.2 扩展接口模式结构通常包含四个角色:基础接口、组件、扩展接口和客户端,它们之间的关系如图 1-1 所示。其中每个扩展接口需要通过扩展基础接口获得基本操作能力,然后加入自己特有的操作接口,并通过设置全局唯一接口ID对自身接口进行标识;每个具体的组件需要实现扩展接口完成实际操作;客户端不与组件直接交互,而需要通过与扩展接口交互提出调用请求,扩展接口根据请求查找并选择合适的实现组件响应客户端请求。请根据上图所示和题干描述,指出扩展接口模式结构中的四个角色分别对应网络设备管理系统的哪些部分;并以客户端发起调用操作这一场景为例,填写表 1-1 中的(1)~(5)。

image-20211014003236841

客户端发起调用操作过程描述
序号 操 作
1 客户端调用某个______A上的操作接口,该操作接口可能是基础接口,也可能是扩展接口
2 若实现A的______存在被执行请求的操作接口,则调用该操作接口向用户返回结果
3 如果所有组件均没有实现______,则客户端调用A上的getExtension方法,传入需要的______,
通过查找与定位,找到实现该操作接口的______B,并将B的引用传回给客户端
4 客户端调用B上的操作接口,通过相应的实现组件返回结果

备选答案:基础接口、扩展接口、操作接口、接口ID、客户端、组件。

答案:
各个角色与网络设备管理系统的对应关系为:
基础接口对应统一操作接口;
组件对应监控组件;
扩展接口对应新网络设备的操作接口;
客户端对应控制终端。
客户端发起调用操作场景下的描述如下:
序号 操 作
1 客户端调用某个 扩展接口 A上的操作接口,该操作接口可能是基础接口,也可能是
扩展接口
2 若实现A的 组件 存在被执行请求的操作接口,则调用该操作接口向用户返回结果
3 如果所有组件均没有实现 操作接口 ,则客户端调用A上的getExtension方法,传入 需要的 接口ID ,通过查找与定位,找到实现该操作接口的 扩展接口 B,并将 B的引用传回给客户端
4 客户端调用B上的操作接口,通过相应的实现组件返回结果

[解析] 扩展接口模式结构通常包含四个角色:基础接口、组件、扩展接口和客户端。其中每个扩展接口需要通过扩展基础接口获得基本操作能力,然后加入自己特有的操作接口,并通过设置全局唯一接口ID对自身接口进行标识。每个具体的组件需要实现扩展接口完成实际操作,客户端不与组件直接交互,而需要通过与扩展接口交互提出调用请求,扩展接口根据请求查找并选择合适的实现组件响应客户端请求。根据题干描述,可以看出基础接口这一角色应该对应统一操作接口,组件这一角色应该对应监控组件,扩展接口这一角色应该对应新网络设备的操作接口,客户端这一角色应该对应控制终端。

试题二 数据流图 不看

试题四 质量属性和效用树

【说明】
某电子商务公司拟升级目前正在使用的在线交易系统,以提高客户网上购物时在线支付环节的效率和安全性。公司研发部门在需求分析的基础上,给出了在线交易系统的架构设计。公司组织相关人员召开了针对架构设计的评估会议,会上用户提出的需求、架构师识别的关键质量属性场景和评估专家的意见等内容部分列举如下:
(a)在正常负载情况下,系统必须在0.5秒内响应用户的交易请求;
(b)用户的信用卡支付必须保证99.999%的安全性;
(c)系统升级后用户名要求至少包含8个字符;
(d)网络失效后,系统需要在2分钟内发现错误并启用备用系统;
(e)在高峰负载情况下,用户发起支付请求后系统必须在10秒内完成支付功能;
(f)系统拟采用新的加密算法,这会提高系统安全性,但同时会降低系统的性能;
(g)对交易请求处理时间的要求将影响系统数据传输协议和交易处理过程的设计;
(h)需要在30人月内为系统添加公司新购买的事务处理中间件;
(i)现有架构设计中的支付部分与第三方支付平台紧耦合,当系统需要支持新的支付平台时,这种设计会导致支付部分代码的修改,影响系统的可修改性;
(j)主站点断电后,需要在3秒内将访问请求重定向到备用站点;
(k)用户信息数据库授权必须保证99.999%可用;
(l)系统需要对Web界面风格进行修改,修改工作必须在4人月内完成;
(m)系统需要为后端工程师提供远程调试接口,并支持远程调试。

问题:4.1 在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。请给出合适的质量属性,填入图 4-1 中(1)、(2)空白处;并选择题干描述的(a)~(m),填入(3)~(6)空白处,完成该系统的效用树。

image-20211014002500447

答案:
(1) 性能 (2) 可修改性 (3)(e) (4)(j) (5)(l) (6) (k)

在解答本题时,首先需要对题干中的所有软件需求描述进行分析与梳理,区分并找出其中的需求分析、软件质量属性描述,或者可能的风险、权衡点或敏感点描述。具体列举如下:
(a)在正常负载情况下,系统必须在0.5秒内响应用户的交易请求,对应性能属性。
(b)用户的信用卡支付必须保证99.999%的安全性,对应安全性属性。
(c)系统升级后用户名要求至少包含8个字符,对应软件业务需求。
(d)网络失效后,系统需要在2分钟内发现错误并启用备用系统,对应可用性属性。
(e)在高峰负载情况下,用户发起支付请求后系统必须在10秒内完成支付功能,对应性能属性。
(f)系统拟采用新的加密算法,这会提高系统安全性,但同时会降低系统的性能,系统权衡点。
(g)对交易请求处理时间的要求将影响系统数据传输协议和交易处理过程的设计,对应系统敏感点。
(h)需要在30人月内为系统添加公司新购买的事务处理中间件,对应可修改性属性。
(i)现有架构设计中的支付部分与第三方支付平台紧耦合,当系统需要支持新的支付平台时,这种设计会导致支付部分代码的修改,影响系统的可修改性,对应系统风险。
(j)主站点断电后,需要在3秒内将访问请求重定向到备用站点,对应可用性属性。
(k)用户信息数据库授权必须保证99.999%可用,对应安全性属性。
(l)系统需要对Web界面风格进行修改,修改工作必须在4人月内完成,对应可修改性属性。
(m)系统需要为后端工程师提供远程调试接口,并支持远程调试,对应可测试性属性。
在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。效用树主要关注性能、可修改性、可用性和安全4个方面,考生首先必须填入对应的质量属性名称,并根据上述分析依次填入合适的标号。

问题:4.2 在架构评估过程中,需要正确识别系统的架构风险、敏感点和权衡点,并进行合理的架构决策。请用300字以内的文字给出系统架构风险、敏感点和权衡点的定义,并从题干(a)〜(m)中各选出1个对系统架构风险、敏感点和权衡点最为恰当的描述。

答案:
系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。
敏感点是为了实现某种特定质量属性,一个或多个系统组件所具有的特性。
权衡点是影响多个质量属性,并对多个质量属性来说都是敏感点的系统属性。
题干描述中,(i)描述的是系统架构风险;(g)描述的是敏感点;(f)描述的是权衡点。 [解析] 系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。敏感点是为了实现某种特定质量属性,一个或多个系统组件所具有的特性。权衡点是影响多个质量属性,并对多个质量属性来说都是敏感点的系统属性。根据上述分析可知题干描述中,(i)描述的是系统架构风险;(g)描述的是敏感点;(f)描述的是权衡点。

试题五 web设计 负载均衡 数据库

【说明】
某软件公司开发运维了一个社交网站系统,该系统基于开源软件平台LAMP(Linux+Apache+MySQL+PHP)构建,运行一段时间以来,随着用户数量及访问量的增加,系统在Web服务器负载、磁盘I/O等方面出现了明显瓶颈,已不能满足大量客户端并发访问的要求,因此公司成立了专门的项目组,拟对系统架构进行调整以提高系统并发处理能力。目前系统采用了传统的三层结构,系统架构如图 5-1 所示。

image-20211014002655736

问题:5.1 针对目前出现的Web服务器负载过大问题,项目组决定在客户端与中间层Web服务器之间引入负载均衡器,通过中间层Web服务器集群来提高Web请求的并发处理能力。在讨论拟采用的负载均衡机制时,王工提出采用基于DNS的负载均衡机制,而李工则认为应采用基于反向代理的负载均衡机制,项目组经过讨论,最终确定采用李工提出的方案。请用200字以内的文字,分别简要说明两个机制的基本原理;并从系统执行效率、安全性及简易性等方面将两种机制进行对比,将对比结果填入表 5-1 中。

image-20211014002708623

答案:

特性 特性 基于DNS 基于反向代理
系统执行效率 是否考虑内部服务器性能差异及实时负载情况 (1)否 (2)是
系统执行效率 是否可对内部服务器静态资源进行缓存 (3)否 (4)是
安全性 是否能屏蔽客户端对真实Web服务器的直接访问 (5)否 (6)是
简易性 是否具有实现简单、容易实施及低成本的特性 (7)是 (8)否

解析:
本问题考查典型负载机制相关知识。
负载均衡机制是大型Web应用解决高负荷访问和大量并发请求时常用的有效解决方法,典型的负载均衡机制包括基于。DNS的负载均衡、基于反向代理的负载均衡等。
基于DNS的负载均衡机制通过DNS服务器实现,通常通过循环复用具有同一域名的多个主机地址的服务器实现负载均衡,可以看出,该机制具有实现简单、容易实施及低成本的特性。反向代理负载均衡则是将来自Internet的连接请求以反向代理的方式动态转发给内部网络上的多台服务器进行处理,从而达到负载均衡的目的。
从系统执行效率方面讲,基于DNS的负载均衡机制实现简单,但其通常不能区分服务器的差异,也不能反映服务器的当前运行状态。基于反向代理的则可以根据内部服务器的性能差异及实时负载情况进行动态负载均衡,当系统多个Web服务器性能存在明显差异或内部Web服务器出现故障时,负载均衡器可以更快做出响应,从而保证客户端的访问效率。采用基于反向代理的负载均衡机制,可在代理服务器中引入调速缓存机制,对Web服务器返回的静态页面或图片等静态资源进行缓存,由代理服务器承担对原始服务器的静态资源访问请求,从而进一步降低原始Web服务器的负载。
从安全性方面讲,采用基于反向代理的负载均衡机制,代理服务器屏蔽了客户端对真实Web服务器的直接访问,恶意用户无法对真实Web服务器进行攻击,且可以通过代理服务器为原本不安全的客户端与Web服务器之间的连接建立安全通道。因此采用基于反向代理的负载均衡机制可为系统提供更好的安全性保障。

问题:5.2 针对并发数据库访问所带来的磁盘I/O瓶颈问题,项目组决定在数据层引入数据库扩展机制。经过调研得知系统数据库中存储的主要数据为以用户标识为索引的社交网络数据,且系统运行时发生的大部分数据库操作为查询操作。经过讨论,项目组决定引入数据库分区和MySQL主从复制两种扩展机制。数据库分区可采用水平分区和垂直分区两种方式,请用350字以内的文字说明在本系统中应采用哪种方式及其原因,并分析引入主从复制机制给系统带来的好处。

答案:
(1)本系统中应主要使用水平分区机制。根据已知信息,系统数据库中存储的主要数据为以用户标识为索引的社交网络数据,采用水平分区机制可根据用户标识将用户数据进行水平分割,用户操作时先将请求分发到不同数据库分区,再进行具体数据库操作,以提高数据库访问效率。
(2)引入主从复制机制所带来的好处:
①避免数据库单点故障:主服务器实时、异步复制数据到从服务器,当主数据库宕机时,可在从数据库中选择一个升级为主服务器,从而防止数据库单点故障。
②提高查询效率:根据系统数据库访问特点,可以使用主数据库进行数据的插入、删除及更新等写操作,而从数据库则专门用来进行数据查询操作,从而将查询操作分担到不同的从服务器以提高数据库访问效率。

[解析] 本问题考查数据库集群相关知识。
根据已知信息,系统数据库中存储的主要数据为以用户标识为索引的社交网络数据,采用水平分区机制可根据用户标识将用户数据进行水平分割,用户操作时先将请求分发到不同数据库分区,再进行具体数据库操作,以提高数据库访问效率。因此本系统中应主要使用水平分区机制。
在系统中引入主从复制机制,首先可以利用主从复制机制的备份功能避免系统数据库单点故障;其次已知“系统运行时发生的大部分数据库操作为查询操作”。因此可以使用主数据库进行数据的插入、删除及更新等写操作,而从数据库则专门用来进行数据查询操作,从而将查询操作分担到不同的从服务器以提高数据库访问效率。

问题:5.3 为进一步提高数据库访问效率,项目组决定在中间层与数据层之间引入缓存机制。赵工开始提出可直接使用MySQL的查询缓存(query cache)机制,但项目组经过分析好友动态显示等典型业务的操作需求,同时考虑已引入的数据库扩展机制,认为查询缓存尚不能很好地提升系统的查询操作效率,项目组最终决定在中间层与数据层之间引入Memcached分布式缓存机制。
(a)请补充下述关于引入Memcached后系统访问数据库的基本过程:系统需要读取后台数据时,先检查数据是否存在于(1)中,若存在则直接从其中读取,若不存在则从(2)中读取并保存在(3)中;当(4)中数据发生更新时,需要将更新后的内容同步到(5)实例中。(备选答案:数据库、Memcacbed 缓存)
(b)请结合已知信息从缓存架构、缓存有效性及缓存数据类型等方面分析使用Memcached代替数据库查询缓存的原因。

(a)
(1)Memcached缓存
(2)数据库
(3)Memcached缓存
(4)数据库
(5)Memcached缓存

(b)使用Memcached代替数据库查询缓存的原因:
(1)缓存架构:数据库查询缓存通常每个数据库只有一个实例,因此存储内容受数据库服务器可用内存限制,可缓存数据有限。而Memcaehed可采用高速分布式缓存服务器结构,不受数据库服务器约束,可扩展性更好。
(2)缓存有效性:数据库查询缓存只要在发生写操作时就会失效,即使更新的是数据库中的其他行。而Memcached可通过键值将数据进行散列缓存,有效降低缓存的更新频率,从而提高缓存的有效性。
(3)缓存数据类型:数据库查询缓存只能缓存数据库行,对社交网站好友动态显示等典型业务所需要的组合数据缓存缺乏有效支持,而Memcached理论上可缓存任何内容。因此可以将分散在数据库中的关系或者列表组合后进行缓存,以提高缓存数据的针对性和效率。

[解析] 本问题考查数据缓存机制相关知识。
引入Memcached后系统访问数据库的基本过程为:系统需要读取后台数据时,先检查数据是否存在于Memcached中,若存在则直接从Memcached中读取,或不存在则从数据库中读取并保存在Memcached中;当系统数据库中数据发生更新时,需要将更新后的内容同步到Memcached缓存实例中。
与MySOL查询缓存相比,使用Memcached机制存在以下优势:
(1)缓存架构:数据库查询缓存通常每个数据库只有一个实例,因此存储内容受数据库服务器可用内存限制,可缓存数据有限;而Memcached可采用高速分布式缓存服务器结构,不受数据库服务器约束,可扩展性更好。
(2)缓存有效性:数据库查询缓存只要在发生写操作时就会失效,即使更新的是数据库中的其他行;而Memcached可通过键值将数据进行散列缓存,有效降低缓存的更新频率,从而提高缓存的有效性。
(3)缓存数据类型:数据库查询缓存只能缓存数据库行,对社交网站好友动态显示等典型业务所需要的组合数据缓存缺乏有效支持,而Memcached理论上可缓存任何内容,因此可以将分散在数据库中的关系或者列表组合后进行缓存,以提高缓存数据的针对性和效率。

2013年下

试题一 企业应用系统集成 ESB

某航空公司希望对构建于上世纪七八十年代的主要业务系统进行改造与集成,提高企业的竞争力。由于集成过程非常复杂,公司决定首先以Ramp Coordination系统为例进行集成过程的探索与验证。
在航空业中,Ramp Coordination是指飞机从降落到起飞过程中所需要进行的各种业务活动的协调过程。通常每个航班都有一位员工负责Ramp Coordination,称之为Ramp Coordinator由Ramp Coordinator协调的业务活动包括检查机位环境、卸货和装货等。
由于航班类型、机型的不同,RampCoordination的流程有很大差异。图1-1(a)所示的流程主要针对短期中转航班,这类航班在机场稍作停留后就起飞;图1-1(b)所示的流程主要针对到达航班,通常在机场过夜后第二天起飞;图1-1(c)所示的流程主要针对离港航班,这类航班是每天的第一班飞机。这三种类型的航班根据长途/短途、国内/国外等因素还可以进一步细分,每种细分航班类型的Ramp Coordination的流程也咯有不同。

img

为了完成上述业务,Ramp Coordination信息系统需要从乘务人员管理系统中提取航班乘务员的信息、从订票系统中提取乘客信息、从机务人员管理系统中提取机务人员信息、接收来自航班调度系统的航班到达事件。其中乘务人员管理系统和航班调度系统运行在大型主机系统中,机务人员管理系统运行在Unix操作系统之上,订票系统基干Java语言,具有Web界面,运行在Linux操作系统之上。
目前RampCoordination信息系统主要由人工完成所有协调工作,效率低且容易出错。公司领导要求集成后的Ramp Coordination信息系统能够针对不同需求迅速开.要业务流程,灵活、高效地完成协调任务。
针对上述要求,公司IT部门的架构师经过分析与讨论,最终采用面向服务的架构,以服务为中心进行Ramp Coordination信息系统的集成工作。

问题:1.1 服务建模是对Ramp Coordination信息系统进行集成的首要工作,公司的架构师首先对Ramp Coordination信息系统进行服务建模,识别出系统中的两个主要业务服务组件:
(1) Ramp Control:负责RampCoordination信息系统中相关各种业务活动的组件;
(2) Flight Management:负责航班相关信息的管理,包括航班日程,乘客信息等。
针对上述服务模型,结合题干描述,请为每个业务服务组件提供的服务进行分析与整理,完成表中的空白部分。

image-20211014002850699

答案:
image-20211014155042923

问题:1.2 对Ramp Coordination信息系统的集成涉及对乘务人员管理系统、航班调度系统、机务人员管理系统和订票系统的组织与协调,公司架构师决定采用企业服务总线(Enterprise Service Bus,ESB)技术进行系统集成,请用200字以内的文字对ESB的定义进行描述,给出ESB的五个主要功能,并针对题干描述,将恰当的内容填入图1-2中的(1)〜(6)。

image-20211014002905815

答案:
企业服务总线(Enterprise Service Bus,ESB)是传统中间件技术与XML、Web服务等技术结合的产物,主要支持异构系统集成。ESB基于内容的路由和过滤,具备复杂数据的传输能力,并可以提供一系列的标准接口。
ESB的主要功能有:
(1)服务位置透明性;
(2)传输协议转换;
(3)消息格式转换;
(4)消息路由;
(5)消息增强;
(6)安全性;
(7)监控与管理。

构架图填空:1)企业服务总线ESB 2)订票系统 3)航班信息 4)乘务人员管理系统 5)机务人员信息 6)机务人员管理系统

试题二 项目成本 不看

试题四 MVC架构

某商业银行欲开发一套个人银行系统,为用户提供常见的金融服务,包括转账、查询、存款变更和个人信息管理等功能。该软件除了业务需求外,还有一些特殊的表现层需求:
(1) 根据用户级别的不同,界面和可用功能是不同的;
(2) 支持Web、Windows、手机App等多种不同类型的界面;
(3) 考虑到将来功能的扩展,需要系统支持界面的定制以及动态生成等功能,以降低系统维护和新功能发布的成本。
经过对需求的讨论,该银行初步决定采用MVC模式设计该个人银行系统的表现层,采用XML作为GUI的描述语言,并应用XML的界面管理技术来实现灵活的界面配置、界面动态生成和界面定制。

问题:4.1 MVC模式强制性地将一个应用处理流程按照模型、视图、控制的方式进行分离,三者的协作关系如图4-1所示。

image-20211014003012210

请填写图4-1中的(1)〜(3),并简要说明在该个人银行系统中采用MVC模式对界面设计的作用。

答案:
(1)选择视图;(2)业务处理;(3)状态查询
MVC模式对该个人银行系统的作用:
(1)允许多种界面的扩展,视图的变更与增加,与模型无关;
(2)易于维护,控制器和视图随着模型的扩展而扩展,只要保持公共接口,控制器和视图的旧版本可以继续使用;
(3)可支持功能强大的用户界面。

问题:4.2 请从设计模式的角度,简要说明设计方案采用XML作为GUI描述语言的机制。

答案:
从设计模式的角度来说,整个XML表现层解析的机制是一种策略模式。在调用显示GUI时,不是直接调用特定的表现技术的API,而是装载GUI对应的XML配置文件,然后根据特定的表现技术的解析器解析XML,得到GUI视图实例对象。这样,对于GUI开发人员来说,GUI视图只需要维护一套XML文件即可。

问题:4.3 基于XML的界面管理技术可实现灵活的界面配置、界面动态生成和界面定制,其思路是用XML生成配置文件及界面所需的元数据,按不同需求生成界面元素及软件界面,其技术框图如图4-2所示。
请将恰当的内容填入图4-2中的(1)~(3),并简要解释说明其含义。

image-20211014003027007

答案:
(1)界面定制;(2)界面动态生成;(3)界面配置

image-20211014155915704

试题五 信息安全 加密

某软件公司拟开发一套信息安全支撑平台,为客户的局域网业务环境提供信息安全保护。该支撑平台的主要需求如下:
(1) 为局域网业务环境提供用户身份鉴别与资源访问授权功能;
(2) 为局域网环境中交换的网络数据提供加密保护;
(3) 为服务器和终端机存储的敏感持久数据提供加密保护;
(4) 保护的主要实体对象包括局域网内交换的网络数据包、文件服务器中的敏感数据文件、数据库服务器中的敏感关系数据和终端机用户存储的敏感数据文件;
(5) 服务器中存储的敏感数据按安全管理员配置的权限访问;
(6) 业务系统生成的单个敏感数据文件可能会达到数百兆的规模;
(7) 终端机用户存储的敏感数据为用户私有;
(8) 局域网业务环境的总用户数在100人以内。

问题:5.1 在确定该支撑平台所采用的用户身份鉴别机制时,王工提出采用基于口令的简单认证机制,而李工则提出采用基于公钥体系的认证机制。项目组经过讨论,确定采用基于公钥体系的机制,请结合上述需求具体分析采用李工方案的原因。

答案:
(1)基于口令的认证方式实现简单,但由于口令复杂度及管理方面的原因,易受到认证攻击;而在基于公钥体系的认证方式中,由于其密钥机制的复杂性,同时在认证过程中私钥不在网络上传输,因此可以有效防止认证攻击,与基于口令的认证方式相比更为安全。
(2)按照需求描述,在完成用户身份鉴别后,需依据用户身份进一步对业务数据进行安全保护,且受保护数据中包含用户私有的终端机数据文件,在基于口令的认证方式中,用户口令为用户和认证服务器共享,没有用户独有的直接秘密信息,而在基于公钥的认证方式中,可基于用户私钥对私有数据进行加密保护,实现更加简便。
(3)基于公钥体系的认证方式协议和计算更加复杂,因此其计算复杂度要高于基于口令的认证方式,但业务环境的总用户数在100人以内,用户规模不大,运行环境又为局域网环境,因此基于公钥体系的认证方式可满足平台效率要求。

问题:5.2 针对需求(7),项目组经过讨论,确定了基于数字信封的加密方式,其加密后的文件结构如图5-1所示。请结合需求说明对文件数据进行加密时,应采用对称加密的块加密方式还是流加密方式,为什么?并对该机制中的数据加密与解密过程进行描述。

image-20211014160104754

答案:
应采用流加密方式。因为需求中提及“单个敏感数据文件可能会达到数百兆的规模”,文件数据量较大,使用流加密方式可以获得更高的加解密效率。
数据加密与解密过程如下:
其加密过程为:首先生成一个对称密钥,使用用户公钥加密这个对称密钥后存储在文件头,然后用生成的对称密钥加密文件数据存储;
其解密过程为:用户首先使用自己的私钥解密被加密的对称密钥,再用该对称密钥解密出数据原文。

问题:5.3 对数据库服务器中的敏感关系数据进行加密保护时,客户业务系统中的敏感关系数据主要是特定数据库表中的敏感字段值,客户要求对不同程度的敏感字段采用不同强度的密钥进行防护,且加密方式应尽可能减少安全管理与应用程序的负担。目前数据库管理系统提供的基本数据加密方式主要包括加解密API和透明加密两种,请用300字以内的文字对这两种方式进行解释,并结合需求说明应采用哪种加密方式。

答案:
目前数据库管理系统提供的基本数据加密支持主要有以下两种:
(1)加解密API:数据库管理系统提供可在SQL,语句中调用的加解密API,应用可以利用这些API构建自己的基础架构,对数据进行加密保护。
(2)透明加密:安全管理员为数据库敏感字段选择加密方式及密钥强度,应用访问受保护数据时只需使用口令打开或关闭密钥表,对数据的加密和解密由数据库管理系统自动完成。

加解密API方式的灵活性强,但构建和管理复杂;而透明加密方式管理简单,应用程序负担轻,但灵活性较差。用户要求尽可能减少安全管理与应用程序的负担,因此应选择透明加密方式。

2012年下

2011年下

2010年下

试题一 架构风格

【说明】
某公司欲针对Linux操作系统开发一个KWIC (KeyWord in Context)检索系统。该系统接收用户输入的査询关键字,依据字母顺序给出相关帮助文档并根据帮助内容进行循环滚动阅读。在对KWIC系统进行需求分析时,公司的业务专家发现用户后续还有可能采用其他方式展示帮助内容。根据目前需求,公司的技术人员决定通过重复剪切帮助文档中的第一个单词并将其插入到行尾的方式实现帮助文档内容的循环滚动,后续还将采用其他的方法实现这一功能。
在对KWIC系统的架构进行设计时,公司的架构师王工提出采用共享数据的主程序-子程序的架构风格,而李工则主张采用管道-过滤器的架构风格。在架构评估会议上, 大家从系统的算法变更、功能变更、数据表示变更和性能等方面对这两种方案进行评价, 最终采用了李工的方案。

问题:1.1 在实际的软件项目开发中,采用恰当的架构风格是项目成功的保证。请用200字以内的文字说明什么是软件架构风格,并对主程序-子程序和管道-过滤器这两种架构风格的特点进行描述。

答案:
软件架构风格是描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。
主程序-子程序架构风格中,所有的计算构件作为子程序协作工作,并由一个主程序 顺序地调用这些子程序,构件通过共享存储区交换数据。
管道-过滤器架构风格中,每个构件都有一组输入和输出,构件接受数据输入,经过内部处理,然后产生数据输出。这里的构件称为过滤器,构件之间的连接件称为数据流传输的管道。

问题:1.2 请完成表1-1中的空白部分(用+表示优、一表示差),对王工和李工提出的架构风格进行评价,并指出采用李工方案的原因。

image-20211014161013095

答案:
image-20211014161313668

问题:1.3 图1-1是李工给出的架构设计示意图,请将恰当的功能描述填入图中的(1)〜(4)。

image-20211014161025671

答案:
1)文档检索 2)查询结果按照字母表排序 3)剪切行首单词 4)单词插入行尾

2009年下

试题一 质量属性概念

某软件开发公司欲为某电子商务企业开发一个在线交易平台,支持客户完成网上购物活动中的在线交易。在系统开发之初,企业对该平台提出了如下要求:
(1) 在线交易平台必须在Is内完成客户的交易请求。
(2) 该平台必须保证客户个人信息和交易信息的安全。
(3) 当发生故障时,该平台的平均故障恢复时间必须小于10s。
(4) 由于企业业务发展较快,需要经常为该平台添加新功能或进行硬件升级。添加新功能或进行硬件升级必须在6小时内完成。
针对这些要求,该软件开发公司决定采用基于架构的软件开发方法,以架构为核心进行在线交易平台的设计与实现。

问题:1.1 软件质量属性是影响软件架构设计的重要因素。请用200字以内的文字列举六种不同的软件质量属性名称并解释其含义。

答案:
答案:
常见的软件质量属性有多种,例如性能(Performance)、可用性(Availability)、可靠性(Reliability)、健壮性(Robustness)、安全性(Security)、可修改性(Modification)、可变性( Changeability )、易用性( Usability )、可测试性( Testability )、功能性(Functionality)和互操作性(Inter-operation)等。
这些质量属性的具体含义是:
(1)性能是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理事件的个数。
(2)可用性是系统能够正常运行的时间比例。
(3)可靠性是指软件系统在应用或错误面前,在意外或错误使用的情况下维持软件系统功能特性的基本能力。
(4)健壮性是指在处理或环境中,系统能够承受压力或变更的能力。
(5)安全性是指系统向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。
(6)可修改性是指能够快速地以较高的性能价格比对系统进行变更的能力。
(7)可变性是指体系结构扩充或变更成为新体系结构的能力。
(8)易用性是衡量用户使用一个软件产品完成指定任务的难易程度。
(9)可测试性是指软件发现故障并隔离、定位其故障的能力特性,以及在一定的时间和成本前提下,进行测试设计、测试执行的能力。
(10)功能性是系统所能完成所期望工作的能力。
(11)互操作性是指系统与外界或系统与系统之间的相互作用能力。

问题:1.2 请对该在线交易平台的4个要求进行分析,用300字以内的文字指出每个要求对应何种软件质量属性;并针对每种软件质量属性,各给出2种实现该质量属性的架构设计策略。
答案:
(1)在线交易平台必须在1s 内完成客户的交易请求。该要求主要对应性能,可以采用的架构设计策略有增加计算资源、改善资源需求(减少计算复杂度等)、资源管理(并发、数据复制等)和资源调度(先进先出队列、优先级队列等)。
(2)该平台必须严格保证客户个人信息和交易信息的保密性和安全性。该要求主要对应安全性,可以采用的架构设计策略有抵御攻击(授权、认证和限制访问等)、攻击检测(入侵检测等)、从攻击中恢复(部分可用性策略)和信息审计等。
(3)当发生故障时,该平台的平均故障恢复时间必须小于10s。该要求主要对应可用性,可以采用的架构设计策略有Ping/Echo、心跳、异常和主动冗余等。
(4)由于企业业务发展较快,需要经常为该平台添加新功能或进行硬件升级。添加新功能或进行平台升级必须在6 小时内完成。该要求主要对应可修改性,可以采用的架构设计策略有软件模块泛化、限制模块之间通信、使用中介和延迟绑定等。

试题四 架构评估

某公司欲开发一个车辆定速巡航控制系统,以确保车辆在不断变化的地形中以固定的速度行驶。该系统的简化示意图如下图所示。各种系统输入的含义见下表。

image-20211014162011559

公司的领域专家对需求进行深入分析后,将系统需求认定为:任何时刻,只要定速巡航控制系统处于工作状态,就要有确定的期望速度,并通过调整引擎油门的设定值来维持期望速度。
在对车辆定速巡航控制系统的架构进行设计时,公司的架构师王工提出采用面向对象的架构风格,而李工则主张采用控制环路的架构风格。在架构评估会议上,专家对这两种方案进行综合评价,最终采用了面向对象和控制环路相结合的混合架构风格。

问题:4.1 在实际的软件项目开发中,采用成熟的架构风格是项目成功的保证。请用200字以内的文字说明:什么是软件架构风格;面向对象和控制环路两种架构风格各自的特点。
答案:
软件架构风格是描述某一类特定应用领域中软件系统组织方式和惯用方式。
面向对象架构风格的特征是将数据表示和基本操作封装在对象中。这种模式的构件是对象,对象维护自身表示的完整性,对象之间通过消息机制进行通信,对象交互时需要知道彼此的标识,通过对象之间的协作完成计算过程。
控制环路架构风格是将过程输出的指定属性维护在一个特定的参考值(设定点)。控制环境风格包括过程变更、被控变量、输入变量、操纵变量和设定点等构件,通过收集实际和理想的过程状态信息,并能调整过程变量使得实际状态趋于理想状态。

问题:4.2 用户需求没有明确给出该系统如何根据输入集合计算输出。请用300字以内的文字针对该系统的增减速功能,分别给出两种架构风格中的主要构件,并详细描述计算过程。

答案:
对于系统的增减速功能,采用面向对象风格的巡航控制系统首先会定义司机、油门、时钟、速度计和车轮等构件。
整个计算的主要过程是:
(1)司机进行增/减速操作设置期望速度,该期望速度以消息的形式传递给速度计;
(2)速度计通过向车轮和时钟发送消息获取车轮转速和时钟值,得到当前速度;
(3)速度计计算当前速度和期望速度的速度差值;
(4)该差值以消息的形式发送给油门,油门通过速度差值调节自身状态;
(5)整个过程在时钟的控制下定期向速度计发送消息,重复执行(2)~(4)。
控制环路的架构网络以控制器为核心,期望速度、车轮脉冲、时钟和油门等作为构件。
的计算机过程是:
(1)司机进行增/减速操作设置期望速度值;
(2)将设定值置为期望速度值;
(3)控制器采集车轮脉冲和时钟值,计算出当前速度;
(4)比较期望速度和当前速度,计算机速度差值,控制油门动作;
(5)反复执行(3)~(4)。

问题:4.3 实际的软件系统架构通常是多种架构风格的混合,不同的架构风格都有其适合的应用场景。以该系统为例,针对面向对象架构风格和控制环路架构风格,各给出两个适合的应用场景,并简要说明理由。

答案:
适合面向对象架构网络的应用场景:
(1)用户刹车,立即退出巡航控制系统。理由:这是一个典型的事件驱动的场景,适合于面向对象风格。
(2)系统对突发事件的处理,如某些部件失灵等。理由是:当发生突发事件时,系统会同时产生数据和事件,这种情况用对象建模较为恰当。
适合面向控制环路架构风格的应用场景:
(1)在达到期望速度后,系统维持恒定速度行驶。理由:这是一个典型的闭环控制的情景,系统需要在外界情况不断发生变化的情况下进行调整,使得系统状态尽可能接近期望状态。
(2)用户改变期望速度后,系统不断进行调整,直至到达恒定速度。理由:这是一个闭环控制情景,当用户设定期望速度值后,系统需要在不断获取当前速度和外界条件的情况下对系统状态持续调整,使得系统状态尽可能接近这个新的期望状态。

试题五 信息安全

某企业根据业务扩张的要求,需要将原有的业务系统扩展到互联网上,建立自己的B2C业务系统,此时系统的安全性成为一个非常重要的设计需求。为此,该企业向软件开发商提出如下要求:
(1) 合法用户可以安全地使用该系统完成业务;
(2) 灵活的用户权限管理;
(3) 保护系统数据的安全,不会发生信息泄漏和数据损坏;
(4) 防止来自于互联网上各种恶意攻击;
(5) 业务系统涉及到各种订单和资金的管理,需要防止授权侵犯;
(6) 业务系统直接面向最终用户,需要在系统中保留用户使用痕迹,以应对可能的商业诉讼。
该软件开发商接受任务后,成立方案设计小组,提出的设计方案是:在原有业务系统的基础上,保留了原业务系统中的认证和访问控制模块;为了防止来自互联网的威胁,增加了防火墙和入侵检测系统。
企业和软件开发商共同组成方案评审会,对该方案进行了评审,各位专家对该方案提出了多点不同意见。李工认为,原业务系统只针对企业内部员工,采用了用户名/密码方式是可以的,但扩展为基于互联网的B2C业务系统后,认证方式过于简单,很可能造成用户身份被盗取;王工认为,防止授权侵犯和保留用户痕迹的要求在方案中没有体现。而刘工则认为,即使是在原有业务系统上的扩展与改造,也必须全面考虑信息系统面临的各种威胁,设计完整的系统安全架构,而不是修修补补。

问题:5.1 信息系统面临的安全威胁多种多样,来自多个方面。请指出信息系统面临哪些方面的安全威胁并分别予以简要描述。

答案:
信息系统面临的安全威胁来自于物理环境、通信链路、网络系统、操作系统、应用系统以及管理等多个方面。
物理安全威胁是指对系统所用设备的威胁,如自然灾害、电源故障、数据库故障和设备被盗等造成数据丢失或信息泄漏。
通信链路安全威胁是指在传输线路上安装窃听装置或对通信链路进行干扰。
网络安全威胁当前主要是指由于因特网的开放性、国际性与无安全管理性,对内部网络形成的严重安全威胁。
操作系统安全威胁指的是操作系统本身的后门或安全缺陷,如“木马”和“陷阱门”等。
应用系统安全威胁是指对于网络服务或用户业务系统安全的威胁,包括应用系统自身漏洞,也受到“木马”的威胁。
管理系统安全威胁指的是人员管理和各种安全管理制度。

问题:5.2 认证是安全系统中不可缺少的环节,请简要描述主要的认证方式,并说明该企业应采用哪种认证方式。

答案:
目前主要的认证方式有三类:
(1)用户名和口令认证:主要是通过一个客户端与服务器共知的口令(或与口令相关的数据)进行验证。根据处理形式的不同,分为验证数据的明文传送、利用单向散列函数处理验证数据、利用单向散列函数和随机数处理验证数据。
(2)使用令牌认证:该方式中,进行验证的密钥存储于令牌中,目前的令牌包括安全证书和智能卡等方式。
(3)生物识别认证:主要是根据认证者的图像、指纹、气味和声音等作为认证数据。根据该企业的业务特征,采用令牌认证较为合适。

问题:5.3 请解释授权侵犯的具体含义;针对王工的意见给出相应的解决方案,说明该解决方案的名称、内容和目标。

答案:
授权侵犯指的是被授权以某一目的使用某一系统或资源的某个人,将此权限用于其他非受权的目的,也称作“内部攻击”。
针对王工的建议,从系统安全架构设计的角度需要提供抗抵赖框架。
抗抵赖服务包括证据的生成、验证和记录,以及在解决纠纷时随即进行的证据恢复和再次验证。
框架中抗抵赖服务包括证据的生成、验证和记录,以有在解决纠纷时随即进行的证据恢复和再次验证。
框架中抗抵赖服务的目的是提供有关特定事件或行为的证据。例如,必须确认数据原发者和接收者的身份和数据完整性,在某些情况下,可能需要涉及上下文关系(如日期、时间、原发者/接收者的地点等)的证据,等等。