软件设计师考试
计算机组成原理
上午6分
考纲
数据的表示
十进制转任意进制
二进制转八进制和十六进制
原码,补码,反码,移码
元数据用二进制表示
原码:不足八位补0,正数最高位是0,负数是1,原码不能直接用来做运算
反码:如果是正数,则和原码相同,如果是负数,符号位不动,其他位按位取反
补码:如果是正数,则和原码相同,如果是负数,在反码的基础上加1,补码相加得到0
移码:(在浮点运算中做接码),在补码的基础上,将首位取反
取值范围
浮点数的表示
计算机结构
运算器:
ALU:算数逻辑单元
AC:是一个通用寄存器。其功能是,当运算器的算术逻辑单元(ALU)执行算术或逻辑运算时,为 ALU 提供一个工作区。累加寄存器暂时存放 ALU 运算的结果信息。
DR:对内存储器进行读写操作时候用来暂存数据的寄存器
PSW:存储运算过程中相关标志位,进位,溢出等,状态的信息需要保存
控制器:
PC:是用于存放下一条指令所在单元的地址的地方。
IR:指令寄存器,用于存放当前从主存储器读出的正在执行的一条指令。
地址寄存器(AR)用来保存当前 CPU 所访问的内存单元的地址。由于在内存和 CPU 之间存在着
操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止。
Flynn分类法
SISC和RISC(慢和快)
流水线
基本概念
取值,分析,执行依次执行(浪费时间)
由不同的部件执行
计算问题
流水线周期:各个步骤中,时间最长的那个
周期计算:max(a1,a2,a2...)
总时长:(t1+t2+t3+...)+(n-1)*周期
吞吐率
加速比
不使用流水线的时间/使用流水线的时间
效率问题
每一段的周期相等的情况下,效率往往最高
E = 阴影区域/总面积
计算机层次化存储结构
Cache:高速缓存区,按照不同的内容进行存取,之间和CPU进行频繁的交互,依靠局部性原理
Cache
Cache中储存的内容是主存部分内容的复本,是按程序的局部性原理选取出来的最常使用或不久将
来仍将使用的内容。
时间局部性,空间局部性
时间局部性:刚刚访问完的数据再次访问
空间局部性:对于数组,刚访问过的地址,接着访问他的临接地址
工作集理论:是进程运行时被频繁访问的页面集合
主存-随机 只读存储器
内存:RAM,一断电就没了
编址
磁盘工作原理
试题
总线
数据总线:32位计算机,一个字就是32个bit位,总线的宽度就是32个bit位,一个周期能够传输的数据量就是32bit位
地址总线:2的32次方(4G)
控制总线:
串联系统和并联系统的可靠度计算
模冗余模型(几乎不考)与混合模型(常考)
校验码的概念
链路层基本上错一位
循环校验码CRC
原始报文后面补位数-1个0
海明校验码
操作系统
概述
进程状态转换图
前驱图
进程的同步和互斥
PV操作
解决并发问题(加锁解锁问题)
练习题
模拟约束条件,先去掉约束,再推出问题
有约束前加一个p操作,执行操作后给别人一个信号量,给一个v操作
PV操作和前驱图
从左到右,从上到下
死锁问题
死锁的预防和避免
有序资源分配法:利用率低
银行家算法
分区存储组织
空白区域:上次在这里的程序运行完毕后留下的
最佳适应法:容易产生碎块
循环首次适应算法:25->19->10 第一次从25里面找适应的,第二次从19里面找,第三次从10里面找,依次再继续循环
段,页式存储
页式存储
逻辑地址和物理地址之间的转化
内存中划定一个用户区域,供用户程序使用,往往是将用户程序整体的调入内存中,意味着如果用户程序大于内存时,将不适用,而且内存可能没有连续的空间供程序调入
页式存储:将用户程序分成等分的页
优点:利用率高,碎片小,分配及管理简单
缺点:增加了系统开销(查表), 可能产生抖动现象
页式练习题
后三位是页内地址,第一位是页号,直接找到物理块号,组成物理地址
只淘汰状态位为1的,并且访问位为0的页面
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RoVkHKsH-1604307209612)(E:\md笔记文件\images\image-20201102150648621.png)]
段式存储
段的大小不要求一致,按照逻辑分段,便于共享
缺点:内存利用率低,内存碎片较大
段页式存储
块表
页面淘汰算法
最优算法(OPT):理论层次的算法
先进先出(FIFO):抖动,加了页面缺页率反而增加了
最近最少使用(LRU):
FIFO抖动现象
练习题
索引文件结构
练习题
树形目录结构
空闲空间管理
位示图
第多少字:从1开始算
第多少位:从0开始算
数据传输控制方式
程序控制方式:反复询问
程序中断方式:
DMA(直接存储器访问方式):DMA 将数据从, 一个地址空间复制到另外一个地址空间时,CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器来执行和完成。
虚设备和Spooling技术(缓冲区,排队机制)
微内核操作系统
最为核心的放在内核里面,出问题小的可能变小,外部不干涉内核
用户态,核心态
数据库
概要
数据库模式
ER模型
关系代数和元组演算
并发控制
数据库完整性约束
---------------下午案例分析和论文中------------------
分布式数据库
数据仓库于数据挖掘
三级模式两级映射
内模式:管理我们如何去管理数据,按什么格式,如何优化 物理级数据库
概念模式:平常我们用数据库时表这个级别,数据分成若干张表 概念级数据库
外模式:数据库中的视图,更加方便,更加安全 用户级数据库
数据库的设计
需求分析:数据流图,数据字典,需求说明书
ER模型转成关系模式(文字表达,一个一个表的形式) 规范化理论(重要)
ER模型
多对多关系:N - M
实体:多个属性 □表示
联系:尖括号
---------------------
逐步集成:简单不容易出错,但是耗时
属性:两个表都有老师这个属性,但一个是用的男女表示,一个是用t f表示
命名冲突:同名异义,异名同义
结构冲突:老师这个词即是一个表名,又是另一个表的一个字段
1 - 1 时:可以建立两种,练习可以在左边也可以在右边
1 - N 时:将练习建立在N那边,例如(员工和部门的关系)
N - M 时:至少转成三个关系模式(实体转为一个,联系转为一个)
关系代数(选择题)
笛卡尔积:所有的字段全部列出来,前一个表中每一条记录都得和后面表中每一条记录拼接
投影:π
选择:
联接:
联接操作:
等值连接:不相等去掉(自然连接)
规范化理论-函数依赖
函数关系:一个x确定一个y,y不能确定x
学号-->姓名,这是一种函数依赖
1:部分函数依赖 A+B-->C&&A-->C
2:传递函数依赖 A-->B&&B-->C-->A-->C&&A!=B
规范化理论-价值和用途
非规范的关系模式,可能存在:数据冗余,更新异常,插入异常,删除异常
数据冗余:DNO可以唯一确定系名,DNO也可以知道位置,没必要存储多遍
更新异常:改DNAME必须将三个字段的全部数据进行更改
规范化理论-键
超键:唯一标识元组,存在数据冗余
候选键:不存在数据冗余
主键:从候选键中选一个,唯一的
外键:其他关系的主键(关联查询)
规范化理论-求候选键
解题方法:
找入度为零的节点,如果能遍历整个图,就是候选键
题一:A1
题二:ABCD
题三:如果没有入度为零的节点,则找既有入度又有出度的中间节点
A和B
规范化理论-范式
原子值:一个属性不能拆分成多个属性
主属性:属于候选键的一部分
非主属性:
第一范式:
第二范式:(消除部分函数依赖)
候选键为SNO和CNO的组合键
而CNO可以唯一确定CREDIT,存在数据冗余
解决方法:
将CNO和CREDIT组成一个表,消除冗余
插入异常:新来的一个课程,还没人选,CNO=C08 CREDIT=6,无法插入,没有课程号这个主键
第三范式:
存在冗余数据
解决方法:
将DNO DNAME LOCATION 独立出来成为一个关系模式
BC范式
查看所有的函数依赖,看左边是不是候选键
SJ->T
T->J 而T不是候选键,所以该式子不是BC范式
规范化理论-模式分解
1:拆分时候继续保持函数依赖
2:无损分解,通过一系列操作之后又能还原到原来的关系模式
模式分解案例:
并发控制
事务
原子性:要么不做,要么全做
一致性:事务执行之前,数据是一致的,转账完成前后,数据总和是一致的
隔离性:事务之间各不影响
持续性:结果影响是持续的
并发控制-存在的问题
封锁协议
数据库完整性约束
作用:提高数据可靠性
实体完整性约束:主键不能为空,不能重复
参照完整性约束:外键约束(外键必须是对应表中正确的部门号,也允许为空)
用户自定义完整性约束:自己定义的约束条件(x>=0)等等
--------------------------------------------
触发器:写脚本来约束数据库的要求,编写更加复杂的要求
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bIAJhENW-1604307209615)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201021203239338.png)]
数据库安全
用户标识和鉴定:密码输入和校验
存取控制:对用户授权
密码存储和传输:对远程终端信息用密码传输
视图的保护:对用户进行视图的授权
审计:用日志记录下来用户的操作,分析记录
数据备份
分类方法一
冷备份:也称为静态备份,是将数据库正常关闭,在停止状态下,将数据的文件全部备份下来
优点:速度快,安全,低度维护,容易恢复,
缺点:必须停下来,无法工作
不能按表或用户恢复
热备份:也称动态备份,是利用备份软件,在数据库正常运行的状态下,将数据库中的文件备份下来
优点:灵活度高,可以精确恢复或者备份某个表,备份时间短,无需停止数据库
缺点:复杂度高
不允许出错
分类方法二
完全备份:
差量备份:针对完全备份的数据
增量备份:针对上一次备份的数据
简单备份方案:
完全备份->增量备份->增量->增量->差量备份->增量->增量
分类方法三
日志文件
日志文件:针对数据库改变所做的记录,记录sql语句,当发生错误时,可以快速执行相同操作还原现场
故障和恢复问题
数据仓库和数据挖掘
数据库:将用户数据存在数据库中,当数据库中的数据越来越多时,数据库整体性能下降,此时可以删除一些数据来优化性能(删除历史数据)
数据仓库:将数据库中的数据进行抽取,清洗(去除冗余,格式统一等),装载,刷新 将一些历史数据提取出来,单独在一个库中,形成数据仓库(主要是用来分析的数据,不需要进行更新和插入),组织特定的数据
数据集市:将数据仓库一步步进行加入,形成数据集市(降低风险)
OLAP服务器:做分析处理工作
数据前端工具:........
特点:面向主题
集成的
相对稳定性
反映历史变化
数据挖掘:挖到人类未知的数据,应用于商业领域
对各类的行情数据进行挖掘分析,找出合适的方案,利用不同的算法解决这类问题
反规范化
空间换时间的思想,提高查询速度,降低规范化
大数据
Volume 数据量
Velocity 速度
Variety 多样性
Value 值
大数据分析:对你日常生活进行分析,对你推送你喜欢的内容
315事件:售卖cookies个人信息
计算机网络
七层模型
物理层:传输二进制数据,低电平和高电平 主要设备是中继器(信号过远中转站)和集线器(多端口的中继器)
数据链路层:传送以帧为单位的信息 网桥(连接两个同类型的设备) 交换机(多端口的网桥,连接多个设备) 网卡
网络层:分组传输和路由选择 三层交换机,路由器(路径选择)
传输层:端到端的连接 TCP/UDP协议
会话层:建立、 管理、和终止对话
表示层:数据的格式与表达、加密、压缩
应用层:实现具体的应用功能
---------------------------------------------------------------------------------------
局域网:工作在下面两层,典型设备是交换机,通过广播进行交换数据
网络技术标准与协议
TCP/IP协议:Internet,可扩展,可靠,应用最广,牺牲速率和效率
IPX/SPX协议:NOVELL,路由,大型企业网
NETBUI协议:IBM,非路由,快速
----------------网络层-----------------
ICMP:Internet网的控制协议(比如ping命令)
ARP(地址解析,ip转mac地址)
RARP(反向地址解析,mac转ip)
-----------------传输层----------------
TCP:可靠,有验证机制,有反馈信息,三次握手活动
UDP:只把数据发到目的地址
----------------应用层_基于TCP-----------------
Http:超文本传输协议
FTP:文件传输协议
Telnet:远程登录协议
POP3和SMTP:邮件传输协议
----------------应用层_基于UDP-----------------
DHCP:局域网内动态分配ip地址
TFTP:小文件传输协议
SNMP:简单网络管理协议
DNS:域名解析
----------------应用层_基于UDP或TCP-----------------
文件共享协议
Samba:可以跨平台
CIFS:
NFS:
HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的 HTTP 通道,是 HTTP
的安全版。HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议。
DHCP协议
静态分配ip地址是不方便,麻烦的
客户机/服务器模型
默认租约为8天,8天不使用就会更改或者收回
租约过半,客户机需要重新向DHCP服务器申请租约
当租约超过87.5%时,如何还没联系上当初提供ip地址的DHCP服务器,就开始联系其他DHCP服务器
---------------------------------------------------------------------------
windows:169.254.x.x
linux:0.0.0.0
说明客户机没有和DHCP服务器联系上,对应地址是假地址
DNS协议
DNS:域名和IP地址之间的转换
递归查询:按照数字之间的顺序进行递归查询
主机向本地域名服务器
迭代查询:本地域名服务器向根域名服务器的查询
递归和迭代配合使用
---------------------------------------------
如果单纯使用递归查询,会使得根域名服务器负担重,效率低
域名查询记录:先HOSTS表,再本地DNS缓存,然后再查找本地DNS服务器,再根域名服务器,顶
级域名服务器、权限域名服务器。
解题分析:递归查询不会直接返回结果
迭代查询是直接返回结果的
计算机网络的分类-拓扑排序
按分布范围分:局域网(LAN),城域网(MAN),广域网(WAN),因特网
按拓扑结构分:
总线型:一条总线控制信息
星型:一个中心点控制信息(存在单点故障的问题)
环型:单点故障,可以从另一边绕过去
----------------------------------------------------
办公室网络:星型网络,中心点(交换机)
网络规划和设计
物理网络设计
逻辑网络设计
分层设计
接入层:向本地网段提供用户接入
汇聚层:网络访问策略控制、数据包处理、过滤、寻址
核心层:数据交换(多台设备做同样的事情,防止奔溃)
ip地址和子网划分
A类:2^24-2,第一段是网络号,后面24个bit位都是主机号,减掉主机号是全0(网络地址,而不是某台主机的地址)和全1(网络当中的广播地址)的地址,可容纳的主机数非常多,但A类网络资源非常有限,只有前面8位是用来表达网络地址,而且首位必须为0
B类:前两段是网络号,后两段是主机地址,可容纳的主机数是2^16-2
C类:前三段是网络号,后一段是主机地址,可容纳的主机数是2^8-2
问题:
假如某个公司有500台主机,给分配一个c类地址,不够用,分配一个b类又太多了
--------------------------------------------------------------------
172.18.129.0/24 表示前24位为网络地址,后32-24位为主机地址
超网:把多个网络合成一个大的网络
子网:把一个大的网络分成多个子网
子网划分
子网掩码
从子网个数开始算:2^k >= N 算出k,前面网络号都为1,主机前k为也为1,后面为0
从主机数开始算:2^k-2 >= n , n为主机数,后k位为0,前面为1
问两个ip地址属不属于同一个子网:把两个ip地址化成10进制,然后分析网络号和子网号分别是多少位,看前面的这么多位是否相同,如果相同则在同一个子网内
无分类编址
IP地址:: = {<网络前缀>,<主机号>}
c类子网,前24位为网络地址,公司网络的地址块是20位,故还有24-20位来制作子网地址
特殊含义的ip地址
路由算法
静态路由算法:
a:泛射路由算法(扩散法)
b:固定路由算法
c:随机走动法(Random Walk)
d:最短路径法(Shortest Path ,SP)
动态路由算法(自适应路由选择算法):
a:分布式路由选择
b:集中式路由选择
c:混合式动态路由选择
d:链路状态路由算法
HTML
无线网
无线局域网(WLAN,802.11,WI-FI)
优势:
移动性 灵活性 成本低 容易扩
接入方式:
有接入点模式 无接入点模式
无线城域网(WMAN,802.16,WiMax)
无线广域网(WWAN,3G/4G)
无线个人网(WPAN,802.15,Bluetooth)
#
网络接入技术
PSTN:传真、刷卡机
ADSL采用电话线进行通信,有的老小区还在使用
-------------------------------------
WCDMA:最为成熟的,使用范围最广的
TD-SCDMA 名义上的国产通信,代理商是中国移动
------------------------------------
4G
LTE-Advanced
TDD(TD-SCDMA) FDD(WCDMA)
ipv6
信息系统安全属性
对称加密
用同一个秘钥进行加密和解密,适用于大文件,速度快
优点:速度快
缺点:加密强度不高(文件发过去,可能会被截获,密码发过去,也可能被截获)
秘钥分发困难
非对称加密
用对方的公钥给文件加密,发送给对方
有点:安全度高,适合于短文加密
缺点:加密速度慢
信息摘要
甲将明文发送给乙,再将摘要发送给乙。乙接到明文后生成摘要,再和发过来的摘要对比。如果一致,则说明信息没有被篡改
算法:采用单向的散列函数(单向hash函数),只能将明天通过算法生成摘要,不能将摘要通过算法还原成明文
信息摘要算法:MD5和SHA算法,将信息截断,形成摘要,具有破坏性,不能够还原,不能用来加密解密
数字签名(无保密的功能,身份识别)
将文件从A发送给B,附带上A的签名
数字签名:用A的私钥给文件加密(客观理解),对摘要进行加密(效率高)
数字签名验证过程:用A的公钥给文件解密,从而得到文件是A发过来的
数字证书与PGP
对称秘钥传输明文,将对称秘钥用接收方公钥加密发送给接收方,接收方收到电子信封,用自己的私钥解密信封,去除对称秘钥解密得到原文
用来标识身份,防止中途公钥被截获更改
要有持有者的公钥信息
9、假定用户 A、B 分别在 I1 和 I2 两个 CA 处取得了各自的证书,下面( )是 A、B 互信的必
要条件。
A. A、B 互换私钥 B. A、B 互换公钥 C. I1、I2 互换私钥 D. I1、I2 互换公钥
首先,在公钥体系中,交换私钥是无论什么情况下都绝对不允许发生的情况,所以A与C选项必然错误。余下的B与D,B选项的做法没意义,要AB互信,其信任基础是建立在CA之上的,如果仅交换AB的公钥并不能解决信任的问题。而I1与I2的公钥交换倒是可以做到互信,因为I1与I2的公钥正是验证CA签名的依据。所以本题应选D。
设计邮件加密系统(重要)
各个网络层次的安全保障
隔离:军方网络和普通网络隔离开来 物理层
链路加密 PPIP、L2TP:链路层通道,安全不会被截取 数据链路层
防火墙,IPSec(对IP包加密传输) 网络层
TLS,SET(通信过程,电子商务等),SSL跨越多个层次 传输层
PGP,HTTPS 应用层
网络威胁与攻击
防火墙
网络层:将指定ip段的地址阻断(初步阻断,可以被人将ip地址进行包装伪造)
应用级:将ip的具体信息进行检查
屏蔽子网---将内网中的子网进行屏蔽检查(防止内部攻击)
DMZ中间放一些对外的服务器
c/s和b/s模式
c/s模式特点:
1:允许合理地划分三层的功能,使之在逻辑上保持相对独立性
2:允许各层灵活的选用平台和软件
3:各层可以选择不同的开发语言进行并行开发
b/s模式特点:
1:系统安装、修改和维护只在服务器端开发
程序语言基本知识
编译过程
解释型:写一行,编译一行
编译型:全部写完后进行编译
词法分析阶段:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词,删掉无用的信息,报告分析时的错误
语法分析阶段:语法分析器以单词符号作为输入,分析单词符号串是否形成符号语法规则的语法单位,如表达式、赋值、循环等,按语法规则分析检查每条语句是否有正确的逻辑结构
语义分析阶段:主要是检查源程序是否存在语义错误,并收集类型信息供后面的代码生成阶段使用,如:赋值语句的右端和左端的类型不匹配。表达式的除数是否为零等。
文法的定义以及语法推导树
文法定义:
文法:
语法推导式:
有限自动机和正规式
有限自动机:从起点到终点,是否存在路径为指定01串
文法推导与正规式例题:
正规式解题方法:代入法,正规式是否可以将可识别的串全部表示出来(范围要相等),如果可以,则是正规式
各种程序语言特点
表达式
先构造树,根节点都是符号
再进行遍历
函数调用(传值和传参)
标识符
在编程语言中,表示符是用户编程时使用的名字,对于变量、常量、函数、语句块也有名字;我们统统称为表示符,关键词作为用户标识符
法律法规知识
知识产权
###
保护期限
知识产权人确定
侵权判定
开发过程的处理过程想保护起来,可以申请专利
标准的分类
行业标准,通过排除法进行选择
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j0ECHRIQ-1604307209618)(E:\md笔记文件\images\image-20201102124057536.png)]
多媒体基础
音频相关概念
数字语音的采样频率定义为8kHz,这是因为;
\
图像相关概念
RGB(彩色显示器)
YUV(电视,兼容 叠加的原理)
CMY(CMYK 印刷三原色 相减的原理)
HSV(HSB) 艺术家空间
DPI为像素/英寸 3*4英寸像素为900*1200
媒体的种类
多媒体的计算问题
k -------1000为单位
K -------1024为单位
常见多媒体标准
JPEG:对应图片jpg的格式(压缩比高)
数据压缩技术基础
有冗余是压缩的基础
空间冗余
时间冗余:这一帧和下一帧相同,可只记录上一次的状态
视觉冗余
信息熵冗余
结构冗余:和空间冗余类似,结构强调部分,空间强调整体
知识冗余
有损压缩和无损压缩
无损压缩:冗余压缩法或熵编码法
有损压缩:熵压缩法
软件工程
软件开发模型
瀑布模型(SDLC)
结构化模型
缺点:延期,成本超支,
需求阶段难以把握,无法对需求变化灵活应对
适用于:需求明确或是二次开发
原型模型、演化模型、增量模型
原型:先开发界面模型供用户参考也可是是初步的系统(也应用于需求分析阶段)
演化模型:演化原型成为最终产品
增量模型:一步步将模型扩展,起初开设一个模块供用户使用,发现问题解决问题,再继续设计新的模块(核心模块比较早的和用户进行接触,风险小)
螺旋模型
增有风险分析的功能
特点:
1:风险驱动的,要求开发人员必须具有丰富的风险评估 知识和经验
2:可以降低多测试或测试不足带来的风险
3:不适用于大型软件开发
##
CBSD构建化开发模型
极大的提高了软件的复用性,先构建各类模块,最后将模块组装起来,形成应用软件,极大的减小了开发时长,可靠性增加,节省成本
V模型
强调测试的模型,测试贯穿于开发的始终,步步对应
面向对象模型
RAD(SDLC瀑布模型 CBSD构建化开发模型) 建模更快速
敏捷开发
适合小型项目
极限编程:
结对编程描述:1 承担了非正式的代码审查过程
2 代码质量更高
3 编码速度更快
代码集体所有权(代码共享):支持共同代码拥有和共同对系统负责
信息系统开发方法
结构化开发,系统和现实有着比较大的差距,结构固定,难以修改
需求的分类
系统需求:
功能需求:实现基本功能
性能需求:要求运行的时间,安全性等
设计约束:用户要求使用的语言和数据库等
QFD:
基本需求:用户提出的基本功能
期望需求:用户没有明确提出,但是默认要做的需求
兴奋需求:程序员扩展给用户的功能
需求分析
采用面向对象方法进行软件开发,在分析阶段,架构师主要关注系统的 行为
结构化设计
结构化方法中的软件设计问题
概要设计
详细设计
多扇入,少扇出:指向自己的多一点,出去的少一点
改进设计质量的方法:
尽量减少高扇出结构 模块的大小适中 将具有相似功能的模块合并
完善模块功能不能改进设计质量
内聚和耦合
系统结构/模块结构
测试原则和类型
测试用例设计
黑盒测试:只知道模块的输入输出
等价类划分:将所有的路径编写测试案例输入
边界值分析:端点值和略小于端点,略大于端点
错误推测:经验决定
因果图: 由结果反推得到原因
白盒测试:能看到模块内部的结构(更加全面,例如,if语句做一个测试,else做一个测试)
基本路径测试:
循环覆盖测试:
逻辑覆盖测试:
测试阶段
单元测试:模块测试
集成测试:模块衔接测试
确认测试:
内部确认测试
Alpha测试:实验环境,开发环境去测试
Bete测试:用户自身测试
验收测试:用户参与进来,看是否愿意接收这个产品
系统测试:
冒烟测试:可认为是回归测试(基本的确认测试)
语句覆盖和路径覆盖
对下图进行语句覆盖和路径覆盖,分别需要多少个测试案例?
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Aur6KMDx-1604307209621)(E:\md笔记文件\images\image-20201102153706793.png)]
McCabe复杂度计算
V(G) = m - n + 2
将公共点抽象为节点,语句也抽象为节点,再进行计算
系统运行和维护
可维护性:
易分析性:代码容易理解和分析
易改变性:修改代码的难易程度,耦合性问题
稳定性:
易测试性:
维护类型:
改正性维护:和客户沟通,对代码进行修改
适应性维护:对不同平台之间的适应,兼容性
完善性维护:扩充功能,增加性能
预防性维护:现在不维护,可能不会出问题,可是将来可能出现问题(空闲时,对代码模块和文档进行更新) 千年虫问题
软件能力成熟度模型集成(CMMI)
阶段式
一:混乱
二:已管理级(项目级)
三:已定义级(企业级)
四:定量管理级
五:优化级
连续式(更适合国内,弥补不足)
一:过程管理
二:项目管理
三:工程
四:支持
项目管理基础知识
时间计算
Gantt图:不能清晰的表达各任务的依赖关系
PERT图:先计算各个节点的最早开始时间,然后逆推得到所求节点的最晚开始时间
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mheLIHBU-1604307209624)(E:\md笔记文件\images\image-20201102130250080.png)]
风险管理
项目风险:项目成本评估不准
技术风险:采用不熟的技术,或者陈旧的等
商业风险:开展出来的软件市场不需要或不流行
UML
用例图:人和系统内的关系
顺序图:有时间关系
通信图:和顺序图类似,无时间关系
面向对象
面向对象基本概念
泛化:将多个子类的公共部分抽出来,形成一个一个类
消息:对象之间进行交互,异步方式
多重继承:指的是一个类可以同时继承多个父亲的行为和特征功能。比如水上飞机继承了飞机和船的特性。代指可以导致某些令人混淆的情况,所有产生二义性,超类
多态:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ksbLeOSk-1604307209625)(E:\md笔记文件\images\image-20201102160533467.png)]
设计原则
架构定义的任务:定义软件的主要结构元素及其之间的关系
数据库设计任务:确定软件涉及的文件系统的结构及数据库的表结构
详细设计任务:确定软件各个模块内部的算法和数据结构
接口设计任务:描述软件与外部环境之间的交互关系,软件内模块之间的调用关系
设计模式的概念
设计模式的分类
装饰模式:
将一个对象加以包装以提供一些额外的行为
外观模式:
定义一个高层接口,为子系统的一组接口提供一个一致的界面,从而简化子系统的使用
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CplDhV4M-1604307209627)(E:\md笔记文件\images\image-20201102161316740.png)]
创建型模式
结构性模式
行为型模式
具体解题技巧
指针的使用
虚函数
java
数据流图(DFD)
下午设计题的第一个问题 15`
需求分析阶段,结构化模型之中使用频率很高
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vSXGvsLa-1604307209628)(E:\md笔记文件\images\image-20201028192651151.png)]
数据流图基本概念
数据流图的分层
数据字典
数据流图平衡原则
外部实体和加工之间的联系是否有遗漏
顶层和0层之间
加工不可能只有输入或者输出
答题技巧
数据流图案例分析
案例分析一
输出,输入可能出现的问题:黑洞,奇迹,输出流和输出流相同,不可能出现的输入流和输出流
先解决问答题
仔细分析即可
案例分析二
数据库设计
案例分析
缺少的属性:应该包括和其它表的联系属性
准确确定对应关系
规范化理论分析:缺点是数据的冗余,优点是减少了一次连接操作
案例分析二
UML建模
用例图
包含关系:用例必定用到其它用例
扩展关系:用例可能用到其它用例
泛化关系:
类图
填多重度:
泛化:对类
实现:对接口
顺序图
填写对象
填写消息
活动图
状态图
通信图
和顺序图类似,只是时间概念没强调
建模例题
数据结构和算法
希尔排序
字符串
字符串长度是指字符串所含字符的个数,但不包括最后的'\0'
8224.png" alt=“image-20201029143348224” style=“zoom:50%;” />
案例分析二
UML建模
用例图
包含关系:用例必定用到其它用例
扩展关系:用例可能用到其它用例
泛化关系:
类图
填多重度:
泛化:对类
实现:对接口
顺序图
填写对象
填写消息
活动图
状态图
通信图
和顺序图类似,只是时间概念没强调
建模例题
数据结构和算法
希尔排序
字符串
字符串长度是指字符串所含字符的个数,但不包括最后的'\0'