某公司欲开发一个人员管理系统,在架构设计阶段,公司的架构师识别出3个核心质量属性场景。其中"管理系统遭遇断电后,能够在15秒内自动切换至备用系统并恢复正常运行"主要与 (问题1) 质量属性相关,通常可采用 (问题2) 架构策略实现该属性;"系统正常运行时,人员信息查询请求应该在2秒内返回结果"主要与 (问题3) 质量属性相关,通常可采用 (问题4) 架构策略实现该属性;"系统需要对用户的操作情况进行记录,并对所有针对系统的恶意操作行为进行报警和记录"主要与 (问题5) 质量属性相关,通常可采用 (问题6) 架构策略实现该属性。
在软件架构设计中,核心质量属性及对应实现策略是关键内容:可用性衡量系统在故障场景下持续提供服务的能力,典型需求如故障后快速切换恢复,常用实现策略包括主动冗余(备用系统实时接管业务)、心跳检测、Ping/Echo等,而影子操作更偏向于提前发现潜在错误,并非直接实现故障快速恢复;性能属性聚焦系统响应时间与吞吐量,常见需求如查询请求限时返回,可通过资源调度、优先级队列等策略优化,需注意操作串行化可能会降低系统性能;安全性用于保障系统抵御非授权访问与恶意操作,比如记录用户操作并预警恶意行为,可借助追踪审计、身份认证、数据加密、入侵检测等策略实现。此外,可修改性常通过抽象接口、信息隐藏来实现,便于系统适配变更;可测试性可采用记录/回放策略降低测试难度;易用性侧重用户使用的便利程度,这些属性也需根据业务需求合理考量。
本题考察的是软件质量属性及对应的架构设计策略。
问题1:
"断电后15秒内切换到备用系统并恢复正常运行"关注的是系统在面对故障时的持续服务能力。
A选项可用性:衡量系统在规定条件下能否持续运行的属性,符合题意,正确。
B选项性能:关注响应时间和吞吐量,与故障恢复无关。
C选项易用性:指用户使用系统的便利程度,不相关。
D选项可修改性:指系统适应变更的能力,不相关。
所以选择 A。
问题2:
实现可用性通常采用冗余策略。
C选项主动冗余:通过备用系统实时接管,提高可用性,符合题意。
A选项抽象接口:用于可修改性,不相关。
B选项信息隐藏:用于降低修改影响范围,不相关。
D选项影子操作:影子操作是指系统在执行真实操作时,同时在“影子环境”中执行同样的操作,但影子环境的结果不直接对外生效。通过对比真实结果和影子结果,系统可以及时发现潜在错误,避免错误扩散到用户层。影子操作偏向于“发现问题”,而不是“立即切换到备用系统”。
所以选择 C。
问题3:
"查询在2秒内返回结果"强调系统的响应时间。
D选项性能:性能的核心参数是响应时间与吞吐量,符合题意。
A选项可测试性:关注测试难度,不相关。
B选项易用性:关注用户体验,不相关。
C选项可用性:关注系统运行时间,不相关。
所以选择 D。
问题4:
性能提升的常用策略包括优先级队列和资源调度。
D选项资源调度:通过合理调度系统资源,保证响应时间,正确。
A选项记录/回放:用于可测试性,不相关。
B选项操作串行化:可能降低性能,与题意不符。
C选项心跳:用于可用性,不相关。
所以选择 D。
问题5:
"记录用户操作并报警恶意行为"主要与系统防护和防攻击有关。
B选项安全性:保证合法用户正常使用,防止非授权使用,符合题意。
A选项可用性:强调运行时间,不相关。
C选项可测试性:不相关。
D选项可修改性:不相关。
所以选择 B。
问题6:
安全性常用策略包括认证、加密、入侵检测和追踪审计。
A选项追踪审计:通过日志记录和溯源,能够发现恶意操作,符合题意。
B选项Ping/Echo:用于可用性检测,不相关。
C选项选举:用于容错和一致性,不相关。
D选项维护现有接口:用于可修改性,不相关。
所以选择 A。
