目录
2. 针对质量属性可以使用ping/echo和心跳模式实现,分别简述ping/echo和心跳模式的实现原理,张工认为从资源利用率的角度来看采取心跳模式策略比较合适,简述为什么。(11分)
3.王工使用了多线程技术进行缓存处理,线程1负责写入,线程2负责读取,可能存在数据一致性问题,请解释其原因,并给出3个以上的解决办法(9分)
1. 基于Elasticsearch分词,解释下Standard, Simple, Whitespace, Keyword 几种分词器的分词原理。(6分)
2. 系统架构图填空,从给出的选项中选出对应的选项填入对的位置,8个空。(12分)
一、选择题
题目 | 选项 | 答案 |
在0-1000之间有()个整数恰好有一位数字5 | A、242 B、243 C、225 D、224 | B |
100个人,会篮球的有45人,会乒乓球的有53人,会足球的有55人,会篮球和乒乓球的有28人,会篮球和足球的有32人,会乒乓球和足球的有35人,三个都会的有20人,三个都不会的有多少人 | A、21 B、20 C、22 D、23 | C |
职务的软件著作权,包括公司交给的任务,离职后多久?仍属于公司 | A、1年 B、6个月 C、18个月 D、3个月 | A |
一项外观设计专利里面相似设计最多有多少个 | A、10 B、6 C、8 D、5 | A |
在多道批处理系统中有P1和P2两个作业,执行顺序如下,P1(计算40ms,I/O操作60ms,计算20ms),P2(计算100ms,I/O操作40ms,计算40ms),P2比P1晚20ms到达,在不考虑调度和切换时间的情况下完成两道作业最少需要( )时间。 | A、240ms B、200ms C、260ms D、220ms | D |
数据安全治理的需求目标 | C、满足合规要求、管理数据安全风险、促进数据开发利用 | C |
数据安全治理中的数据分级分类属于哪个层 | A、基础安全层 B、权限控制层 C、战略安全层 D、数据全生命周期安全层 | A |
数据仓库系统中,()可以表示当前数据结构状态 | A、黑板 B、中央数据结构 C、知识源 D、独立构件 | B |
下列选项中不能作为预防死锁措施的是( )。 | A、破坏“循环等待”条件 B、破坏“不可抢占”条件 C、破坏“互斥”条件 D、破坏“请求和保持”条件 | C |
计算机传输层的协议 | A、tcp和udp B、ip和icmp C、ftp和smtp D、telnet和nfs | A |
当一个进程被一个更高优先级的进程抢占或其时间片用完时,其状态会从执行态转变为( )。 | A、阻塞态 B、就绪态 C、睡眠态 D、挂起态 | B |
哪一个不属于系统易用性关注的指标 | A、服务器修复能力 B、用户满意度 C、系统学习曲线 D、操作效率 | A |
不属于可用性的选项 | A、可用时间 B、可用时间间隔 C、数据延迟时间 D、故障间隔 | C |
数据库某一列只能填写男女属于()约束 | A、参照完整性 B、实体完整性 C、用户定义完整性 D、外键完整性 | C |
rup基于什么驱动 | A、用例驱动 B、场景驱动 C、领域驱动 D、数据驱动 | A |
下面关于SQL注入的说法错误的是( )。 | A、使用ORM框架可以自动处理查询和参数化输入,但无法减少SQL注入的风险 B、SQL注入是一种常见的攻击方式 C、使用预处理语句和参数化查询是防范SQL注入的有效方法 D、通过使用UNION关键字,攻击者可以将多个查询结果合并,从而获取数据库中的敏感信息 | A |
关于SOAP描述错误的是 | A、提供什么服务,如何使用,谁可以使用 B、信封和XML编码定义在相同命名空间 C、SOAP封装,定义了一个描述消息中的内容是什么,是谁发送的,谁应当接收并处理它以及如何处理它们的框架 D、SOAP RPC表示是远程过程调用和应答的协定 | B |
在体系结构描述中,典型的4+1视图模型包括( )。 | A、逻辑视图、进程视图、开发视图、物理视图和场景 B、逻辑视图、进程视图、开发视图、部署视图和场景 C、逻辑视图、进程视图、开发视图、物理视图和类视图 D、逻辑视图、进程视图、开发视图、物理视图和部署视图 | A |
路由器工作在OSI体系结构中的( )层。 | A、网络 B、传输 C、数据链路 D、物理 | A |
利用质量属性效用树进行评估的是哪个架构 | A、CBAM B、SAAM C、ATAM D、SAEM | C |
效用树的结构 | C、树根-质量属性-质量属性分类-质量属性场景 | C |
()关注软件系统同时兼顾用户提供服务阻止未授权用户使用 | 安全性 | |
有ABCD四项任务,表格展示每项任务的依赖关系,A->B A->C->D, 某项目包括A、B、C、D四道工序,各各道工序之间的衔接关系如图所示,项目每个项目每天的间接费用是2万,求最短工期情况下,至少多少工程费用 | A、133 B、132 C、140 D、141 | B |
哪个选项不是白盒测试具备的功能 | A、控制流分析 B、数据流分析 C、程序变异测试 D、功能测试 | D |
测试覆盖范围关系哪句是错的 | ||
系统上线运行后,用户提出新的需求,需要进行改造代码,提升系统性能,提高运行效率,扩展更多功能,属于什么()维护 | A、预防性维护 B、改正性维护 C、完善性维护 D、适应性维护 | C |
关于设计模式哪个是正确的 | A、装饰器模式属于行为模式 B、原型模式属于创建型 C、解释器和代理模式是同一类模式 D、观察者模式属于结构型模式 | B |
创建型设计模式 | ||
(a,c,d,e)(c,d,e)两个集合自然连接的结果是几列 | A、2 B、4 C、7 D、8 | B |
关系数据库操作,操作的对象和结果都是 | A、记录 B、元组 C、集合 D、列 | C |
R(a b c d), A->C 、AB->D 求表的键是什么 | A、B B、A C、AB D、C | C |
架构风格描述哪一项是正确的 | ||
时间要求和安全性是一对矛盾点,某项目对时间有明确要求,这时安全性就成了一种() | A、敏感点 B、权衡点 C、风险点 D、非风险点 | B |
质量属于场景的()是指激励到达后所采取的行动 | A、刺激源 B、响应 C、制品 D、环境 | B |
使用哪两个图可以描述用户界面元素和界面跳转 | A、用例图、顺序图 B、通信图、活动图 C、类图、用例图 D、类图、活动图 | A |
ABSD体系结构需求来自三方面 | 系统的质量目标、系统的商业目标、系统开发人员的商业目标 | |
企业集成至下而上的顺序是什么? | 数据集成、服务集成、会聚集成、接口集成 | |
可复用资产顺序 | 构造可复用资产 | |
一个模块内的处理元素是相关的,而且必须以特定次序执行,则称为( )。 | A、通信内聚 B、逻辑内聚 C、过程内聚 D、时间内聚 | C |
系统测试是为了发现哪个环节出现的错误 | A、需求分析 B、概要设计 C、详细设计 D、编码 | B |
EAI数据集成 | A、数据联邦,数据复制和基于接口的数据集成 B、数据融合,数据复制和基于接口的数据集成 C、数据联邦,数据融合和基于接口的数据集成 D、外部数据,数据融合和基于接口的数据集成 | A |
uml中用例的参与者的关系有() | A、包含 B、聚合 C、扩展 D、继承 | D |
进程通信风格的连接件是 | A、消息传递 B、消息队列 C、独立的进程 D、事件 | A |
测试脚本 写在什么文件里 | A、数据文件 B、脚本文件 C、程序文件 D、 | A |
应用程序在用户态使用特权指令进行系统调用,是什么中断 | A、信号中断 B、溢出中断 C、访管中断 D、外部中断 | C |
安全审计4要素 | A、控制目标、安全漏洞、控制措施和控制测试 B、控制目标、安全漏洞、控制措施和安全测试 C、 D、 | A |
不同应用领域中的软件元素,例如数据结构、分类算法和人机界面等属于什么重用 | A、横向重用 B、纵向重用 C、交叉重用 D、 | A |
质量属性效用树描述错误的是 | ||
N版本设计较传统的步骤 | 相异成分规范评审、相异性确认、背对背测试 | |
下述有关MD5描述错误的是 | 任意长度生成128位,不可逆,通过数据碰撞都无法进行解密还原,进行哈希散列时不会出现相同结果 | |
内存分段的段长 | A、固定的 B、相等的 C、动态可变的 D、不可变的 | C |
基于对软件工作原理和结构进行研究学习,需要对软件进行安装、部署、运行 | 不需要告知著作人,不需要向其付费、需要告知著作人,同意后向其付费,需要告知著作人,经作者同意后可以不需要付费 | |
( )不属于调用/返回体系结构风格的子风格。 | A、层次型体系结构风格 B、主程序/子过程体系结构风格 C、黑板体系结构风格 D、面向对象体系结构风格 | C |
独立构件基于事件驱动架构,消息发送 | A、独立、耦合 B、独立、非耦合 C、非独立、耦合 D、非独立、非耦合 | B |
不包括配置管理的是() | A、UML B、ISO9000 C、PMBOK D、CMMI | A |
螺旋模型是基于()进行改进的模型 | A、喷泉模型 B、快速原型 C、瀑布模型 D、增量模型 | B |
如何提高传输速率? | 提升带宽、提高信噪比 | |
信息化需求包含三个层次,即( )。 | A、战略需求、运作需求和信息资源开发 B、战略需求、运作需求和技术需求 C、战略需求、信息资源开发和技术需求 D、信息资源开发、运作需求和技术需求 | B |
ATAM头脑风暴的三种场景 | 用例、增长、探索性 | |
基于度量的评估方法,首先需要建立质量属性和度量之间的映射原则,然后从软件架构文档中获取度量信息,最后根据映射原则分析推导出系统的() | A、质量属性 B、功能属性 C、架构元素 D、架构决策 | A |
协同过滤中,哪个不是基于内容推荐的优点 | A、可以向消费者推荐符合其特定兴趣偏好的产品、 B、能推荐新的或者不是很流行的产品、 C、对新项目或新用户生成推荐、 D、可以不利用其他用户的数据 | D |
专家系统能够学习的机制 | 知识库、推理机 | |
体系结构演化6个步骤:需求变化归类、制订体系结构演化计划、修改、增加或删除构件、()、构件组装与测试、技术评审 | A、更新构件的相互作用 B、构建版本管理 C、 D、 | A |
建立DSSA的过程哪个是错误的 | 并发的、递归的、反复的 | |
数据库的三级模式中,()描述局部数据的逻辑结构和特征 | A、内模式 B、概念模式 C、外模式 D、逻辑模式 | C |
()保证信息不泄露给未授权的用户、实体或过程 | A、机密性 B、完整性 C、可修改性 D、可用性 | A |
()保证信息的完整和准确,防止信息被非法修改 | A、机密性 B、完整性 C、可修改性 D、可用性 | B |
关于数据流图说法哪个是错误的 | 自顶而下、子图输入输出必须和父图加工输入输出保持一致、用来描述加工的执行顺序 | |
Web服务描述语言WSDL描述了Web服务的三个基本属性,包括( )。 | A、谁要访问服务、如何访问服务和服务位于何处 B、服务做什么、谁要访问服务和服务位于何处 C、服务做什么、如何访问服务和谁要访问服务 D、服务做什么、如何访问服务和服务位于何处 | D |
系统上线运行后,用户提出新的需求,需要进行改造代码,提升系统性能,提高运行效率,扩展更多功能,属于什么类型的维护 | A、预防性维护 B、改正性维护 C、完善性维护 D、适应性维护 | C |
英文题原文(红色为挖空的选项) Blackboard architecture,also known as the blackboard system,is a problem-solving approach that utilizes a modular and decentralized framework. lt effectively solves complex problems that lack a well-defined algorithm or a pre-determined architecture. Blackboard architecture is inspired by human experts collaborating and solving difficult problems by sharing information and contributing their expertise.The architecture is based on how people work together around a | decentralized lack sharing information blackboard partial |
二、案例分析
案例一 质量属性
a、系统发生业务故障时,3秒内启动 XXX,属于可靠性
b、业务 XXX时,XXX,属于可用性
c、质量属性描述,XXX,属于____
d、质量属性描述,XXX,属于可用性
e、质量属性描述,XXX,属于____
f、系统需要增加新的模块,需要3天完成,属于____
g、系统分为三个不同的国家语言,完成XXXX功能,属于____
h、系统使用 了云服务器,要求1分钟以内检测错误和故障,并且1个小时以内恢复
i、系统使用 XX检测云服务器故障,需要在2秒切换
1. 功能性和质量属性填空。(14分)
字母 | 属性 |
---|---|
a | 功能性 |
b | 可靠性 |
c | (1) |
d | (2) |
e | (3) |
f | - |
g | - |
h | 可用性 |
2. 针对质量属性可以使用ping/echo和心跳模式实现,分别简述ping/echo和心跳模式的实现原理,张工认为从资源利用率的角度来看采取心跳模式策略比较合适,简述为什么。(11分)
实现原理:
ping/echo:通过 ICMP 协议发送一个“Echo Request”消息到目标主机,等待其回复“Echo Reply”。这是一种网络层的连通性测试方法。echo:更广泛地指任何类型的请求-响应模式,用于验证远程服务或组件是否可达和正常工作。这可以是基于HTTP、TCP等协议的简单请求。
心跳模式:客户端定期向服务器发送心跳信号(如HTTP请求),服务器接收到后立即回应。如果连续几次心跳未得到响应,则认为服务器可能出现故障。心跳信号通常包含少量数据,比如时间戳或简单的健康检查信息,以确保不仅网络连接正常,而且应用程序本身也在正确运行。
采取心跳模式的原因:
针对性强,减少不必要的通信开销;
按需调整频率和内容,优化资源使用,比较灵活;
结合健康检查,提高诊断精度;
支持复杂环境下的高效运作;
案例二 旁路缓存
1.读图填空(10分)
答:
(1)向缓存请求读取该商品信息
(2)若命中则返回该商品信息
(3)若未命中则访问数据库查询该商品信息
(4)将查询到的数据库数据更新到缓存
(5)将查询到的数据库目标数据返回
2.读图填空(6分)
答:
(1)更新数据库中的目标商品信息
(2)将数据库中更新的商品信息写入到缓存中,确保数据一致性
3.王工使用了多线程技术进行缓存处理,线程1负责写入,线程2负责读取,可能存在数据一致性问题,请解释其原因,并给出3个以上的解决办法(9分)
原因
竞态条件:如果没有适当的同步机制,两个或多个线程可能同时访问和修改共享资源,导致最终结果取决于线程调度顺序。例如,线程1正在更新缓存中的某个条目,但线程2在同一时间点读取该条目,它可能会读取到部分更新或旧版本的数据。
可见性问题:在多线程环境中,一个线程对共享变量所做的更改不一定立刻被其他线程看到。这是因为现代CPU架构通常会使用寄存器和缓存来加速性能,这可能导致某些更新在一段时间内只对本地线程可见。
原子性破坏:写入操作可能不是一个原子操作,意味着它可以被中断或分段执行。如果线程1在完成整个写入之前就被切换出去,而线程2此时尝试读取,那么它将得到一个不完整的或者错误的数据状态。
解决方法
延时双删、同步删除、加互斥锁(分布式锁)、消息队列、基于缓存更新策略
案例三:嵌入式(没做,所以省略)
(1)ROS定义和特点
(2)ROS2与ROS1相比哪些地方做了改进?
(3)四种通信服务,选词填空
案例四 web应用
1. 基于Elasticsearch分词,解释下Standard, Simple, Whitespace, Keyword 几种分词器的分词原理。(6分)
Standard:standard分词器通常用于处理多种语言的文本,它会识别并拆分单词、数字、电子邮件地址、网址等,并且能够处理一些标点符号。对于中文、日文、韩文等不使用空格的语言,Standard 分词器可能不是最佳选择,因为它不能很好地理解这些语言的语法规则。例如:“Hello, World!” 分词结果为[“Hello”, “,”, “World”, “!”]。
Simple:simple分词器非常基础,它只是简单地按照非字母字符进行分割,即将所有的非字母字符视为分隔符。因此,所有连续的字母序列都会被视为一个词汇单元,而任何非字母字符(如空格、标点符号、数字)都会被丢弃或用作分隔标志。例如:“Hello, World! How are you?”分词结果为[“Hello,”, “World!”, “How”, “are”, “you?”]
Whitespace:whitespace分词器仅仅根据空白字符(如空格、制表符、换行符)来分割文本,不会去除任何字符,也不会考虑标点符号。这意味着标点符号会被当作独立的词汇单元处理。例如:“Hello, World! How are you?”分词结果为[“Hello,”, " ", “World!”, " ", “How”, " ", “are”, " ", “you?”]
Keyword:keyword分词器并不真正执行分词操作。相反,它会将整个输入文本作为一个单独的词汇单元输出。这意味着输入文本中的所有内容都被认为是一个不可分割的整体。例如:“Hello, World!” 分词结果为 [“Hello, World!”]。
2. 系统架构图填空,从给出的选项中选出对应的选项填入对的位置,8个空。(12分)
可选项大概有以下几种。红框的为需要填的答案
分层:接入层、显示层、网络层、应用层、业务逻辑层、控制层、数据层
技术:Mybatis、Nginx、Flink、Javascript、Node.js、RESTful、Elasticsearch、Kafka 等。
答:
3. RESTful 架构是如何实现前后端分离的。(7分)
无状态性:每个请求从客户端到服务器都必须包含理解该请求所需的所有信息。服务器不会存储任何客户端的状态或会话数据,这使得前端和后端可以独立扩展,并且任意一个都可以在不影响另一个的情况下进行更新。
统一接口:Restful API 提供了一套标准的操作集(GET、POST、PUT、DELETE 等),这些操作与资源(通常是名词形式的数据实体,如用户、订单等)相关联。这种一致性简化了前端与后端之间的交互,使前端开发者可以更容易地理解和使用API。
资源导向:在 RESTful 设计中,所有的操作都是围绕着资源展开的。资源通过URL标识,并通过HTTP方法来表示对资源的不同操作。这种方式让前端能够以直观的方式与后端资源进行交互。
分层系统:RESTful 架构支持分层系统,这意味着客户端不必直接连接到最终的服务端;相反,它可以经过多个中间层(如负载均衡器、缓存代理等)。这增加了系统的灵活性和安全性,同时也便于前后端各自独立演化。
基于HTTP协议:RESTful 服务通常基于HTTP协议构建,利用HTTP的方法和状态码来传递语义信息。这使得任何能够发起HTTP请求的技术栈都可以作为前端与RESTful后端通信,从而促进了技术选型的多样性。
JSON 或 XML 数据格式:RESTful API 常常使用JSON或XML格式交换数据。这两种格式都是轻量级的、易于解析的文本格式,非常适合跨平台的数据传输。前端可以通过JavaScript轻松处理JSON对象,而后端可以用多种语言和技术生成和解析它们。
前后端分离部署:前端代码(HTML、CSS、JavaScript)可以托管在一个静态文件服务器上,甚至可以直接嵌入到单页应用(SPA)中,而不需要依赖于后端逻辑。后端则专注于提供业务逻辑和服务,两者之间仅通过API进行通信。
案例五:软件设计
因为我做的时候没选这道题,很多细节没记得太清,这题的选项和答案仅供参考
题目:大体是说有一个打胰岛素泵的系统,首先通过血糖仪测量的数据,然后自动计算出要使用的胰岛素剂量,再通过这个泵系统自动去打胰岛素给病人。
1.危险驱动的安全分析的4个步骤,并简要说明。(10分)
确定系统、识别危险、评估风险、确定风险控制措施、监控和复查
2.胰岛素系统,填空题(9分)
好像有以下选项,但是不全,填空的地方有些直接用文字表达了
①血糖传感器错误 ②传感系统异常 ③血糖计算不准 ④传感器错误 ⑤泵信号失效 ⑥错误时间推送预定的量 ⑦定时器失效 ⑧胰岛素计算错误
答:
(1)②传感系统异常
(2)⑥错误时间推送预定的量
(3)⑤泵信号失效
(4)⑦定时器失效
(5)⑧胰岛素计算错误
(6)算法错误
(7)计算错误
(8)①血糖传感器错误
(9)③血糖计算不准
3.形式化开发和软件测试技术的特点。(6分)
形式化开发特点
数学基础:形式化开发方法基于数学原理,使用形式化语言来描述系统需求和设计,使得开发过程更加严谨和精确。
严格性:形式化方法要求对系统行为的每一个细节都进行明确的定义,减少歧义性。
可验证性:由于使用了数学化的描述,形式化开发的结果可以进行逻辑上的证明,确保系统满足预定的规格说明。
抽象层次:形式化方法通常涉及不同层次的抽象,从高级的需求规范到低级的实现细节。
自动化支持:形式化方法可以更容易地与自动化工具结合,例如模型检查器和定理证明器。
高成本:形式化开发通常需要高度专业化的知识和技能,因此成本较高,且不适合所有项目。
软件测试技术特点
验证和确认:软件测试旨在验证软件是否满足规定的需求,并确认软件是否按照预期工作。
多样性:测试技术多样,包括单元测试、集成测试、系统测试、验收测试等,每种测试针对不同层次的问题。
迭代过程:软件测试是一个迭代的过程,随着软件的开发和需求的变更,测试也需要不断进行和调整。
人为因素:测试很大程度上依赖于测试人员的经验、知识和创造力,因此具有一定的主观性。
成本效益:测试可以发现缺陷并指导修复,从而减少软件发布后的问题,具有较好的成本效益。
无法完全保证质量:由于测试的局限性,如测试用例的覆盖率问题,无法保证测试能够发现所有的缺陷。
测试工具:现代测试技术往往依赖于自动化测试工具,这些工具可以提高测试效率和准确性。
持续集成:在敏捷开发实践中,软件测试通常与持续集成相结合,确保代码的持续质量和稳定性。
总结:形式化开发强调的是开发过程的严谨性和可证明性,而软件测试技术则更侧重于通过实际的运行来发现和修正软件中的缺陷。两者可以互补,共同提高软件的质量。
三、论文
题目一:论软件维护及其应用
1、请简单介绍下你担任的岗位和主要工作是什么。
2、介绍软件维护的主要工作内容是什么,以及常见提高可维护性的技术或方法。
3、在软件维护中,你遇到什么问题,你是用什么技术手段处理的,以及处理后的效果。
题目二:论面向服务的架构设计
1、基于Web service的面向服务架构SOA的实现过程,SOA具有哪些特征。
2、SOA具有哪些特征,支撑软件功能重用。
3、论述你在项目中如何基于面向服务架构进行分析、设计和开发。
题目三:论多源异构数据集成方法
1、描述在项目中,多源异构数据源的概念。
2、多源异构数据集成的主要内容,以及实现异构数据源集成的技术路线。
3、你在项目中是如何设计多源异构数据集成的信息系统的。
题目四:论分布式事务及其解决方案
1、简述四种分布式事务解决方案,以及项目的实践过程
2、结合项目,详细论述下你是如何运用这些分布式事务解决方案的。