软考:案例题分析1101

news2024/11/5 16:29:07

22年第一题:架构设计与评估

分析文字,识别需求和质量属性?这里需要记忆质量属性有那些,区分需求和质量属性,能区分出质量属性之间的区别。

我的回答:

差距分析:


根据题目中功能的特点,分析使用什么架构风格,这个题目考虑作为架构师,能根据场景,选择适合的架构风格,考察对架构风格的了解程度,能够回答到要点。

我的回答:面对对象架构风格具有较好的可读性,耦合性低,但是不支持动态的修改,如果要修改功能,需要修改代码;解释器架构风格具有较好的灵活性,可以根据输入自定义规则来实现对于的功能;根据题目中的要求,选择解释器风格更合适。

差距分析:
1、需要先分别从题目的三个特性依次对比分析
2、最后总结结论
3、对于架构风格不熟练

解释器架构风格

解释器框架风格(Interpreter Framework Style)是一种软件架构风格,其核心思想是构建一个解释器(Interpreter)来解释并执行特定领域或问题领域的语言或规则。它能够读取、解析和执行用户提供的程序代码,通常是基于文本的源代码。归属于虚拟机大类型的架构风格。

名称:解释器。解释什么:解释语言DSL,就是输入,将语言映射翻译去执行。很灵活,灵活带来的代码就是效率比较慢。为什么说灵活,运维它解释运行,运行的适合编译,那么就可以修改完成代码后立马执行。

应用场景:
• 脚本语言:许多脚本语言(如Python、JavaScript、Ruby等)采用解释器架构,允许用户编写可立即执行的脚本,无需预先编译。
• 嵌入式系统:在某些嵌入式环境中,解释器用于执行定制的配置脚本或控制逻辑,简化设备管理和应用程序定制。
• 数据库查询语言:SQL查询语言就是一个典型的例子,数据库管理系统内置了SQL解释器,用于解析和执行用户提交的查询语句。
• 规则引擎:在业务规则管理系统中,解释器用于解析和执行用特定规则语言编写的业务规则,根据实时数据做出决策。
• 教育与科研:解释器常用于教学环境和研究项目,帮助学生学习编程概念或实验新的编程语言设计。
• 游戏开发:游戏引擎中可能包含脚本解释器,让设计师使用易于理解的语言编写游戏逻辑,无需深入掌握底层编程语言。
• 专家系统:早期的专家系统中,解释器用于执行知识工程师编写的规则集,模拟人类专家的决策过程。
总的来说,解释器架构风格通过提供一个能够理解并执行特定语言的解释器,支持用户以高抽象级别编写程序,适用于需要快速原型设计、动态执行或使用特定领域语言的场景。尽管其执行效率可能低于编译型系统,但这种风格提供的灵活性、易用性和跨平台能力在很多情况下弥补了这一不足。

特点:

  1. 领域特定语言(DSL):
    解释器框架风格通常用于实现领域特定语言(DSL),这是一种针对特定问题领域的语言。DSL使得问题领域的规则和逻辑更容易理解和表达。

  2. 模块化的解释器:
    架构中通常包含一个或多个模块化的解释器,每个解释器负责解释特定部分的DSL或规则。这些解释器可以组合在一起以执行复杂的任务。

  3. 灵活性:
    解释器框架风格提供了高度的灵活性,因为它允许动态地添加、修改或替换解释器,以适应不断变化的需求。

  4. 可扩展性:
    架构可以轻松扩展以支持新的DSL或规则,而不会对现有的解释器产生影响。

  5. 多层次的解释:
    解释器可以构建成多层次的结构,其中一个解释器可以调用另一个解释器,从而实现复杂的解释和执行逻辑。

  6. 易于维护和修改
    由于DSL和解释器的模块化性质,维护和修改系统变得相对容易。新的规则或语法可以通过添加新的解释器来支持,而不需要修改现有的代码。

22年第二题:软件架构设计与建模

数据流图,数据流分层,数据平衡原则

我的答案:数据平衡原则是指数据在每一次的流入和流出要相同。要避免只有流入没有流出,也要避免只有流出,没有流入。

差距分析:
1、层间平衡:不同层次之间,相同数据流的个数和方向要一致
2、图内平衡:避免有输入无输出的黑洞,避免有输出无输入的奇迹

其他考点:
数据流图是组成,实体,加工,存储,数据流;
数据流图是用在分析阶段使用,用来进行建立模型,来分析系统的功能有那些,有那些实体,它通常来结合数据字典。
数据流图是属于结构化设计分析的工具。
软件工程中通常由结构化和面向对象分析和设计两种方式。


描述DFD和DD在分析和设计阶段的作用。

我的答案:
1、在需求分析阶段,通过分析需求,得到数据流图,可以识别到系统的行为和功能,明确数据处理的过程,明确系统处理的实体由那些。通过DD来分析记录实体和动作,来为分析阶段奠定基础
2、在设计阶段,数据流图可以帮助进行ER图的设计,软件架构图的设计,识别软件模块,进行软件模块划分
3、总之:两个技术手段在结构化分析中都非常重要。

差距:
1、分析阶段,通过XX方式,可以反映出系统必须完成的逻辑功能,尽可能早发现是否由需要输入或者输出的信息被遗漏,以及系统各部分的逻辑是否由错误,数据字典是描述数据的信息集合,统一语言和理解
2、设计阶段,变换分析和事务分析的方法,设计出模块结构,根据数据字典的数据存储描述建立数据库存储设计

补充:变换分析和事务分析:解释和概念

22年第三题(故障检测和诊断)

心跳检测和超时探测技术的原理和特点。

我的:
心跳检测技术是通过不断地发出请求,看对方是否会给出响应,通常根据是否连续无法检测到心跳的方式来判断是否存在故障。
超时探测技术是指发出请求,等待其相应,如果等待的时间超时一定值,那么就认为存在故障。

差距
要讲优点和缺点。
心跳检测技术,固定频率向其它节点发送心跳信息,表示自己是活着的,如果没有收到心跳,就认为这个节点失败了
超时探测是主动探测,问其它节点你健康吗,而心跳检测技术不主动的探测,我只看最近我收到了那些信号,如果由一段时间没有收到信号,则认为探测失败。


22年第四题:缓存技术

数据库实时同步是数据库和缓存的更新是同步进行的,当都更新完成后,则返回,通常需要使用事务,保证两个操作的原子性,否则可能出现数据不一致的问题。数据库异步准实时更新,是指更新数据库是同步的,但是更新缓存通过发送到消息队列进行异步的更新处理,这样可以提高数据库同步的效率。
根据题目中对响应时间性能要求比较高,因此,选择数据库异步准实时更新是合适的

同步是将订单反馈作为一个事务,只有缓存与数据库中的数据同时完成更新后事务才算提交成功。


哈希算法是指将缓存的key经过一个hash算法,得到一个数字,然后根据数字求余得到缓存存储的机器位置,它的优点是,比较简单,缺点是,如果机器挂掉了,那么需要进行重新哈希,会带来比较大的成本。
一致性哈希是一种特殊的哈希,将节点分布在一个哈希值组成的环中,当缓存的key经过哈希后,得到在环上的位置,然后将缓存放在距离环最近的一个节点,这样做到好处是,当节点伸缩的适合,对缓存分布的影响比较小,只影响到后一个节点。
根据题目的要求:运维集群部署多个节点,且可能会进行变化,所以选择一致性哈希是合适的。

哈希算法:将任意长的输入通过某种哈希算法变换成固定长度的一个哈希值。
一致性哈希将整个哈希值空间映射成一个按顺时针方向组织的虚拟圆环。尽可能小的改变已存在服务器与处理请求服务器之间的映射关系,解决了简单哈希算法在分布式哈希表中存在的动态伸缩问题。可扩展性,更好的适应数据的快速增长。


当一个元素加入的时候,根据K个哈希函数计算得到一个位数组,得到位数组中的K个点,置为一,如果这些点都为一,则认为集合中很可能存在元素,否则肯定不存在。优点:占用内存小,不存储元素本身,可以并行运算(哈希函数之间没有关联关系),增加和查询的时间复杂度都是O(K),比较小,和数据量无关。缺点是有误判可能性,只能判断是否存在,不能获取元素本身,而且最后,不能从布隆过滤器中喊出元素。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2231865.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单片机串口接收状态机STM32

单片机串口接收状态机stm32 前言 项目的芯片stm32转国产,国产芯片的串口DMA接收功能测试不通过,所以要由原本很容易配置的串口空闲中断触发DMA接收数据的方式转为串口逐字节接收的状态机接收数据 两种方式各有优劣,不过我的芯片已经主频跑…

信息学科平台系统开发:基于Spring Boot的最佳实践

3系统分析 3.1可行性分析 通过对本基于保密信息学科平台系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本基于保密信息学科平台系统采用Spring Boot框架&a…

探索 ONLYOFFICE 8.2 版本:更高效、更安全的云端办公新体验

引言 在当今这个快节奏的时代,信息技术的发展已经深刻改变了我们的工作方式。从传统的纸质文件到电子文档,再到如今的云端协作,每一步技术进步都代表着效率的飞跃。尤其在后疫情时代,远程办公成为常态,如何保持团队之间…

51c自动驾驶~合集4

我自己的原文哦~ https://blog.51cto.com/whaosoft/12413878 #MCTrack 迈驰&旷视最新MCTrack:KITTI/nuScenes/Waymo三榜单SOTA paper:MCTrack: A Unified 3D Multi-Object Tracking Framework for Autonomous Driving code:https://gi…

STM32HAL-最简单的长、短、多击按键框架(多按键)

概述 本文章使用最简单的写法实现长、短、多击按键框架,非常适合移植各类型单片机,特别是资源少的芯片上。接下来将在stm32单片机上实现,只需占用1个定时器作为时钟扫描按键即可。 一、开发环境 1、硬件平台 STM32F401CEU6 内部Flash : 512Kbytes,SARM …

【论文精读】LPT: Long-tailed prompt tuning for image classification

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀论文精读_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 摘要 2. …

队列的模拟实现

概念: 队列 :只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出 FIFO(First In First Out) 入队列:进行插入操作的一端称为 队尾( Tail/Rear ) 出队列&a…

Centos安装配置Jenkins

下载安装 注意:推荐的LTS版本对部分插件不适配,直接用最新的版本,jenkins还需要用到git和maven,服务器上已经安装,可查看参考文档[1]、[2],本次不再演示 访问开始使用 Jenkins 下载jenkins 上传至服务器…

在Python中最小化预测函数的参数

在 Python 中,最小化预测函数的参数通常涉及使用优化算法来调整模型的参数,以减少预测误差。下面介绍几种常见的方法来实现这一目标,主要使用 scipy 和 numpy 库。 1、问题背景 我正在尝试通过解决自己想出的问题来学习Python,我…

统信UOS系统应用开发

包括cpu 、内存 、安全等接口描述。 文章目录 一、内存管理非文件形式的内存动态函数库调用接口二、cpu内置安全飞腾国密加速硬件用户态驱动API说明真随机数真随机数三、cpu多核调度cpu亲和性获取接口用于cpu set集操作的相关宏定义一、内存管理 非文件形式的内存动态函数库调…

postman 获取登录接口中的返回token并设置为环境变量的方法 postman script

postman是一个比较方便的API开发调试工具, 我们在访问API时一般都需要设置一个token来对服务进行认证, 这个token一般都是通过登录接口来获取。 这个postman脚本放到登录接口的sctipt--> post-response里面即可将登陆接口中返回的token值设置到postma…

《华为工作法》读书摘记

无论做什么事情,首先要明确的就是做事的目标。目标是引导行动的关键,也是证明行动所具备的价值的前提,所以目标管理成了企业与个人管理的重要组成部分。 很多时候,勤奋、努力并不意味着就一定能把工作做好,也并不意味…

【大语言模型】ACL2024论文-07 BitDistiller: 释放亚4比特大型语言模型的潜力通过自蒸馏

【大语言模型】ACL2024论文-07 BitDistiller: 释放亚4比特大型语言模型的潜力通过自蒸馏 目录 文章目录 【大语言模型】ACL2024论文-07 BitDistiller: 释放亚4比特大型语言模型的潜力通过自蒸馏目录摘要研究背景问题与挑战如何解决创新点算法模型实验效果代码推荐阅读指数&…

Tomcat 和 Docker部署Java项目的区别

在 Java 项目部署中,Tomcat 和 Docker 是两种常见的选择。虽然它们都可以用来运行 Java 应用,但它们在定位、部署方式、依赖环境、资源隔离、扩展性和适用场景等方面有显著区别。 1. 功能定位 1.1 Tomcat Apache Tomcat 是一种轻量级的 Java 应用服务器…

基于SSM的学生选课系统+LW参考示例

系列文章目录 1.基于SSM的洗衣房管理系统原生微信小程序LW参考示例 2.基于SpringBoot的宠物摄影网站管理系统LW参考示例 3.基于SpringBootVue的企业人事管理系统LW参考示例 4.基于SSM的高校实验室管理系统LW参考示例 5.基于SpringBoot的二手数码回收系统原生微信小程序LW参考示…

Java I/O流详解

文章目录 I/O流概念I/O流的分类字节流(Byte Streams)字节字节流概述方法主要类和继承关系示例代码字节流读取文件 字符流字符流概述子类Reader1.FileReader:2.CharArrayReader:3.StringReader:4.InputStreamReader&…

基于Multisim数字频率计频率范围0-9999HZ电路(含仿真和报告)

【全套资料.zip】数字频率计仿真电路设计Multisim仿真设计数字电子技术 文章目录 功能一、Multisim仿真源文件二、原理文档报告资料下载【Multisim仿真报告讲解视频.zip】 功能 1.采用纯数字电路,非单片机。 2.频率计测量的频率范围0-9999HZ。 3.使用数码管进行频…

Python画笔案例-095 绘制鼠标画笔

1、绘制 鼠标画笔 通过 python 的turtle 库绘制 鼠标画笔,如下图: 2、实现代码 绘制 鼠标画笔,以下为实现代码: """鼠标画笔.py本程序可以用鼠标指针在屏幕上画画儿。 """ import turtlescreen = turtle.getscreen() screen.setup(

【温酒笔记】SPI

1. SPI基础 物理层 片选线 :选中拉低SCK: 时钟线MOSI:主出从入MISO:主入从出 协议层 CPOL:时钟极性:空闲电平高低 CPHA:时钟相位:第一个还是第二个边沿采样 2. 示例SPI-W25Q16 (见模组分类下文章)

mac电脑设置crontab定时任务,以及遇到的问题解决办法

crontab常用命令 crontab -u user:用来设定某个用户的crontab服务; crontab file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入&#xf…