试题一 (共 25 分)

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

【说明】

某公司拟开发一套机器学习应用开发平台,支持用户使用浏览器在线进行基于 机器学习的智能应用开发活动。该平台的核心应用场景是用户通过拖拽算法组 件灵活定义机器学习流程,采用自助方式进行智能应用设计、实现与部署,并 可以开发新算法组件加入平台中。在需求分析与架构设计阶段,公司提出的需 求和质量属性描述如下:

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

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

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

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

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

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

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

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

(i)平台部署后,针对界面风格的修改需要在 3 人天内完成: (j)在正常负载情况下,平台应在 0.5 秒内对用户的界面操作请求进行响应;

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

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

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

【问题 1 】(9 分)

在架构评估过程中,质量属性效用树(utilitytree)是对系统质量属性进行识别 和优先级排序的重要工具。请将合适的质量属性名称域入图 1-1 中( )、( )空 白处,并从题干中的(a)~(I)中选择合适的质量属性描述,填入( )~( )空白 处,完成该平台的效用树。

【问题 2 】(16 分)

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


试题二 (共 25 分)

阅读以下关于软件系统设计与建模的叙述,在答题纸上回答问题 1 至问题 3.

【说明】

某医院拟委托软件公司开发一套预约挂号管理系统,以便为患者提供更好的就 医体验,为医院提供更加科学的预约管理。本系统的主要功能描述如下:

(a)注 册登录

(b)信息浏览

(c)账号管理

(d)预约挂号

(e)查询与取消预约

(F) 号源管理

(g)报告查询

(h)预约管理

(i)报表管理和(j)信用管理等

【问题 1 】(6 分)

若采用面向对象方法对预约挂号管理系统进行分析,得到如图 2-1 所示的用例 图。请将合适的参与者名称填入图 2-1 中的( )和( )处,使用题干给出的功能 描述(a)~(j),完善用例( )~( )的名称,将正确答案填在答题纸上。

【问题 2 】(10 分)

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

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

【问题 3 】(9 分)

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


试题四  (共 25 分)

阅读以下关于数据库设计的叙述,在答题纸上回答问题 1 至问题 3 。

【说明】

某医药销售企业因业务发展,需要建立线上药品销售系统,为用户提供便捷的 互联网药品销售服务、该系统除了常规药品展示、订单、用户交流与反馈功能 外,还需要提供当前热销产品排名、评价分类管理等功能。

通过对需求的分析,在数据管理上初步决定采用关系数据库(MySQL)和数据库缓 存(Redis)的混合架构实现。

经过规范化设计之后,该系统的部分数据库表结构如下所示。

供应商(供应商 ID ,供应商名称,联系方式,供应商地址);

药品(药品 ID ,药品名称,药品型号,药品价格,供应商 ID);

药品库存(药品 ID ,当前库存数量);

订单(订单号码,药品 ID ,供应商 ID ,药品数量,订单金额);

【问题 1 】(9 分)

在系统初步运行后,发现系统数据访问性能较差。经过分析,刘工认为原来数 据库规范化设计后,关系表过于细分,造成了大量的多表关联查询,影响了性能。例如当用户查询商品信息时,需要同时显示该药品的信息、供应商的信 息、当前库存等信息。

为此,刘工认为可以采用反规范化设计来改造药品关系的结构,以提高查询性 能。修改后的药品关系结构为:

药品(药品 ID ,药品名称,药品型号,药品价格,供应商 ID ,供应商名称,当 前库存数量);

请用 200 字以内的文字说明常见的反规范化设计方法,并说明用户查询商品信 息应该采用哪种反规范化设计方法。

【问题 2 】(9 分)

王工认为,反规范化设计可提高查询的性能,但必然会带来数据的不一致性问 题。请用 200 字以内的文字说明在反规范化设计中,解决数据不一致性问题的 三种常见方法,并说明该系统应该采用哪种方法。

【问题 3 】(7 分)

该系统采用了 Redis 来实现某些特定功能(如当前热销药品排名等),同时将药 品关系数据放到内存以提高商品查询的性能,但必然会造成 Redis 和 MySQL 的 数据实时同步问题。

( )Redis 的数据类型包括 String 、 Hash 、 List 、 Set 和 ZSet 等,请说明实 现当前热销药品排名的功能应该选择使用哪种数据类型。

( )请用 200 字以内的文字解释说明解决 Redis 和 MySQL 数据实时同步问题的常见方案。


试题五  (共 25 分)

阅读以下关于 Web 系统架构设计的教述,在答题纸上回答问题 1 至问题 3 。

【说明】

某公司拟开发一个智能家居管理系统,该系统的主要功能需求如下:

1)用户可 使用该系统客户端实现对家居设备的控制,且家居设备可向客户端反馈实时状态;

2)支持家居设备数据的实时存储和查询;

3)基于用户数据,挖掘用户生活 习惯,向用户提供家居设备智能化使用建议。

基于上述需求,该公司组建了项目组,在项目会议上,张工给出了基于家庭网 关的传统智能家居管理系统的设计思路,李工给出了基于云平台的智能家居系 统的设计思路。经过深入讨论,公司决定采用李工的设计思路。

【问题 1 】(8 分)

请用 400 字以内的文字简要描述基于家庭网关的传统智能家居管理系统和基于 云平台的智能家居管理系统在网关管理、数据处理和系统性能等方面的特点, 以说明项目组选择李工设计思路的原因。

【问题 2 】(12 分)

请从下面给出的(a)~(j)中进行选择,补充完善图 5-1 中空( )~( )处的内容, 协助李工完成该系统的架构设计方案。

(a)Wi-FI

(b)蓝牙

(c)驱动程序

(d)数据库

(e)家庭网关

(f)云平台

(g)微服务

(h)用户终端

(i)鸿蒙

(j)TCP/IP

【问题 3 】(5 分)

该系统需实现用户终端与服务端的双向可靠通信,请用 300 字以内的文字从数 据传输可靠性的角度对比分析 TCP 和 UDP 通信协议的不同,并说明该系统应采 用哪种通信协议。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐