2024年下半年 系统架构设计师 - 案例分析

来源:网友回忆版(2024年11月考试) 考试时间:2024年11月10日 题型:必答1题 + 选答2题

试题内容

试题一(必答,25分):质量属性与架构风格

背景描述

某软件企业为某品牌手机厂商开发一套手机应用程序集成开发环境,以提高开发手机应用程序的质量和效率。需求描述如下:

a. 需要同步支持该厂商自行定义的应用编程语言的编辑、界面可视化设计、编译、调试等模块,这些模块产生的模型或数据格式差异较大,集成环境应提供数据集成能力。集成开发环境还要支持以适配方式集成企业既有的应用模拟器工具。

b. 通过调研,手机应用开发人员更倾向于使用Windows系统,因此集成开发环境的界面需要与Windows平台上的主流开发工具的界面风格保持一致。

c. 支持有关开发数据在云端存储,需要保证在云端存储数据的机密性和完整性。

d. 支持顾客通过配置界面根据自己的喜好修改界面风格,包括颜色、布局、代码高亮方式等,配置完毕后无需重启环境。

e. 支持不同模型的自动转换。在初始需求中定义的机器性能条件下,对于一种包括50个对象的设计模型,将其转换为对应代码框架时所消耗时间不超过5秒。

f. 可以持续运行的时间不小于240小时,意外退出后可以在10秒之内自动重启。

g. 集成开发环境具有模块化构造,支持以模块为单位进行调试、测试与发布。

h. 支持应用开发过程中的代码调试功能:开发人员可以设置断点,启动调试,编辑器可以自动卷屏并命中断点,能通过变量监视器查看目前变量取值。

企业架构师小张认为该集成开发环境应当采用管道-过滤器(Pipe-Filter)的架构风格,资深架构师王工认为应当采用数据仓储(DataRepository)的架构风格。最终采用了王工的方案。

问题1(10分)

识别软件架构质量属性,填写表1-1中(1)~(5)处的空白。

参考答案

  • (1) 性能 → 对应e(模型转换时间不超过5秒)
  • (2) 可用性 → 对应f(持续运行240小时,10秒自动重启)
  • (3) 安全性 → 对应c(云端数据机密性和完整性)
  • (4) 可修改性 → 对应d(配置修改无需重启)、g(模块化构造)
  • (5) 易用性 → 对应b(界面风格一致)、h(调试功能)

问题2(7分)

从交互方式、数据构造、控制构造和扩展措施4个方面对两种架构风格进行比较。

参考答案

| 比较维度 | 管道-过滤器 | 数据仓储 | |----------|------------|---------| | 交互方式 | 顺序交互,前一个输出作为后一个输入 | 星型交互,构件与共享数据库交互 | | 数据结构 | 基于数据流,常规数据结构 | 基于数据库结构,关系型数据 | | 控制结构 | 数据流顺序传递 | 面向应用,业务功能驱动 | | 扩展措施 | 通过接口适配扩展 | 通过数据库增加数据、模型适配 |

问题3(8分)

在确定采用数据仓库架构风格后,补充完成集成开发环境的架构图。


试题二(选答,25分):UML建模

背景描述

某软件企业计划开发一套教学管理系统,用于为高校提供教学管理服务。

问题

  1. 教学服务系统中有哪些参与者和用例。
  2. 用例与用例之间的关系类型(包含、扩展、泛化)。
  3. 类之间的关系类型(关联、依赖、泛化、聚合、组合)。

试题三(选答,25分):数据库缓存(Cache-Aside)

背景描述

关于Web架构中数据库和缓存的问题。

问题1

填空流程图说明缓存读写的过程。

问题2

填空流程图说明写缓存的过程。

问题3

线程1负责写数据,线程2负责读缓存,会出现数据不一致的情况,给出三种解决方案。

参考答案

数据不一致解决方案:

  1. 双写策略:先更新数据库,再删除缓存(Cache-Aside模式)
  2. 延迟双删:先删缓存,更新数据库,延时再删缓存
  3. 监听binlog:通过监听数据库binlog异步更新缓存
  4. 读写锁:写操作加锁,读操作检查锁
  5. 消息队列:将缓存更新操作放入消息队列异步处理

试题四(选答,25分):AI系统质量属性

背景描述

关于人工智能系统的需求分析,给出十几个需求。

问题

  1. 从质量属性的角度分析属于功能性、稳定性、安全性等。
  2. 对于ping/echo和心跳模式,从节约资源的角度分析心跳模式的优点。

参考答案

ping/echo vs 心跳模式:

  • ping/echo:主动探测式,请求方发送ping,被探测方返回echo。需要每次都发起请求,消耗网络带宽和被探测方处理资源。
  • 心跳模式:被监控方定期主动发送心跳包。优势:
    1. 减少探测方的轮询开销
    2. 被监控方自主控制发送频率
    3. 网络资源利用率更高
    4. 在节点数量多时优势更明显

考点映射

  • 架构风格:管道-过滤器 vs 数据仓储(核心考点)
  • 质量属性:性能、可用性、安全性、可修改性、易用性
  • UML建模:用例图、类图、关系类型
  • 缓存策略:Cache-Aside、读写分离、数据一致性
  • 分布式系统:ping/echo vs 心跳模式
  • AI系统架构:质量属性分析

⚠️ 注意:试题四和试题五的具体内容回忆不完整。