文章目录题目【问题1】(12分)【问题2】(13分)解答【问题1】【问题2】解析知识点解析题目某电子商务公司升级其会员与促销管理系统向用户提供个性化服务提高用户的粘性。在项目立项之初公司领导层一致认为本次升级的主要目标是提升会员管理方式的灵活性由于当前用户规模不大业务也相对简单系统性能方面不做过多考虑。新系统除了保持现有的四级固定会员制度外还需要根据用户的消费金额、偏好、重复性等相关特征动态调整商品的折扣力度并支持在特定的活动周期内主动筛选与活动主题高度相关的用户集合提供个性化的打折促销活动。在需求分析与架构设计阶段公司提出的需求和质量属性描述如下:(a) 管理员能够在页面上灵活设置折扣力度规则和促销活动逻辑设置后即可生效(b) 系统应该具备完整的安全防护措施支持对恶意攻击行为进行检测与报警© 在正常负载情况下系统应在0.3秒内对用户的界面操作请求进行响应(d) 用户名是系统唯一标识要求以字母开头由数字和字母组合而成长度不少于6个字符(e) 在正常负载情况下用户支付商品费用后在3秒内确认订单支付信息(f) 系统主站点电力中断后应在5秒内将请求重定向到备用站点(g) 系统支持横向存储扩展要求在2人·天内完成所有的扩展与测试工作(h) 系统宕机后需要在10秒内感知错误并自动启动热备份系统(i) 系统需要内置接口函数支持开发团队进行功能调试与系统诊断(j) 系统需要为所有的用户操作行为进行详细记录便于后期查阅与审计(k) 支持对系统的外观进行调整和配置调整工作需要在4•人天内完成。在对系统需求、质量属性描述和架构特性进行分析的基础上系统架构师给出了两种候选的架构设计方案公司目前正在组织相关专家对系统架构进行评估。【问题1】(12分)在架构评估过程中质量属性效用树utility tree是对系统质量属性进行识别和优先级排序的重要工具。请将合适的质量属性名称填入图1-1中(1)、(2)空白处并选择题干描述的(a)(k)填入(3)(6)空白处完成该系统的效用树。【问题2】(13分)针对该系统的功能李工建议采用面向对象的架构风格将折扣力度计算和用户筛选分别封装为独立对象通过对象调用实现对应的功能王工则建议采用解释器interpreters架构风格将折扣力度计算和用户筛选条件封装为独立的规则通过解释规则实现对应的功能。请针对系统的主要功能从折扣规则的可修改性、个性化折扣定义灵活性和系统性能三个方面对这两种架构风格进行比较与分析并指出该系统更适合采用哪种架构风格。解答【问题1】(1) 安全性(2) 可修改性(3) (e)(4) (j)(5) (h)(6) (k)【问题2】应该选择解释器架构风格。折扣规则的可修改性解释器风格比面向对象方式实现强。面向对象相对固定将其封装为对象有变化需要修改源代码。解释器风格折扣规则是独立的语法规则由解释器可对变化的规则进行解析调整时仅需要调整规则描述无须修改源代码。个性化折扣定义灵活性解释器强于面向对象面向对象架构风格需要将用户筛选条件封装为对象调整筛选条件时需要修改源代码灵活性较低。解释器可以根据用户灵活解释执行规则以规则数据的方式描述用户筛选条件支持规则的动态加载与处理灵活性较高。系统性能面向对象优于解释器。面向对象的实现相对固定将折扣力度和筛选条件内置在系统源代码中处理速度快性能高而解释器是运行期动态绑定执行处理速度慢性能低。解析知识点案例分析软件质量属性解析【问题1】本题主要考查考生对软件架构评估、软件质量属性以及架构评估中相关概念的理解与掌握。考生应该在熟记基础概念的基础上结合实际问题灵活掌握并应用这些概念。在解答本题时首先需要对题干中的所有软件需求描述进行分析与梳理区分并找出其中的需求分析、软件质量属性描述或者可能的风险、权衡点或敏感点描述。具体列举如下:(a) 管理员能够在页面上灵活设置折扣力度规则和促销活动逻辑设置后即可生效对应易用性属性。(b) 系统应该具备完整的安全防护措施支持对恶意攻击行为进行检测与报警对应安全性属性。© 在正常负载情况下系统应在0.3秒内对用户的界面操作请求进行响应对应性能属性。(d) 用户名是系统唯一标识要求以字母开头由数字和字母组合而成长度不少于6个字符对应系统的设计约束。(e) 在正常负载情况下用户支付商品费用后在3秒内确认订单支付信息对应性能属性。(f) 系统主站点电力中断后应在5秒内将请求重定向到备用站点对应可用性属性。(g) 系统支持横向存储扩展要求在2人天内完成所有的扩展与测试工作对应可修改性属性。(h) 系统宕机后需要在10秒内感知错误并自动启动热备份系统对应可用性属性。(i) 系统需要内置接口函数支持开发团队进行功能调试与系统诊断对应可测试性属性。(j) 系统需要为所有的用户操作行为进行详细记录便于后期查阅与审计对应安全性属性。(k) 支持对系统的外观进行调整和配置调整工作需要在4人天内完成对应可修改性属性。【问题2】在解答本题时需要从可修改性、灵活性和系统性能三个方面进行综合考虑。从可修改性来看解释器风格折扣规则是独立的语法规则由解释器可对变化的规则进行解析修改更容易。而面向对象相对固定有变化需要修改具体的类。从灵活性来看解释器可以根据用户灵活解释执行规则优于面向对象。从系统性能来看面向对象优于解释器。综合三个方面来看解释器的优势更大所以该系统更适合采用解释器风格。