乐于分享
好东西不私藏

第十五天-案例分析(三)-软件架构设计

第十五天-案例分析(三)-软件架构设计

软件架构设计为案例分析必考题,通常考1-2道。
本题考察简单,知识点固定,必须拿到至少20分。
主要涉及质量属性、软件架构风格等。

一、软件系统的质量属性

可以将软件系统的质量属性分为开发期质量属性运行期质量属性 2 个部分。

1. 开发期质量属性主要指在软件开发阶段所关注的质量属性,主要包含 6 个方面。

(1)易理解性:指设计被开发人员理解的难易程度。

(2)可扩展性:软件因适应新需求或需求变化而增加新功能的能力,也称为灵活性。

(3)可重用性:指重用软件系统或某一部分的难易程度。

(4)可测试性:对软件测试以证明其满足需求规范的难易程度。

(5)可维护性:当需要修改缺陷、增加功能、提高质量属性时,识别修改点并实施修改的难易程度。和可修改性相比是一个更宽泛的上层概念

(6)可移植性:将软件系统从一个运行环境转移到另一个不同的运行环境的难易程度。

2. 运行期质量属性主要指在软件运行阶段所关注的质量属性,主要包含 7 个方面。

(1)性能:性能是指软件系统及时提供相应服务的能力,如速度、吞吐量和容量等要求。

(2)安全性:指软件系统同时兼顾向合法用户提供服务,以及阻止非授权使用的能力。

(3)可伸缩性:指当用户数和数据量增加时,软件系统维持高服务质量的能力。例如,通过增加服务器来提高能力。

(4)互操作性:指本软件系统与其他系统交换数据和相互调用服务的难易程度。

(5)可靠性:软件系统在一定的时间内持续无故障运行的能力。

(6)可用性:指系统在一定时间内正常工作的时间所占的比例。可用性会受到系统错误,恶意攻击,高负载等问题的影响。

(7)鲁棒性:是指软件系统在非正常情况(如用户进行了非法操作、相关的软硬件系统发生了故障等)下仍能够正常运行的能力,也称健壮性或者容错性。

二、面向架构评估的质量属性

1、性能指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。如响应时间、吞吐量。设计策略:优先级队列、增加计算资源、减少计算开销、引入并发机制、采用资源调度等。

2、可靠性:是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。如 MTTF、MTBF。设计策略:心跳、Ping/Echo、冗余、选举。强调被动容错能力(如硬件/软件自身的稳定性、抗崩溃能力),关注无故障持续工作的时长。

3、可用性是系统能够正常运行的时间比例,经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。如故障间隔时间。设计策略:心跳、Ping/Echo、冗余、选举。强调对故障的主动应对能力(如故障切换、冗余设计),确保服务持续可用;

4、安全性是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。如保密性、完整性、不可抵赖性、可控性。设计策略:入侵检测、用户认证、用户授权、追踪审计。

5、可修改性指能够快速的以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量。设计策略:接口-实现分类、抽象、信息隐藏。

6、功能性:是系统所能完成所期望的工作的能力。一项任务的完成需要系统中许多或大多数构件的相互协作。

7、可变性:指体系结构经扩充或变更而成为新体系结构的能力。这种新体系结构应该符合预先定义的规则,在某些具体方面不同于原有的体系结构。当要将某个体系结构作为一系列相关产品的基础时,可变性是很重要的。

8、互操作性:作为系统组成部分的软件不是独立存在的,经常与其他系统或自身环境相互作用。为了支持互操作性,软件体系结构必须为外部可视的功能特性和数据结构提供精心设计的软件入口程序。用其他编程语言编写的软件系统的交互作用就是互操作性的问题,也影响应用的软件体系结构。

三、架构风格对比

架构风格汇总:

案例分析常考比较的架构风格对比:

2025年11月案例分析真题试题1:

在电动车充电管理系统的架构设计评审会上,团队需要针对系统的关键质量属性进行分析。质量属性是软件构设计的核心关注点,通常通过场景来具体描述。评审会上,得出了以下质量属性场景描述:

  1. 用户提出修改交互界面功能,团队经评估后承诺在 10 人/天之内完成。

  2. 在网络出现故障时,系统能够自动切换到备用网络并正常运行。

  3. 系统界面设计便于残疾人使用。

  4. 因为国家关于电动车充电政策变化,系统需针对性修改系统功能。

  5. 系统支持在模拟真实环境高峰期和恶劣天气下进行压力测试。

  6. 在系统设计时,客户提出了新增API 接口的开发工作需要在 3 个工作日内完成。

  7. 用户登录时,系统对密码进行加密存储。

  8. 系统应该在 1 秒内响应用户的查询请求。

  9. 系统支持和电动车载系统、外部系统等通信和交互功能。

  10. 系统提供日志功能,记录所有充电记录详情,便于事后追踪审计。

  11. 在服务器故障时,系统能在 1 分钟内自动切换到备份服务器,保证服务不中断。

请回答以下问题:

问题 1:请判断题目描述里的 1-11 的场景分别对应什么质量属性。

问题 2:每个质量属性场景的描述包含六个要素,请列出题干中编号为 6 的场景的六要素。

问题 3:在电动车充电管理系统中,用户的个人敏感信息(如身份信息、位置信息等)在存储和传输时需要加密。系统采用 AES-256 加密算法,其固定分组长度为 16 字节。当用户敏感信息长度超过 16 字节时,应如何处理?请说明至少两种常见的处理方式,并简要分析其适用场景。

答:

问题1:1、可修改性;2、可用性;3、易用性;4、可维护性;5、可测试性;6、可修改性;7、安全性;8、性能;9、互操作性;10、安全性;11、可用性

问题2:刺激源:客户;刺激:新增;响应:完成API接口新增;环境:系统设计时;响应度量:3个工作日;制品:API接口

问题3:填充:将数据填充至16字节的整数倍,适用于存储和短文本传输;分块加密:将长数据分为多个16字节块逐块加密,适用于流式传输和大数据加密