一、质量效用树(答案总结举例)
(1)性能
1.在正常负载情况下,机器学习流程从提交到开始执行,时间间隔不大于5秒。
2.在正常负载情况下,平台应在0.5秒内对用户的界面操作请求进行响应。
3.在正常负载情况下,用户的代码提交请求应该在0.5秒内完成;
(2)可用性
1.平台支持分布式部署,当主站点断电后,应在20秒内将请求重定向到备用站点。
2.平台主站点宕机后,需要在15秒内发现错误并启用备用系统。
(3)安全
1.平台需要对用户的所有操作过程进行详细记录,便于审计工作。
2.平台应该具备数据库保护措施,能够预防核心数据库被非授权用户访问。
3.系统应该具备完善的安全防护措施,能够对黑客的攻击行为进行检测与防御。
(4)可修改性
1.平台支持硬件扩容与升级,能够在3人天内完成所有部署与测试工作。
2.平台部署后,针对界面风格的修改需要在3人天内完成。
二、架构风格
1.解释器
解释器风格是自定义了一套规则供使用者使用,使用者基于这个规则来开发构件,能够跨平台适配。
优点:可以用多种操作来解释句子,灵活自定义场景
缺点:适用于特定领域
适合领域:适合于模式匹配系统和语言编译器
2.管道过滤器
管道-过滤器风格每个构件都有一组输入和输出,构件读取输入的数据流,经过内部处理(计算或增值),产生输出数据流。前一个构件的输出作为后一个构件的输入,前后数据流关联。过滤器就是构件,连接件就是管道。
优点:功能模块复用;可维护性和扩散性较强;具有并发性;模块独立性高。
缺点:不利于交互性强的应用,对于存在关系的数据流必须进行协调。
适合领域:系统可划分清晰模块;模块相对独立;有清晰的模块接口
3.隐式调用风格
隐式调用风格是构件不直接调用一个过程,而是触发或广播一个或多个事件。构件中的过程在一个或多个事件中注册,当某个事件被触发时,系统自动调用在这个事件中注册的所有过程。一个事件的触发就导致了另一个模块中的过程调用。
优点:适合描写系统组;容易实现并发处理和多任务;可扩展性好;具有类层次结构;简化代码
缺点:因为树形结构所以削弱了对系统计算的控制能力;各个对象的逻辑关系复杂
适合领域:一个系统对外部的表现可以从它对事件的处理表征出来
4.仓库风格
采用两个常用构件中央数据单元和一些相对独立的组件集合。
优点:中央数据单元实现了数据的集中,以数据为中心
缺点:适用于特定领域
适合领域:适合于专家系统等人工智能领域问题的求解
5.面向对象
力争实现问题空间和软件系统空间结构的一致性。
优点:高度模块性;实现封装;代码共享灵活;易维护;可扩充性好
缺点:增加了对象的依赖关系
适合领域:多种领域
6.分层次
各个层次的组件形成不同功能级别的虚拟机;多层相互协同工作,而且实现透明。
优点:支持系统设计过程中的逐级抽象;可扩展好;支持软件复用
缺点:不同层次之间耦合度高的系统难以实现
适合领域:适合功能层次的抽象和相互之间低耦合的系统