软考 笔记
第一章 计组
1.数据的表示和校验码
实现:低电平和高电平来代表0,1,实现电信号传递
1.1进制转换
进制转换关系 | 转换方法 | 例子 |
---|---|---|
r->10 | n位数乘以2的n次方,小数点为负数同理 | 10010010.110=12^7+12^4 +12^1 +12^-1+1*2^-2=146.75 |
2->8 | 三位一组,每组转化成对应的八进制符号 | 001 111 000 010 . 011 010 ->1702.32 |
2->16 | 四位一组,每组转换成对应打十六进制符号 | |
10->r | 短除法,由低位到高位 |
1.2编码
编码xe | 表示例子 | 表示解析 | 真值0有+0 -0俩种形式 |
---|---|---|---|
原码 | +19D->0,0010011 -19D->1,0010011 |
(16+2+1=19) | [+0]=00000000 [-0]=1000000 |
反码 | +19D->0,0010011 -19D->1,1101100 |
-数值取反 | [+0]=00000000 [-0]=11111111 |
补码 | +19D->0,0010011 -19D->1,1101101 |
-反码末位+1 | [+0]=[-0]=00000000 |
移码 | +19D->1,0010011 -19D->0,1101101 |
补码基础上符号位取反 | [+0]=[-0]=10000000 |
1.3浮点数
1.4校验码
1.4.1奇偶校验码
- 分类:水平~,垂直~,水平垂直~
1.4.2海明码
- 作用:数据之间插入k个校验码,扩大码距来实现检错和纠错
- 数据位是n位,校验位是k位,则n,k满足2^k-1>=n+k
- 如16位 最少应该附加5位 2^5-1>=16+5满足条件
2.计算机体系结构和指令系统
计算机体系结构五大部分
内存和CPU
运算器(ALU)寄存器 | 作用 | 省流 |
---|---|---|
累加寄存器(AC) | 专门存放算术或逻辑运算的一个操作数和运算结果的寄存器。能进行加,减,读出,移位,求补等操作。是运算器的主要部分 | +- >> |
程序状态寄存器(PSW) | 该部件用来存放两类信息,一类是体现当前指令执行结果的各种状态信息(条件码),如有无进位,有无溢出,结果正负,信息是否为零等;另一类是存放控制信息,如允许中断,跟踪标志等。 |
中断,条件码,溢出 |
控制器 | 描述 | 省流 |
---|---|---|
程序计数器(PC) | 程序计数器中存放的是下一条指令的地址。由于多数情况下程序是顺序执行的,所以程序计数器设计成自动加一的装置。当出现转移指令时,就需重填程序计数器 | 地址指针存储 |
指令寄存器(IR) | 中央处理器正在执行的操作码表存放在这里,即当前正在执行的所有指令 | 操作码放置 |
指令译码器 | 将操作码解码,告诉中央处理器该做什么。 | 解码操作码 |
时序部件 |
Flynn分类法
CICS和RISC
指令系统—-指令
指令(又称机器指令)
操作码(op):用户要干什么
地址码:要对手谁操作
以下寻址方式,从慢到快
| 寻址方式 | 内容 |
|——————–|————————————————————————————————————-|
| 立即寻址 | 操作数作为指令的一部分 直接写在指令中,这种操作数称为立即数。 |
| 寄存器寻址 | 指令所要的操作数已存储在某寄存器中,或把目标操作数存入寄存器。 |
| 直接寻址 | 指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址。 |
| 寄存器间接寻址 | 操作数在存储器中,操作数的有效地址用SI,Dl,BX和BP四个寄存器之一来指定。 |
| 寄存器相对寻址 | 操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)或变址寄存器(SlDD的内容和指令中的8位/16位偏移量之和。 |
| 基址加变址寻址方式 | 操作数在存储器中,其有效地址是-—个基址寄存器(BX,BP)和一个变
址寄存器(SI,DI)的 内容之和。 |
| 相对基址加变址寻址 | 操作数在存储器中,其有效地址是一个基址寄存器(BX,BP)的值、一个
变址寄存器(Sl,DI的值和指令中的8位/16位偏移量之和。 |
流水线计算题
例:若指令流水线把一条指令分为取指,分析和执行三部分,且三部分的时间分别是取指2ns,分析2ns,执行1ns。
那么,流水线周期是多少?100条指令全部执行完毕需要的时间是多少?
1 | 流水线周期为执行时间最长的一段 |
流水线的吞吐率(Though Put rate, TP):是指在单位时间内流水线所完成的任务数量
或输出的结果数量。
计算流水线吞吐率的最基本的公式如下:
1 | TP=指令条数/流水线执行时间 |
流水线开始工作后,须经过一定时间才能达到最大吞吐率,这就是建立时间。
若m个子过程所用时间一样,,均为Δto,则
1 | 建立时间To=m* Δto。 |
完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比。
计算流水线加速比的基本公式如下:
1 | s=不使用流水线执行时时间/ |
3.存储结构,总线系统,输入输出
存储器分类
cache
总线系统
总线系统 | 概述 | |
---|---|---|
片内总线 | 片内总线是芯片内部的总线。亡是CPU芯片内部寄存器与寄存器之间、寄存器与 ALU之间的公共连接线。 |
|
系统总线 | 系统总线是计算机系统内各功能部件(CPU、主存、1/0接口)之间相互连接的总线。按系统总线传轮信息内容的不同,又可分为子类:数据总线、地址总线和控制总线。 | |
通信总线 |
可靠性
第二章 数据结构与算法
基本概念与算法
- 基本概念-什么是数据?
数据:数据是信息的载体
,是捕达客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。
- 基本概念一数据元素、数据项
数据元素是数据的1基本单位,通常作为一个整体进行考虑和处理。一个数据元素可由若干数据项
组成,数据项是构成数据元素的不可分割的最小单位
。
- 算法一五个特性
1.有穷性:一个算法必须总在执行有穷步之后结束,旦每一步都可在有穷时间
内完成。
2.确定性:算法中每条指令必须有确切的含义,对于相同的输入只能得出相同的输出
。
3.可行性:算法中描述的操作都可以通过已经实现的基本运算执行有限次
来实现。
4.输入:一个算法有零个或多个
输入,这些输入取白于某个特定的对象的集合。
5.输出:一个算法有一个或多个
输出,这些输出是与输入有着某种特定关系的量。
- 算法—空间复杂度
函数递归调用带来的内存开销:
S(n)=O(n)空间复杂度 =递归调用的深度
1 | O(1) < O(logn) < O(n) < O(nlogan) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n) |
数据结构
- 线性表:顺序存储,链式存储
- 栈与队列:循环队列 队空head=tail 队满:(tail+1)%size=head
- 串:空串是任意串队子串
- 二维数组
1
2
3a[i][j]
按行:a+(i*n+j)*len
按列:a+(i+j*n)*len - 广义表(类似桶)
- 树
哈夫曼树
二分查找
哈希表(散列表)哈希函数
排序
选择排序:选最小放左边
分块查找:先用桶分块,后顺序查找(块内无序,块间有序)
冒泡排序
快速排序
堆排序
基数排序(桶排序)
希尔排序(h%3选取间距)
第三章 操作系统
进程管理
状态转换图
pv
PV操作类似拓扑排序
前p后v
死锁:进程有向图成环
先给ABC进程分配(最大-1)个R资源,后给A一个R使A释放R资源,后五个分配给BC,这样不会发生死锁
由题目已知的最大需求量和已分配资源量,得出还需资源量,与剩下资源量,后根据剩下的来给进程分配资源运行的出可执行序列。
存储管理
顺序查找,后找到第一个空闲位置
顺序查找,找到空闲区与需要分配的进程最相近的最小空间(比如例子9k找到了10K的空间,后产生了1K的碎片空间)
从上次顺序查找到的位置flag标记后下一次起点就是该flag
三种存储管理方式
页面置换算法
OPT:往后看
FIFO
LRU: 往前看
文件管理
指令
ipconfig ( linux: ifconfig) (显示TCP/IP网络配置值,如:IP地址,MAC地址,网关地址等)。
ipconfig 显示信息;
ipconfig /all 显示详细信息 ,可查看DHCP服务是否已启用;
ipconfig /renew 更新所有适配器;
ipconfig /release 释放所有匹配的连接。
tracert(linux: traceroute):用于确定 IP数据包访问目标所采取的路径,若网络不通,能定位到具体哪个结点不通。
netstat:用于显示网络连接、路由表和网络接口信息。
nslookup(查询DNS记录)。
第四章 计算机网络
1.层次分工
层次 | 名称 | 主要功能 | 主要设备及协议 |
---|---|---|---|
7 | 应用层 | 实现具体的应用功能 | POP3,FTP,HTTP,Telnet,SMTP,DHCP,TFTP,SNMP,DNS |
6 | 表示层 | 数据的格式与表达、加密压缩 | ——- |
5 | 会话层 | 建立、管理和终止会话 | ——— |
4 | 传输层 | 端到端的连接 | TCP,UDP |
3 | 网络层 | 分组传输和路由选择 | 三层交换机,路由器,ARP,RARP,IP,ICMP,IGMP |
2 | 数据链路层 | 传送以帧为单位的信息 | 网桥,交换机(多端的网桥),网卡,PPTP,L2TP,SLIP,PPP |
1 | 物理层 | 二进制传输 | 中继器,集线器(多端的中继器) |
2.TCP/IP 协议栈
TCP/IP作为Internet的核心协议,被广泛应用于局域网和广域网中,目前已成为事实上的国际标准。
- TCP/IP分层模型
TCP/P协议是Internet的基础和核心,和OS!参考模型一样,也是采用层次体系结构,从上而下分为应用层、传输层、网际层和网络接口层。
- 网络接口层协议
- 网际层协议一IP
ARP和RARP
地址解析协议(Address Resolution Protocol, ARP)及反地址解析协议(RARP)。ARP的作用是将IP地址转换为物理地址,RARP的作用是将物理地址转换为IP地址。
- 网际层协议一ICMP
- 传输层协议一TCP
TCP(Transmission Control Protocol,传输控制协议)为应用程序提供了一个可靠的、面向连接的数据传输服务。 - 传输层协议一UDP
用户数据报协议(User Datagram Protocol, UDP)是一种不可靠的、无连接的协议,可以保证应用程序进程问的通信。TCP有助于提供可靠性,而UDP则有助于提高传输的高速率性。
MIME和PEM含义
- MIME 扩充邮件,发送邮件附加多媒体
- PEM 私密邮件
- 邮件协议 SMTP发邮件(25),POP3收邮件(110)
3.TCP与UDP区别
TCP面向连接;UDP是无连接的。
②TCP 提供可靠的服务,通过TCP连接传送的数据,无差错、不丢失、不重复,且按序到达;
UDP尺最大努力交付,不保证可靠交付。
③TCP面向字节流:UDP是面向报文的,没有拥塞控制,因此网络出现拥寒不会使源主机的发送速率降低。
④每一条TCP连接只能是点到点的;UDP支持一对一、一对多、多对一和多对多的交互通信;
Tcp首部开销20字节;UDP的首部开销小,只有8个字节;
⑥TCP的逻程通信信道是全双工的可靠信道;UDP则是不可靠信道,整体来看UDP开销较小
4.IP地址和IPv6简介
IP地址的长度为32位,分为4段,每段8位,可以用十进制数和二进制数表示。每段数字范围为0~255,段与段之问用句点隔开。IP 地址由两部分组成,一部分为网络地址,另一部分为主机地址。
1 | IP地址分为A、B、CD、E5类。 |
1 | IPv6是设计用于替代现行版本IP协议(IPV4)的下一代IP协议。 |
5.Internet服务
1、DNS域名服务
DNS用的是UDP端口,端口号是53。
2、远程登录服务
Telnet协议用的是TCP端口,端口号一般是23。
3、电子邮件服务
电子邮件就是利用计算机进行信息交换的电子媒体信件。所用协议有简单邮件传送协议
SMTP和用于接收邮件的POP3议,两者均利用TCP端口,SMTP所用的端口号是25,POP3所用的端口号是110。
4、www服务
Www服务是一种交互式图形界面的Internet 服务,具有强大的信息连接功能。www用的是TCP端口,端口号是80。
5.文件传输服务
文任传输服务用来在计算机之间传输文件。在客户机与服务器的内部建立两条TCP连接一
条是控制连接,主要用于传输命令和参数(端口号是21) ,另一条是数据链接,主要用于传输文件(端口号是20)
6.常见无效地址
- 网络不可用地址127.0.0.0
- windows无效地址169.254.0.0
- linux无效地址0.0.0.0
第五章 数据库
基本概念
分布式数据库(DDBS)特点
分布式数据库是由一组数据组成的,这组数据分布在计算机网络的不同计算机上,网络中的每个节点具有独立处理的能力(称为场地自治),它可以执行局部应用,同时,每个节点也能通过网络通信子系统执行全局应用。分布式数据库系统是在集中式数据库系统技术的基础上发展起来的,具有如下特点:
(1)数据独立性。在分布式数据库系统中,数据独立性这一特性更加重要,并具有更多的内容。除了数据的逻辑独立性与物理独立性外,还有数据分布独立性(分布透明性)。
(2)集中与自治共享结合的控制结构。各局部的DBMS可以独立地管理局部数据库,具有自治的功能。同时,系统又设有集中控制机制,协调各局部DBMS的工作,执行全局应用。
(3)适当增加数据冗余度。在不同的场地存储同一数据的多个副本,这样,可以提高系统的可靠性和可用性,同时也能提高系统性能。
(4)全局的一致性、可串行性和可恢复性。
DDBS的基本特点:
1.物理分布性:数据不是存储在一个场地上,而是存储在计算机网络的多个场地上。
2.逻辑整体性:数据物理分布在各个场地,但逻辑上是一个整体,它们被所有用户(全局用户)共享,并由一个DDBMS统一管理。
3.场地自治性:各场地上的数据由本地的DBMS管理,具有自治处理能力,完成本场地的应用(局部应用)。
4.场地之间协作性:各场地虽然具有高度的自治性,但是又相互协作构成一个整体。
数据库三级模式二级映像
数据库系统采用三级模式结构,这是数据库管理系统内部的系统结构。
模式名称 | 描述 | 省流 | 对应数据库的组件 |
---|---|---|---|
外模式 | :也称用户模式或子模式,是用户与数据库系统的接口,是用户用到的那部分数据的描述,由若干个外部记录类型组成。描述外模式的数据定义语言称为外模式DDL | 外模式:我和你看到的淘宝不一样的页面 | 视图 |
概念模式 | 也称模式,是数据库中全体数据的逻辑结构和特征的描达,它由若干个概念记录类型组成,只涉及行的描述,不涉及具体的值。概念模式的一个具体值称为模式的一个实例,同一个模式可以有很多实例。 | 概念模式:逻辑模式 | 基本表 |
内模式 | 也称存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式,定义所有的内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。描述内模式的数据 定义语言称为内模式DDL。 |
内模式:写入物理数据库 | 存储文件 |
映像 | DBMS的两级映像功能保证了数据的独立性。 | 映像:每个模式的接口 |
数据库分析和设计过程
关系代数
注:6.2 14:33-30:00关系代数待看
6.3待看
数据库完整性约束
关系型数据库SQL简介
第六章 编译原理
编译原理步骤 | 内容 | 省流 | 例子 |
---|---|---|---|
词法分析 | 将输入的源代码字符串分割成一个个单词符号(Token),如关键字、标识符、字面量、词法分析操作符等。词法分析器(Lexer)根据预定义的词法规则进行分割,并将分割后的单词符号输出。 | 关键字,标识符 | a>b?1:0 ; |
语法分析(er?) | 将单词符号序列转换成抽象语法树(AST,Abstract Syntax Tree)。语法分析器(Parser)根据预定义的语法规则,将单词符号序列转换成树状数据结构,这个结构反映了程序的语法结构。 | 表达式,语句,程序,对源程序结构进行分析 | if(1){} |
语义分析(wa?) | 对抽象语法树进行语义检查,确保程序的语义是正确的。语义分析器会检查变量的定义和使用、函数调用的参数和返回类型等,以确保它们符合语言的语义规则。 | 语义分析们对于类型分析和检查 | int a; |
优化 | 对抽象语法树进行优化,以提高生成的目标代码的性能。优化器会对代码进行各种优化操作,如常量折叠、无用代码删除、循环优化等。 | 优化 | |
中间代码生成 | 将优化后的抽象语法树转换成目标代码。目标代码可以是汇编代码、字节码或其他形式的中间代码。生成的目标代码将被保存到文件中或直接加载到内存中执行。 | mov pop |
记号流,词法分析的输出是记号流,也就是语法分析的输入。
字符流,在Java中,根据处理的数据单位不同,分为字节流和字符流。字符流是由字符组成的,例如 FileReader、FileWriter、BufferedReader、BufferedWriter、InputStreamReader、OutputStreamWriter 等。
源程序,词法分析的任务是把源程序的字符串转换成单词符号序列。
分析树,如果没有语法错误,语法分析后就能正确的构造出其语法树。括号不匹配是典型的语法错误,会在语法分析阶段检测出来。
第八章 c语言
第七章软件工程
软件开发模型
软件开发模型 | 简介 | 特点 | 解释 |
---|---|---|---|
瀑布模型 | 迭代模型/迭代方法 | 1.优点:容易理解,成本低 2.用户需求明确且全面变更小 3.强调早期进行阶段开发方法 4.可以拟开发较大规模的系统,且具备类似系统的开发经验 |
一种线性的开发模型,阶段间具有不可回溯性 |
演化模型 | 快速应用开发方法 | 可以快投入使用,不断简化用户需求 | 主要用于对软件需求缺乏准确认识的情况。 |
增量模型 | 构建组装模型/基于构建的开发方法 | 1.继承了瀑布模型的优点 2.可以快速构造可运行的产品,可以先交付 |
特点是引进了增量包的概念 |
螺旋模型 | 统一过程/统一开发方法(演化模型) | 1.适用于复杂且打规模的项目开发 2.有风险评估 3.成本高 |
增加了风险分析 |
原型模型 | 1.用户需求不清晰不明确 2.规模小 3.不可以立即投入使用 |
||
快速原型模型 | 敏捷开发方法 | 通过快速建立一个能反映用户主要需求的原型系统,让用户在计算机上试用它,了解其概貌 | |
V模型 | 基于架构的开发方法 | 瀑布模型的变体 | |
喷泉模型 | 模型驱动的开发方法 | 1.面向对象语言的开发2.软件重用和多项目开发(解决瀑布模型和增量模型的问题)3.多迭代和物间隙(不存在边际情况) | 以用户需求为动力,以对象为驱动的模型,主要用于采用对象技术的软件开发过程,具有迭代和无间隙特性 |
基于构件的开发模型 | 本质上的演化模型,以迭代方式构件软件 | 以用户需求为动力,以对象为驱动的模型,主要用于采用对象技术的软件开发过程,具有迭代和无间隙特性 |
瀑布模型
软件开发方法
软件开发方法 | 要点 | 补充 |
---|---|---|
结构化方法 | 是一种面向数据流方法。分解和抽象原则,由数据流图来完成工作 | 指导思想自顶向下,逐层分解,其基本原则是功能分解与抽象 |
Jackson方法 | 是一种面相数据结构的开发方法 | JSP以数据结构为驱动的 |
原型化方法 | 适合于用户需求不清、业务理论不确定、需求经常变化的情况 | |
面向对象开发方法 | UML建模 | |
敏捷开发方法 | 尽可能早地、持续地对有价值的软件的交付〞使客户满意 | 极限编程(XP)是一种轻量级(敏捷)、高效、低风险、柔性、可预测、科学的软件开发方式。它由价值观、原则、实践和行为4个部分组成,它们彼此相互依赖、关联,并通过行为贯穿于整个生存周期。 |
敏捷开发方法
极限编程(XP)
需求分析
软件需求 | 特点 | |
---|---|---|
功能需求 | 实现项目功能,基础部分磨合系统相关的一些工作 | |
性能需求 | 高效率实现操作,速度,吞吐率 | |
数据需求 | 跟数据有关 |
系统测试
系统测试维护
系统测试的各个维护阶段具有不同的特点。具体来说:
- 改正性维护: 正确性,准确性,是指在软件交付使用后,为了识别和纠正软件错误、改正不满足用户需要的部分而进行的软件修改。
- 适应性维护:是指为了使软件适应变化,而去修改软件的过程。
- 完善性维护:是为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。
- 预防性维护:是为了提高软件的可维护性、可靠性等,为未来的进一步改进打下良好基础。
以下是每个维护类型的例子:
- 改正性维护:例如,系统测试中发现了一个计算错误,该错误导致计算结果不准确。为了纠正这个错误,开发人员需要检查和修改相关的代码,以确保计算结果的准确性。
- 适应性维护:随着操作系统或硬件环境的变化,系统可能需要进行适应性维护。例如,如果系统最初是在Windows XP上开发的,但现在需要迁移到Windows 10,那么可能需要进行一些修改以确保系统在新环境上的稳定性和兼容性。
- 完善性维护:用户对系统的功能和性能提出了新要求。例如,用户希望系统能够增加一个新的功能,如数据导出功能。为了满足这个需求,开发人员需要增加相应的代码和功能模块。
- 预防性维护:为了提高系统的可维护性和可靠性,开发人员可能需要进行一些预防性的维护工作。例如,他们可能会重构一些复杂的代码,以提高其可读性和可维护性,或者增加一些错误处理机制,以提高系统的稳定性。
黑盒和白盒
黑盒说函数间的关系,白盒是函数内关系
int min(白){}
int max(白){}
int main(){
min();
黑
max();
}
白盒测试
覆盖程度:路径 组合 条件 分支判断 语句
路径覆盖:全部路径都走过
对于路径的组合排列
多重条件覆盖/组合覆盖/判定-条件覆盖:
对于x>3 and z<10 ,x==4 and y>5
Ex: | X>3 | Z<10 | X==4 | Y>5 |
---|---|---|---|---|
X=4,Y=6,Z=5 | T | T | T | T |
X=4,Y=3,Z=10 | T | F | F | T |
X=3,Y=4,Z=5 | F | T | F | T |
X=3,Y=6,Z=11 | F | F | F | F |
条件覆盖:
对于x>3 and z<10 ,x==4 and y>5
每个字句都取一个T一个F
Ex: | X>3 | Z<10 | X==4 | Y>5 |
---|---|---|---|---|
X=4,Y=10,Z=0 | T | T | T | T |
X=0,Y=0,Z=10 | F | F | F | F |
分支覆盖/判断覆盖:
对于x>3 and z<10 ,x==4 and y>5
每个判断都有一个T,一个F
Ex: | X>3 and Z<10 | X==4 or y>5 |
---|---|---|
X=4,Y=5,Z=5 | T | T |
X=2,Y=5,Z=5 | F | F |
语句覆盖:覆盖到所有语句,不用T,F
软件成本预估模型(cocomo)
软件项目预估模型是用于估计软件开发项目规模、成本、进度等方面的数学模型。其中,COCOMO模型是一种常用的软件项目预估模型,全称为Constructive Cost Model,即构造性成本模型。这个模型基于经验数据,综合考虑了多个影响软件开发项目的因素,包括系统复杂性、项目规模、人员经验等。通过对这些因素的量化分析,COCOMO模型可以提供对软件开发项目成本、进度等方面的估算。
模型 | 简介 | 省流 | 例子 |
---|---|---|---|
基本COCOMO模型 | 用于在系统开发的初期估算整个系统的工作量和软件开发和维护所需的时间; | 系统工作量,功能点 | |
中间COCOMO模型 | 用于估算各个子系统的工作量和开发时间; | 子系统工作量,代码行 | |
详细COCOMO模型 | 则用于估算独立的软件构件,如各个子系统的各个模块的工作量和开发时间。 | 构件工作量 |
甘特图(不是很重要)
可以表示任务开始和结束时间
可以表示任务之间的并发
不能清晰的反映各个任务之间的依赖关系
皮特图
关键路径和最早开始时间和最晚开始时间计算
风险管理
CMM(能力成熟型模型)
CMMI(能力成熟度模型集成)
系统设计(在软件设计阶段要做的事情)
软件质量
软件度量(McCabe度量法)
有向图成环算法
可以数环的个数(4)+1=V(G)
第八章 结构化开发(数据流图)
系统设计
内聚和耦合
内聚类型 | 描述 | 省流 |
---|---|---|
功能内聚 | 完成一个单一功能,各个部分协同工作,缺一不可 | 一个函数一个功能 |
顺序内聚 | 处理元素相关,而且必须顺序执行、 | 顺序执行 |
通信内聚 | 所有处理元素集中在一个数据结构的区域上 | int和char都在struct上 |
过程内聚 | 处理元素相关,而且必须按特定的次序执行 | 处理i++ 和++i |
顺时内聚(时间内聚) | 所包含的任务必须在同一时间间隔内执行 | 时间点并发执行 |
逻辑内聚 | 完成逻辑上相关的一组任务 | 算法 |
偶然内聚(巧合内聚) | 完成一组没有关系或松散关系的任务 | 乱序 |
耦合类型 | 描述 | 省流 |
---|---|---|
非直接耦合 | 两个模块之向没有直接关系,它们之向的联系完全是通过主模块的控制和调用来实现的 | main中调用 |
数据耦合 | 一组模块借助参数表传递简单数据 | return int |
标记耦合 | 一组模块通过参数表传递记录信息(数据结构) | return class |
控制耦合 | 模块之间传递的信息中包含用于控制模块内部逻辑的信息 | fun(&a); |
外部耦合 | 一组模块都访向同一全局简单交量,而且不是通过参数表传递该全局变量的信息 | 全局变量更改 |
公共耦合 | 多个模块都访问同一个公共数据环境 | class-public |
内容耦合 | 一个模块直接访问另一个模块的内部数据:一个模块不通过正常入口转到另一个模块的内部:两个模块有一部分程序代码重叠; •个模块有多个入古 |
class-friend(可访问private) |
系统设计基本原理
系统总体结构设计
数据流图
数据字典
数据流图元素
对于节点的细化和对于节点之间的关系
外部实体的关系不能变,只改变内部结构
左边是顶层,右边是0层(少了前端处理后的操作结果和后端的操作结果)
第九章 UML建模
事物
UML类图中类与类之间的关系有五种:依赖、关联、聚合、组合与继承。依赖是几种关系中最弱的一种关系,通常,使用类库就是其中的一种关系。聚合与组合都表示了整体和部分的关系。组合的程度比聚合高,当整体对象消失时,部分对象也随之消失,则属于组合关系,当整体对象消失而部分对象依然可以存在并继续被使用时,则属于聚合关系。
关系 | 简介 | 省流 | 符号 |
---|---|---|---|
依赖(Dependency) | 依赖是两个事物间的语义关系, 其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义。 | A - - - > B | |
关联(Association) | 关联是一种结构关系,它描述了一组链,链是对象之问的连接。 | 关联分为聚合和组合 | * |
聚合(Aggregation)/聚集 | 是一种特殊类型的关联,它描述子整体和部分问的结构关系。 | B消失A不消失 | A——◇ B |
组合(Composition) | 也是一种特殊类型的关联,它同样体现了整体与部分间的关系,但比聚合更强,也称为强聚合。 | AB一方消失,同时消失 | A——◆ B |
泛化(Generalization) | 泛化是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象。用这种方法,子元素共享了父元素的结构和行为。 | 子类A泛化父类B | A——▷B |
实现(Realization)。 | 实现是类元之间的语义关系,其中一个类元制定了由另一个类元保证执行的契约。在两种地方要遇到实现关系:一种是在接口和实现它们的类或构件之间; 另一种是在用例和实现它们的协作之间。 |
类A实现接口B | A - - - ▷B |
UML图 | 简介 | 图组成 | 图 |
---|---|---|---|
静态建模 | |||
类图 | |||
对象图 | 某一个时刻对象的关系 | ||
用例图 | 用例(⭕️),参与者(人),关系(《》) | ||
动态建模 | |||
交互图 | 对象生命线( - - - ),控制焦点(▯),消息——> | ||
序列图 | 以时间顺序组织对象的交互活动 | ||
通信图 | 展示对象之间的消息及顺序 | ||
状态图 | 对反应型对象建模 | ||
活动图 | 特殊的状态图,对复杂用例流程建模 | ||
物理建模 | |||
构建图 | |||
部署图 | 展示软件和硬件 |
第十章 面向对象技术(oop)
基本概念
方法(函数)
消息(传参)
java
第十一章 设计模式
设计原则
设计原则 | 作用 | 省流 |
---|---|---|
单一职责原则 | 设计目的单一的类。 | 目的单纯 |
开放-封闭原则 | 对扩展开放,对修改封闭。 | 私有领地 |
里氏(Liskov)替换原则 | 子类可以替换父类。 | 儿子代替父亲 |
依赖倒置原则 | 要依赖于抽象,而不是具体实现:针对接口编程,不要针对实现编程 | 抽象实现 |
接口隔离原则 | 使用多个专门的接口比使用单一的总接口要好 | 多api |
组合重用原则 | 要尽量使用组合,而不是继承关系达到重用的目的。 | 尽量组合 |
迪米特(Demeter)原则 | 一个对象应当对其他对象有尽可能少的了解。 | 距离产生美 |
第十一章 信息安全
基本概念
网络安全威胁
网络安全 | 简介 | 补充 |
---|---|---|
SSL | 安全协议,加密算法,443端口 | 升级版TLS |
HTTPS | HTTP通道+SSL加密算法组成 | |
MIME | 电子邮箱的扩展 | |
PGP | 电子邮箱的安全 | |
SSH | 安全连接协议 | 连接 |
网络攻击
网络攻击 | 简介 | |
---|---|---|
SQL注入攻击 | 针对数据库 | |
重放攻击(ARP) | 1.方式:发送报文来攻击2.目的:复制身份认真,破坏认证正确性3.措施:在报文中增加时间戳 | |
拒绝服务 | 手段:通过肤哦次发送请求 | |
入侵检测(DOS) | 1.专家系统2.模型检测3.简单匹配 |
防火墙
组成: 内部+DMZ(隔离区)+外部
类型 | 简介 | |
---|---|---|
包过滤 | 检测网络层 | 对用户完全透明,速度快,安全系统低 |
应用代理网关 | 1.是内部网和外部网的隔离点 2.检测应用层,传输层 | 难配置,速度慢 |
状态检测技术防火墙 |
七层模型对应的防火墙
加密算法与数字签名
加密算法(密码算法)
公钥和私钥
各个网络层次的安全保障
第十二章 多媒体
音频
图像
多媒体种类
(视频不是显示模拟)
显示媒体是物理设备
多媒体计算
第十三章 法律法规与标准化知识
知识产权 | 简介 | 省流 | 例子 | 补充 |
---|---|---|---|---|
工业产权 | 专利,商标 | |||
著作权 | 分为人身权和财产权 | 人生权分为发表权,署名权,修改权,保护作品完整权 | 署名权,修改权,保护作品完整权是永久终身的 | |
专利地域性 | 我国专利在其他国家不受保护,如果需要保护,则需在他国申请专利 | |||
计算机软件著作权 | 根据《中国人民共和国著作权法》和《计算机软件保护条例》 | 对于客体(即计算机软件)分为计算机程序(源程序,目标程序),计算机软件文档(程序设计说明书,流程图,用户手册) | 软著保护期:50年,除了身份权都丧失 | |
委托开发 | 无合同:由开发方享著作权 | |||
商业秘密权 | 对技术信息和经营信息进行保护 | |||
专利权 | 谁先申请就给谁,同时申请就协商 |
署名权,修改权,保护作品完整权没有时间限制
第十四章 计算机英语