软件架构师案例每日一题
今天是2024年5月24号,明天就是今天上半年的软件架构师考试,在三天前,我选择了放弃备考,准备明天考完上午题就撤,备考太难了,准备下半年的架构考试了。
20240524更新;考点:鸿蒙系统
鸿蒙操作系统(HarmonyOS)是一款面向未来、面向全场景(移动办公、运动健康、社交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,HarmongOS提出了基于同一套系统能力、适配多种终端形态的分布式理念,能够支持多种终端设备的能力。鸿蒙(HarmonyOS)整体采用分层的层次化设计,其架构图如下所示:
【问题一】
请补充架构途中(1)-(6)空。
【问题二】
请列举出鸿蒙操作系统的四个技术特性
【问题三】
在HarmonyOS架构中,重点关注与分布式架构所带来的优势,主要体现在哪四个方面,以及其分别含义是什么?
正确答案:
问题一:(1)应用层(2)应用架构层(3)系统服务层(4)内核层(5)基础软件服务子系统集(6)硬件服务子系统
问题二:
1 分布式架构首次应用与终端OS,实现跨终端无缝协同体验
2 确定时延引擎和高性能IPC技术实现系统天生流畅。 (什么是IPC技术?什么是时延引擎?)
3 基于微内核架构重塑终端设备可信安全。
4 通过统一IDE支撑一次开发,多端部署,实现跨终端生态共享。
问题三:
在HarmonyOS架构中,重点关注于分布式架构所带来的优势,主要体现在分布式软总线、分布式设备虚拟化、分布式数据管理和分布式任务调度等四个方面。
①分布式软总线是多种终端设备的统一基座,为设备之间的互通互联提供了统一的分布式通信能力,能够快速发现并链接设备,高效的分发任务和传输数据;
②分布式设备虚拟化平台可以实现不同设备的资源融合、设备管理、数据处理,多种设备共同形成一个超级虚拟终端。针对不同类型的任务,为用户匹配并选择能力合适的执行硬件,让业务连续的在不同设备间流转,充分发挥不同设备的资源优势;
③分布式数据管理基于分布式软总线的能力,实现应用程序数据和用户数据的分布式管理。用户数据不再与单一的物理设备绑定,业务逻辑与数据存储分离,应用跨设备运行时数据无缝相接,为打造一致、流畅的用户体验创造了基础条件;
④分布式任务调度的构建统一的分布式服务管理(发现、同步、注册、调用)机制,支持对跨设备的应用进行远程启动、远程调用、远程连接以及迁移等操作,能够根据不同设备的能力、位置、业务运行状态、资源使用情况,以及用户的习惯和意图,选择合适的设备运行分布式任务。
20240616更新;考点:数据库架构
某制造企业为拓展网上销售业务,委托某软件企业开发一套电子商务网站。初期仅解决基本的网上销售、订单等功能需求。该软件企业很快决定基于.NET 平台和 SQL Server 数据库进行开发,但在数据库访问方式上出现了争议。王工认为应该采用程序在线访问的方式访问数据库:而李工认为本企业内部程序员缺乏数据库开发经验,而且应用筒单,应该采用 ORM<对象关系映射>方式。最终经过综合考虑,该软件企业采用了李工的建议。
随着业务的发展,该电子商务网站逐渐发展成一个通用的电子商务平台,销售多家制造企业的产品,电子商务平台的功能也日益复杂。目前急需对该电子商务网站进行改造,以支持对多种异构数据库平台的数据访问,同时满足复杂的数据管理需求。该软件企业针对上述需求,对电子商务网站的架构进行了重新设计,新增加了数据访问层,同时采用工厂设计模式解决异构数据库访问的问题。新设计的系统架构如图 4-1 所示。
【问题 1】 (9 分)
请用 300 字以内的文字分别说明数据库程序在线访问方式和 ORM 方式的优缺点,说明该软件企业采用 ORM 的原因。
【问题 2】 (9 分)
请用 100 宇以内的文字说明新体系架构中增加数据访问层的原因。请根据图 4-1 所示,填写图中空白处(1) - (3)。
【问题 3】 (7 分) -
应用程序设计中,数据库访问需要良好的封装性和可维护性,因此经常使用工厂设计模式来实现对数据库访问的封装。请解释工厂设计模式,并说明其优点和应用场景: 请解释说明工厂模式在数据访问层中的应用。
请用 100 宇以内的文字说明新体系架构中增加数据访问层的原因。请根据图 4-1 所示,填写图中空白处(1) - (3)。
答案:
【问题1】
数据库程序在线访问方式优点:1性能比直接sql好,2可以处理复杂的查询语句
数据库程序在线访问方式不足:1程序员必须动sql语句,2修改维护相对困难
ORM的有点:1降低学习和开发成本、2程序员不用再写sql进行数据库操作、3减少程序代码量、4降低由于sql代码质量差带来的影响。
ORM的缺点:1性能比直接用sql差,2处理复杂的查询比较困难
采用ORM的原因:1缺乏数据库开发经验,因此sql语句编写质量存在风险、2学习成本高 、3应用比较简单没有太复杂的功能。
【问题2】
1涉及多种异构数据平台,数据访问复杂性增加,不宜业务逻辑混合在一起
2 数据管理变复杂之后,需要使用代码量增加,分层次有利于逻辑更加清晰,程序维护更加方便
3 业务逻辑应以相同的方式对异构数据库,为了做好隐蔽性需要单独设计数据访问层。
(1)(2)(3)执行业务罗、工厂层、数据访问接口层
【问题3】
工厂模式分为抽象工厂和工厂方法,本题为抽象工厂设计模式。
抽象工厂设计模式提供一个接口,可以创建一系列或相互依赖的 对象,而无需指定他们具体的类。
优点:方便创建一系列的对象,其使用场景也是创建系列对象的情况。该题目中,可以针对oracle,mysql,sqlserver分别抽象建立抽象工厂,若指定当前工厂为oracle工厂,则创建出来的数据库连接,数据集等一系列对象都是符合oracle操作要求的,这样便于数据库之间的切换。
20240617更新;考点:软件系统设计
某文化产业集团委托软件公司开发一套文化用品商城系统,业务涉及到文化用品销售、定制、竞拍、和点评等板块,以提升商城的信息化建设水平,改软件公司项目组完成了需求调研,现已进入到系统架构设计阶段。考虑到系统需求对架构设计决策的影响,项目组先列出了可能影响系统架构设计的部分需求如下:
a 用户界面支持用户的个性化定制;
b 系统需要支持当前主流的标准和服务,特别是通信协议和平台接口;
c 用户操作的相应时间应大于3秒,竞拍板块不大于1秒;
d 系统具有故障诊断和快速恢复的能力;
e 用户密码需要加密传输;
f 系统需要支持不低于2G的数据缓存;
g 用户操作停滞时间超过一定时限需要重新登录验证;
h 系统支持用户选择汉语、英语和法语三种语言之一进行操作;
项目组提出了两种系统架构设计方案:瘦客户端c/s架构和胖客户端c/s架构,经过对上述需求逐条分析和讨论,最终选择采用瘦客户端c/s架构进行设计。
【问题1】
在系统架构设计中,决定系统架构设计的非功能性需求主要有四类:操作性需求、性能需求、安全性需求和文化需求。请简要说明四类需求的含义。
答:
- 操作性需求:指系统完成任务所需的操作环境要求及如何满足系统将来可能的需求变更的需求。
- 性能需求:针对系统性能要求的指标,如吞吐率、相应时间和容量等。
- 安全性需求:指为防止系统崩溃和保证数据安全所需要采取的保护措施的要求,为系统提供合理的预防措施。
- 文化需求:指使用本系统的不同用户群体对系统提出的特有要求。
【问题2】
根据分类,将题干给出的系统需求(a)到(h)分别填入(1)到(4)
需求类别
- 操作性需求:b g -> b d
- 性能需求:c f -> c f
- 安全性需求:d e -> e g
- 文化需求:a h -> a h
【问题3】
请用100字以内文字说明瘦客户端c/s架构能够满足题干中给出的那些系统需求。
瘦客户端C/S架构能够更好地满足系统需求中的(a)、(b)、(d)和(h)。
本问题考查考生对非功能性需求影响架构设计决策的掌握情况。在非功能性需求中,“用户界面支持用户的个性化定制”“系统需要支持当前主流的标准和服务,特别是通信协议和平台接口”“系统具有故障诊断和快速恢复能力”“系统支持用户选择汉语、英语或法语三种语言之一进行操作”等需求决定系统设计中适合采用瘦客户端服务器架构。