查看更多当前 - 案例分析 - 系统架构设计与评估
简单
案例题
2019年11月第1题
#第二版教材
#必须掌握

阅读以下关于软件架构设计与评估的叙述,在答题纸上回答问题1和问题2。
【说明】
某电子商务公司为了更好地管理用户,提升企业销售业绩,拟开发一套用户管理系统。该系统的基本功能是根据用户的消费级别、消费历史、信用情况等指标将用户划分为不同的等级,并针对不同等级的用户提供相应的折扣方案 。在需求分析与架构设计阶段,电子商务公司提出的需求、质量属性描述和架构特性如下 :
(a)用户目前分为普通用户、银卡用户、金卡用户和白金用户四个等级,后续需要能够根据消费情况进行动态调整;
(b)系统应该具备完善的安全防护措施,能够对黑客的攻击行为进行检测与防御;
(c)在正常负载情况下,系统应在0.5秒内对用户的商品查询请求进行响应;
(d)在各种节假日或公司活动中,针对所有级别用户,系统均能够根据用户实时的消费情况动态调整折扣力度;
(e)系统主站点断电后,应在5秒内将请求重定向到备用站点;
(f)系统支持中文昵称,但用户名要求必须以字母开头,长度不少于8个字符;
(g)当系统发生网络失效后,需要在15秒内发现错误并启用备用网络;
(h)系统在展示商品的实时视频时,需要保证视频画面具有1024×768像素的分辨率,40帧/秒的速率;
(i)系统要扩容时,应保证在10人月内完成所有的部署与测试工作;
(j)系统应对用户信息数据库的所有操作都进行完整记录;
(k)更改系统的Web界面接口必须在4人周内完成;
(l)系统必须提供远程调试接口,并支持远程调试 。
在对系统需求、质量属性描述和架构特性进行分析的基础上,该系统架构师给出了两种候选的架构设计方案,公司目前正在组织相关专家对系统架构进行评估。

分值(13分

针对用户级别与折扣规则管理功能的架构设计问题,李工建议采用面向对象的架构风格,而王工则建议采用基于规则的架构风格。请指出该系统更适合采用哪种架构风格,并从用户级别、折扣规则定义的灵活性、可扩展性和性能三个方面对这两种架构风格进行比较与分析,填写表1-1中的(1)~(3)空白处。

参考答案

用户级别与折扣规则管理功能更适合采用基于规则的架构风格。
(1)将用户级别、折扣规则等描述为可动态改变的规则数据;
(2)加入新的用户级别和折扣规则时需要重新定义新的对象,并需要重启系统;
(3)用户级别和折扣规则已经在系统内编码,可直接运行,性能较好。

凯恩解析

该问题考察不同架构风格对复杂业务规则管理的适应性。面向对象(OO)架构将用户等级和折扣策略直接建模为类与对象,逻辑直观、性能较好,但存在缺陷:当新增或修改等级与规则时,往往需要扩展类层次、改动源代码,甚至重启系统重新部署,缺乏灵活性。基于规则的架构则将规则抽象为可配置的数据(如规则库、条件-动作对),通过规则引擎在运行时动态加载与匹配,能根据用户实时消费情况自动调整折扣,不需要频繁修改核心代码。结合题干中关于“等级动态调整”“节假日实时折扣调整”等场景,显然基于规则架构更契合。

从三个维度比较:灵活性上,规则架构能动态增删改规则,而 OO 架构受制于类定义;可扩展性上,规则架构可以轻松支持未来新增等级和优惠策略,而 OO 架构则需要重构;性能上,OO 架构因逻辑直接固化在代码中,运行效率高,而规则架构需额外解析规则、查找匹配,性能稍逊,但可通过规则优化、缓存策略缓解。综合来看,本系统属于“用户分级 + 折扣策略”高度动态的场景,应优先采用基于规则的架构风格,并在实现中结合 OO 管理基础实体,兼顾灵活性与性能。

联系我们
隐私协议
用户协议
微信公众号
知乎
小红书
浙ICP备2021029036号
@2022-2026
嘉兴市安芯网络科技有限公司 版权所有