问答题
某软件开发公司欲为某电子商务企业开发一个在线交易平台,支持客户完成网上购物活动中的在线交易。在系统开发之初,企业对该平台提出了如下要求:
①在线交易平台必须在1s内完成客户的交易请求。
②该平台必须保证客户个人信息和交易信息的安全。
③当发生故障时,该平台的平均故障恢复时间必须小于10s。
④由于企业业务发展较快,需要经常为该平台添加新功能或进行硬件升级。添加新功能或进行硬件升级必须在6小时内完成。
针对这些要求,该软件开发公司决定采用基于架构的软件开发方法,以架构为核心进行在线交易平台的设计与实现。
问答题
软件质量属性是影响软件架构设计的重要因素。请用200字以内的文字列举6种不同的软件质量属性名称,并解释其含义。
【正确答案】常见的软件质量属性有多种,例如,性能(Performance)、可用性(Availability)、可靠性(Reliability)、健壮性(Robustness)、安全性(Security)、可修改性(Modification)、可变性(Changeability)、易用性(Usability)、可测试性(Testability)、功能性(Functionality)和互操作性(Inter-operation)等。
这些质量属性的具体含义如下:
①性能是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理事件的个数。
②可用性是系统能够正常运行的时间比例。
③可靠性是指软件系统在应用或错误面前,在意外或错误使用的情况下维持软件系统功能特性的基本能力。
④健壮性是指在处理或环境中,系统能够承受压力或变更的能力。
⑤安全性是指系统向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。
⑥可修改性是指能够快速地以较高的性能价格比对系统进行变更的能力。
⑦可变性是指体系结构经扩充或变更成为新体系结构的能力。
⑧易用性是衡量用户使用一个软件产品完成指定任务的难易程度。
⑨可测试性是指软件发现故障并隔离、定位其故障的能力特性,以及在一定的时间和成本前提下,进行测试设计、测试执行的能力。
⑩功能性是系统所能完成所期望工作的能力。
[*]互操作性是指系统与外界或系统与系统之间的相互作用能力。
【答案解析】
问答题
请对该在线交易平台的4个要求进行分析,用300字以内的文字指出每个要求对应何种软件质量属性:并针对每种软件质量属性,各给出2种实现该质量属性的架构设计策略。
【正确答案】①在线交易平台必须在1s内完成客户的交易请求。该要求主要对应性能,可以采用的架构设计策略有增加计算资源、改善资源需求(减少计算复杂度等)、资源管理(并发、数据复制等)和资源调度(先进先出队列、优先级队列等)。
②该平台必须严格保证客户个人信息和交易信息的保密性和安全性。该要求主要对应安全性,可以采用的架构设计策略有抵御攻击(授权、认证和限制访问等)、攻击检测(入侵检测等)、从攻击中恢复(部分可用性策略)和信息审计等。
③当发生故障时,该平台的平均故障恢复时间必须小于10s。该要求主要对应可用性,可以采用的架构设计策略有Ping/Echo、心跳、异常和主动冗余等。
④由于企业业务发展较快,需要经常为该平台添加新功能或进行硬件升级。添加新功能或进行平台升级必须在6小时内完成。该要求主要对应可修改性,可以采用的架构设计策略有软件模块泛化、限制模块之间通信、使用中介和延迟绑定等。
【答案解析】[解析] 这是一道软件质量特性的试题,软件质量特性是软件架构以及软件架构设计师的一个重要关注点。因为如果在软件架构的设计阶段不考虑软件质量特性,则产生的软件质量隐患是在后期的设计与开发中无法弥补的。
软件质量特性主要包括以下几个方面。
①功能性:系统所能完成期望工作的能力。
②性能:系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理事件的个数。
③可用性:系统能够正常运行的时间比例。
④可靠性:软件系统在应用或错误面前,在意外或错误使用的情况下维持软件系统功能特性的基本能力。
⑤健壮性:在处理或环境中,系统能够承受压力或变更的能力。
⑥安全性:系统向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。
⑦可修改性:能够快速地以较高的性能价格比对系统进行变更的能力。
⑧可变性:体系结构经扩充或变更成为新体系结构的能力。
⑨易用性:衡量用户使用一个软件产品完成指定任务的难易程度。
⑩可测试性:软件发现故障并隔离、定位其故障的能力特性,以及在一定的时间和成本前提下,进行测试设计、测试执行的能力。
[*]互操作性:系统与外界或系统与系统之间的相互作用能力。
问题1是纯概念题,从以上的属性中任选6个作答即可。
问题2难度稍大,需要结合题目给出的案例,来分析系统有哪些质量属性的需求,同时需要给出实现该质量属性的策略。下面逐一分析题目给出的场景。
①在线交易平台必须在1s内完成客户的交易请求。该要求主要对应性能,可以采用的架构设计策略有增加计算资源、改善资源需求(减少计算复杂度等)、资源管理(并发、数据复制等)和资源调度(先进先出队列、优先级队列等)。
②该平台必须严格保证客户个人信息和交易信息的保密性和安全性。该要求主要对应安全性,可以采用的架构设计策略有抵御攻击(授权、认证和限制访问等)、攻击检测(入侵检测等)、从攻击中恢复(部分可用性策略)和信息审计等。
③当发生故障时,该平台的平均故障恢复时间必须小于10s。该要求主要对应可用性,可以采用的架构设计策略有Ping/Echo、心跳、异常和主动冗余等。
④由于企业业务发展较快,需要经常为该平台添加新功能或进行硬件升级。添加新功能或进行平台升级必须在6小时内完成。该要求主要对应可修改性,可以采用的架构设计策略有软件模块泛化、限制模块之间通信、使用中介和延迟绑定等。