【软件系统架构师-案例题-软件架构设计与评估】21年下(1):机器学习应用开发平台

张开发
2026/5/4 19:23:58 15 分钟阅读
【软件系统架构师-案例题-软件架构设计与评估】21年下(1):机器学习应用开发平台
文章目录题目【问题1】(9分)【问题2】(16分)参考答案【问题1】【问题2】1. 解释器Interpreter风格2. 管道-过滤器Pipe-and-Filter风格3. 隐式调用Implicit Invocation风格解析【问题1】解析【问题2】解析补充知识点软件质量属性速查表常见架构风格适用场景题目某公司拟开发一套机器学习应用开发平台支持用户使用浏览器在线进行基于机器学习的智能应用开发活动。该平台的核心应用场景是用户通过拖拽算法组件灵活定义机器学习流程采用自助方式进行智能应用设计、实现与部署并可以开发新算法组件加入平台中。在需求分析与架构设计阶段公司提出的需求和质量属性描述如下:(a) 平台用户分为算法工程师、软件工程师和管理员等三种角色不同角色的功能界面有所不同(b) 平台应该具备数据库保护措施能够预防核心数据库被非授权用户访问© 平台支持分布式部署当主站点断电后应在20秒内将请求重定向到备用站点(d) 平台支持初学者和高级用户两种界面操作模式用户可以根据自己的情况灵活选择合适的模式(e) 平台主站点宕机后需要在15秒内发现错误并启用备用系统(f) 在正常负载情况下机器学习流程从提交到开始执行时间间隔不大于5秒(g) 平台支持硬件扩容与升级能够在3人·天内完成所有部署与测试工作(h) 平台需要对用户的所有操作过程进行详细记录便于审计工作(i) 平台部署后针对界面风格的修改需要在3人·天内完成(j) 在正常负载情况下平台应在0.5秒内对用户的界面操作请求进行响应;(k) 平台应该与目前国内外主流的机器学习应用开发平台的界面风格保持一致(l) 平台提供机器学习算法的远程调试功能支持算法工程师进行远程调试。在对平台需求、质量属性描述和架构特性进行分析的基础上公司的架构师给出了三种候选的架构设计方案公司目前正在组织相关专家对平台架构进行评估。【问题1】(9分)在架构评估过程中质量属性效用树utility tree是对系统质量属性进行识别和优先级排序的重要工具。请将合适的质量属性名称填入图1-1中(1)、(2)空白处并从题干中的(a)-(l)中选择合适的质量属性描述填入(3)-(6)空白处完成该平台的效用树。【问题2】(16分)针对该系统的功能赵工建议采用解释器interpreter架构风格李工建议采用管道过滤器pipe-and-filter的架构风格王工则建议采用隐式调用implicit invocation架构风格。请针对平台的核心应用场景从机器学习流程定义的灵活性和学习算法的可扩展性两个方面对三种架构风格进行对比与分析并指出该平台更适合采用哪种架构风格。参考答案【问题1】(1)性能(2)可修改性(3)(e)可用性(4)(j)性能(5)(h)安全性(6)(i)可修改性【问题2】该平台更适合采用解释器架构风格三种架构风格的对比如下1. 解释器Interpreter风格机器学习流程定义的灵活性极高。解释器通过自定义流程规则和配套流程解释引擎实现用户层面的流程完全定义无需修改源代码。无论是修改已有业务流程、适配不同角色的操作流程还是创建新流程都非常灵活。学习算法的可扩展性极强。解释器按照统一的输入输出格式将学习算法封装为组件通过解释器机制动态增删算法组件、支持动态调用新增算法仅需遵循接口规范无需修改平台核心逻辑可扩展性极强。2. 管道-过滤器Pipe-and-Filter风格机器学习流程定义的灵活性极低。管道-过滤器将数据处理职能封装为过滤器数据传递通过管道实现仅适用于流程固定不变的场景。一旦流程发生变化、需要调整组件顺序或新增逻辑必须修改过滤器代码、在程序层面重建流程灵活性极差。学习算法的可扩展性极弱。若需新增/删除算法组件必须停止平台服务、重新部署整个管道流程修改成本高、影响业务可扩展性极弱。3. 隐式调用Implicit Invocation风格机器学习流程定义的灵活性一般。隐式调用基于事件机制通过事件触发关联动作实现流程灵活性优于管道-过滤器但仅能实现基于事件的固定逻辑联动无法支持用户完全自定义的复杂流程灵活性远低于解释器。学习算法的可扩展性一般。隐式调用将算法封装为事件处理函数支持动态增删函数但新增函数需绑定对应事件无法实现完全灵活的流程编排可扩展性中等。解析【问题1】解析架构评估中质量效用树默认包含4大核心质量属性性能、可用性、安全性、可修改性结合题干需求逐一匹配(1) 性能子节点(f)是流程执行延迟要求属于性能剩余性能需求为(j)界面操作响应时间因此(4)填(j)。(2) 可修改性子节点(g)是硬件扩容的修改成本要求属于可修改性剩余可修改性需求为(i)界面风格修改的时间要求因此(6)填(i)。(3) 可用性可用性关注系统故障后的恢复能力©是主站点断电后的重定向要求剩余可用性需求为(e)宕机后启用备用系统的时间要求因此(3)填(e)。(5) 安全性安全性关注数据安全、访问控制、审计等(b)是数据库防未授权访问剩余安全性需求为(h)操作审计记录因此(5)填(h)。【问题2】解析平台核心需求是用户拖拽组件自定义机器学习流程、动态扩展算法组件因此核心诉求是高灵活性、高可扩展性解释器风格完美匹配“自定义流程、动态扩展”的需求无需修改代码即可实现流程编排和算法新增是最优选择管道-过滤器仅适用于固定流程无法满足灵活定义的需求隐式调用仅能实现事件驱动的简单流程无法支持复杂的自定义编排灵活性不足。补充知识点软件质量属性速查表质量属性核心定义常见需求示例性能系统响应时间、吞吐量、延迟等操作响应时间、流程执行延迟可用性系统正常运行的时间比例、故障恢复能力故障切换时间、宕机恢复时间安全性系统防攻击、防未授权访问、数据安全访问控制、操作审计、数据加密可修改性系统修改的成本、时间、难度功能扩展、界面修改、硬件扩容的时间要求常见架构风格适用场景架构风格核心特点适用场景解释器自定义规则、动态解析执行流程编排、规则引擎、脚本执行管道-过滤器数据流式处理、流程固定数据清洗、编译、日志处理隐式调用事件驱动、解耦发布者与订阅者GUI事件、消息通知、插件系统

更多文章