1.试题-(共25分):阅读以下关于软件架构设计与评估的叙述在答题纸上回答问题1和问题2。
【说明】某电子商务公司拟升级其会员与促销管理系统,向用户提供个性化服务,提高用户的粘性。在项目立项之初,公司领导层一致认为本次升级的主要目标是提升会员管理方式的灵活性,由于当前用户规模不大业务也相对简单,系统性能方面不做过多考虑,新系统除了保持现有的四级固定会员制度外,还需要根据用户的消费金额、偏好、重复性等相关特征动态调整商品的折扣力度,并支持在特定的活动周期内主动筛选与活动主题高度相关的用户集合,提供个性化的打折促销活动。在需求分析与架构设计阶段,公司提出的需求和质量属性描述如下:
(a)管理员能够在页面上灵活设置折扣力度规则和促销活动逻辑,设置后即可生效:
(b)系统应该具备完整的安全防护措施,支持对恶意攻击行为进行检测与报警:(安全性)
(c)在正常负载情况下,系统应在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)空白处,完成该系统的效用树。
【答案】(1)安全性(2)可修改性(3)e(4)j(5)h(6)k
【考点】
软件系统架构评估主要关注质量属性。主要包括以下几种:性能、可靠性、可用性、安全性、可修改性、功能性、可变性、互操作性。
- 性能关注系统的响应能力;
- 可靠性关注系统在错误面前的维持功能能力;
- 可用性关注系统能够正常运行的时间比例;
- 安全性关注系统阻止非授权用户使用的能力;
- 可修改性关注系统能够快速进行变更的能力;
- 功能性关注系统能完成期望工作的能力;
- 可变性关注架构的变更能力;
- 互操作性关注软件与其他系统或环境的相互作用能力。
【问题2】(13分)针对该系统的功能,
李工建议采用面向对象的架构风格,将折扣力度计算和用户筛选分别封装为独立对象,通过对象调用实现对应的功能: