1.质量属性+架构风格
某软件公司为电子商城开发一套应用程序集成开发环境,以提高开发电子商城应用程序的质量和效率。在项目之初,公司的系统分析师对该集成开发环境的需求进行了调研和分析,具体描述如下:
(a)正常负载情况下,系统必须在 0.1秒内对用户的交易请求进行响应;
(b) 在线支付必须保证 99.9%的安全性;
主服务器出现故障失效后,备用服务器需在 3 分钟内接替相关事务处理工作;
(d)在线支付功能模块添加新的支付机构应在 1个工作日内完成;
(e)系统拟引入 PKI 体系,这将提高安全性,但同时将降低性能;
(f)用户信息数据库授权必须保证 99.9%可用;
(g)更改结算规则接口必须在 10 人日内完成;
(h)假设每秒中用户交易请求的数量是 50 个,处理请求的时间为 10 毫秒,则“在1秒内完成用户的交易请求”这一要求是可以实现的;
(i) 对交易请求处理时间的要求将影响系统数据传输协议和交易处理过程的设计;(j)用户发起支付请求后系统必须在 5秒内完成支付功能;
(k)目前对系统支付业务逻辑的描述尚未达成共识,这可能导致部分业务功能模块的重复,影响系统的可修改性;
(l)系统出现严重故障不得不停止服务时,修复时间不超过 20 分钟;
(m)系统需要提供远程调试接口。
问题 1(13 分)
在对需求进行分析后,公司的架构师小张查阅了相关的资料,认为该集成开发环境应该采用管道一过滤器(Pipe-Filter)的架构风格,公司的资深架构师王工在仔细分析后,认为应该采用数据仓储 (DataRepository)的架构风格。请在阅读题于需求描述的基础上,从交互方式、数据结构、控制结构和扩展方法 4 个方面对两种架构风格进行比较,并说明题目应该采用哪种风格更为合适。
问题 2(12 分)
在架构评估过程中,质量属性效用树 (utility tree)是对系统质量属性进行识别和优先级排序的重要工具。选择题干描述的 (a)~ (m),填入 (1)~ (8)空白处,完成该系统的效用树。
答案:
问题1:
1.交互方式:管道过滤器里的构件是顺序交互,前一个构件的输出作为后一个构件的输入;数据仓库是星型交互,构件都和一个共享数据库进行数据。因此数据仓库风格更加灵活。
2.数据结构:管道过滤器是基于数据流结构的,构件之间传递数据结构可能是结构体等常规数据结构:而数据仓库是基于数据库结构的,构件之间传递数据是基于关系数据库。因此数据仓库风格会更加实用。
3.控制结构:管道过滤器是数据流顺序传递,数据仓库是面向应用,由业务功能驱动,因此更加灵活
4.扩展方法:管道过滤器因为是顺序结构,通过接口适配扩展;数据仓库直接可以通过数据库内增加数据,通过模型适配,更加灵活。
问题 2:
性能:(1)(2)填 (a)(j)
可用性:(3)(4)填 (I)
可修改性:(5)(6) 填 (d) (g)
安全:(7)(8)填 (b)(f)
2.UML建模
阅读下列说明和 UML 图,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。
[说明]
某高校图书馆购买了若干学术资源的镜像数据库(MinorDBMino) 资源,现要求开发一套数字图书馆(Digitallibrary)系统,面向校内用户(User)提供学术资源(Resoure) 浏览、检索和下载服务。系统的主要功能描述如下:
(1)系统中存储了每个镜像数据库的基本信息,包括:数据库名称,访问地址,数据库属性以及数据库简介等信息,用户进入某个镜像数据库后,可以浏览检索以及下载其中的学术资源。
(2)学术资源包括会议论文 (ConferencePaper)、期刊论文 (JounalArticle) 以及学位论文(Thesis)等;系统中存储了每个学术资源的题名、作者、发表时间、来源(哪个镜像数据库)、 被引次数、下载次数等信息。对于会议论文,还需记录会议名称,召开时间以及召开地点;同一次会议的论文被收录在会议集 (Proceeding)中。对于期刊论文,还需记录期刊名称,出版月份,期号以及主办单位;同一期号的论文被收录在一本期刊(Edition)中。对于学位论文,记录了学位类别(博士/硕士),毕业学校,专业及指导教师。会议集包含发表在该会议(在某个特定时间段,特定地点召开)上的所有文章。期刊的每一期在特定时间发行,其中包含若干篇文章。
(3) 系统用户(User)包括在校学生 (Student),教师 (Teacher) 以及其他在职人员 (Staff)。 用户使用学校的统一身份认证登录系统后,使用系统提供的各项服务。
(4) 系统提供多种资源检索的方式,主要包括: 按照资源的题名检索(SearchByTitle),按照作者名称 (SearchByAuthor),按照来源检索 (SearchBySource)等。
(5)用户可以下载资源,系统记录每个资源被下载的次数。现采用面向对象分析与设计方法开发该系统,得到如图 3-1 所示的用例图以及图 3-2 所示的类图。
问题1
根据说明中的描述,给出图 3-2 中 C1~C8 对应的类名
问题 2
根据说明中的描述,给出图 3-2 的类 C1~C4 的关键属性
问题 3
在该系统的开发过程中遇到了新的要求: 用户能够在系统中对其所关注的数字资源注册他引通知,若该资源的他引次数发生变化,系候可以及时通知该用户,为了实现这个新的要求,可以在图 3-2 所示的类图中增加哪种设计模式?用 150 字以内文字解释选择该模式的原因。
答案:
[问题 1]
C1: Resoure C2: ConferencePaper C3: JounalArticle C4: Thesis
C5: User C6: Student C7: Teacher C8: Staff
(类名英文、中文、中英文都行。其中 C6~C8 顺序可以互换)
[问题 2]
C1: 题名、作者、发表时间、来源、被引次数、下载次数
C2: 会议名称、召开时间、召开地点
C3: 期刊名称、出版月份、期号、主办单位
C4: 学位类别、毕业学校、专业、指导教师
[问题 3]
答:观察者模式,该模式适合当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新,符合问题描述中的当资源他引次数发生变化,便通知所有关注该资源的用户。
3.数据流图
阅读下列说明和图,回答问题 1至问题4,将解答填入答题纸的对应栏内。
[说明]
随着农业领域科学种植的发展,需要对农业基地及农事进行信息化管理,为租户和农户等人员提供种植相关服务。现欲开发农事管理服务平台,其主要功能是:
(1)人员管理。平台管理员管理租户;租户管理农户并为其分配负责的地块,租户和农户以人员类型区分。
(2) 基地管理。租户填写基地名称、地域等描述信息,在显示的地图上绘制地块。
(3)种植管理。租户设定作物及其从种植到采收的整个农事过程,包括农事活动及其实施计划,农户根据相应农事过程提醒进行农事活动并记录。系统会在设定时间向农户进行农事提醒,对逾期未实施活动向租户发出逾期警告。
(4)投入品管理。租户统一维护化肥、杀虫剂等投入品信息。农户在农事活动中设定投入品的实际消耗。
(5)信息服务。用户按查询条件发起农事信息请求,对相关地块农事活动实施情况(如与农事过程比对)等农事信息进行筛选、对比和统计等处理,并将响应信息进行展示。系统也给其他第三方软件提供APP 接口,通过接口访问的方式,提供账号、密码和查询条件发起农事信息请求,返回特定格式的农事信息,无查询条件时默返回账号下所有信息,多查询条件时返回满足全部条件的信息。
现采用结构化方法对农事管理服务平台进行分析与设计,获得如图 1-1 所示的上下文数据流图和图 1-2所示的 0 层数据流图。
问题 1
使用说明中的词语,给出图 1-1 中的实体 E1~E4 的名称。
问题 2
使用说明中的词语,给出图 1-2 中的数据存储 D1~D4 的名称。
问题 3
根据说明和图中术语,补充图 1-2 中缺失的数据流及其起点和终点
问题 4
根据说明,给出“农事信息请求”数据流的组成。
答案:
[问题 1]
E1:平台管理员 E2:农户 E3:租户 E4:第三方软件
[问题 2]
D1:人员表 D2:基地及地块数据表 D3:农事过程表 D4:农事活动表
[问题 3]
[问题 4]
农事信息请求 = 账号 +密码 + 查询条件
4.大数据架构
某网广告平台展示的数据指标包含两类: 曝光类(包括曝光数、点击数、点击单价、花费),转化类(包括转化下单数、转化下单金额、转化付款数、转化付款金额)。前一类的数据主要由流量方以接口的方式提供(比如对接的腾讯广点通平台),后一类则是某网特有的数据,通过买家的浏览、下单、付款日志算出来。
[问题1]
该平台采用了典型的 Lambda 架构形式,架构图如图所示。图中,(1)(2)(3)分别是哪三层。
[问题2]
典型的大数据架构,除了 Lambda 架构之外,还有 Kappa 架构,这两个架构的区别如下表所示,请补充表中空(1)- (4)
[问题3]
该平台目前的架构存在两个问题:
第一,其数据处理层比较简单,性能的瓶颈在 Java 服务层。服务层需要关联两张 MySQL 表,查询过程很复杂。
第二,实时数据只对接了内部的 Kafka 消息,没有实时的获取第三方的曝光、点击、浏览数据,请问应该如何改进这两个问题?
答案:
问题 1:(1) 批处理层 (2) 服务层 (3)实时层(加速层)
问题 2:
问题 3:
第一,在实时处理层做了一个常驻后台的 Python 脚本,不断调用第三方 API 的小时报表,更新当日的曝光数据表。
完成改动之后,Java 服务的计算压力明显下降。性能的瓶颈变成了查询 redis 数据这一块。由于 redis里面的实时数据是业务无关的,仅统计了追踪链接维度的聚合数据。每次查询当日的转化数据,需要现在MySQL 中查询出广告和跟踪链接的关系,找出所有的跟踪链接,再查询出这些跟踪链接的统计数据做聚合。
第二,离线计算的过程中涉及多次 MySQL和Hive之间的导表操作,离线任务依赖链比较长,第一旦出错,恢复离线任务的时间会比较久。
5.鸿蒙架构
鸿蒙操作系统(HarmonyOS)是一款“面向未来”、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,Harmony0S 提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备的能力。
鸿蒙(Harmony0S) 整体采用分层的层次化设计,其架构图如下所示:
[问题1]
请补充架构图中(1)-(6)空。
[问题2]
请列举出鸿蒙操作系统的四个技术特性。
[问题3]
在 Harmonyos 架构中,重点关注于分布式架构所带来的优势,主要体现在哪四个方面,以及其分别含义是什么?
答案:
问题 1:(1)应用层(2)应用架层 (3 系统服务层(4) 内核层(5)基础软件服务子系统(6)硬件服务子系统集
问题 2:
1)分布式架构首次用于终端 OS,实现跨终端无缝协同体验
2)确定时延引擎和高性能 IPC 技术实现系统天生流畅。
3)基于微内核架构重塑终端设备可信安全
4)通过统一 IDE 支撑一次开发,多端部署,实现跨终端生态共享。
问题 3:
在 HarmonyOs 架构中,重点关注于分布式架构所带来的优势,主要体现在分布式软总线、分布式设备虚拟化、分布式数据管理和分布式任务调度等四个方面。
分布式软总线是多种终端设备的统一基座,为设备之间的互联互通提供了统一的分布式通信能力,能够快速发现并连接设备,高效地分发任务和传输数据;
分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,多种设备共同形成一个超级虚拟终端。针对不同类型的任务,为用户匹配并选择能力合适的执行硬件,让业务连续地在不同设备间流转,充分发挥不同设备的资源优势;
分布式数据管理基于分布式软总线的能力,实现应用程序数据和用户数据的分布式管理。用户数据不再与单一物理设备绑定,业务逻辑与数据存储分离,应用跨设备运行时数据无缝衔接,为打造一致、流畅的用户体验创造了基础条件;
分布式任务调度构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作,能够根据不同设备的能力、位置、业务运行状态、资源使用情况,以及用户的习惯和意图,选择合适的设备运行分布式任务。
6.SOA和企业应用集成
【说明】企业信息集成是解决“信息孤岛”问题的需要,由于“信息孤岛”的现象广泛存在,所以企业信息集成也为企业所重视。
企业集成的水平在很大程度上取决于企业内部各种系统、应用或服务的集成化运行水平,良好的软件支持工具可以帮助企业加快实现企业系统集成。作为支持企业集成化运行的使能工具,企业集成平台的主要功能是为企业中各种数据、系统、过程等多种对象的协同运行提供各种公共服务及运行时的支撑环境,从而降低实现企业内部的信息孤岛集成的复杂度,提高应用间集成的有效性,将信息系统实施规划中确定的企业中各种应用系统、服务、人员、信息资源及数字化设备的协同关系物化到集成化运行的可执行系统中去。
【问题1】(10 分)
1、EAI 一般包括:(1)、数据集成、控制集成、(2)。其中(1)的主要作用是把各应用系统的界面集成起来,统一入口,使用户能够对集成系统产生一个“整体”的感觉。(3)为实现整体的业务目标,要定义、关联和管理不同的业务过程,并通过相应的业务信息系统中实现所需要的信息交换,从而降低成本,更高效地实现客户目标。并可以进行 B2B 集成
2、数据集成主要有:数据联邦、数据复制和基于接口的数据集成三种模式。其中:(4)是指不同的应用共同访问一个全局虚拟数据库,通过全局虚拟数据库管理系统为不同的应用提供全局信息服务。(5) 是指不同的应用系统之间利用适配器来实现相互调用以达到集成的目标。
【问题2】(7 分)
请简述应用之间开发一对一专用接口方式进行集成的优缺点。
【问题3】(8分)
面向服务的集成,经常会用到 WebService 技术对遗留系统进行集成。以下为面向服务的集成结构图,请使用以下词,根据自己的理解补充 (1)~ (4)。
A、ARP B、SOAP C、WSDL D、DCOM E、客户端
F、适配器 G、服务提供者 H、扩展开发接口
答案:
[问题 1](10 分)
(1)表示集成(界面集成)
(2)业务流程集成(过程集成)
(3)业流程集成(过程集成)
(4)数据联邦
(5)基于接口的数据集成模式
[问题 2](7 分,答对 1 点给2 分,答对 4条以上得全分)
优点:
直观,当企业应用数量少时容易实现。
缺点:
1、工作量大
2、集成系统的维护费用高,系统升级与扩展困难
3、不易于标准化,由于接口数量多,给系统管理造成比较大的困难
4、一般只能解决应用系统之间的数据集成问题,难以用来支持过程集成和应用之间的协调
[问题 3](8 分)
(1)客户端
(2) SOAP
(3) 服务提供
(4)适配器
7.微服务和 SOA
近年来,随着互联网行业的迅猛发展,公司或组织业务的不断扩张,需求的快速变化以及用户量的不断增加,传统的单体(Monolithic)软件架构面临着越来越多的挑战,已逐渐无法适应互联网时代对软件的要求。在这一背景下,微服务架构模式(Microservice Architecture Pattern)逐渐流行。
某公司目前使用的在线教育平台已开发多年,很多方面的设计已不符合业务需求,公司决定重新开发新一版的在线教育平台,公司架构设计师张工建议采用 SOA 架构,而王工表示反对,建议采用微服务架构,经公司研究决定采纳王工的解决方案。
【问题1】(5 分)
请简述微服务的特点。
【问题2](10 分)
请结合案例背景分析该公司为何选用王工的解决方案
【问题3】(10 分)
请从以下维度分析微服务与 SOA 的差异,并完成填空
微服务 | SOA | |
---|---|---|
业务划分方式 | (1) | 水平多层 |
粒度 | (2) | (3) |
部署方式 | (4) | 整体部署 |
通信方式 | (5) | 企业服务产总线(ESB)充当了服务之间通信的角色 |
参考答案:
[问题 1](5 分)
(1) 服务粒度小
(2)专注于做 1件事情
(3)轻量级的通信机制
(4)松耦合
(5)独立部署
[问题2](10 分)
回答从以下几个方面进行展开分析,每个方面 2 分,最高得 1 0分。
(1)技术异构性
(2)弹性
(3)扩展
(4)简化部署
(5)与组织结构相匹配
(6)可组合性
(7)对可替代性的优化
[问题 3](10 分)
微服务 | SOA | |
---|---|---|
业务划分方式 | (1)纵向业务划分 | 水平多层 |
粒度 | (2)细粒度 | (3)粗粒度 |
部署方式 | (4)独立部署 | 整体部署 |
通信方式 | (5)使用轻量级的通信方式,如HTTP | 企业服务产总线(ESB)充当了服务之间通信的角色 |
8. 架构评估
体系结构评估是整个体系结构设计中,非常重要的一个环节。体系结构评估可以只针对一个体系结构,也可以针一对一组体系结构。在体系结构评估过程中,评估人员所关注的是系统的质量属性。
【问题1】(6 分)
所有评估方法所普遍关注的质量属性有(1)、性能、可用性、(2)、(3)、可修改性可变性、互操作性。
【问题2】(4分)
(4)和(5)是关键的体系结构决策。(4)是一个或多个构件(和 /或构件之间的关系)的特性。研究(4)可使设计入员或分析员明确在搞清楚如何实现质量目标时应注意什么。(5)是影响多个质量属性的特性。
【问题3】(8分)
用以下选项中的内容填充空(6)~(9)
风险承担者 | 定义 | 所关心的问题 |
---|---|---|
(6) | 负责软件体系结构以及在相竞争的质量需求间进行权衡的人 | 对其他风险承担者提出的质量需求的缓解和调停 |
开发人员 | (7) | 体系结构描述的清晰与完整、各部分的内聚性与受限藕合、清楚的交互机制 |
(8) | 负责配置资源、保证开发进度 | 体系结构层次清晰,便于组建小组,任务划分结构、进度标志和最后期限等 |
客户 | (9) | 开发的进度、总体预算、系统的有用性、满足需求的情况 |
A.项目经理
B.软件系统架构师
C.设计入员或程序员
D.维护人员
E.安全专家
F. 客户
G.最终用户
H.领域代表
I.系统的购买者
J.所实现系统的使用者
[问题4](7分)
目前架构评估方法主要有 SAAM 与ATAM,请说明使用这两种方法进行架构评估的步骤或阶段。
参考答案:
问题1
(1)功能性 (2)可靠性 (3)安全性(顺序无要求)
问题2
(4)敏感点 (5)权衡点
问题3
(6)B.软件系统架构师 (7)C.设计入员或程序员
(8)A.项目经理 (9)I系统的购买者
问题4
SAAM 分析评估体系结构的过程包括五个步骤,即场景开发、体系结构描述、单个场景评估、场景交互和总体评估。
ATAM 被分为九个步骤,分别是:
描述 ATAM 方法
描述业务动机
描述体系结构
确定体系结构方法
生成质量属性效用树
分析体系结构方法
讨论和分级场景
分析体系结构方法
描述评估结果
9.数据库设计
阅读以下关于数据管理的叙述,在答题纸上回答问题1至问题3。
[说明]
某软件企业开发了一套新闻社交类软件,提供常见的新闻发布、用户关注、用户推荐、新闻点评、新闻推荐、热点新闻等功能,项目采用 MySQL 数据库来存储业务数据。系统上线后,随着用户数量的增加,数据库服务器的压力不断加大。为此,该企业设立了专门的工作组来解决此问题。
张工提出对 MvSQL 数据库进行扩展,采用读写分离,主从复制的策略,好处是程序改动比较小,可以较快完成,后续也可以扩展到 MyQL 集群,其方案如图 4-1 所示。李工认为该系统的诸多功能,并不需要采用关系数据库,甚至关系数据库限制了功能的实现,应该采用 NOSQL 数据库来替代 MySQL,重新构造系统的数据层。而刘工认为张工的方案过于保守,对该系统的某些功能,如关注列表、推荐列表、热搜榜单等实现困难,且性能提升不大;而李工的方案又太激进,工作量太大,短期无法完成,应尽量综合二者的优点,采用 Key-Value 数据库+MySQL 数据库的混合方案。
经过组内多次讨论,该企业最终决定采用刘工提出的方案。
[问题1] (8分)
张工方案中采用了读写分离,主从复制策略。其中,读写分离设置物理上不同的主/从服务器,让主服务器负责数据的 (a)操作,从服务器负责数据的(b)操作,从而有效减少数据并发操作的,但带来了(d)。因此,需要采用主从复制策略保持数据的 (e)。
MysQL 数据库中,主从复制是通过 binary log 来实现主从服务器的数据同步,MySQL 数据库支持的三种复制类型分别是 (f) 、(g)、(h)。
请将答案填入 (a)~(h) 处的空白,完成上述描述。
[问题 2] (8分)
李工方案中给出了关系数据库与 NOSQL数据的比较,如表 4-1 所示,以此来说明该新闻社交类软件更适合采用 NoSQL 数据库。请完成表 4-1中的 (a)~ (d)处空白。
表4-1 关系数据库与NoSQL 数据库特征比较
[问题3](9分)
刘工提出的方案采用了 Key-Value 数据库+MySQL 数据库的混合方案,是根据数据的读写特点将数据分别部署到不同的数据库中。但是由于部分数据可能同时存在于两个数据库中,因此存在数据同步问题。请用 200 字以内的文字简要说明解决该数据同步问题的三种方法。
答案
问题1(8分)
a)写 b) 读 c)延迟
(d)数据不一致风险 (e)一致性
(f)(g)(h)基于SQL 语句的复制(statement-based replication,SBR),基于行的复制(row-basedreplication,RBR),混合模式复制 (mixed-based replication,MBR)
问题2(8分)
(a)弱一致性 (b)非结构化 ( c)弱事务性 (d)海量数据
问题3(9 分)
1、通过定时任务机制做定期数据更新。
2、通过触发器完成数据同步。
3、通过数据库插件完成数据同步。
以上是参考文老师软考辅导机构的2023年练习题目,如有瑕疵欢迎留言!
文章评论