25上软考中级【软件设计师】易混淆知识点

一 计算机组成与体系结构

易混淆点1:原、反、补码的运算

1、原码:最高位是符号位,其余低位表示数值的绝对值(0表示正数,1表示负数)。

2、反码:正数的反码与原码相同,负数的反码是其绝对值按位取反(符号位不变)。

3、补码:正数的补码与原码相同,负数的补码是其反码末位加1(符号位不变)。

4、移码:补码的符号位按位取反。

易混淆点2:寻址方式的对比

1、立即寻址方式:操作数直接在指令中,灵活性差,但速度最快。

2、直接寻址方式:指令中存放的是操作数的地址,。

3、间接寻址方式:指令中存放了一个地址,这个地址对应的内容是操作数的地址。

4、寄存器寻址方式:操作数存放在寄存器中,指令指定寄存器号。

5、寄存器间接寻址方式:寄存器内存放的是操作数的地址。

易混淆点3:数据传输方式

1、程序控制(查询)方式:分为无条件传送和程序查询方式两种。方法简单,硬件开销小,但I/O能力不高,严重影响CPU的利用率。

2、程序中断方式:与程序控制方式相比,中断方式因为CPU无需等待而提高了传输请求的响应速度。

3、DMA方式:DMA方式是为了在主存与外设之间实现高速、批量数据交换而设置的,DMA方式比程序控制方式与中断方式都高效。

易混淆点4:可靠性、可用性、可维护性

1、可靠性可以用MTTF/(1+MTTF)来度量。

2、可用性可以用MTBF/(1+MTBF)来度量。

3、可维护性可以用1/(1+MTTR)来度量。

4、相关参数计算

(1)失效率计算

比如:假设统一型号的1000台计算机,在规定的条件下工作1000小时,其中10台故障。

其失效率λ=10/(1000*1000)=1*10-5

(2)千小时可靠度计算

千小时可靠性R(t)=1-t*λ=1-1000*(1*10-5)=1-0.01=0.99

易混淆点5:RISC和CISC

指令系统类型

指令

寻址方式

实现方式

其他

CISC(复杂)

数量多,使用频率差别大,可变长格式

支持多种

微程序控制技术(微码)

研制周期长

RISC(精简)

数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存

支持方式少

增加了通用寄存器,硬布线逻辑控制为主,适合采用流水线

优化编译,有效支持高级语言

二 操作系统

易混淆点1:页式存储、段式存储和段页式存储

1、页式存储:将程序与内存均划分为同样大小的块,以页为单位将程序调入内存。

2、段式存储:按用户作业中的自然段来划分逻辑空间,然后调入内存,段的长度可以不一样。

3、段页式存储:段式与页式的综合体。先分段,再分页。1个程序有若干个段,每个段中可以有若干页,每个页的大小相同,但每个段的大小不同。

三 程序设计语言基础

易混淆点1:编译与解释

1、解释程序,也称解释器;直接解释执行源程序,或者将源程序翻译成某种中间代码后再加以执行。

2、编译程序,也称编译器;将源程序翻译成目标语言程序,然后在计算机上运行目标程序。

3、两者的根本区别:编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程,因此执行时效率较高;解释方式下,解释程序和源程序(或某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序,边解释边执行,执行效率较低。即:解释方式,翻译程序不生成独立的目标程序,而编译方式则生成独立保持的目标程序。

易混淆点2:传值和传址调用

传递方式

主要特点

传值调用

形参取的是实参的值,形参的改变不会影响实参的值【单向】

传址调用或者引用调用或者指针调用

形参取的是实参的地址,形参的改变会影响实参的值【双向】

四 数据结构

易混淆点1:顺序存储与链式存储

性能类别

具体项目

顺序存储

链式存储

空间性能

存储密度

=1,更优

<1

容量分配

事先确定

动态变化,更优

时间性能

查找运算

O(n)

O(n)

读运算

O(1),更优

O(n),最好情况为1,最坏情况为n

插入运算

O(n),最好情况为0,最坏情况为n

O(1),更优

删除运算

O(n)

O(1),更优

易混淆点2:空串与空格串

1、空串:长度为零,不包含任何字符。

2、空格串:由一个或多个空格组成的串。虽然空格是一个空白字符,但它也是一个字符,在计算串长度时要将其计算在内。

易混淆点3:子串和子序列

1、子串:由串中任意长度的连续字符构成的序列称为子串。含有子串的串称为主串。子串在主串中的位置是指子串首次出现时,该子串的第一个字符在主串中的位置。空串是任意串的子串。

2、子序列:一个串的“子序列”是将这个串中的一些字符提取出来得到一个新串,并且不改变它们的相对位置关系。

子串要求连续,而子序列要求不改变相对位置即可,例如:ABC的子串为AB,BC,而子序列可以为AC。

易混淆点4:树的遍历

1、前序遍历:又称为先序遍历,按根左右的顺序进行遍历。

2、后序遍历:按左右根的顺序进行遍历。

3、中序遍历:按左根右的顺序进行遍历。

4、层次遍历:按层次顺序进行遍历。

易混淆点5:图的遍历—深度优先和广度优先

遍历方法

说明

示例

图例

深度优先(垂直优先)

1.首先访问出发顶点V;2.依次从V出发搜索V的任意一个邻接点W;3.若W未访问过,则从该点出发继续深度优先遍历;它类似于树的前序遍历。

V1,V2,V4,V8,V5,V3,V6,V7

广度优先(水平优先)【结合队列】

1.首先访问出发顶点V;2.然后访问与顶点V邻接的全部未访问顶点W、X、Y…;3.然后再依次访问W、X、Y…邻接的未访问的顶点。

V1,V2,V3,V4,V5,V6,V7,V8

注:遍历过程的时间复杂度只与存储结构有关系,无论是深度优先还是广度优先遍历,邻接矩阵存储时它的时间复杂度为O(),邻接表存储时它的时间复杂度为O(n+e)其中n为邻接顶点规模数,e为边的规模数。

五 算法基础

易混淆点1:各类排序算法对比

类别

排序方法

时间复杂度

空间复杂度

稳定性

平均情况

特殊情况

辅助

插入排序

直接插入

O(n2)

基本有序最优O(n)

O(1)

稳定

Shell排序

O(n1.3)

-

O(1)

不稳定

选择排序

直接选择

O(n2)

-

O(1)

不稳定

堆排序

O(nlog2n)

-

O(1)

不稳定

交换排序

冒泡排序

O(n2)

-

O(1)

稳定

快速排序

O(nlog2n)

基本有序最差O (n2)

O(1)

不稳定

归并排序

O(nlog2n)

-

O(n)

稳定

基数排序

O(d(n+rd))

-

O(rd)

稳定

易混淆点2:常见算法特征总结

算法名称

关键点

特征

典型问题

分治法

递归技术

把一个问题拆分成多个小模块的相同子问题,一般可用递归解决。

归并排序、快速排序、二分搜索

贪心法

一般用于求满意解,特殊情况可求最优解(部分背包)

局部最优,但整体不见得最优。每步有明确的,既定的策略。

背包问题(如装箱)、多机调度、找零钱问题

动态规划法

最优子结构和递归式

划分子问题(最优子结构),并把子问题结果使用数组存储,利用查询子问题结果构造最终问题结果。

矩阵乘法、背包问题、LCS最长公共子序列

回溯法

探索和回退

系统的搜索一个问题的所有解或任一解。有试探和回退的过程。

N皇后问题、迷宫、背包问题

六 系统开发基础

易混淆点1:内聚性

软件设计的原则:高内聚、低耦合

(内聚性)

偶然聚合:模块完成的动作之间没有任何关系,或者仅仅是一种非常松散的关系。

逻辑聚合:模块内部的各个组成在逻辑上具有相似的处理动作,但功能用途上彼此无关。

时间聚合:模块内部的各个组成部分所包含的处理动作必须在同一时间内执行。

过程聚合:模块内部各个组成部分所要完成的动作虽然没有关系,但必须按特定的次序执行。

通信聚合:模块的各个组成部分所完成的动作都使用了同一个数据或产生同一输出数据。

顺序聚合:模块内部的各个部分,前一部分处理动作的最后输出是后一部分处理动作的输入。

功能聚合:模块内部各个部分全部属于一个整体,并执行同一功能,且各部分对实现该功能都必不可少。

易混淆点2:耦合性

非直接耦合:两个模块之间没有直接关系,它们的联系完全是通过主模块的控制和调用来实现的。

数据耦合:两个模块彼此间通过数据参数交换信息。

标记耦合:一组模块通过参数表传递记录信息,这个记录是某一个数据结构的子结构,而不是简单变量。

控制耦合:两个模块彼此间传递的信息中有控制信息。

外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息。

公共耦合:两个模块之间通过一个公共的数据区域传递信息。

内容耦合:一个模块需要涉及到另一个模块的内部信息。

易混淆点3:概要设计与详细设计

1、概要设计

设计软件系统总体结构:基本任务还是采用某种设计方法,将一个复杂的系统按功能划分成模块;确定每个模块的功能;确定模块之间的调用关系;确定模块之间的接口,即模块之间传递的信息;评价模块结构的质量。

数据结构及数据库设计:在需求分析阶段对数据的组成、操作约束和数据之间的关系进行了描述,概要设计阶段要加以细化,详细设计阶段则规定具体的实现细节。

编写概要设计文档:概要设计说明书、数据库设计说明书、用户手册以及修订测试计划。

评审:对设计部分是否完整地实现了需求中规定的功能、性能等要求,设计的可行性,关键的处理以及外部接口定义的正确性、有效性、各部分之间的一致性等都一一进行评审。

2、详细设计

对每个模块进行详细的算法设计,用某种图形、表格和语言等工具将每个模块处理过程的详细算法描述出来。

对模块内的数据结构进行设计。

对数据库进行物理设计,即确定数据库的物理结构。

其他设计:根据软件系统的类型,还可能需要进行代码设计、输入/输出格式设计,用户界面设计等。

编写详细设计说明书。

评审:对处理过程的算法和数据库的物理结构都要评审。

易混淆点4:软件维护类型

1、更正性维护:针对真实存在并已经发生的错误进行的维护行为。

2、预防性维护:针对真实存在但还未发生的错误进行的维护。

3、适应性维护:指使应用软件适应信息技术变化和管理需求变化而进行的修改。企业的外部市场环境和管理需求的不断变化也使得各级管理人员不断提出新的信息需求。

4、完善性维护:扩充功能和改善性能而进行的修改。对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

/src/utils/request.ts:axios 请求封装,适用于需要统一处理请求和响应的场景

文章目录 数据结构解释1. 核心功能2. 代码结构分析请求拦截器响应拦截器 3. 改进建议4. 总结 console.log(Intercepted Response:, JSON.stringify(response));{"data": {"code": 0,"msg": "成功","data": {"id":…

LabVIEW调用不定长数组 DLL数组

在使用 LabVIEW 调用 DLL 库函数时&#xff0c;如果函数中的结构体包含不定长数组&#xff0c;直接通过 调用库函数节点&#xff08;Call Library Function Node&#xff09; 调用通常会遇到问题。这是因为 LabVIEW 需要与 DLL 中的数据结构完全匹配&#xff0c;而包含不定长数…

课题推荐——基于GPS的无人机自主着陆系统设计

关于“基于GPS的无人机自主着陆系统设计”的详细展开&#xff0c;包括项目背景、具体内容、实施步骤和创新点。如需帮助&#xff0c;或有导航、定位滤波相关的代码定制需求&#xff0c;请点击文末卡片联系作者 文章目录 项目背景具体内容实施步骤相关例程MATLAB例程python例程 …

深入Android架构(从线程到AIDL)_18 SurfaceView的UI多线程02

目录 2、 使用SurfaceView画2D图 范例一 设计GameLoop(把小线程移出来) 范例二 2、 使用SurfaceView画2D图 范例一 以SurfaceView绘出Bitmap图像设计SpriteView类别来实作SurfaceHolder.Callback接口首先来看个简单的程序&#xff0c;显示出一个Bitmap图像。这个图像就构…

Redis Java 集成到 Spring Boot

Hi~&#xff01;这里是奋斗的明志&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f331;&#x1f331;个人主页&#xff1a;奋斗的明志 &#x1f331;&#x1f331;所属专栏&#xff1a;Redis &#x1f4da;本系列文章为个人学习笔…

鸿蒙开发(29)弹性布局 (Flex)

概述 弹性布局&#xff08;Flex&#xff09;提供更加有效的方式对容器中的子元素进行排列、对齐和分配剩余空间。常用于页面头部导航栏的均匀分布、页面框架的搭建、多行数据的排列等。 容器默认存在主轴与交叉轴&#xff0c;子元素默认沿主轴排列&#xff0c;子元素在主轴方…

LangChain速成课程_构建基于OpenAI_LLM的应用

思维导图 什么是LangChain 特点描述基于语言模型LangChain 是一个专为语言模型&#xff08;如 GPT-4&#xff09;设计的开发框架。模型输入/输出支持灵活的模型输入和输出处理&#xff0c;可以适应各种不同的应用需求。数据感知能够将语言模型与其他数据源&#xff08;如维基百…

将txt转成excel正则化公式的调整

将训练的结果转换成excel是送到画图的关键&#xff0c;但是在转的过程中出现了问题&#xff0c;发现是正则化公式的结果。 使用网站进行调试&#xff0c;最终可以转了。下面是调试的工具以及调试好的代码。 regex101: build, test, and debug regex 上面是正则化公式&#xf…

Linux的proc目录与什么有关?【以及它里面的文件各自记录着什么信息】

在 Linux 系统中&#xff0c;/proc 目录是一个虚拟文件系统&#xff0c;提供了关于内核、进程和系统状态的实时信息。它与系统的 内核 和 进程 运行状态紧密相关&#xff0c;是系统管理员、开发人员和用户了解系统运行状况的重要途径。 /proc 目录的名称来源于 “process”&am…

28、使用StreamPark管理作业中,关于默认环境变量设置和默认动态参数设置的修改

在使用过一段时间的streampark后&#xff0c;发现flink on k8s作业配置过于繁琐了&#xff0c;特别是pod-template.yaml的编写&#xff08;主要是环境变量设置&#xff0c;环境变量关系着前面的日志插件中通过环境变量获取作业名称&#xff09;&#xff0c;动态参数的编写&…

springboot + vue+elementUI图片上传流程

1.实现背景 前端上传一张图片&#xff0c;存到后端数据库&#xff0c;并将图片回显到页面上。上传组件使用现成的elementUI的el-upload。、 2.前端页面 <el-uploadclass"upload-demo"action"http://xxxx.xxx.xxx:9090/file/upload" :show-file-list&q…

《HeadFirst设计模式》笔记(上)

设计模式的目录&#xff1a; 1 设计模式介绍 要不断去学习如何利用其它开发人员的智慧与经验。学习前人的正统思想。 我们认为《Head First》的读者是一位学习者。 一些Head First的学习原则&#xff1a; 使其可视化将文字放在相关图形内部或附近&#xff0c;而不是放在底部…

TensorRT-LLM中的MoE并行推理

2种并行方式&#xff1a; moe_tp_size&#xff1a;按照维度切分&#xff0c;每个GPU拥有所有Expert的一部分权重。 moe_ep_size: 按照Expert切分&#xff0c;每个GPU有用一部分Expert的所有权重。 二者可以搭配一起使用。 限制&#xff1a;二者的乘积&#xff0c;必须等于模…

GoChina备案管家

阿里云的 GoChina备案管家 是阿里云提供的一项服务&#xff0c;旨在帮助企业和个人快速、高效地完成中国大陆的 网站备案&#xff08;ICP备案&#xff09;。根据中国的互联网法律法规&#xff0c;所有在中国境内运行的网站都需要进行备案&#xff0c;才能合法发布内容。 GoChin…

Linux存储管理之核心秘密(The Core Secret of Linux Storage Management)

Linux存储管理之核心秘密 如果你来自Windows环境&#xff0c;那么Linux处理和管理存储设备的方式对你而言可能显得格外不同。我们知道&#xff0c;Linux的文件系统并不采用Windows那样的物理驱动器表示方式&#xff08;如C:、D:或E:&#xff09;&#xff0c;而是构建了一个以&…

平面坐标转大地坐标(arcgisPro中进行)

1、将需要转换的红线导入arcgisPro中&#xff0c;如下&#xff1a; 2、在地图菜单栏中&#xff0c;选择坐标转换工具&#xff0c;如下&#xff1a; 3、打开坐标转换工具 4、开启捕捉 5、 设置大地坐标显示格式 6、如下&#xff1a; 7、显示如图&#xff1a; 8、再依次添加几个待…

QT 端口扫描附加功能实现 端口扫描5

上篇QT 下拉菜单设置参数 起始端口/结束端口/线程数量 端口扫描4-CSDN博客 在扫描结束后设置Scan按钮为可用&#xff0c;并提示扫描完成 在 MainWindow 类中添加一个成员变量来跟踪正在进行的扫描任务数量&#xff1a; 在 MainWindow 的构造函数中初始化 activeScanTasks&…

使用WPF在C#中制作下载按钮

本示例使用 WPF 制作一个下载按钮。以下 XAML 代码显示了程序如何构建该按钮。 <Window x:Class"howto_download_button.Window1"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/…

Unity Burst详解

【简介】 Burst是Unity的编译优化技术&#xff0c;优化了从C#代码编译成Native代码的过程&#xff0c;经过编译优化后代码有更高的运行效率。 在Unity中使用Burst很简单&#xff0c;在方法或类前加上[BurstCompile]特性即可。在构建时编译代码的步骤&#xff0c;Burst编译器会…

Redis 数据库源码分析

Redis 数据库源码分析 我们都知道Redis是一个 <key,value> 的键值数据库&#xff0c;其实也就是一个 Map。如果让我来实现这样一个 Map&#xff0c;我肯定是用数组&#xff0c;当一个 key 来的时候&#xff0c;首先进行 hash 运算&#xff0c;接着对数据的 length 取余&…