软件设计师考点整理
软件设计师考点整理
1.考试介绍
- 时间:2023年11月4日
- 题型:上午基础知识(150分钟)下午应用技术(150分钟)
2.考点理论精讲绪论
第一章:计算机组成原理与体系结构基础知识
(章节考点:1、数据的表示,2、校验码,3、计算机体系结构,4、指令系统,5、存储系统,6、总线系统,7、输入输出技术,8、可靠性)
1、进制的转化
- 十进制转K进制:除K取余法(断除法)
- K进制转十进制:对应数值乘于K的(n-1)次方相加(按权展开法)
2、定点数与浮点数
-
定点数:小数点的位置固定
-
有符号数
- 原码
- 反码
- 补码
- 移码
- 正数的反码、补码与原码相同 - 负数的反码为数值位全部取反,补码在反码的基础上加一 - 移码在补码的基础上将符号位取反。注意:移码只能用于整数
无符号数
-
-
浮点数:小数点的位置不固定(例:科学计数法(124.11*10,尾数是124.11,基数是10,指数是1)
特点: 1、一般尾数用补码,阶码用移码 2、阶码的位数决定数的表示范围,位数越多范围越大 3、尾数的位数决定数的有效精度,尾数越多,精度越高 4、对阶时,小数向大数看起 5、对阶是通过较小数的尾数右移实现的
3、校验码-海明码
海明码的构成方法是:在数据之间插入k个校验码,通过扩大码据来实现检错和纠错
设数据位是n位,校验位是k位,则n和k必须满足以下关系:
2的k次方-1>=n+k
奇偶校验:
奇偶校验的编码方法是:由若干有效信息,再加上一个二进制位组成校验码
奇校验:整个校验码中“1”的个数为奇数
偶校验:整个校验码中“1”的个数为偶数
特点:可检查1位的错误,不可纠错
CRC循环冗余校验:
模2除法取余数,将余数加到原数末尾,看是否能除尽
特点:可检错,不可纠错
4、计算机体系结构—五大部件
五大部件:输入设备、运算器、控制器、存储器、输出设备
冯·诺依曼计算机的特点:
1、计算机由五大部件组成
2、指令和数据以同等地位存于存储器,可按地址寻访
3、指令和数据用二进制表示
4、指令由操作码和地址码组成
5、存储程序
6、以运算器为核心(输入、输出设备与存储器之间的数据传输通过运算器来完成)
5、计算机体系结构—主存储器
存储单元:每个存储单元存放一串二进制代码
存储字(word):存储单元中二进制代码的组合
存储字长:存储单元中二进制代码的位数
存储元:即存储二进制的电子元件,每个存储元可存1bit
MAR:地址寄存器
MDR:数据寄存器
6、计算机体系结构—CPU
当代计算机cpu通常由运算器、控制器和主存组成
运算器:用于实现算数运算(加减乘除)和逻辑运算(与或非)
ACC: 累加器、用于存放操作数、或运算结果
MQ : 乘商寄存器,在乘、除运算时,用于存放操作数或运算结果
X : 通用的操作数寄存器,用于存放操作数
DR : 数据缓存寄存器
PSW: 状态条件寄存器,用于存放指令运行标志
(有时归属运算器,有时归属控制器)
CU : 控制单元,分析指令,给出控制信号
IR : 指令寄存器,存放当前执行的指令
常考(一般带有程序和指令的组件属于控制器):
ALU: 算术逻辑单元、通过内部复杂的电路实现算数运算、逻辑运算
PC : 程序计数器,存放下一条指令地址,有自动加一功能
AC : 累加寄存器,为ALU提供一个工作区,用来暂存数据
AR :地址寄存器,保存当前CPU所访问的内存单元地址
Flynn分类法(微观角度按照并行的方法进行分类。single(单)、instruct(指令)、Mutiple(多)、data(数据)):
1、单指令流单数据流SISD(控制模块1,处理器1,主存模块1,单处理器系统)
2、单指令流多数据流SIMD(控制模块1,处理器多个.主存模块多个。各处理器以异步的形式执行同一条指令。并行处理机、阵列处理机、超级向量处理机、相联计算机)
3、多指令流单数据流MISD(控制模块多个,处理器1,主存模块多个。证明不可能,至少是不实际。目前没有)
4、多指令流多数据流MIMD(控制模块多个,处理器多个,主存模块多个。能够实现作业、任务、指令等各级全面并行。多处理机系统)
寻址方式:
1、立即寻址:操作数直接在指令中,速度快,灵活性差;
2、直接寻址:指令中存放的是操作数的地址;
3、间接寻址:指令中存放了一个地址,这个地址对应的内容是操作数的地址;
4、寄存器寻址:寄存器存放操作数;
5、寄存器间接寻址:寄存器内 存放的是操作数的地址。
CISC与RISC:
CISC(复杂指令系统类型):
1、指令数量多
2、使用频率差别大
3、指令长度不固定
4、微程序控制
5、研制周期长
RISC(精简指令系统类型):
1、指令数量少
2、指令寻址方式少
3、指令长度固定,指令格式种类少
4、以硬布线逻辑控制为主
5、单周期指令执行,采用流水线技术,除了需要访问内存的LOAD/START等特殊指令以为,绝大多数指令都在单周期内完成
6、优化的编译器
7、CPU中的通用寄存器数量多
7、计算机体系结构—流水线
指令系统-流水线计算
流水线周期为执行时间最长的一段
流水线计算公式为:1条指令执行时间+(指令条数-1)*各指令段执行时间中最大的执行时间
流水线吞吐率:TP=指令条数 / 流水线执行时间
流水线加速比:S=不适用流水线执行时间/流水线执行时间
8、存储系统的层次结构
主存—辅存:实现虚拟存储系统,解决了主存容量不够的问题
主存——辅存层:通过硬件+操作系统实现
Cache—主存:解决了主存与cpu速度不匹配的问题
Cache—主存层:通过硬件自动完成
9、存储系统—存储器的分类
1、按位置分类,可分为内存和外存
内存:用来存储当前运行所需要的程序和数据,速度快,容量小
外存:用来存储当前不参与运行的数据,容量大但速度慢
2、按材料分类
磁存储器:用磁性介质做成,如磁芯,磁盘,磁带等
半导体存储器:根据所用元件可分为双极型和MOS型两类;根据是否需要刷新又可分为静态和动态两类
光存储器:由光学、电学和机械部件等组成,如光盘存储器
3、按工作方式,可分为读/写存储器和只读存储器
读/写存储器(RAM)指即能读取数据也能存入数据的存储器
只读存储器(ROM)工作过程中仅能读取的存储器
根据数据的写入方式,又可分为ROM、PROM、EPROM、EEPROM
ROM:固定只读存储器,这种存储器是在厂家生产时就写好数据的,其数据只能读出,不能改变。一般用于存放系统程序BIOS和用于微程序控制
PROM:可编程的只读存储器,其中的内容可以由用户一次性地写入,写入后不能再改变
EPROM:可擦除可编程的只读存储器,其中内容既可以读出,也可以由用户进行写入,写入后还可以修改,紫外线照射擦除信息
EEPROM:电擦除可编程的只读存储器,与EPROM类似,EEPROM中的内存既可以读出,也可以进行改写,电擦除的方法进行数据的改写
Flash Memory:闪速存储器,简称闪存,闪存介质介于EPROM和EEPROM之间,类似于EEPROM,也可以使用电信号进行信息的擦除操作。整块闪存可以在数秒内删除,速度远快于EPROM
10、存储系统—高速缓存Cache
要把主存中的地址映射为Cache存储器里面的地址,地址映射方法有三种:
1、直接映射:就是主存中的块已Cache中的块对应关系是固定的。这种方式的优点是变换很简单,缺点是灵活性很差
2、全相联映射:运行主存的任一块可以调入Cache的任一块的空间。这种方式的优点是主存的块调入Cache的位置不受限制,十分灵活。缺点是无法从主存块号中直接获取Cache的块号,变换比较复杂,速度比较慢。
3、组相联映射:这种方式是前面两种方式的折中。具体方法是将Cache先分成组再分成块。组相联映射就是组件采取直接相联映射方式,而组内的块采用全相联映射方式
Cache的性能分析:
若H为Cache的命中率,Tc为Cache的存取时间,Tm为主存的访问时间,则Cache的等效访问时间为:
Ta=H*Tc+(1-H)*Tm
(Cache的命中率乘于存取时间加上主存的命中率乘于存取时间)
使用Cache比不使用Cache的CPU访问存储器的速度提高的倍数r可以用下式得到:
r=Tm/Tc
(Cache的存取时间 除以 主存的存取时间)
11、总线系统—总线分类
分类:
1、片内总线:片内总线是芯片内部的总线,它是CPU芯片内部寄存器与寄存器之间,寄存器与ALU之间的公共连接线。
2、系统总线:系统总线是计算机系统内各功能部件(CPU、主存、I/O接口)之间相互连接的总线。按系统总线传输信息内容的不同,又可分为3类:数据总线,地址总线和控制总线。
3、通信总线
12、总线系统—输入输出方式
CPU与外设之间的数据传送方式:
1、直接程序控制方式
(1)、无条件传送方式
(2)、程序查询方式:先通过CPU查询外设状态,准备好之后再与CPU交换数据
2、中断方式
3、直接存储器存取方式(DMA):在主存与I/O设备之间传送一个数据块的过程中,不需要CPU的任何干涉,是一种完全由DMA硬件完成I/O操作的方式
4、通道方式
5、I/O处理机
13、总线系统—可靠性
计算机系统的可靠性是指从它开始运行到某个时刻这段时间内都能正常运行的概率
串联部件的可靠度 = 各部件的可靠度的乘积
并联部件的可靠度 = 1-部件失效率的乘积
14、常考考点
1、在FM方式的数字音乐合成器中,改变数字载波的频率可以改变乐高的(音调);改变信号幅度可以改变乐高的(音高);
2、传值调用最显著的特征就是被调用的函数内部对形参的修改不影响实参的值。引用调用是将实参的地址传给形参,使得形参的地址就是实参的地址。
3、乔姆斯基将文法分为4种类型,程序设计语言的语法基本上都是上下文无关语法。
4、表示媒体指的是为了传输感觉媒体而人为研究出来的媒体,借助于此种媒体能有效的存储感觉媒体或将感觉媒体从一个地方传到另一个地方,如语言编码,图像编码,条形码等;表现媒体指的是用于通信中使电信号和感觉媒体之间产生转换的媒体,如输入、输出设备,包括鼠标,键盘,显示器,打印机等。
5、嵌入式系统初始化过程主要有三个环节,按照自底向上、从硬件到软件的次序依次为:片级初始化、块级初始化和系统级初始化。系统初始化的主要任务是以软件初始化为主,主要进行操作系统的初始化。
6、高级语言处理程序主要分为两大类:解释型和编译型
解释型:直接执行源程序或源程序的内部形式(语法分析、语义分析、词法分析),无中间代码生成,也没有目标机器码代码,最大的特点是不产生目标程序,每使用一次就要解释一次,效率低;
编译型:第一次是要模糊时可将可执行语句翻译成对应的机器码保存下来,之后直接使用保存下来的机器码,故效率高;
编译程序的功能就是把用高级语言书写的源程序翻译成与之等价的目标程序。编译过程分为:词法分析、语法分析,语义分析,中间代码生成,代码优化和目标代码生成6个阶段,目标程序可以独立于源程序运行。解释程序是一种语言处理程序,在运行用户程序时,它是直接执行源程序或源程序的内部形式(中间代码)。因此,解释程序并不产生目标程序,这是它和编译程序的差别。
词法分析阶段:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词,删掉无用的信息,报告分析时的错误;
语法分析阶段:语法分析器以单词符号作为输入,分析单词符号是否形成符合语法规则的语法单位,如表达式、赋值、循环等,按语法规则分析检查每条语句是否有正确的结构;
语义分析阶段:主要检查源程序是否存在语义错误,并收集类型信息供后面的代码生成阶段使用,如:赋值语句的右端和左端不匹配
7、根据尼奎斯特取样定理:如果取样速率大于模拟信号最高频率的2倍,则可以从样本中恢复原来的模拟信号。语音信号定义的频率最高值为4kHz。
8、DRAM集成率相对较低,功耗相对较小,需要动态刷新
SRAM集成率相对较高,功耗相对较大,不需要动态刷新
9、信息的存取方式影响到存储信息的组织,常用的有4种,
◆顺序存取
存储器的数据是以记录的形式进行组织,对数据的访问必须按特定的线性顺序进行。磁带存储器的存取方式就是顺序存取。
◆直接存取
共享读写装置,但是每个记录都有一个唯一的地址标识,共享的读写装置可以直接移动到目的数据块所在位置进行访问。因此存取时间也是可变的。磁盘存储器采用的这种方式。
◆随机存取
存储器的每一个可寻址单元都具有唯一地址和读写装置,系统可以在相同的时间内对任意一个存储单元的数据进行访问,而与先前的访问序列无关。主存储器采用的是这种方式。
◆相联存取
也是一种随机存取的形式,但是选择某一单元进行读写是取决于其内容而不是其地址。Cache可能采用该方法进行访问。
衡量存储器系统性能的指标有以下几种:
存取时间:一次读/写存储器的时间
存储器带宽:每秒能访问的位数。
存储器周期:两次相邻的存取之间的时间
数据传输率:每秒钟数据传输的bit数目。
10、辅助存储器方面的计算:
1.存储容量为capacity=n*t*s*b,n为存放数据的总盘面数;t为每面的磁道数;s为每道的扇区数;b为每个扇区存储的字节数
2.寻道时间为磁头移动到目标磁道所需的时间。
3.等待时间为待读写的扇区旋转到磁头下方所用的时间。一般用磁道旋转一周所用的时
间的一半作为平均等待时间。
4.磁盘存取时间=寻道时间+等待时间。
5.位密度:沿磁道方向,单位长度存储二进制信息的个数;
6.道密度:沿磁盘半径方向,单位长度内磁道的数目;
7. 数据传输速率R=B/T,B为一个磁道上记录的字节数,T为每转一周的时间
8.磁带机的容量计算:(这些公式要熟悉记住)
数据传输率=磁带记录密度*带速;
数据块长度=字节数*块因子/记录密度+块间间隔;
读N条记录所需时间T=启停时间+有效时间+间隔时间;
例题:
假设一个有 3 个盘片的硬盘,共有 4 个记录面,转速为 7200 转/分,盘面有效记录区域的外直径为 30cm,内直径为 lOcm,记录位密度为 250位/mm,磁道密度为 8道/mm,每磁道分16个扇区,每扇区 512字节,则该硬盘的非格式化容量和格式化容量约为__(58)__,数据传输率约为__(59)__若一个文件超出一个磁道容量,剩下的部分__(60)__。
(58) A.120MB和1OOMB B.30MB和25MB C. 60MB和50MB D.22.5MB 和 25MB
(59) A.2356KB/s B.3534KB/s C.7069KB/s D.1178KB/s
(60) A.存于同一盘面的其它编号的磁道上 B.存于其它盘面的同一编号的磁道上
C.存于其它盘面的其它编号的磁道上 D.存放位置随机
58:B 59: D 60: B
第二章:数据结构与算法基础
1、基本概念与三要素
- 如何用程序代码把现实世界的问题信息化
- 如何用计算机高效地处理这些信息从而创造价值
三要素:
1、逻辑结构(集合、线性结构,树形结构,图结构)
2、物理结构(存储结构:顺序存储,链式存储,索引存储,散列存储)
3、数据的运算
2、算法
算法5大特性:
1、有穷性
2、确定性
3、可行性
4、输入
5、输出
算法效率的度量:
1、时间复杂度:时间开销与问题模型n之间的关系
2、空间复杂度:空间开销(内存开销)与问题模型n之间的关系
常见算法的特征总结:
分治法:把一个问题拆分成多个小规模的相同的子问题,一般可用递归解决。(经典问题:斐波那契数列,归并排序,快速排序,矩阵乘法,二分搜索,大整数乘法,汉诺塔)
动态规划法(用于求最优解):划分子问题,并把子问题结果使用数组存储,利用查询子问题结果构造最终问题结果集。(经典问题:斐波那契数列,矩阵乘法,背包问题,LCS最长公共子序列)
回溯法:系统的搜索一个问题的所有解和任意解。(经典问题:N皇后问题,迷宫问题,背包问题)
贪心法:局部最优解,但整体不见得最优。每步都有明确的、既定的策略。(经典问题:背包问题,多机调度,找零钱问题)
3、线性表
1、顺序表
2、链表
4、栈和队列
栈:先进后出
队列:先进先出
5、串、数组、矩阵和广义表
1、存储地址计算
一维数组a[n]:a[i]的存储地址为a+i*len(a表示指针位置,i表示下标,len表示一个数组存储的数据个数)
二维数组a[m][n]:a[i][j]的存储位置(按行存储)为:a+(i*n+j)*len
(按列存储)为:a+(j*m+i)*len
广义表是n个表元素组成的有限序列,是线性表的推广
6、树和二叉树
1、二叉树的分类
满二叉树
完全二叉树
二叉排序树
二叉搜索树
2、二叉树的遍历
前序遍历
中序遍历
后序遍历
层次遍历
3、反向构造二叉树
7、图
8、查找
9、排序
第三章:算法分析与设计
第四章:操作系统基本原理
第五章:计算机网络基础
1、ISO OSI/RM层次模型
在OSI/RM层次模型中,把网络协议规定成7层模型。
I.物理层
给出了一个通信信道的物理媒体上传输原始的二进制数据流(也称比特流)时的协议。(中继器,集线器)
II.数据链路层(网桥、交换机、网卡)
给出了把二进制数据流划分成数据帧,并依照一定规则传送与处理的协议。
III.网络层(三层交换机,路由器)
把数据帧划分成更小的“分组”,规定分组的格式,给出使分组经过通信子网正确的从源传送到目的地的协议。网络层是控制通信子网正常运行的协议,它提供两类典型的数据分组传送服务方式。
数据报(datagram):也称为无连接的网络服务,适宜于传送短的报文,传送速度快。
虚电路(virtual circuit):是基于连接的网络服务,类似于电话系统的通话。
IV.运输层(传输层)
根据高层用户的请求建立起有效的网络通信连接,处理端到端之间通信的差错控制、恢复处理和流量控制问题,也可以方便的撤消与拆除网络连接。
V.会话层
允许不同主机上的各种进程之间进行会话。
VI.表示层
为应用层提供传输的信息在表示方面的规则与协议。
VII.应用层
为各类不同的网络应用提供使用网络环境的手段,具体规定了在用户级别需要的、带有通信任务的许多常用信息服务的规则和协议。
2、TCP/IP协议组
TCP/IP协议组,也称因特网协议组,共有5层结构。
I. 物理层
II. 数据链路层
III. 网络层
用来方便的连接各种通信子网,负责路由选择合适的通信节点,使数据能从源主机发往目的地主机。其中有IP协议、ICMP(网际控制报文)协议、ARP协议、RARP协议等。
IV. 传输层
只存在于主机之间,提供主机之间进程与进程的有效数据传输。其中有TCP协议与UDP协议。
V. 应用层
提供了各种应用程序使用的协议,如FTP、HTTP等。这里的应用层对应ISO/RM的会话层、表示层和应用层。
3、网络协议
Internet采用的是TCP/IP体系结构网络协议,加入Internet的任何网络都必须支持TCP/IP,即在互联网层采用IP协议,在传输层采用TCP(或UDP)协议。Internet的应用层协议很多,常见的有:
TELNET远程登录协议
FTP文件传输协议FTP协议(20数据端口/21控制端口)
SMTP简单邮件传输协议(25端口,邮件发送)
DNS域名服务协议(53端口,域名解析)
NSP名字服务协议
HTTP超文本传输协议(80端口)
SNMP简单网络管理协议(161端口)
POP3(110端口,邮件收取)
DHCP(67端口,IP地址自动分配)
4、IP地址及子网划分
连接到Internet上的每一台计算机都必须有一个唯一的地址,用数字表示的Internet地址称为IP地址。IP地址含有四个字节,32个二进制位,其分为5类(A类、B类、C类、D类和E类),一般使用的仅为A、B、C三类。为了便于记忆,采用域名来识别Internet上的计算机。
A类:8位网络号并以0开头,24位主机号
B类:16位网络号并以10开头,16位主机号
C类:24位网络号并以110开头,8位主机号
子网划分:
1、子网掩码
2、将一个网络划分成多个子网(取部分主机号当作子网号)
3、将多个网络合并成一个大的网络(取部分网络号当作主机号,一般不考)
第六章:数据库系统基础知识
(章节考点:数据库模式,E-R模型,关系代数,规范化理论,SQL语言,并发控制,数据库完整性约束)
1、三级模式-两层映射
外模式(视图级)逻辑
外模式-概念模式映射
概念模式(表级)
概念模式-内模式映射
内模式(文件级)物理存储
2、数据库设计过程
1、需求分析:数据流图、数据字典、需求说明书
2、概念结构设计:ER模型
3、逻辑结构设计:关系模式
4、物理设计
3、E-R模型
一个实体型转换为一个关系模式
联系转关系模式:
1 :1联系:可将联系合并至任意一端的实体关系模式中
1 :n联系:可将联系合并至n端实体关系模式中
n :n联系:联系必须单独转化成关系模式
4、关系代数
并、交、差(S1-S2)、笛卡尔积(S!XS2)、投影(π(Sno,Sname)(S1))、选择((Sname = Mary))、连接(S1><S2)
5、规范化理论
1、部分函数依赖:{AB -> c,A -> C}
传递函数依赖:{A -> B,B -> C}得到{A -> C}
2、键:候选键、主键、外键
求候选键:
1、将关系的函数依赖关系用“有向图”的方式表示
2、找出入度为0的属性,并以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属性集即为关系模式的候选键
3、若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间结点(既有入度,也有出度的结点)并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键
3、主属性和非主属性:
定义:组成候选码的属性就是主属性,其他的就是非主属性
4、范式:
1、第一范式:原子性,属性不可再分
2、第二范式:满足第一范式的基础上,非主属性完全依赖于候选键
3、第三范式:满足第二范式的基础上,非主属性直接依赖于候选键,而不是间接依赖
4、BC范式(BCNF)
5、模式分解(可用表格法或公式法)
保持函数依赖分解
无损联接分解:指将一个关系模式分解成若干关系模式后,通过自然联接和投影等运算仍能还原到原来的关系模式。
6、常考考点:
第七章:程序设计语言基础知识
1、编译过程
高级语言处理程序主要分为两大类:解释型和编译型
解释型:直接执行源程序或源程序的内部形式(语法分析、语义分析、词法分析),无中间代码生成,也没有目标机器码代码,最大的特点是不产生目标程序,每使用一次就要解释一次,效率低;
编译型:第一次是要模糊时可将可执行语句翻译成对应的机器码保存下来,之后直接使用保存下来的机器码,故效率高;
编译程序的功能就是把用高级语言书写的源程序翻译成与之等价的目标程序。编译过程分为:词法分析、语法分析,语义分析,中间代码生成,代码优化和目标代码生成6个阶段,目标程序可以独立于源程序运行。解释程序是一种语言处理程序,在运行用户程序时,它是直接执行源程序或源程序的内部形式(中间代码)。因此,解释程序并不产生目标程序,这是它和编译程序的差别。
词法分析阶段:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词,删掉无用的信息,报告分析时的错误;
语法分析阶段:语法分析器以单词符号作为输入,分析单词符号是否形成符合语法规则的语法单位,如表达式、赋值、循环等,按语法规则分析检查每条语句是否有正确的结构;
语义分析阶段:主要检查源程序是否存在语义错误,并收集类型信息供后面的代码生成阶段使用,如:赋值语句的右端和左端不匹配
第八章:软件工程基础知识
1、开发模型
1、瀑布模型
注重管理,按阶段进行开发,且要求每个阶段都要有对应的产出,将软件开发分为三个阶段(定义阶段、开发阶段和维护阶段)
2、V模型
注重测试
3、喷泉模型
面向对象,每个阶段并没有明确的界限,主要阶段为演化、维护、测试、实现、设计、分析,一定程度上提高了开发效率,但是也增加了管理上的难度。
4、原型化模型
通过与用户沟通、演示产生原型,可分为探索性原型、演化型原型
5、演化模型
6、螺旋模型
适合高风险的项目
7、统一过程
PUP,以用例驱动,以架构为中心迭代和增量,主要阶段为:初始(确定项目的范围和边界,展示系统候选架构,估计费用和时间)、细化(分析系统问题)、构建(开发剩余功能)、支付(交付测试、客户培训)
8、敏捷开发方法
1、自适应开发
2、水晶中的Cockbum方法:用最少的纪律约束仍能成功的方法,认为每一个不同的项目都需要一套不同的策略、约定和方法论。
3、特性驱动方法
4、极限编程(XP):对费用严格控制
5、并列争球法(SCRUM):明确定义了的可重复的方法过程,使用迭代的方法,把每段时间(30天)一次的迭代作为一个“冲刺”,并按需求的优先级来实现产品,多个自组织和自治的小组并行地递增实现产品。
2、软件开发方法
1、结构化开发方法
面向数据流
用户至上
严格区分工作阶段
自定向下,逐步分解
不适用于开发大型的项目
2、面向对象方法
更好的复用性
关键在于建立一个全面、合理、统一的模型
分析、设计、实现三个阶段,界限不明确
3、需求分析
应用的工具
1、数据流图
2、数据字典
3、判定表
4、判定树
5、决策树
4、软件设计
应用工具:
IPO图:输入处理输出图
PDL:程序描述语言
PAD:问题分析图
程序流图
N/S盒图
内聚由高到底
功能内聚(模块完成单一的功能,各个部分协调工作,并且不可缺少)
顺序内聚(模块的处理元素相关,必须顺序执行)
通信内聚(模块的所有元素集中在一个数据结构区域上)
过程内聚(模块的处理元素相关而且按照特定的次序执行)
时间内聚(模块的所有任务必须在同一时间间隔内执行)
逻辑内聚(模块完成逻辑相关的)
巧合内聚(偶然内聚,模块完成多个任务,任务之间的关系松散)
耦合由高到底
内容耦合(访问内部数据,代码重叠或者多个入口)
公共耦合(多个模块引用同一全局的数据区)
外部耦合(模块与软件之外的环境有关)
控制耦合(传递的信息包括控制模块的信息)
标记耦合(传递数据结构或者一部分)
数据耦合(用参数表传递简单数据)
非直接耦合(独立运行)
5、软件测试
1、动态测试
黑盒测试
等价类划分:确定无效与有效等价类,设计用例尽可能多的覆盖有效类,设计用例只能覆盖一个无效类。
边界值分析:处理边界情况时最容易出错,选取的测试数据应该恰好等于、稍小于或稍大于边界值。
白盒测试
灰盒测试
2、静态测试
桌前测试
代码审查
代码走差
3、McCabe(环路)复杂度
V(G)=m-n+2;m为边数,n为节点数
6、软件维护
可维护性因素决定
可理解性
可测试性
可修改性
软件维护类型
改正性维护
适应性维护。指使应用软件适应信息技术变化和管理需求变化而进行的修改,外部环境发生变化后为适应环境所作的改变
预防性维护。为适应未来可能发生的变化而进行的改变
完善性维护。扩充功能改善性能进行的维护
7、常考考点
1、用户需求不清晰且经常发生变化时适合采用原型化开发方法
2、在结构化分析中,用数据流图对软件功能建模,加工是数据流的一个要素,可以用多种方式描述,如数据流,NS盒图等,其中决策树、决策表适用于表示加工中涉及多个逻辑条件的情况。
3、成本估算时,COCOMO II 方法以规模作为成本的主要因素,考虑多个成本驱动因子。该方法包括三个阶段性模型,即应用组装模型、早期设计阶段模型和体系结构模型。
4、如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。
5、模块结构图的模块类型数据如下:
(1)、传入模块
(2)、传出模块
(3)、变换模块:也叫加工模块。它从上级模块取得数据,进行特定的处理,转换成其他形式,再传回上级模块。它加工的数据流称作变换数据流。
(4)、协调模块:对所有下属模块进行协调和管理的模块。在系统的输入输出部分或者数据加工部分可以找到这样的模块。在一个好的模块结构图中,协调模块应出现在高层。
6、COCOMO用三个不同层次的模型来反映不同程度的复杂性,它们分别为:
基本模型:是一个静态单变量模型,它用一个已经估算出来的源代码行数(LOC)为自变量的函数来计算软件工作开发量;
中级模式:则在用LOC的基础上,再涉及产品、硬件、人员、项目等方面属性的影响因素来调整工作量的估算;
详细模式:包括中级COCOMO型的所有特性,但用上述各种影响因素调整工作量估算时,还要考虑对软件工程过程中分析、设计等步骤的影响。
7、在敏捷开发过程中,水晶法认为每一个不同的项目都需要一套不同的策略、约定和方法论。
8、软件配置管理(SCM)用于整个软件工程过程,主要目标是标识变更、控制变更,确保变更正确的实现,报告有关变更。SCM是一组管理整个软件生存期各阶段中变更的活动。软件配置管理的内容包括版本控制,变更控制及过程支持。
9、正式技术评审是一种由软件工程师和其他人进行的软件质量保障活动。其内容包括:
(1)、发现功能、逻辑或实现的错误
(2)、证实经过评审的软件的确满足需求
(3)、保证软件的标识符合预定义的标准
(4)、得到一种一致的方式开发的软件
(5)、使项目更易管理
10、集成测试也称组装测试,在单元测试的基础之上,把所有的模块组装成一个系统进行测试,目前普遍采用渐增式集成测试,又可分为自顶向下集成或自底向上集成。自顶向下集成先测试上层模块,再测试下层模块,在测试下层模块时,上层模块已经通过测试,所不需要写驱动程序。自底向上集成先测试下层模块,再测试上层模块,在测试上层模块时,下层模块已经通过,所以不需要写桩程序。三明治测试从系统两边向中间包围的测试方法。
11、影响软件可维护性的因素有:可理解性、可测试性和可修改性。可理解性:指维护人员理解软件软件的结构,接口,功能和内部过程的难易程度。采用良好的编码风格有助于提高软件的易理解性。可测试性:指测试和诊断软件错误的难易程度。可修改性:指修改软件的难易程度
12、在结构化设计中,系统由多个逻辑上相对独立的模块组成,在模块划分时需要遵循如下原则:
(1)、模块大小要适中
(2)、模块的扇入扇出要合理
(3)、深度和宽度适当
13、仓库风格包括:数据库系统、黑板系统,超文本系统
优点:
(1)、解决问题的多方法性
(2)、具有可更改性和可维护性
(3)、具有可用的知识源
(4)、支持容错性和健壮性
第九章:结构化开发方法—数据流图
结构化方法的分析结果由数据流图DFD、数据词典和加工逻辑说明几个部分组成。其中,DFD的基本成分有数据流(data flow)、加工(process)、文件(file)和源/宿(source/sink)。
画数据流图的基本步骤:自外向内、自顶向下、逐层细化、完善求精;
数据流图的父图与子图要平衡, 即输入和输出的数据流一致;
数据流图中的每个加工至少有一个输入数据流和一个输出数据流;
局部的数据存储不画出来,只有当局部数据存储作为某些数据加工之间的数据接口才画出,这有利于信息隐蔽;
允许一个加工有多条数据流流向另一个加工,也允许一个加工有两个相同的输出流向两个不同的加工;
保持数据守恒:一个加工的所有输出数据必须能从该加工的所有的输入流中获得;
在整套数据流图中,每个文件都必须既有读文件的数据流也有写文件的数据流;
软件开发过程中的软件工程原则(8个):
抽象;
自顶向下、逐层细化;
信息隐蔽和数据封装;
模块化;
局部化;
确定性;
一致性和标准化;
完备性和可验证性;
软件工程基本原理(7个):
按软件生存周期分阶段指定计划并认真实施;
坚持进行阶段评审;
坚持严格的产品控制;
使用现代程序设计技术;
明确责任,使得工作结果能够得到清楚的审查;
用人少而精;
不断改进开发过程;
第十章:UML建模
1、jackson->面向数据结构
结构化方法->面向数据流
结构图:
类图
对象图
包图
组合结构图
构件图
部署图(软硬件之间映射)
行为图:
用例图(系统与外部参与者的交互)
顺序图(强调按时间顺序)
通信图(协作图)
定时图
状态图
活动图
交互概览图
2、类图:
依赖关系:一个事物的发生会影响到另一个事物(--------->虚线+实心三角(或箭头))
泛化关系(继承):特殊\一般关系(————————————>实线+空心三角)
关联关系:描述了一组链,链是对象之间的连接
聚合关系:整体与部分生命周期不同(实线+空心菱形)
组合关系:整体与部分生命周期相同(实线+实心菱形)
实现关系:接口与类之间的关系(虚线+空心三角)
第十一章:面向对象技术
1、设计模式的分类
创建型模式:
工厂方法模式(Factory Method,定义一个创建对象的接口,但由子类决定需要实例化哪一个类,动态生产对象)
抽象工厂模式(Abstract Factory,提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定他们具体的类,生产成系列对象)
原型模式(prototype,指用原型实例指定创建对象的类型,并且通过拷贝原型来创建新的对象,克隆对象)
单例模式(singleton,保证一个类只有一个实例。单实例)
构建器模式(Build,复杂对象构造)
结构型模式:
适配器模式(Adapter,转换接口)
桥接模式(Bridge,将类的抽象部分和它的实现部分分离开来,使他们可以独立的变化)
组合模式(Composite,强调整体部分的关系,树形目录结构)
装饰模式(Decorator,附加职责)
外观模式(Facade,对外接口统一)
享元模式(Flyweight,提供支持大量细粒度对象共享的有效方法)
代理模式(Proxy,为其他对象提供一种代理以控制这个对象的访问)
行为型模式:
责任链模式(传递职责)
命令模式(Command,日志记录,可撤销)
解释器模式(Interpreter,提供一种方法顺序访问一个聚合对象中各个元素,而不需要暴露该对象的内部表示。虚拟机机制)
迭代器模式(Iterator,提供一种方法来顺序访问一个聚合对象中的各个元素,而不需要暴露该对象的内部表示)
中介者模式(不直接引用)
备忘录模式(memento,不破坏封装性的情况下,捕获内部状态)
观察者模式(联动)
状态模式(状态改变时改变行为)
策略模式(定义一系列算法,把它们一个个封装起来,并且使他们之间可相互替换,从而让算法可以独立于使用它的用户而变化)
模板方法模式(定义一个操作中的算法骨架,而将一些步骤延迟到字类中,使得字类可以不改变一个算法的结构即可重新定义算法的某种特定步骤)
访问者模式(Visitor,表示一个作用于某对象结构中的个元素的操作,使得在不改变个元素的类的前提下定义作于于这些元素的新操作)
第十二章:信息安全与多媒体知识
1、信息安全
1、对称加密技术
使用同一套密钥
加密强度不高,效率高
密钥分布苦难
常见对称密钥加密算法:DES、3DES、RC-5、IDEA算法
2、非对称加密技术
使用不同的密钥,公钥私钥成对出现(用谁的公钥加密,就用谁的私钥解密)
加密速度慢,强度高
常见非对称密钥加密算法:RSA、ECC
发送者A发送消息给接收者B时,用接收者B的公钥加密,接收者B接受消息后再用接收者B的私钥解密
签名:发送者发送消息时,用自己的私钥加密,然后接收者通过发送方的私钥解密
3、消息摘要
数字摘要:由单向散列函数加密成固定长度的散列值
常见的消息摘要算法有MD5,SHA等,市场上广泛使用的MD5和SHA的散列值分别位128位和160位。
2、网络攻击-主动攻击与被动攻击
被动攻击;
监听(保密性)
1、消息内容获取
2、业务流分析
主动攻击:
中断(可用性)
篡改(完整性)
伪造(真实性)
3、网络安全-各个网络层次的安全保障
物理层:隔离,屏蔽
数据链路层:链路加密,PPTP,L2TP
网络层:防火墙,IPSec
传输层:TLS,SET
应用层:PGP,Https
应用层和传输层:SSL
4、防火墙
防火墙:
网络级:
包过滤
状态检测
应用级:
双穴主机
屏蔽主机
屏蔽子网
5、安全防护体系
1、物理环境的安全性
2、操作系统的安全性
3、网络的安全性
4、应用的安全性
5、管理的安全性
6、计算机病毒和木马
病毒:编制或者在计算机程序中插入破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令程序代码
木马:计算机木马是一种后门程序,常被黑客用作计算机远程控制的工具
7、多媒体应用知识
1、人耳能听到的声音的范围:20Hz~20KHz,说话:300Hz-3400Hz
2、采样:采样频率应为声音最高频率的2倍
3、A/D转换:采样->量化->编码
4、常见音频格式:WAVE、MP3、MIDI
5、常见多媒体标准:
MPEG-1:VCD、MP3
MPEG-2:Huffman,DVD,有线\卫星电视
MPEG-4:网络应用\可视电话,无线通信
MPEG-7:多媒体内容描述接口
MPEG-21:制定新标准,标准集成
第十三章:法律法规与标准化知识
1、保护范围与对象
1、著作权法:不需要申请,作品完成即开始保护
2、软件著作权法:不需要申请,作品完成即开始保护
3、专利法:需要申请,申请日开始生效
4、商标法:需要申请,核准之日起商标受保护
2、保护期限
1、公民作品:署名权、修改权、保护作品完整权没有期限;发表权、使用权和获得报酬权:作者终生及其死后五十年
2、单位作品:发表权、使用权,获得报酬权:50年
3、在单位开发,单位支付报酬开发的作品,署名权属于作者,著作权属于单位,
4、离职、退休或调动工作1年内,与原单位工作相关申请的专利,专利权属于原单位
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异