中级软考复习

文章目录

简介

选择题

  • 软件工程基础知识,13分
    开发模型、设计原则、测试方法、质量特性、CMM、Pert图、风险管理

  • 面向对象,11分
    面向对象基本概念、面向对象分析与设计、UML、设计模式

  • 数据结构与算法,9分
    数组、栈、队列、树与二叉树、图、查找与排序、常见算法

  • 程序设计语言,6分
    文法、有限自动机、正规式、语句的作用、语句的语义、程序的控制结构、函数调用的参数传递、各种程序语言的特点比较

  • 计算硬件基础,6分
    浮点数运算、溢出、算术、逻辑运算、计算机体系结构分类、指令系统基础、CISC与RISC、流水线、Cache存储器可靠性分析、校验方法

  • 操作系统,5分
    进程状态转换图、信号量与PV操作、死锁问题、银行家算法、

  • 数据系统,5分

  • 计算机网络,5分

  • 信息安全知识,5分

  • 知识产权与标准化,5分

  • 专业英语,5分

笔试题

前三题是固定题目,多练习历年的试题,熟悉答题规则

  • 数据流图
    给出相应名称 (补充外部实体、补充数据存储、补充加工),补充数据流图的缺失部分(补充数据流),数据流图相关解答题。

  • 数据库设计
    E-R模型、关系模式、增加实体等

  • UML建模
    类图、用例图、活动图、状态图等

  • C语言算法
    分治法、贪心法、动态规划法、回溯法等

  • Java语言程序设计
    Java语法+设计模式

计算机基础

系统设计

1,软件设计的任务是解决怎样做的问题
软件设计包括体系结构设计、接口设计、数据设计和过程设计。
过程设计:系统结构部件转换成软件的过程描述。
结构设计:定义软件系统各主要部件之间的关系。
接口设计(人机界面设计):软件内部、软件和操作系统间以及软件和人之间如何通信。
数据设计:将模型转换成数据结构的定义

2,系统设计的基本任务大体上可以分为概要设计和详细设计
(1)概要设计

  • 总体设计
    按照功能划分模块,确定每个模块的功能,确定模块的调用关系,确定模块之间的接口,评价模块结构的质量。

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

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

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

(2)详细设计
用图形、表格和语言等工具将模块的详细描述出来。
数据库的物理设计。

3,软件设计的原则:高内聚、低耦合
内聚性
偶然聚合,逻辑聚合,时间聚合,过程聚合,通信聚合,顺序聚合,功能聚合

耦合性
非直线耦合:没直接关系,通过模块之间的控制和调用来实现。
数据耦合:两个模块通过数据参数交换信息
标记耦合:模块通过参数表传递记录信息
控制耦合:模块之间传递信息由控制信息
外部耦合:模块都访问同一个全局单变量

系统测试

1,常见的软件测试方法
(1)静态测试:桌前检查、代码走查、代码审查
(2)动态测试
黑盒子测试:等价类划分(有效与无效)、边界值分析、错误推测、因果图。

白盒子测试:语句覆盖、判断覆盖、条件覆盖、条件/判定覆盖、路径覆盖。

2,各阶段测试任务
(1)验收测试:有效性测试、软件配置审查、验收测试
(2)系统测试:恢复测试、安全测试、强度测试、性能测试、可靠测试和安装测试
(3)集成测试:模块之间的接口和通信
(4)单元测试:模块接口、局部数据结构、边界条件、独立路径、错误处理
(5)其他测试:回归测试、负载测试(常压)、压力测试(超负荷)。

测试的基本原则
尽早、不断地进行测试;
程序员避免测试自己设计的程序;
既要选择有效、合理的数据,也要选择无效、不合理的数据;
修改后应进行回归测试;
尚未发现的错误数量与程序已发现错误数成正比;

软件维护

1,更正性维护:针对已经发生的错误进行的维护
2,预防性维护:针对真实存在但未发生的错误进行维护
3,适应性维护:软件适应信息技术变化和管理需求变化做的维护。比如法务部提出的需求。
4,完善性维护:扩充功能和改善性能而进行的修改。

软件质量保证

1,功能性:适合性、准确性、互操作性、安全保密性
2,可靠性:成熟性、容错性、易恢复性
3,易用性:易理解性,易学性、易操作性、吸引性
4,效率性:时间特性、资源利用性
5,维护性:易分析性、稳定性、易测试性、易改变性
6,可移植性:适应性、易安装性、共存性、易替换性

软件文档

1,开发文档(开发人员)
(1)可行性研究和项目任务书
(2)需求规格说明
(3)功能规格说明
(4)设计规格说明(包括程序和数据规格说明)
(5)开发计划
(6)软件集成和测试计划
(7)质量保证计划、标准、进度
(8)安全和测试信息

2,产品文档(用户)
(1)培训手册
(2)参考手册和用户指南
(3)软件支持手册
(4)产品手册和信息广告

3,管理文档(负责人)
(1)开发过程的每个阶段的进度和进度变更记录
(2)软件变更情况的记录
(3)相对于开发的判定记录
(4)职责定义

数据的表示

进制的转换

其他进制转十进制
采用按权法,比如二进制101=1*2^2+1*2^0

十进制转其他进制
采用短除法

二进制和十六进制的转换是4个2进制位等于一个十六进制位

原码,反码,补码,移码

补码适合做运算

  • 原码,反码,补码,移码

原码:最高位是符号位,其余是数值的绝对值,计算机无法通过原码计算
反码:正数与原码一致,负数是绝对值按位取反,符号位不变
补码:正数与原码一致,负数是反码加一
移码:补码的符号位按位取反,注意是符号位,也就是第一位

  • 与原码对比

反码:正数相同,负数按位取反,符号位不变
补码:正数相同,负数按位取反,符号位不变,最后加1
移码:整数绝对值不变,符号位变负数,负数按位取反,最后加1

  • 对比
码制1-1
原码0000 00011000 0001
反码0000 00011111 1110
补码0000 00011111 1111
移码1000 00010111 1111
码制整数小数数码个数
原码-(2^(n-1) - 1) ~ 2^(n-1)-1-(1-2^(-n+1)) ~ 1-2^(-n+1)2^(n-1) - 1
反码-(2^(n-1) - 1) ~ 2^(n-1)-1-(1-2^(-n+1)) ~ 1-2^(-n+1)2^(n-1) - 1
补码-2^(n-1) ~ 2^(n-1)-1-1 ~ 1-2^(n-1)2^n
移码-2^(n-1) ~ 2^(n-1)-1-1 ~ 1-2^(n-1)2^n
  • 对比

整数是绝对值2^(n-1)附近,小数是绝对值1附近

反码表示的范围与原码保持一致,补码表示的范围与移码的保持一致。
数码个数的区别是相差一个,实际上是针对1000这种二进制码的定义问题。

定点整数,1000二进制码表示负零,原码负零的表示没有意义,反码是原码的绝对值的按位取反,所以个数与原码相同相同。补码符号位是1,其他是0的时候,定义一个特殊的意义是-2^n,具有特殊意义,定点整数的正数部分与原码保持一致。移码与补码保持一致,所以数码个数相同。

对于小数而言,如果是1,就变成进位到个位,所以定点小数,补码和移码是将1000这种没有意义的负零定义为-1,所以最后的结果就是小数的负数多了一个-1,小数的正数就与原码保持一致。

题目

1,采用n位补码(包含一个符号位)表示数据,可以直接表示数值()

补码有一个特殊意义的值是负零,等于-2(n-1),最大值与原码相同2(n-1)-1

2,如果“2X”的补码是“90H”,那么x的真实值是()

1,这里需要注意,2X表示十进制2*X,90H表示这个90这个数是十六进制。
2,所以需要先将十六进制的90转换成二进制,十六进制的一位对应二进制的四位,所以等于1001 0000。
3,补码先得到反码,负数需要减去1,所以反码等于:1000 1111。
4,反码得到原码,负数的符号位不变,其他取反,原码等于:1111 0000。
5,原码得到十六进制,注意第一位是符号位,所以有效位是111 0000,得到十六进制70H,转十进制是112,由于符号位是1,所以十进制数最终是-112。x=-56

浮点数

N=尾数*基数^(指数)

尾数:一般是定点小数,一般是补码,尾数的位数决定有效精度
指数:又叫阶码,一般是定点整数,一般是移码,阶码的位数决定了表示的范围

浮点数的计算:对阶(与阶码最大的保持一致)=》尾数计算=》结果格式化

特点:
1,一般尾数用补码,阶码用移码
2、阶码的位数决定数的表示范围,位数越多范围越大
3、尾数的位数决定数的有效精度,位数越多精度越高
4、对阶时,小数向大数看齐
5、对阶是通过较小数的尾数右移实现的

题目

1,浮点数能够表示的数的范围是由其 ( )的位数决定的
A、尾数
B、阶码
C、数符
D、阶符
答案是B。数符是尾数的符号位,阶符是阶码的符号位。

2,以下关于两个浮点数相加运算的叙述中,正确的是 ( )
A、首先进行对阶,阶码大的向阶码小的对齐
B、首先进行对阶,阶码小的向阶码大的对齐
C、不需要对阶,直接将尾数相加
D、不需要对阶,直接将阶码相加
答案是B

3,设16位浮点数,其中阶符1位、阶码值6位、数符1位、尾数8位。若阶码用移码表示,尾数用补码表示,则该浮点数所能表示的数值范围是()
答案是:-2^63 ~ 1-2(-8)263
首先要考虑的是范围由阶码决定的,阶码6位的整数位,最大值是2^6-1=63,最小值是-64,
对于尾数,这里是小数位,最大值是1-2^(-8),最小值是-1。

关系运算符

  • 优先等级:
    !》算术运算符》关系运算符》&&》||》赋值符

  • 关系运算符优先等级:
    普通关系运算符》等于==、不等于!=

  • 逻辑运算符优先等级:
    !》&&》||

  • 逻辑运算符
    逻辑或(|、+、U、V、OR)
    逻辑与 (&&、"、·、n、人、AND)
    逻辑异或(O+ @、XOR):相反是真
    逻辑非(!、 、~、NOT,-)

  • 短路原则:
    当能判断的时候,剩余逻辑不进行运算,比如&&的左边是否,那么结果一定是否,不用运算右边。

题目

1,要判断字长为 16 位的整数 a 的低四位是否全为 0,则()
A、将a与0x000F进行"逻辑与"运算,然后判断运算结果是否等于0
B、将a与0x000F进行"逻辑或"运算,然后判断运算结果是否等于F
C、将a与0x000F进行"逻辑异或"运算,然后判断运算结果是否等于0
D、将a与0x000F 进行"逻辑与"运算,然后判断运算结果是否等于F

答案是A

2,对布尔表达式进行短路求值是指: 无须对表达式中所有操作数或运算符进行计算就可确定表达式的值。对于表达式"a or((c< d)and b)”,( )时可进行短路计算。
A、d为true
B、a为true
C、b为true
D、c为true

答案是B。

校验码

  • 注意
    校验码是针对二进制数准确性校验。
    奇偶校验和CRC循环冗余校验不能纠错。

奇偶校验(个数)

奇偶校验可以检查1位(奇数位)的错误,不可纠错。
奇校验:校验码中1的个数是奇数
偶校验:校验码中1的个数是偶数

以下关于采用一位裔校验方法的叙述中,正确的是 ( )。
A、若所有奇数位出错,则可以检测出该错误但无法纠正错误
B、若所有偶数位出错,则可以检测出该错误并加以纠正
C、若有奇数个数据位出错,则可以检测出该错误但无法纠正错误
D、若有偶数个数据位出错,则可以检测出该错误并加以纠正
答案是c,个数。

CRC循环冗余校验

可检错,不可纠错

  • CRC的编码方法是
    在k位信息码之后拼接r位校验码。

  • CRC码用约定的生成多项式G(X)去除(模二除法)
    如果正确则余数为0;如果某一位出错,则余数不为0。不同的位数出错其余数不同,余数和出错位序号之间有惟一的对应关系。

在()校验方法中,采用模2运算来构造校验位。
A、水平奇偶
B、垂直奇偶
C、海明码
D、循环冗余

海明校验码 - 可检错,也可纠错。

海明校验码的原理是:
在有效信息位中加入几个校验位形成海明码使码距比较均匀地拉大,并把海明码的每个二进制位分配到几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验位的值发生变化,这不但可以发现错误,还能指出错误的位置,为自动纠错提供了依据
2^r >= m+r+1

m是被校验的位数,r是校验位数

校验码位数校验码位置检错纠错校验方式
奇偶校验1头部可检奇数位错不可纠错奇校验:最终1的个数是奇数个;偶校验:偶数个
CRC循环元余校验生成多项式量高次幂决定尾部可检错不可纠错模二除法求余数
海明校验2^r >= m+r+1中间可检错可纠错分组奇偶校验

以下关于海明码的叙述中,正确的是 ()
A、海明码利用奇偶性进行检错和纠错
B、海明码的码距为1
C、海明码可以检错但不能纠错
D、海明码中数据位的长度与校验位的长度必须相同
答案是A

海明码是一种纠错码,其方法是为需要校验的数据位增加若干校验位,使得校验位的值决定于某些被校位的数据,当被校数据出错时,可根据校验位的值的变化找到出错位,从而纠正错误。对于32位的数据,至少需要增加 ()个校验位才能构成海明码
以10位数据为例,其海明码表示D9D8D7D6D5D4P4D3D2D1P3D0P2P1,中,其中D:(0<=i<=9)表示数据位,Pj(0 <j<5)表示校验位,数据位D9由P4、P3和P2进行校验(从右至左D9的位序为14,即等于8+4+2,因此用第8位的P4、第4位的P3,和第2位的P2,校验) ,数据位D5由()进行校验

A.3,B.4,C.5,D.6

A.P4P1,B.P4P2,C.P4P3P1,D.P3P2P1
答案是D(2^6 >= 32+6+1)和B(10=8+2)

CPU的组成 (运算器与控制器)

计算机结构:
输入设备,输出设备,辅助存储器,主存储器,cpu,

辅助存储器又叫外存,也就是硬盘,主存储器是内存,两者合并成存储器。

主机:主存储器,cpu

cpu:运算器、控制器

  • 运算器:与运算相关
    算术逻辑单元ALU: 数据的算术运算和逻辑运算
    累加寄存器AC: 通用寄存器,为ALU提供一个工作区,用在暂存数据
    数据缓冲寄存器DR:写内存时,暂存指令或数据
    状态条件寄存器PSW: 存状态标志与控制标志

  • 控制器:与指令相关
    序计数器PC: 存储下一条要执行指令的地址
    指令寄存器IR: 存储即将执行的指令
    指令译码器ID:对指令中的操作码字段进行分析解释
    时序部件:提供时序控制信号

计算机中提供指令地址的程序计数器PC在( )中。
A、控制器
B、运算器
C、存储器
D、l/0设备
答案是A

CPU执行算术运算或者逻辑运算时,常将源操作数和结果暂存在()中。
A,程序计数器(PC)
B,累加器(AC)
C,指令寄存器(IR)
D,地址寄存器(AR)
答案是B。其他都是与指令相关,属于控制器。

寻址方式

一条指令就是机器语言的一个语句,它是一组有意义的二进制代码,指令的基本格式:操作码字段+地址码字段

寻址方式

  • 立即寻址方式
    特点:操作数直接在指令中,速度快,灵活性差
  • 直接寻址方式
    特点: 指令中存放的是操作数的地址
  • 间接寻址方式
    特点:指令中存放了一个地址,这个地址对应的内容是操作数的地址。
  • 寄存器寻址方式
    特点:寄存器存放操作数
  • 寄存器间接寻址方式
    特点:寄存器内存放的是操作数的地址

在机器指令的地址字段中,直接指出操作数本身的寻址方式称为 ( )
A、隐含寻址
B、寄存器寻址
C、立即寻址
D、直接寻址
答案是C。d是保存地址,不是本身。

指令系统类型CISC、RISC
指令系统类型指令寻址方式实现方式其他
CISC (复杂)数量多,使用频率差别大,可变长格式支持多种微程序控制技术(微码)研制周期长
RISC(精简)数量少,使用频率接近,定长格式,大部分单周期指令,操作寄存器,只有Load/store操作内存支持方式少增加了通用寄存器;硬布线逻辑控制为主;适合采用流水线优化编译,有效支持高级语言

总述:
CISC:复杂,指令数量多,频率差别大,多寻址。
RISC: 精简,指令数量少,操作寄存器,单周期,少寻址,多通用寄存器,流水线。

以下关于RISC (精简指令系统计算机)技术的叙述中错误的是 ()
A、指令长度固定、指令种类尽量少
B、指令功能强大、寻址方式复杂多样
C、增加寄存器数目以减少访存次数
D、用硬布线电路实现指令解码,快速完成指令译码
答案是B。

流水线 - RISC

流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。

  • 相关参数:
    流水线执行时间计算、流水线吞吐率、流水线加速比、流水线效率
时间

单条指令消耗时间 = 取指+分析+执行

流水线周期:执行时间最长的一段。

  • 流水线时间
    理论公式: (t1+t2+..tk)+(n-1)t
    实践公式: k*t+(n-1)*t

理论时间的计算
用最大的时间t乘以指令条数n,然后加上其他的消耗时间。

实践公式的计算
用最大的时间t乘以(指令条数n + 流程个数k-1)

实践公式实际上就是将每个步骤都按照最长的时间执行。

吞吐率

流水线的吞吐率是指在单位时间内流水线所完成的任务数量或输出的结果数量。

  • 基本计算公式:
    TP = 指令条数n/流水线执行时间t

  • 最大吞吐率:当n趋于无限大
    TPmax = 1/t

1,下列关于流水线方式执行指令的叙述中,不正确的是()。
A、流水线方式可提高单条指令的执行速度
B、流水线方式下可同时执行多条指令
C、流水线方式提高了各部件的利用率
D、流水线方式提高了系统的吞吐率
答案是A

2,将一条指令的执行过程分解为取指、分析和执行三步,按照流水方式执行,若取指时间t取指=4t、分析时间t分析=2t、执行时间t执行=3t,则执行完100条指令,需要的时间为 ( )t。
A、200;B、300;C、400;D、405
答案是D(405 = 4*100+3+2)

存储系统

考点:
层次化存储体系、Cache、主存编址计算

层次化存储体系

速度由慢到快:
外存(辅存)=》内存(主存,分随机存储器RAM和只读存储器ROM)=》Cache =》 CPU(寄存器)

系统文件在只读ROM存储器中

层次化存储结构的支撑:局部性原理
1,时间局部性:刚被访问的内容,立即又被访问。
2,空间局部性: 刚被访问的内容,临近的空间很快被访问。

分类
1,存储器位置:内存&外存
2,存取方式:
按照内容存取:相联存储器(Cache)
按地址存取:随机存取(内存),顺序存取(磁带),直接存取(磁盘)
3,工作方式
随机存取器RAM(内存DRAM),掉电丢失
只读存储器ROM (BIOS),掉电保留

DRAM:动态随机存取存储器
SRAM:静态随机存取存储器
Cache:高速缓存
EEPROM: 电可擦可编程只读存储器

CPU访问存储器时,被访问数据一般聚集在一个较小的连续存储区域中若一个存储单元已被访问,则其邻近的存储单元有可能还要被访问,该特性被称为 ()。
A、数据局部性
B、指令局部性
C、空间局部性
D、时间局部性
答案是C

拟存储体系由()两级存储器构成
A、主存-辅存
B、寄存器-Cache
C、寄存器-主存
D、Cache-主存
答案是A。

三级存储器:Cache、主存、辅存

在微机系统中,BIOS(基本输入输出系统)保存在()。
A、主板上的ROM
B、CPU的寄存器
C、主板上的RAM
D、虚拟存储器
答案是A。
主板的构成主要是CPU和主板上的ROM,更接近于主机的概念。

Cache

在计算机的存储系统体系中,Cache是访问速度最快的层次(若有寄存器,则寄存器最快)。解决CPU与主存之间速度容量不匹配问题。

使用Cache改善系统性能的依据是程序的局部性原理。
时间局部性
空间局部性

如果以h代表对Cache的访问命中率,t1表示Cache的周期时间,t2表示主存储器周期时间,以读操作为例,使用“Cache+主存储器”的系统的平均周期为t3,则:
t3=h*t1+(1-h)*t2
简而言之命中则走Cache缓存,不命中就走主存储器, (1-h) 又称为失效率(未命中率)。

cache与主存映射方式:
直接相联(高冲突,电路简单),
全联(低冲突,电路复杂),
组相联(折中)

主存编址计算

内存单元数个数 = 最大地址+1-最小地址
编地址方式:按字;按字节

内存总容量=存储单元个数编址内容
内存总容量=单位芯片容量
芯片片数
芯片片数=内存总容量/单位芯片容量。
单位芯片容量=内容总容量/芯片片数。

输入输出技术

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

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

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

中断

中断处理(CPU无需等待也不必查询I/0状态):
(1)当I/O系统准备好以后,发出中断请求信号通知 CPU;
(2)CPU接到中断请求后,保存正在执行程序的现场(保存现场),打断的程序当前位置即为断点;
(通过中断向量表-保存中断服务程序的入口地址)
(3)转入I/O 中的服务程序的执行,完成I/O系统的数据交换;
(4)返回被打断的程序继续执行 (恢复现场)。

可靠性

串联系统计算:R总=R1*R2...*Rn
并联系统计算:R总=1-(1-R1)(1-R2)..(1-Rn)

N 模混联系统:先将整个系统划分为多个部分串联 R1、R2…等,再计算R1、R2内部的并联可靠性,带入原公式。
可靠性表示:MTTF/(1+MTTF)。

1,失效率计算
比如:假设统一型号的1000台计算机,在规定的条件下工作 1000 小时,其中10台故障其失效率入=10/(10001000)=110-5

2,千小时可靠性计算
千小时可靠性R(t)=1-tA=1-1000(1-10-5)=1-001=099

操作系统位置

  • 外到内:
    应用程序
    语言处理程序
    操作系统
    计算机硬件

嵌入式操作系统

特点:微型化、可定制(针对硬件变化配置)、实时性、可靠性、易移植性(硬件抽象层 HAL和板级支撑包BSP支持)。

初始化过程:片级初始化一板级初始化一系统初始化

线程

同一个进程当中的各个线程,可以共享该进程的各种资源,如内存地址空间、代码、数据、文件等,线程之间的通信与交流非常方便。

对于同一个进程当中的各个线程来说, 他们可以共享该进程的大部分资源。每个线程都有自己独立的CPU 运行上下文和栈,这是不能共享的(程序计数器、寄存器和栈不能共享)。

PV操作

P操作:
S=S-1(申请并锁定资源);
S<(检查资源是否足够)。

V操作:
S=S+1(释放资源);
S<=0(检查是否有进程排队并通知排队进程)。

S信号量:表示资源数,初值即为初始状态无操作时,资源的数量;信号量小于0的时候,还可以表示排队的进程数量。

趋图与PV操作分题技巧

针对箭线标注信号量,箭线的起点位置是V操作(即前趋活动完成后以V 操作通知后继活动);
箭线的终点位置是P操作(即后继活动开始前以P操作检查前趋活动是否完成)。

死锁

  • 四大条件:
    互斥、保持和等待、不剥夺、环路等待。

假设 m 个进程各自需要 w个R 资源,系统中共有n个R 资源,此时不可能形成死锁的条件是
m*(w-1)+l<=n

互斥性:一个资源每次只能被一个进程使用;
请求与保持:一个进程因请求资源而阻塞时,对已获得的资源保持不放;
不剥夺性:进程已获得的资源,在末使用完之前,不能强行剥夺;
循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系;

不死锁条件

为了保证不死锁,那么进程之间就不能出现抢夺资源的情况,也就是至少满足w-1个进程,最后一个进程拿着一个资源,最后一个进程内等待资源,但是进程直接不等待。

页式存储的淘原则

页面淘汰时,主要依据原则(考试中默认按照此原则进行淘汰):
1,先淘汰最近未被访问的(访问位为0),
2,其次多个页面访问位为0时,则淘汰未被修改的(即修改位为0,因为修改后的页面淘汰时代)。

树形目录结构(多级目录结构

绝对路径从根目录开始写起,并且该文件的全名即为绝对路径+文件名。
相对路径从当前位置下一级目录开始写起。

I/0管理软件

  • 从内到外:
    硬件:完成具体的I/O操作
    中断处理程序:I/O完成后唤醒设备驱动程序
    设备驱动程序:设置寄存器,检查设备状态
    设备无关I/O 层:设备名解析、阻塞进程、分配缓冲区
    用户级I/O 层:发出I/O 调用

用户:用户进程=》设备无关I/O 层=》设备驱动程序=》中断处理程=》硬件

I/O应答:硬件=》中断处理程序=》设备驱动程序=》设备无关I/O 层=》用户进程

分布式透明性

  • 分片透明:
    用户不必关心数据是如何分片的即如何分片对用户是透明的。

  • 复制透明:
    用户不用关心数据库在网络中各个结点的复制情况,被复制的数据的更新由系统自动完成。

  • 位置透明:
    用户不必知道所操作的数据放在何处,即数据分配到哪个或哪些站点存储对用户是透明的。

  • 局部映像透明性(逻辑透明):
    用户不必关心局部DBMS支持哪种数据模型、使用哪种数据操纵语言,数据模型和操纵语言的转换是由系统完成的。

数据库

数据库三级模式两级映像

外模式-视图;
模式-基本表;
内模式-文件

外模式-模式映射,保证数据逻辑独立性,即数据的逻辑结构发生变化后,用户程序也可以不修改。只需要修改外模式和概念模式之间的映像。

模式-内模式映射,保证数据物理独立件,即当数据的物理结构发牛改变时,应用程序不用改变,只需要修改概念模式和内模式之间的映像。

数据库设计过程

需求分析阶段产物:数据流图、数据字典、需求说明书
概念设计阶段产物:E-R 模型
逻辑设计阶段产物:关系模式

设计依据:需求分析、E-R 模型、转换原则、规范化理论。 (关系规范化是逻辑设计阶段的任务)

关系模式基本概念

简单属性:是原子的,不可再分的
复合属性:可以细分为更小的部分 (即划分为别的属性)。
单值属性:定义的属性对于一个特定的实体都只有单独的一个值。
多值属性:在某些特定情况下,一个属性可能对应一组值。
NULL 属性:表示无意义或不知道。
派生属性:可以从其他属性得来。
目或度:关系模式中属性的个数。
候选码 (候选键):唯一标示元组的属性集合,可以有多个。
主码(主键):从候选键选择一个。
主属性与非主属性:组成候选码的属性就是主属性,其它的就是非主属性
外码(外键):其他关系模式的主键。
全码(ALL-Key):关系模式的所有属性组是这个关系的候选码。

候选键

选择入度为0(无函数依赖可推导得出的属性人度为 0)的属性集合,从该集合尝试推导出全部属性(可通过传递函数依赖等进行传递推导),如果可以,该集合为候选键,否则,该集合依次添加既有入度也有出度《既可被推导得出也可推导出其他属性) 的中间结点,直到推导出所有属性为止,最终集合即为候选键。

ER图转关系模式转换原则

实体必须单独转换为1个关系模式。

联系根据类型不同:

  • 一对一联系的转换有2种方式
    1.独立的关系模式:并入两端主键及联系自身属性。 (主键:任一端主键)
    2.归并(任意一端):并入另一端主键及联系自身属性。 (主键:保持不变)
  • 一对多联系的转换有2种方式

独立的关系模式:并入两端主键及联系自身属性。 (主键:两端主键的组合键)

关系代数

笛卡尔积X:结果的属性列数是二者之和,结果的元组行数是二者乘积
投影:对垂直方向的属性列进行筛选
选择:对水平方向的元组行进行筛选。
自然连接:结果的属性列数是二者之和减去重复列数,结果元组是同名属性列取值相等的元组。

Amstrong公理体系

A1.自反律(Reflexivity):若YEXSU,则XY 成立。
A2.增广律 (Augmentation):若ZSU 且XY,则XZYZ 成立。
A3.传递律(Transitivity):若X一Y且YZ,则X一Z 成立
合并规则:由X一Y,X一Z,有X一YZ。 (A2,A3)。
伪传递规则:由X一Y,WY-Z,有XW一Z。 (A2,A3)。
分解规则:由X一Y及 ZY,有X-Z。 (A1A3)。

规范化程度判断即范式判定依据

1NF:属性值都是不可分的原子值。 (基本二维表)
2NF:在1NF 基础上,消除了非主属性对候选键的部分函数依赖。(候选键是单属性至少满足2NF)
3NF:在2NF基础上,消除了非主属性对候选键的传递函数依赖。(没有非主属性至少满足3NF)
BCNF:在3NF 基础上,消除了主属性对候选键的部分函数依赖和传递函数依赖。

事务特性(ACID)

原子性、一致性、隔离性、永久性

原子性 A:事务是原子的,要么都做,要么都不做。
一致性 C:事务执行的结果必须保证数据库从一个一致性状态变到另一个一致性的状态。
隔离性 I:事务相互隔离,当多个事务并发执行时,任一事务的更新操作直到其成功提交的整个过程,对其他事务都是不可见的。
持续性 D:一旦事务成功提交,即使数据库崩溃,其对数据库的更新操作也将永久有效。

封锁协议

共享锁 (S 锁、读锁):若事务T对数据对象A添加了只读锁S,则只允许T读取A,但不能修改A。并且其他事务只能对A加只读S锁,不能加写入锁X。

排他锁 (X锁、写锁、独占锁):若事务T对数据对象A添加了X锁,则只允许T读取和修改A,其他事务不能再对A加任何锁。

OSI七层

物理层(二进制传输)=》数据链路层(网桥、交换机、网卡)=》网络层(三层交换机、路由器)=》传输层(TCP、UDP)=》会话层=》表示层(数据的格式)=》应用层(具体应用)

TCP/IP

TCP的应用层 = OSI的三个层组合(应用层、表示层、回话层)

常见协议

加密算法

  • 加密的类型
    对称加密:加密和解密都是用同一个秘钥。
    非对称加密:私钥加密公钥解密或者公钥加密私钥解密。
    单向加密:不可逆性,用于产生消息摘要,密钥加密。

  • 对称加密
    优点:对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。
    缺点:对称加密算法的缺点是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户 每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的 钥匙数量巨大,密钥管理成为双方的负担。

  • 非对称加密
    发送方用对方的公钥加密,可以保证数据的机密性(公钥加密),公钥加密算法很少用来加密数据,速度太慢,通常用来实现身份验证。发送方用自己的私钥加密,可以实现身份验证(数字签名)。
    RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的;既可以实现加密,又可以实现签名。
    DSA:数字签名算法,是一种标准的DSS(数字签名标准)
    ECC:椭圆曲线密码编码

  • 单向加密
    1,输入一样,输出必然相同
    2,雪崩效应,输入的微小改变,将会引起结果的巨大变化
    3,定长输出,无论原始数据多大,结果大小都是相同的
    4,不可逆,无法根据特征码还原原来的数据
    MD5:相同的明文产生相同的密文
    SHA(SecureHashAlgorithm):可以对任意长度的数据运算生成一个160位的数值。其变种由SHA192,SHA256,SHA384 等
    CRC-32:主要用于提供校验功能

常见对称密钥加密算法(共享密钥加密技术):
DES、3DES(三重 DES)、 RC-5、IDEA、AES算法。

常见非对称密钥加密算法 (公开密钥加密技术):
RSA、ECC。

常见的摘要算法:
MD5(128 位),SHA(160 位)。

加密技术应用

数字信封:用接收方公钥加密使用的对称密钥。
数字签名:用发送方私钥签名,保证发送方身份真实性,发送者不可抵赖。与信息摘要结合,可防篡改。
信息摘要:单向散列值函数,防篡改,保证消息完整性。
效字证书
数字证书的内容包括:CA 签名、用户信息 (用户名称) 、用户公等。
证书中的 CA签名验证数字证书的可靠性、验证网站真伪。
用户公钥:客户端利用证书中的公钥加密,服务器利用自己的私钥解密

网络安全

HTTPS:是HTTP协议与SSL协议的结合,默认端口号443。
PGP:是邮件安全协议。
SET:是电子商务安全协议,涉及电子交易安全。
SSH:为建立在应用层基础上的安全协议。SSH是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。

网络防御

防火墙技术
防外不防内,对于DMZ非军事区主要放置应用服务器(如邮件服务器,WEB 服务端。

漏洞扫描
入侵者可以利用系统漏洞侵入系统,系统管理员可以通过漏洞扫描技术,及时了解系统存在的安全问题,并采取相应措施来提高系统的安全性。

入侵检测IDS
根据攻击者行为和模式库记录的行为进行模式匹配,对攻击行为报警。

软件开发模型

(1) 瀑布模型
容易理解,管理成本低,每个阶段都有对应的成果产物,各个阶段有明显的界限划分和顺序要求,一旦发生错误,整个项目推倒重新开始。
适用于需求明确的项目,一般表述为需求明确、或二次开发,或者对于数据处理类型的项目

(2)V模型
强调测试贯穿项目始终,而不是集中在测试阶段。是一种测试的开发模型。

(3) 喷泉模型
以用户需求为动力,以对象为驱动,适合于面向对象的开发方法。
特点是迭代、无间隙。

(4)原型模型
典型的原型开发方法模型。适用于需求不明确的场景,可以帮助用户明确需求。

(5)增量模型
可以有多个可用版本的发布,核心功能往往最先完成,在此基础上,每轮迭代会有新的增量发布,核心功能可以得到充分测试。强调每一个增量均发布一个可操作的产品。

(6)旋模型
典型特点是引入风险分析。结合了瀑布模型和演化模型的优点,最主要的特点在于加入了风险分析。它是由制定计划、风险分析、实施工程、客户评估这一循环组成的,它最初从概念项目开始第一个螺旋。

敏捷开发

敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。
适用于小团队和小项目,具有小步快跑的思想。

极限编程

极限编程是一种轻量级的开发方法。

  • 四大价值观
    沟通、简单、反馈、勇气

  • 五大原则
    快速反馈、简单性假设、逐步修改、提倡更改、优质工作

  • 十二个最佳实践
    计划游戏、隐喻、小型发布、简单设计、测试先行、重构、结对编程、集体代码所有制、持续集成、每周工作40小时、现场客户和编码标准

  • 名词解释
    计划游戏:快速制定计划、随着细节的不断变化而完善
    小型发布:系统的设计要能够尽可能早地交付
    隐喻:找到合适的比喻传达信息。
    简单设计:只处理当前的需求,使设计保持简单。
    测试先行:先写测试代码,然后再编写程序。
    重构:重新审视需求和设计,重新明确地描述它们以符合新的和现有的需求结对编程。
    集体代码所有制。
    持续集成:可以按日甚至按小时为客户提供可运行的版本。
    每周工作40小时。
    现场顾客:系统最终用户代表应该全程配合XP团队。
    编码标准。

开发方法

  • 结构化开发方法
    用户至上,严格区分工作阶段,每阶段有任务和结果,强调系统开发过程的整体性和全局性,系统开发过程工程化,文档资料标准化,自顶向下,逐步求精。

  • 原型开发方法
    适用于需求不明确的情况。

  • 面向对象开发方法
    更好的复用性,关键在于建立一个全面、合理、统一的模型,分析、设计实现三个阶段界限不明确。

结构化设计任务

  • 体系结构设计
    定义软件系统各主要部件之间的关系。
    数据设计
    基于E-R图确定软件涉及的文件系统的结构及数据库的表结构。
    接口设计 (人机界面设计)
    软件内部,软件和操作系统间以及软件和人之间如何通信。
    过程设计
    系统结构部件转换成软件的过程描述。确定软件各个组成部分内的算法及内部数据结构,并选定某种过程的表达形式来描述各种算法。

模块设计原则

保持模块的大小适中。
尽可能减少调用的深度。
多扇入,少扇出。
单入口,单出口。
模块的作用域应该在模块之内。
功能应该是可预测的。

质量

测试分类

(1)测试
桌前检查、代码走查、代码审查。
(2)动测试
黑盒测试
等价类划分(确定无效与有效等价类,设计用例尽可能多的覆盖有效类,设计用例只覆盖一个无效类)、边界值分析(处理边界情况时最容易出错,选取的测试数据应该恰好等于、稍小于或稍大于边界错误推测、因果图。值)、
白盒测试:语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖、路径覆盖。

白盒子
定义特点
语句覆盖被测试程序中的每条语句至少执行一次对执行逻辑覆盖很低,一般认为是很弱的逻辑覆盖。
判定覆盖(分支覆盖)被测程序每个判定表达式至少获得一次“真”值和“假”值(或者程序中每一个判定取“真”分支和取“假分支至少通过一次。)判定覆盖比语句覆盖更强些。
条件覆盖每一个判定语句中每个逻辑条件的各种可能的值至少满足一次。判定可以是 1个条件,也可以是多个条件的组合。
判断/条件覆盖判定中每个条件的所有可能取值(真假)至少出现一次,并使每个判定本身的判定结果(真/假)也至少出现一次。条件覆盖和判断覆盖没有包含关系。
条件组合覆盖每个判定中的各种可能值的组合都至少出现一次。同时满足判定覆盖和条件覆盖
路径覆盖覆盖被测试程序中所有可能的路。同时满足判定覆盖、条件覆盖、判定/条件覆盖。
基本路径测试每一条独立路径都执行过(即程序中可执行语句至少执行一次)测试用例个数与环路复杂度一致。判定为关键控制结点,必须出现在基本路径中。
循环覆盖循环中每个条件都得到验证。注意数组参数可循环验证
特殊的测试阶段及任务

验收测试:有效性测试、软件配置审查、验收测试。
系统测试:恢复测试、安全性测试、强度测试、性能测试、可靠性测试和安装测试。
集成测试:模块间的接口和通信。
单元测试:模块接口、局部数据结构、边界条件、独立的路径、错误处理。
回归测试:修改软件后进行的测试,防止引入新的错误。
负载测试:对软件负载能力的测试。
压力测试:对软件超负荷条件下运行情况的测试。

McCabe 复杂度计算

McCabe 复杂度计算公式:V(G)=m-n+2,其中 m 是有向弧的条数,n 是结点数。对于伪代码可以先转换为程序流程图,对程序流程图可以最终转换为结点图处理,转换时注意将交点的地方标注为新的结点,以最终的结点图带入公式结算其McCabe 复杂度

维护

更正性维护:针对真实存在并已经发生的错误进行的维护行为。
预防性维护:针对真实存在但还未发生的错误进行的维护。
适应性维护:指使应用软件适应信息技术变化和管理需求变化而进行的修改。企业的外部市场环境和管理需求的不断变化也使得各级管理人员不断提出新的信息需求完善性维护:扩充功能和改善性能而进行的修改。对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征

沟通路径

有主程序员:n个成员小组,1个主程序员,普通程序员只需要与主程序员沟通。沟通路径:n-
无主程序员:n个成员的项目小组,相互之间都可以沟通。沟通路径:n(n-1)/2。

质量属性与其依从属性

功能性:适合性、准确性、互操作性、安全保密性。
可靠性:成熟性、容错性、易恢复性
易用性:易理解性、易学性、易操作性。
效率:时间特性、资源利用性。
维护性:易分析性、稳定性、易测试性、易改变性
可移植性:适应性、易安装性、一致性、易替换性。

CMMI(能力成熟度模型集成)阶段式

初始的:过程不可预测且缺乏控制。
已管理的:过程为项目服务
已定义的:过程为组织服务。
定量管理的:过程已度量和控制。
优化的:集中于过程改进。

PERT图

关键路径是图中源点至汇点的最长路径,关键路径的时间称之为项目工期,也表述为项目完成所需的最少时间。
总时差:在不延误总工期的前提下,该活动的机动时间。一般在图中,以最晚结束时间减去最早结束时间求取,或以最晚开始时间减去最早开始时间求取。

风险管理

1,风险的特性:具有不确定性,可能会造成损失
2,风险的类别:
项目风险(预算、进度、人员、资源、客户),技术风险,商业风险(市场),社会风险(政策、法规)
3,风险暴露:风险曝光度=错误出现概率*错误造成损失

数据流图

  • 数据流常见的3种错误
    黑洞:加工只有输入没有输出;
    奇迹:加工只有输出没有输入;
    灰洞:加工中输入不足以产生输出。

  • 子图与父图保持平衡
    父图与子图之间平衡是指任何一张DFD子图边界上的输入/输出数据流必须与其父图对应加工的输入/输出数据了保持一致。如果父图中某个加工的一条数据流对应于子图中的几条数据流,而子图中组成这些数据流的数据项全体正好等于父图中的这条数据流,那么它们仍然是平衡的。

面向对象

面向对象基础

面向对象:对象+分类+继承+通过消息的通信。

对象:属性(数据)+方法(操作)+对象ID。

封装:隐藏对象的属性和实现细节,仅对外公开接口(信息隐藏技术)

类(实体类/控制类/边界类):对对象的抽象。

接口:一种特殊的类,他只有方法定义没有实现。

继承与泛化:复用机制

消息和消息通信:对象之进行通信的一种构造叫做消息。消息是异步通信的。

重置/覆盖:在子类中重新定义父类中已经定义的方法

重载:一个类可以有多个同名而参数类型不同的方法。

动态绑定:根据接收对象的具体情况将请求的操作与实现的方法进行连接(运行时绑定)

多态:不同对象收到同样的消息产生不同的结果 (软设一般只涉及过载多态-同一个名字在不同的上下文中所代表的含义不同)。

面向对象设计原则

单一职责原则:设计目的单一的类。

开放-封闭原则:对扩展开放,对修改封闭。

李氏 (Liskov) 替换原则:子类可以替换父类。

依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程。

接口隔离原则:使用多个专门的接口比使用单一的总接口要好。

组合重用原则:要尽量使用组合,而不是继承关系达到重用目的。

迪米特 (Demeter)原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解。

重用发布等价原则:重用的粒度就是发布的粒度

共同封闭原则:包中的所有类对于同一性质的变化应该是共同封闭的。一个变化若对一个包产生影响,则将对该包里的所有类产生影响,而对于其他的包不造成任何影响。

共同重用原则:一个包里的所有类应该是共同重用的。如果重用了包里的一个类,那么就要重用包中的所有类。

无环依赖原则:在包的依赖关系图中不允许存在环,即包之间的结构必须是一个直接的无环图

稳定依赖原则:朝着稳定的方向进行依赖。

稳定抽象原则:包的抽象程度应该和其稳定程度一致。

UML

分类

  • 结构图
    类图
    对象图
    包图
    组合结构图
    构件图
    部署图
    制品图

  • 行为图
    用例图
    顺序图
    通信图
    定时图
    状态图
    活动图
    交互概览图

类图关系

依赖关系:一个事物发生变化影响另一个事物。
泛化关系:特殊/一般关系。
关联关系:描述了一组链,链是对象之间的连接
聚合关系:整体与部分生命周期不同。
组合关系:整体与部分生命周期相同。
实现关系:接口与类之间的关系。

用例关系

包含关系:其中这个提取出来的公共用例称为抽象用例,而把原始用例称为基本用例或基础用例系,当可以从两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示它们。
扩展关系:如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,这样使描述可能更加清晰。泛化关系:当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。在用例的泛化关系中,子用例是父用例的一种特殊形式子用例继承了父用例所有的结构、行为和关系

设计模式

创建型结构型行为型
对象
对象
对象
对象
对象
对象
对象

adapter
factory method
工厂方法模式
适配器模式(类和
t顿m存plate method
模板方法模式
interpreter
解释器模式

abstract factory
抽象工厂模式
prototype
原型模式
singleton
单例模式
builder
构建器模式
bridge
桥接模式
composite
组合模式
decorator
装饰模式
facade
外观模式
flyweight
chain ofresponsibility
职责链模式
command
命令模式
iterator
迭代器模式
mediator
中介者模式
m鼾简博皑哀胞呆扳阿并爱ento
备忘录模式
observer
观察者模式
state
状态模式
strategy
策略模式
visitor
享元模式
访问者模式
proxy
代理模式

软件开发模型

1,瀑布模型
软件生命周期各个活动线性划分为若干阶段,每个阶段包含需求分析,设计,编码,运行与维护。虽然每个阶段都有对应的产物,一旦发生错误,整个项目推到重新开始。
瀑布模型适用于开发周期需求变动比较小的场景。

2,V模型
测试贯穿项目,一直都是测试阶段

3,喷泉模型
面向对象的模型,迭代无间隙,各阶段没有明显的界限

4,原型模型
原型开发方法模型,适用于需求不明确的场景,帮助用户明确需求。

5,增量模型
融合瀑布模型和原型模型,核心功能优先开发,每轮迭代会有新的增量发布

6,螺旋模型
引入风险分析,由制定计划、风险分析、实施工程、客户评估组成。

7,统一过程
用例驱动、以架构为中心、迭代和增量。
构思阶段=》细化阶段=》构建阶段=》移交阶段

8,敏捷开发
以人为核心,迭代、循序渐进的开发方法,小步快跑的特点。
常见的开发方法有极限编程法、水晶法、并列争球法和自适应软件开发方法。

水晶法:人对软件质量有重要影响,随着人员的质量提高,项目的质量也提高。

并列争球法:把30天一次迭代称为冲刺周期,按照需求的优先级实现产品。

系统分析

1,需求分析的任务是解决什么问题
2,需求分类:
(1),功能需求:考虑系统要做什么,在何时做,在何时以如何修改或升级
(2),非功能需求:考虑软件开发的技术性指标,例如存储容量限制、执行速度、响应时间及吞吐率等。
(3),设计约束:例如操作系统限制、开发语言限制等。
3,需求分析工具:判定表、判定树、数据流图和数据字典。
4,需求分析的产物有:需求规格说明书(SRS)。

数据结构

特殊树

平衡二叉树:任意节点的左右子树高度差不超过1
查找二叉树:又称为顺序二叉树,任意节点的权值,大于左边孩子的节点,小于右边孩子节点。
最优二叉树:又称为哈弗曼树,带权路径长度最短树。

遍历

前序:根=》左=》右
后序:左=》右=》根
中序:左=》根=》右
层次遍历:按照层次顺序遍历

完全图

在无向图中,每个节点都有一条边相连
在有向图中,每个节点都有两个有向边相互连接

图的表示方式
R(ij) = 1 :表示有邻边
R(ij) = 0 :表示没有邻边

    0 1 1 0 0 :表示1与1连接是,1和2、3连接是,1和/5连接是0
    1 0 1 0 0
R = 1 1 0 1 1
    0 0 1 0 1
    0 0 1 1 0

链的表示:
V1 -- 2|6 -- 4|1 -- 6|60:表示的是V1连接V2的有向权值是6,V1连接V4的有向权值是1,V1连接V6的有向权值是60;注意并不是1指向2,然后2指向4

知识产权与标准化

知识产权

法律法规保护对象事项
软件著作权法软件著作权不需要申请
计算机软件保护条例软件作品不需要申请
专利法专利权需要申请
商标法商标权需要申请
反不正当竞争法商业秘密权包括技术和经营,必须有保密措施才能定义商业秘密

标准化

标准化分类

1,国际标准:ISO、IEC
2,国家标准:GB-中国、ANSI-美国、BS-英国、JIS-日本
3,区域标准:PASC-太平洋地区标准会议、CEN-欧洲标准委员会、ASAC-亚洲标准咨询委员会、ARSO-非洲地区标准化组织
4,行业标准:GJB-中国军用标准、MIT-S-美国军用标准、IEEE-美国电气电子工程师协会

标准化代号

中国国家的标准代号:GB、GB/T、GB/Z、GSB

考试

数据流图

基础知识

箭头:数据流,表示数据的流向
圆圈和长方形圆:加工,描述输入数据流到输出数据流之间的变换
两横杠:数据存储
长方形:外部实体

  • 注意
    数据流只有两个情况没有名字:
    1,流向数据存储,2,从数据存储流出的数据流

  • 流程图有两个场景
    1,每个业务属于独立的,或者图不好画一块
    2,业务可以实现串联动作的,这个时候就可以实现数据流的连贯性,比如下载批改作业、批改作业、上传批改作业和获取批改作业

出题规律

  • 题目一,考察第一个数据流图的外部实体
    第一个数据流图往往是人机交互,所有业务都在一个项目中,也就是系统,数据流图是系统和人业务。

  • 题目二,考察第二个数据流图的数据存储
    第二个数据流图,主要是细化的业务数据流图,所有的加工都是一种动作,比如提交**、上传**、记录**、获取**

  • 题目三,考察第二个数据流缺失的数据流,起点和终点(外部实体或者存储)
    技巧是根据题目的业务,检查是否有缺失的业务点

  • 题目四,添加加工或者分解加工
    通常是数据流修改成数据流到达存储

对加工进行分解,注意加工后的数据流其实就是加工的主要数据,加工流入的数据流就是加工的起点,而加工后发送的地方就是终点。

答题技巧

总结:
1,第一次阅读的时候,筛选出题目中的外部实体和存储。2,做一、二道题就从实体和存储中去匹配。
3,仔细阅读题目,对于每个业务流程,一定会来输入流和输出流。

  • 题目一(外部实体)
    E1:学生。E2:讲师

  • 题目二(外部实体)
    D1:作业表。D2:学生表。D3:讲师表
    方式方法:
    存储的名字尽量从题目中挖掘。

  • 题目三(需要注意数据流一定是名词,起点通常是动词,终点也是名词)
    (1)数据流名称:通知。起点:提交作业。终点:E1。
    (2)数据流名称:抽检报告。起点:作业抽检。终点:E2。
    (3)数据流名称:题目。起点:D1。终点:2(显示并接收解答)
    方式方法:
    题目的每个业务都是要有起点和终点,所以一般缺少的就是起点或者终点,然后再补充对应的数据流。

  • 题目四(增加外部实体、分解加工)
    增加外部实体:
    增加外部实体“第三方E-mail系统”,将原来的两条“通知”数据流合并成一条“通知”数据流,终点为“第三方E-mail系统”
    分解加工:
    分解为:创建通知数据,发送通知给学生或老师
    数据流名称:通知数据。起点:创建通知数据。终点:发送通知给学生或老师。
    (原来图加工出去的数据流是通知,终点是学生和老师)
    方式方法:
    1,一般一个回答是1分或者2分,如果6分推算到了四个回答,说明应该是差两回答
    2,通常需要结合实际来思考,有些逻辑不写在题目中,比如采购会对库存和原材料的数量影响。
    3,如果是问存在的问题,那也是考察缺失的部分。

填空技巧

1,补充外部实体
人物角色:客户、管理员、主管、经理、老师、学生
组织机构:银行、供应商、募捐机构
外部系统:银行系统、工资系统、后台数据库

2,补充存储
**文件、**表、**库、**清单、**档案基本上是考察存储

3,补充加工名
生成报告,发出通知,批改作业,记录分数,物流跟踪,用户管理

4,补充数据流或者分解加工
先按照说明补充好所有的加工,然后检查图中的每个加工,是否存在只有入没有出或者没有入只有出的情况。
注意补充数据流并不是对现有的数据流进行命名,而是添加没有的数据流。

如果新增一个实体,写法“新增外部实体”

对加工进行分解,注意加工后的数据流其实就是加工的主要数据,加工流入的数据流就是加工的起点,而加工后发送的地方就是终点。

主观题分析

  • 数据字典
    x=3:x被定义为3
    x=a+b:x由a和b组成
    x=[a,b],x=[a|b]:x由a或b组成
    x={a}:x由0个或多个a组成
    x=(a):a可在x中出现

  • 数据流图
    黑洞:只有输入没有输出
    奇迹:只有输出没有输入
    灰洞:输入不足以产生输出

  • 对加工进行结构化描述
    选择结构一般用IF-THEN-ELSE-ENDIF、CASE-OF-ENDCASE
    重复结构一般用DO-WHILE-ENDDO、REPEAT-UNTIL

数据库

数据库的考察需要注意一对一,一对多,多对多关系,
另外需要注意外键的关联关系

题目

1,补充图中的关联的对象和联系类型
2,补充空缺(逻辑结构设计)
3,实体店增加上门服务,对图进行补充,并修改关系模式
4,给出“消息”和“阅读公告”关系模式的主键和外键

答题技巧

1,关联对象和联系类型
考察的是两个实体集间的联系,
分为一对一,一对多,多对多

例题:
答:配送员-配送-地点 多对多联系

如果是画图题,就需要按照题目给的关系画图

2,补充空缺(逻辑结构设计)
注意补充的可能不是一个

例题答案:
(a)商品数量,仓库信息;
(b)商品条码,订单ID。

3,对图进行补充,并修改关系模式
对图进行补充,考察的是补充的位置,在哪两个两个之间进行补充。
修改关系模式,考察的是修改逻辑结构设计

例题答案:
在营业员与订单之间增加联系“送货上门”,
并将联系记录于订单关系中,即在订单关系中增加属性“营业员id”作为外键。

4,给出“消息”和“阅读公告”关系模式的主键和外键

答案:
消息的主键:(编号,接收人);外键:接收人,发送人。
阅读公告的主键:(员工号,公告编号);外键:员工号,公告编号。

uml

uml图主要是描述行为和属性

单向箭头:类和属性的包含关系,箭头指向是属性(user和address)
直线:双向关联,也就是相互是对方的属性(student和teacher)
箭头指向自己:属性包括自己(Node节点)

聚合(实线空心菱形):弱拥有has-a关系,比如外面平台和外面员,成员对象可以脱离存在
组合(实线实心菱形):contains-a的关系,一旦整体对象不存在,部分也不存在,比如森林和树木

依赖(虚线箭头):依赖,a依赖b,a中方法必然是调用了b的方法
泛化(实线空心箭头):继承,
接口的实现(虚线空心箭头):实现

题目

1,根据说明中的描述,给出U1~U6所对应的用例名

2,用例U1~U6分别与哪个用例之间有关系,是何种关系

3,根据说明中的描述,给出图中C1~C5所对应的类名。

答题技巧

1,根据说明中的描述,给出U1~U6所对应的用例名
用例补充题,考察的是题目的阅读,根据题目中的信息就能推测出用例的名字。

2,用例U1~U6分别与哪个用例之间有关系,是何种关系
UML用例的关系包括三种:包含,扩展和泛化
对应是是组成,实现,继承

机器人的两种运行模式,属于继承关系,也就是泛化

手动操作机器人的多种动作,每个都是独立可选动作,是机器人的功能扩展,即扩展关系。

3,根据说明中的描述,给出图中C1~C5所对应的类名。
这里首先从题目中寻找相近的用例,然后根据单向和双向包含关系,以及组成关系来判断

流程图

判定,进程,数据,终结符

流程图的缺点
(1) 程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构
(2) 程序流程图中用箭头代表控制流,因此程序员不受约束,可以完全不顾结构程序设计的精神随意转移控制。
(3) 程序流程图不易表示数据结构

算法

属于c语言题目

面向对象

手写代码

main方法

public static void main(String[] args){
    
}

一般类都是要由空入参的构造方法和get、set方法

调用本地方法用this,调用父类方法用super

抽象类abstract,接口interface

异常Exception,捕捉异常最后加一个finally,异常的抛出用throw,对应方法需要加throws

常量用final

设计模式

java的考察一般是设计模式,所以抽象类或者接口类的考察就比较多。
另外需要注意的是,父类的私有属性,子类无法调用,必须用protect。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值