解释器-架构案例2021(三十一)

2023-09-18 16:52:07
  • 软件架构设计与评估

某公司支持用户使用浏览器在线进行基于机器学习的智能应用开发活动。该平台核心应用场景是用户拖拉拽算法组件灵活定义机器学习流程,采用自助方式智能应用设计、实现与部署,并开发新算法加入平台。

(a) 平台用户分为算法工程师、软件工程师和管理员等三种角色,不同角色的功能界面有所不同:

(b)平台应该具备数据库保护措施,能够预防核心数据库被非授权用户访问:

(c)平台支持分布式部署,当主站点断电后,应在 20 秒内将请求重定向到备用站点;

(d)平台支持初学者和高级用户两种界面操作模式,用户可以根据自己的情况灵活选择合适的模式:

(e)平台主站点宕机后,需要在 15 秒内发现错误并启用备用系统;

(f)在正常负载情况下,机器学习流程从提交到开始执行,时间间隔不大于5秒;

(g)平台支持硬件扩容与升级,能够在3人天内完成所有部署与测试工作;

(h)平台需要对用户的所有操作过程进行详细记录,便于审计工作;

(i)平台部署后,针对界面风格的修改需要在 3 人天内完成:

(j)在正常负载情况下,平台应在 0.5 秒内对用户的界面操作请求进行响应;

(k)平台应该与目前国内外主流的机器学习应用开发平台的界面风格保持一致;

(l)平台提供机器学习算法的远程调试功能,支持算法工程师进行远程调试。

【问题1】

请将合适的质量属性名称域入图1-1中( )( )空白处,并从题干中的(a)~(I)中选择合适的质量属性描述,填入( )~( )空白处,完成该平台的效用树

答案:

(3)选择e

根据f可以知道,(1)为 性能,(4)填写(j)

由安全得到(5)填写h

由g可以知道(2)为 可修改性,所以6填写(i)

【问题2】

针对该系统的功能,赵工建议采用解释器(interpreter)架构风格,李工建议采用管道-过滤器(ppe-and-hlter)的架构风格,王工则建议采用隐式调用(implicit invocation)架构风格。请针对平台的核心应用场景,从机器学习流程定义的灵活性和学习算法的可扩展性两个方面对三种架构风格进行对比与分析,并指出该平台更适合采用哪种架构风格。

答案:

解释器有独立的语法规则,可以通过解释器来解析,非常灵活,扩展性强。

管道过滤则是每个构件的输入和输出,连接件就是管道,过滤器就是构件,构件读取数据,经过处理,再输出,前一个构件的输出是下一个构件的输入。

隐式调用则表示不是直接调用某个方法或者过程,而是通过广播或者触发来实现,构件在多个事件注册,当某个事件触发,则自动调用注册的所有过程,一个事件触发可以导致另一个模块中调用。

从平台支持初学者和高级两个界面,说明系统需要满足灵活性。解释器的扩展性高,无论角色新增还是扩展已有业务都不需要修改代码。而管道过滤主要传递数据,当需要扩展和变动则需要修改代码。隐式调用则强调通过间接方式进行调用,灵活性高于管道过滤,但是低于解释器。

  • 系统设计与建模

某医院拟委托软件公司开发一套预约挂号管理系统,以便为患者提供更好的就医体验,为医院提供更加科学的预约管理。本系统的主要功能描述如下:(a)注册登录,(b)信息浏览,(c)账号管理,(d)预约挂号,(e)查询与取消预约,(F)号源管理,(g)报告查询,(h)预约管理,(i)报表管理和(j)信用管理等。

【问题1】6分

请将合适的参与者名称填入图 2-1中的( )( )处,使用题干给出的功能描述(a)~(j),完善用例( )~( )的名称,将正确答案填在答题纸上

答案:

  1. 管理员
  2. 患者
  3. 到(8)则是(a)注册中心、c、f、h、i、j
  1. 到(12)则是b、d、e、g

【问题2】10分

预约人员(患者)登录系统后发起预约挂号请求,进入预约界面。进行预约挂号时使用数据库访问类获取医生的相关信息,在数据库中调用医生列表,并调取医生出诊时段表,将医生出诊时段反馈到预的界面,并显示给预的人员;预约人员选择医生及就诊时间后确认预的,系统返网预约结果,并向用户显示是否预约成功。

采用面向对象方法对预约挂号过程进行分析,得到如图 2-2 所示的顺序图,使用题干中给出的描述,完善图 2-2 中对象( 1),及消息( 2)~( 4)的名称,将正确答案填在普题纸上请简要说明在描述对象之间的动态交互关系时,协作图与顺序图存在哪些区别。

答案:

  1. 是患者
  2. 发起预约挂号请求
  3. 显示给预的人员
  4. 是否预约成功

顺序图强调交互的消息时间顺序。

协作图强调接受和发送消息的结构组织,强调通信方式。

【问题3】9分

采用面向对象方法开发软件,通常需要建立对象模型、动态模型和功能模型,请分别介绍这3种模型,并详细说明它们之间的关联关系,针对上述模型,说明哪些模型可用于软件的需求分析?

答案:

对象模型描述系统静态结构,主要对象图来建模,是整个系统最基础最核心部分。

动态模型描述系统交互次序,主要状态图来建模。

功能模型描述系统数据表换,主要数据流图DFD来表示。

对象模型描述了动态模型和功能模型的基础数据结构,对象模型中的操作对应于动态模型中的事件功能模型中的函数

动态模型描述了控制结构,告诉我们哪些引起对象的变化,并激活功能。

功能模型描述 由对象模型的操作 动态模型的动作 激活功能,功能模型作用在对象模型的说明上,并且表示了对象值的约束。

更多推荐

AMEYA360 | 罗姆ROHM面向工业设备应用的产品目录上线

作为半导体和电子元器件制造商,罗姆集团自成立后60多年以来,一直秉持“质量第一”的企业目的,为消费电子设备和IT设备、汽车以及工业设备等多个领域源源不断地提供高品质、可信赖的产品。随着“节能”和“小型化”需求的不断高涨,罗姆集团以功率半导体和模拟半导体为中心,正面向“工厂自动化”、“能源”和“基础设施”等工业设备市场,

建议收藏《Verilog代码规范笔记_华为》(附下载)

华为verilog编程规范是坊间流传出来华为内部的资料,其贴合实际工作需要,是非常宝贵的资料,希望大家善存。至于其介绍,在此不再赘述,大家可看下图详细了解,感兴趣的可私信领取《Verilog代码规范笔记_华为》。…………一共10页想获得完整版《Verilog代码规范笔记_华为》的小伙伴赶快私信获取!另外,今天精选了几道

ITIL是什么?

ITIL是什么?1.ITIL是什么?2.ITIL4个版本2.1ITILV1-关注IT基础架构的管理2.2ITILV2-以流程为核心(5个服务支持流程和5个服务交付流程)2.3ITILV3-服务生命周期2.4ITIL4-最新版本,强调价值创造2.5ITILV1,V2,V3到ITIL4时间线3.ITIL4有哪些内容?3.1

ISTQB术语表

此术语表为国际软件测试认证委员会(ISTQB)发布的标准术语表。此表历经数次修改、完善,集纳了计算机行业界、商业界及政府相关机构的见解及意见,在国际化的层面上达到了罕有的统一性及一致性。参与编制此表的国际团体包括澳大利亚、比利时、芬兰、德国、印度、以色列、荷兰、挪威、葡萄牙、瑞典、英国和美国。多数软件测试工程师使用19

四川玖璨电子商务有限公司专注抖音电商运营

四川玖璨电商是一个靠谱的抖音培训公司,在电商行业内有着广泛的知名度和良好的口碑。该公司通过多年的发展,形成了独特的运营理念和有效的运营策略,为商家提供了一站式的抖音电商运营服务。首先,四川玖璨电子商务有限公司注重与商家的沟通和合作。公司专门设立了客户服务团队,与商家建立紧密的合作关系。商家可以随时与团队成员进行沟通,了

vue点击pdf文件直接在浏览器中预览文件

好久没有更新文章了,说说为什么会有这篇文章呢,其实是应某个热线评论的要求出的,不过由于最近很长一段时间没打开csdn现在才看到,所以才会导致到现在才出。先来看看封装完这个预览方法的使用,主打一个方便使用:id:为文件idname:为文件名称ajaxDownLoadFile(id,name)没错就是这么简单,调用这个函数

采棉机工作过程的关键动作

1、起动:确认机械变速手柄和液压手柄在空挡位置——确认手油门在最小位置——关闭所有照明开关和电气——打开钥匙开关——检查所有仪表是否符合起动的要求——灯检——响喇叭警示周围人员——起动(800—900转/分稳定后)——怠速(1200转/分)运行2分钟(冬天4分钟)。2、熄火:停车(一般不要使用制动器,防止采棉机前倾栽头

TypeScript项目配置

前言我们需要建立tsconfig.json作用用于标识TypeScript项目的根路径;用于配置TypeScript编译器;用于指定编译的文件。重要字段files-设置要编译的文件的名称;include-设置需要进行编译的文件,支持路径模式匹配;exclude-设置无需进行编译的文件,支持路径模式匹配;compiler

ThinkPHP5,使用unionAll取出两个毫无相关字段表的数据且分页

一:首先来了解一下union和unionAll1:取结果的并集,是否去重union:对两个结果集进行并集操作,不包括重复行,相当于distinct,同时进行默认规则的排序;unionAll:对两个结果集进行并集操作,包括重复行,即所有的结果全部显示,不管是不是重复;2:获取结果后的操作,是否排序union:会对获取的结

基于Java+SpringBoot+Vue的旧物置换网站设计和实现

基于Java+SpringBoot+Vue的旧物置换网站设计和实现源码传送入口前言主要技术系统设计功能截图数据库设计代码论文目录订阅经典源码专栏Java项目精品实战案例《500套》源码获取源码传送入口前言摘要随着时代在一步一步在进步,旧物也成人们的烦恼,许多平台网站都在推广自已的产品像天猫、咸鱼、京东。所以开发出一套关

云计算(Docker)

Docker简介Docker是一个开源的应用容器引擎,基于Go语言,并遵从Apache2.0协议开源。它可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。Docker可用于开发应用、交付应用、运行应用等场景。容器是完全使用沙箱机制,相互之间不会有任何接口

热文推荐