软考中级之软件设计师---知识点汇总总结
- 软考介绍
- 资格设置
- 证书样本
- 计算机组成原理
- 操作系统
- 1. 进程的三态模型
- 2. 磁盘调度算法
- 计算机网络
- 1. 网络的分类
- 2. 各层的互连设备
- 3. 网络模型,协议簇
- 4. 传输层协议TCP、UDP
- 4.1 TCP (Transmission Control Protocol,传输控制协议)
- 4.2 UDP(User Datagram Protocol, 用户数据报协议)
- 4.3 小结
- 5. HTTPS和HTTP的区别
- 6. IP地址与MAC地址的区别
- 7. 计算机网络中A,B,C类子网的划分
- 8. Windows命令
- 9. 其他
- 数据结构
- 1. 查找算法
- 2. 排序算法选择
- 3. 关键路径问题
- 数据库
- 1. 关系模式的范式
- 1.1 第一范式(1NF)
- 1.2 第二范式(2NF)
- 1.3 第三范式(3NF)
- 软件工程
- 1. 开发方法/开发模型的选择
- 2. 软件测试
- 2.1 白盒测试
软考介绍
计算机技术与软件专业技术资格(水平)考试(简称计算机软件资格考试,又可简称为软考),软考证书在中国计算机和软件专业领域具有较高的含金量。
-
职业认可:软考证书是对个人软件技术能力和专业知识的认可,表明持证人在相关领域具备一定的专业水平和能力。
-
提升竞争力:拥有软考证书可以增强个人在求职市场上的竞争力。对于同等学历和工作经验的候选人而言,持有相关软考证书的人更有可能获得面试和职位机会。
-
加分优势:在一些招聘或评职称的过程中,软考证书可能被视为加分项。一些公司、机构或政府部门可能会将软考证书作为评定候选人能力的重要参考因素之一。
-
专业发展:软考证书的获得可以作为个人专业发展的里程碑,有助于提升个人在当前岗位上的技术水平和职业发展机会。
而软件设计师就是软考中较为常见且被认为有用的软考证书,它涵盖了软件需求分析、软件架构设计、软件详细设计等方面的知识和技能,适用于软件开发和设计相关的职位。
资格设置
证书样本
想要了解更多有关软考内容请访问软考官方网站:https://www.ruankao.org.cn/
计算机组成原理
- 实现海明码纠错应满足: 2^k >= k + n + 1 ,其中k是检验位数,n为数据位数
- 词法分析:单词是否正确 语法分析: 语法是否出错 语义分析:分析语法含义的结构
- 虚拟存储体系由主存-辅存两级存储器构成
- 浮点数能表示的数的范围由阶码的位数决定,精度由尾数的位数决定.
- 人耳能听到的声音视率范围是: 20Hz-20KHZ。低于这个区间的,叫次声波,高于这个区间的叫超声波
操作系统
- CPU根据 指令周期的不同阶段 来区分在内存中以二进制编码存放的指令和数据
- CPU访问速度:通用寄存器>Cache>内存>硬盘
- 线程可与同属于一个进程的其他线程共享进程所拥有的全部资源
1. 进程的三态模型
2. 磁盘调度算法
- 先来先服务(FCFS):按请求访问者的先后次序启动磁盘驱动器,而不考虑它们要访问的物理位置。
- 最短寻道时间优先(SSTF):让离当前磁道最近的请求访问者启动磁盘驱动器,即让查找时间最短的那个作业先执行,而不考虑请求访问者到来的先后次序,这样就克服了先来先服务调度算法中磁头移动过大的问题。
- 扫描算法(SCAN)或电梯调度算法:
- 循环扫描算法(CSCAN)单向扫描算法:
计算机网络
1. 网络的分类
计算机网络有以下两种常用的分类方法。
- 按传输技术进行分类可分为广播式网络和点到点式网络;
- 按地理范围进行分类可分为局域网(LAN)、城域网(MAN)和广域网(WAN)。
a. 局域网(LAN)。局域网是一种在小区域内使用的,由多台计算机组成的网络,覆盖范围通常局限在10 千米范围之内,属于一个单位或部门组建的小范围网。
b. 城域网(MAN)。城域网是作用范围在广域网与局域网之间的网络,其网络覆盖范围通常可以延伸到整个城市,借助通信光纤将多个局域网联通公用城市网络形成大型网络,使得不仅局域网内的资源可以共享,局域网之间的资源也可以共享。
c. 广域网(WAN)。 广城网是一种远程网,涉及长距离的通信,覆盖范围可以是个国家或多个国家,甚至整个世界。由于广域网地理上的距离可以超过几千千米,所以信息衰减非常严重,这种网络一般要租用专线,通过接口信息处理协议和线路连接起来,构成网状结构,解决寻径问题。
覆盖范围:局域网<城域网<广域网
2. 各层的互连设备
- 物理层:中继器、集线器(多路中继器、多端口中继器)
- 数据链路层:网桥、交换机(多端口的网桥)、网卡
- 网络层:路由器
- 应用层:网关
3. 网络模型,协议簇
- TCP和UDP是基于IP协议的;
- FTP协议占用两个标准的端口号:20和21,其中20为数据端口,21为控制端口
- POP3协议采用Client/Server模式
- ARP协议的作用是实现IP地址到MAC地址的转换
- ARP报文分为ARP Request和ARP Response,其中ARP Request采用广播进行传送,ARP Response采用单播进行传送
- RARP协议的作用是实现MAC地址到IP地址的转换
- DHCP(动态主机配置协议)的功能是:集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway 地址、DNS服务器地址等信息,并能够提升地址的使用率。
- DHCP客户端可以从DHCP服务器获得本机IP地址、DNS服务器地址、DHCP服务器地址和默认网关的地址等
- Windows无效地址:169.254.X.X Linux无效地址:0.0.0.0
-
- 254.X.X是Windows系统在DHCP信息租用失败时自动给客户机分配的IP地址
- ICMP协议数据单元封装在 IP数据 报中传送
- DNS域名查询的次序是:本地的hosts文件–>本地DNS缓存–>本地DNS服务器–>根域名服务器
- 协议是控制对等实体之间通信的规则,是水平的;服务是下层通过层间接口向上层提供的功能,是垂直的;
- 协议的实现保证了能够向上一层提供服务,要实现本层协议还需使用下层提供的服务。
4. 传输层协议TCP、UDP
4.1 TCP (Transmission Control Protocol,传输控制协议)
TCP是整个TCP/IP协议族中最重要的协议之一。它在IP提供的不可靠数据服务的基础上为应用程序提供了一个可靠的、面向连接的、全双工的数据传输服务。
TCP的特点:可靠传输、连接管理、差错校验和重传、流量控制、拥塞控制、端口寻址;其中流量控制采用的是:可变大小的滑动窗口协议
TCP是如何实现可靠性的呢?最主要和最重要的是TCP采用了重发(Retransmission) 技术。具体来说,在TCP传输过程中,发送方启动一个定时器,然后将数据包发出,当接收方收到了这个信息时就给发送方一个确认(Acknowledgement)信息。如果发送方在定时器到点之前没有收到这个确认信息,就重新发送这个数据包。
TCP建立连接时三次握手,断开连接时四次挥手
4.2 UDP(User Datagram Protocol, 用户数据报协议)
UDP是一种不可靠的、无连接的协议,可以保证应用程序进程间的通信。与TCP相比,它的错误检测功能要弱得多。可以这样说,TCP有助于提供可靠性;而UDP有助于提高传输的高速率性。例如,必须支持交互式会话的应用程序(如FTP等)往往使用TCP;而自己进行错误检测或不需要错误检测的应用程序( 如DNS、SNMP等)往往使用UDP。
UDP协议软件的主要作用是将UDP消息展示给应用层,它并不负责重新发送丢失的或出错的数据消息,不对接收到的无序IP数据报重新排序,不消除重复的IP数据报,不对已收到的数据报进行确认,也不负责建立或终止连接。这些问题是由使用UDP进行通信的应用程序负责处理的。
TCP虽然提供了一个可靠的数据传输服务,但它是以牺牲通信量来实现的。也就是说,为了完成同样一个任务,TCP需要更多的时间和通信量。这在网络不可靠的时候通过牺牲一些时间换来达到网络的可靠性是可行的,但在网络十分可靠的情况下,则可以采用UDP,通信量的浪费就会很小。
4.3 小结
- TCP和UDP协议均提供了端口寻址功能,连接管理、差错校验和重传以及流量控制均为TCP独有的功能
5. HTTPS和HTTP的区别
- HTTPS协议需要到CA申请证书
- HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的SSL加密传输协议
- HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443
- HTTP的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全
6. IP地址与MAC地址的区别
- IP地址长度32或128位,MAC地址的长度48位
- IP地址是网络层逻辑地址,MAC地址是数据链路层物理地址
- IP地址通常基于网络拓扑分配,可以是动态或静态分配,而MAC地址基于制造商分配,是全球唯一的。
7. 计算机网络中A,B,C类子网的划分
在计算机网络中,IP地址通常按照不同的类别进行划分,包括A、B、C类子网,每个类别都有不同的IP地址范围和子网掩码。以下是它们的划分:
- A类子网:
- IP地址范围:1.0.0.0 到 126.0.0.0
- 子网掩码:255.0.0.0
- A类IP地址的第一个字节用于网络标识,而后面的三个字节用于主机标识。这使得A类子网非常适合大型网络,因为它们可以支持大约16,777,214个主机。
- B类子网:
- IP地址范围:128.0.0.0 到 191.0.0.0
- 子网掩码:255.255.0.0
- B类IP地址的前两个字节用于网络标识,后面的两个字节用于主机标识。B类子网适用于中型网络,每个子网可以支持大约65,534个主机。
- C类子网:
- IP地址范围:192.0.0.0 到 223.0.0.0
- 子网掩码:255.255.255.0
- C类IP地址的前三个字节用于网络标识,最后一个字节用于主机标识。C类子网适用于小型网络,每个子网可以支持大约254个主机。
这些类别的子网划分是根据IP地址的第一个字节(A类是0-127,B类是128-191,C类是192-223)来定义的。请注意,上述划分是传统的IP地址类别划分,而在实际网络中,CIDR(无类别域间路由)和子网划分技术更常用,允许更灵活的IP地址分配和子网化。这些方法允许更有效地管理IP地址资源,同时满足网络需求。
4. 当有子网时,IP地址 = 网络号 + 子网号 + 主机号
5. 在计算一个IP地址块包含多少个主机地址时,因为全为0的000000和全为1的111111通常不作为主机号,所以要减2
8. Windows命令
- ipconfig命令
- 使用ping命令进行网络检测,按照由近及远原则,首先执行的是ping 127.0.0.1,其次是ping 本地IP,再次是ping 默认网关,最后是ping 远程主机
- Netstat命令用于显示网络连接、路由表和网络接口信息,可以让用户得知有哪些网络连接正在运作,使用时如果不带参数,Netstat 显示活动的TCP连接
- Msconfig命令用于Windows配置的应用程序
- nslookup命令可以从本地DNS服务器中查看所有的IP地址和域名信息(它就像一本互联网电话簿)。例如,想要找到www.baidu.com的IP地址就可以使用nslookup命令。nslookup命令对于解决DNS问题也是非常有用的。
9. 其他
- 对于一个统一资源定位符(URL)“http://www.abc.com”,'http’是协议名,'www’是主机名,'abc.com’是域名;在地址栏中输入www.abc. com默认使用http协议;
- 127.0.0.1是本地回送地址,当网络连接不可用时,为了测试编写好的网络程序,通常使用的目的主机IP地址为127.0.0.1
- IPv4所能表示的IP地址个数为232个,IPv6所能表示的IP地址个数为2128个
- 在安全通信中,S将所发送的信息使用(S的私钥)进行数字签名, T收到该消息后可利用(S的公钥)验证该消息的真实性
数据结构
1. 查找算法
- 平衡二叉树:从左到右排列同层次的结点,其关键字呈现有序排列的特点
2. 排序算法选择
- 基本有序----选择插入排序
3. 关键路径问题
- 从最开始求出各节点的最早发生时间(多个时间取最晚)
- 从最后求出个节点的最晚发生时间(多个时间取最早)
- 求每条边的最早发生时间(等于前边节点的最早发生时间)
- 求每条边的最晚发生时间(等于后面节点的最晚发生时间减去边的用时)
- 求出每条边的时间余量(等于最晚发生时间减去最早发生时间)
- 时间余量为零的边称为关键活动组成关键路径。关键路径的时间即为工程完成的最早时间
更多详细知识请看博主下面的两篇文章:
- 数据结构考点—查找
- 数据结构考点—排序
数据库
1. 关系模式的范式
1.1 第一范式(1NF)
定义:设R是一个关系模式,R属于第一范式当且仅当R中每一个属性A的值域只包含原子项,即不可分割的数据项。
1NF不能排除数据冗余和更新异常等问题,因为其中可能存在部分函数依赖。
反例:
(下图中工资属性的值域不是原子项,还有子属性,不满足第一范式)
改成如下关系模式,则满足第一范式
1.2 第二范式(2NF)
定义:设R是一个关系模式,R属于第二范式当且仅当R是1NF,且每个非主属性都完全函数依赖于候选码。
属于2NF的关系模式R也可能存在数据冗余和更新异常等问题,因为其中可能存在传递函数依赖。但不属于2NF的关系模式R会产生插入异常、删除异常和修改复杂等问题。
1.3 第三范式(3NF)
定义:设R是一个关系模式, R属于第三范式当且仅当R是2NF,且每个非主属性都非传递函数依赖于候选码。
一个不属于3NF的关系模式R会产生插入异常、删除异常和修改复杂等问题。属于3NF的关系模式R可能存在主属性对码的部分依赖和传递依赖。
小结:
1NF解决"非主属性对码的部分函数依赖"问题后成为2NF,2NF解决"非主属性对码的传递函数依赖"后成为3NF
软件工程
1. 开发方法/开发模型的选择
- 原型化方法-----用户需求不清晰且经常发生变化,但系统规模不太大且不太复杂
- 结构化方法-----系统规模不太大且不太复杂,需求变化也不大
- 瀑布模型将开发阶段描述为一个阶段瀑布股的转换到另一个阶段的过程;原型模型中,开发人员快速地构造整个系统或者系统的一部分以理解或者澄清问题;螺旋模型将开发活动和风险管理结合起来,以减小风险;喷泉模型开发过程以用户需求为动力,以对象为驱动,适合于面向对象的开发方法。
- 开发大型软件时,大型软件系统的需求往往难以在前期确定,所以瀑布模型最不适合。瀑布顾名思义需求快速确定,但是大型软件不能这么快
2. 软件测试
2.1 白盒测试
常用的白盒测试用例设计方法有
语句覆盖、判定覆盖、条件覆盖、条件判定覆盖、条件组合覆盖、路径覆盖等
发现错误的能力呈由弱至强的变化。
- 语句覆盖每条语句至少执行一次。
- 判定覆盖每个判定的每个分支至少执行一次
- 条件覆盖每个判定的每个条件应取到各种可能的值
- 判定/条件覆盖同时满足判定覆盖条件覆盖
- 条件组合覆盖每个判定中各条件的每一种组合至少出现一次
- 路径覆盖使程序中每一条可能的路径至少执行一次。