刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

试题一(共25分) :

阅读以下关于软件架构设计与评估的叙述,在答题纸上回答问题1和问题2。

【说明】

某电子商务公司拟升级其会员与促销管理系统,向用户提供个性化服务,提高用户的粘性。在项目立项之初,公司领导层一致认为本次升级的主要目标是提升会员管理方式的灵活性,由于当前用户规模不大,业务也相对简单,系统性能方面不做过多考虑,新系统除了保持现有的四级固定会员制度外,还需要根据用户的消费金额、偏好、重复性等相关特征动态调整商品的折扣力度,并支持在特定的活动周期内主动筛选与活动主题高度相关的用户集合,提供个性化的打折促销活动。

在需求分析与架构设计阶段,公司提出的需求和质量属性描述如下:

(a)管理员能够在页面上灵活设置折扣力度规则和促销活动逻辑,设置后即可生效;

(b)系统应该具备完整的安全防护措施,支持对恶意攻击行为进行检测与报警;

(c)在正常负载情况下,系统应在0.3秒内对用户的界面操作请求进行响应;

(d)用户名是系统唯一标识,要求以字母开头,由数字和字母组合而成,长度不少于6个字符。

(e)在正常负载情况下,用户支付商品费用后在3秒内确认订单支付信息;

(f)系统主站点电力中断后,应在5秒内将请求重定向到备用站点;

(g)系统支持横向存储扩展,要求在2人天内完成所有的扩展与测试工作;

(h)系统宕机后,需要在10秒内感知错误,并自动启动热备份系统;

(i)系统需要内置接口函数,支持开发团队进行功能调试与系统诊断;

(j)系统需要为所有的用户操作行为进行详细记录,便于后期查阅与审计;

(k)支持对系统的外观进行调整和配置,调整工作需要在4人天内完成。

在对系统需求、质量属性描述和架构特性进行分析的基础上,系统架构师给出了两种候选的架构设计方案,公司目前正在组织相关专家对系统架构进行评估。

【问题2】(13分)

针对该系统的功能,李工建议采用面向对象的架构风格,将折扣力度计算和用户筛选分别封装为独立对象,通过对象调用实现对应的功能:王工则建议采用解释器(interpreters) 架构风格,将折扣力度计算和用户筛选条件封装为独立的规则,通过解释规则实现对应的功能。请针对系统的主要功能,从折扣规则的可能改性、个性化折扣定义灵活性和系统性能三个方面对这两种架构风格进行比较与分析,并指出该系统更适合采用哪种架构风格。

使用微信搜索喵呜刷题,轻松应对考试!

答案:

解释器

可修改性:

面向对象风格通过编写新的规则实现代码,并通过应用重启或热加载添加规则,可修改性稍差;解释器风格通过编写新的规则文件,并通过导入资源文件或外部配置添加规则,可修改性较好。

灵活性:

面向对象风格通过策略模式定义规则对象,规则以程序逻辑实现,灵活性较差,解释器风格可灵活定义规则计算表达式,灵活性更好。

性能:

面向对象风格以编译后代码运算规则,性能好;而虚拟机风格需要加载规则,解析规则,规则运算,再得出结果,性能较差。

从项目关注点来看,系统性能不做过多考虑,则王工建议的解释器风格较为合适;但根据项目需求来看,规则系统风格更加合适该项目。

解析:

本题要求针对系统的主要功能,从折扣规则的可能改性、个性化折扣定义灵活性和系统性能三个方面对面向对象和解释器两种架构风格进行比较与分析。参照答案中详细比较了两种架构风格在各个方面的表现,并最后指出解释器架构风格更适合该项目。分析内容全面且逻辑清晰。

创作类型:
原创

本文链接:【问题2】(13分)针对该系统的功能,李工建议采用面向对象的架构风格,将折扣力度计算和用户筛选分别封

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share