架构风格 - 软考真题题目与答案
本单元共 5 道题,每题给答案,部分带解析。
1. 简答题
请从数据处理方式、系统的可扩展性和处理性能三个方面,比较管道-过滤器架构风格和仓库架构风格的优缺点,并说明在线软件开发系统更适合哪种架构风格。
答案:管道-过滤器风格:数据处理方式为数据流驱动,各过滤器独立处理数据,可扩展性较好,但性能受过滤器间数据传输影响;仓库风格:数据处理方式为中心数据存储,各构件共享数据,可扩展性较好,但性能受中心存储访问瓶颈影响。在线软件开发系统需要频繁交互和共享数据,更适合仓库风格。
4. 简答题
针对该系统的功能,赵工建议采用解释器架构风格,李工建议采用管道-过滤器架构风格,王工则建议采用隐式调用架构风格。请针对平台的核心应用场景,从机器学习流程定义的灵活性和学习算法的可扩展性两个方面对三种架构风格进行对比与分析,并指出该平台更适合采用哪种架构风格。
答案:该平台更适合采用解释器架构风格。解释器风格自定义规则,灵活性和可扩展性高;管道-过滤器风格数据流固定,灵活性不足;隐式调用风格事件驱动,但流程定义不直观。
5. 简答题
针对该系统的功能,李工建议采用面向对象的架构风格,将折扣力度计算和用户筛选分别封装为独立对象,通过对象调用实现对应的功能;王工则建议采用解释器(interpreters)架构风格,将折扣力度计算和用户筛选条件封装为独立的规则,通过解释规则实现对应的功能。请针对系统的主要功能,从折扣规则的可修改性、个性化折扣定义灵活性和系统性能三个方面对这两种架构风格进行比较与分析,并指出该系统更适合采用哪种架构风格。
答案:面向对象风格:将折扣规则和筛选逻辑封装为对象,修改规则需修改代码并重新编译,可修改性较差;灵活性较低,但性能较好。解释器风格:规则以数据形式存在,修改规则无需修改代码,可修改性好;灵活性高,但性能较差。系统需求强调灵活设置折扣规则和促销活动,且用户规模不大,性能要求不高,因此更适合采用解释器风格。