软考-软件设计师复习笔记
记录自己软件设计师的考试路线
第二颗大白菜
每天写点什么,不是为了得到一些什么,也不是向谁证明一些什么,更不是为了存在感,而是让自己知道每天都做了些什么。
展开
-
【复习】软件设计师之数据结构与算法基础
1.常用数据结构: 数组(静态数组,动态数组) 线性表 链表(单向链表,双向链表,循环链表) 队列 栈树(二叉树,查找树,平衡树,线索树,堆) 图 hash(存储地址计算,冲突处理)2.常用算法 i:排序算法,查找算法,数值计算法,字符串处理方法,数据压缩算法,递归算法,图的相算法 ii:算法与数据结构的关系,算法效率,算法设计,算法描述(流程图,伪化码,次策表),算法的复杂性基本数据结构图1.0...原创 2018-04-09 08:16:08 · 3568 阅读 · 0 评论 -
【复习】软件设计师之论:面向对象思想
面向对象 = 类 + 继承 + 对象 + 消息通信 对象:是系统中用来描述客观事物的一个实体,他是构成系统的一个基本单位 对象有三要素:对象标志,属性和服务 封装:是对象的一个重要原则。 它有两层含义: 第一:对象是其全部属性和全部服务紧密结合而形成的一个不可分割的整体; 第二:对象是一个不透明的黑盒子,表示对象状态的数据和实现操作的仪码都封装在黑盒子里面。 类:对具有相同属性和...原创 2018-04-19 19:44:01 · 2776 阅读 · 0 评论 -
****** 一 ******、软设笔记【数据结构】-线性表、栈、队列、串
一、线性表 1.线性表定义: 线性表是n个元素的有限序列,通常记为(a1,a2,...,an). 特点: *存在唯一的表头和表尾 *除了表头外,表中的每一个元素均只有唯一的直接前驱。 *除了表尾外,表中的每一个元素均只有唯一的直接后继。 2.线性的存储结构 (1)顺序存储 是用一组地址连续...原创 2018-05-08 08:07:09 · 2094 阅读 · 0 评论 -
****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
五、KMP算法: *KMP算法是一种改进的字符串匹配算法。 *KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是实现一个next()函数,函数本身包含了模式串的局部匹配信息。 例如:在BBC ABCDAB ABCDABCDABDE中找到ABCDABD KMP算法的想法是,利用已经知道的前面六个字符“ABCDAB”,不要把...原创 2018-05-09 09:22:17 · 2365 阅读 · 0 评论 -
****** 三 ******、软设笔记【数据结构】-图、图的遍历、拓扑排序
一、图 图G是由两个集合V和E构成的二元组,记作G+(V,E),其中V是图中顶点的非空有限集合,E是图中边的有限集合。 *有向图:图G中的每条边都是有方向的,顶点间的关系用<vi,vj>表示; *无向图:图G中的每条边都是无方向的;顶点间的关系用<vi,vj>表示; *完全图:图G任意两个顶点都有一条边相连接; ...原创 2018-05-10 08:40:09 · 2353 阅读 · 0 评论 -
****** 四 ******、软设笔记【数据结构】-排序、插入排序、选择排序
一、排序 将一组杂乱无章的数据按一定的规律次序排列起来。 排序的目的是什么? *便于查找! 排序算法的好坏如何衡量? *时间效率--排序速度(即排序所花费的全部比较次数) *空间效率--占内存辅助空间的大小 *稳定性--若两个记录A和B的关键字值相等,但排序后A、B的先后次序保持不变,则称这种排序算法是稳定的。 *内部...原创 2018-05-11 08:09:28 · 2277 阅读 · 0 评论 -
****** 五 ******、软设笔记【数据结构】-交换排序、归并排序
四、交换排序 交换排序的基本思想是两两比较待排序记录的关键码,如果发生逆序(排序顺序与排序后的次序相反),则交换之,直到所有记录都排好序为止。 交换排序的主要算法有: 1)冒泡排序 2)快速排序 (1)冒泡排序 基本思路:每趟不断将记录两两比较,并按“前小后大”(或“前大后小”)规则交换。 *第一趟:第一个与第二个比较,大则交换;第二个与第三个比较,大则交换,......关键字最大的记录交...原创 2018-05-11 17:45:11 · 2494 阅读 · 0 评论 -
****** 六 ******、软设笔记【数据结构】-查找、静态查找表,哈希表
一、查找 给定一个值K,在含有n个记录的文件中进行搜索,寻找一个关键字等于K的记录,如找到则输出该记录,否则输出查找不成功的信息。 1.查找算法的优劣 用比较次数的平均数来评估算法的优劣,称为平均查找长度ASL.二,静态查找表 静态查找表的查找算法主要有: 1.顺序查找(线性查找) 2.折半查找(二分或对分查找) 3.分块查找(索引顺序查找) 1.顺序查找 用逐一比较的办法顺序查找关键字。...原创 2018-05-11 17:58:34 · 2308 阅读 · 0 评论 -
****** 七 ******、软设笔记【程序语言设计】-基本概念、编译程序
一、程序设计语言基本概念 1.低级语言和高级语言 (1)低级语言 机器语言和汇编语言称为低级语言。 *机器语言指0、1组成的机器指令序列 *汇编语言指用符号表示指令的语言 MOV AX,2 MOV BX,3 ADD AX,BX (2)高级语言 高级语言是从人类的逻辑思维角度出发、面向各类应用的程序语言,抽象程度大大提高,需要编译成特定机器上的目标代码才能执行。...原创 2018-05-11 18:02:07 · 2448 阅读 · 0 评论 -
****** 八 ******、软设笔记【程序语言设计】-语法分析、语义分析...、程序语言的控制
*初始状态*终止状态(接收状态):*后继状态:有限状态机在读入一个字符时,其状态改变为另一状态,则改变后的状态被称为后继状态。如果有限状态机每次装换后的状态是唯一的则称之为确定有限状态自动机(DFA);如果转换后的后继状态不是唯一的则称之为不确定有限自动机(NFA)2.语法分析阶段 语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,按语法规则分析检...原创 2018-05-11 18:21:57 · 2689 阅读 · 0 评论 -
****** 九 ******、软设笔记【操作系统】-处理机管理(一)-死锁
操作系统功能、类型和层次结构 一、操作系统定义 操作 系统是直接控制和管理计算机硬件、软件资源、合理地对各类作用进行调度,以方便用户使用的程序集合。 四、操作系统分类 *批处理操作系统 *分时操作系统 *实时操作系统 *网络操作系统 *分布式操作系统 五、操作系统的功能 *处理机管理功能 *存储器管理功能 *设备管理功能 *文件管理功能 *用户接口 OS定义:OS是直...原创 2018-05-12 11:10:14 · 2538 阅读 · 0 评论 -
****** 十 ******、软设笔记【操作系统】-处理机管理(二)-死锁
操作系统-处理机管理 一、死锁 是指多个进程在运行过程中因争夺资源而造成的一种僵局,当进程处于这种状态时,若无外力作用,它们都将无法再向前推进。 1.产生死锁的原因 (1)竞争资源 当系统中供多个进程共享的资源如打印机、公用队列等,其数目不足以满足诸进程的需要时,会引起诸进程对资源的竞争而产生死锁。 (2)进程间推进顺序非法 进程在运行过程中,请求和释放资源的顺序不当,也同...原创 2018-05-12 11:13:27 · 2336 阅读 · 0 评论 -
******十一 ******、软设笔记【操作系统】-存储管理
存储管理 存储管理主要是指对内存的管理,负责内存分配和回收,内存的保护和扩充。 *存储管理和目的是尽量提高内存的使用效率。 内存的分配方式有两种 *连续的分配方式 指为一个用户程序分配一个连续的内存空间。 (1)单一连续分配 (2)固定分区分配 (3)动态分区分配 为把一个新作业装入内存,需要按照一定的分配算法,从空闲分区表或空闲分区链猴子那个选出一个分区分配给该作业。 ...原创 2018-05-12 11:15:44 · 2458 阅读 · 0 评论 -
******十二 ******、软设笔记【操作系统】-设备管理
计算机系统的一个重要组成部分是I/O系统。I/O系统包括: *输入、输出设备 *存储功能的设备 *设备控制器一、设备管理的概念 设备管理程序提供下述功能 *提供和进程管理系统的接口 *进行设备分配 *实现设备和设备之间、设备和CPU之间的并行操作 *进行缓冲区管理。二、I/O控制方式 (1)程序I/O方式 (2)中断控制I/O方式 (3)直接存储器访问(DMA)方式 (4)I/O通道控制...原创 2018-05-12 11:16:40 · 2861 阅读 · 0 评论 -
******十三 ******、软设笔记【操作系统】-磁盘管理、虚设备与SPOOLing系统
五、磁盘管理 1.磁盘的访问时间 *寻道时间Ts:把磁臂从当前位置移到指定磁道上所经历的时间 *选择延迟时间Tr:指定扇区移动到磁头下面所经历的时间。 *传输时间Tt:数据从磁盘读出或向磁盘写入数据所经历的时间 在访问时间中,寻道时间和旋转延迟时间,通常是占据了访问时间的大头。适当地集中数据(不要太零散)传输,将有利于提高传输效率。 2.磁盘调度算法 *先来先服务 根据进程请求访问磁...原创 2018-05-12 11:17:45 · 2934 阅读 · 0 评论 -
******十四 ******、软设笔记【操作系统】-文件和文件系统
文件管理 一、文件和文件系统 文件是指具有文件名的若干相关元素的集合。 *现代OS中通过文件系统来组织和管理计算机中存储的数据; *文件系统包括两个方面 >负责管理文件的系统软件 >被管理的对象--文件 文件的结构: 文件存在以下两种形式的结构: *文件的逻辑结构。从用户观点出发所观察到的文件组织形式,是用户可以直接处理的数据及其结构,它独立于文件的物理特性,...原创 2018-05-12 11:20:08 · 2657 阅读 · 0 评论 -
******十五 ******、软设笔记【操作系统】-作业管理
作业管理 一、作业状态 一个批处理型作业,从进入系统并驻留在外存的后备队列上开始,直至作业运行完毕,要经历提交、后备、执行和完成4个状态。 二、处理机调度 1.高级调度(High Scheduling) 也称为作业调度,是指在后备队列中选择一个或给作业,为它们建立进程,分配必要的资源,使它们能够运行。 *在批处理系统中,因作业进入系统后驻留在外存,故需要有作业调度。 *在分时系统中...原创 2018-05-12 11:23:37 · 2397 阅读 · 0 评论 -
******十六 ******、软设笔记【软件工程】-软件生命周期、软件开发模型
软件生命周期与软件开发模型 一、软件危机与软件工程 1.软件危机 2.软件工程 软件工程是将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即将工程化应用于软件。 软件工程方法学包括三个要素:方法、工具和过程。 二、软件生命周期 是指软件的产生直到报废的生命周期,包括:问题定义、可行性分析、需求分析、总体设计、详细设计、编码、测试、运行维护等阶段。 三、软件开发模型...原创 2018-05-12 11:26:34 · 2608 阅读 · 0 评论 -
******十七 ******、软设笔记【软件工程】-软件开发方法
软件开发方法 一、结构化分析和设计 1.结构化分析(SA) 一种面向数据流的需求分析方法,利用图像表达用户需求,常用工具有数据流图、数据字典。 (1)数据流图(DFD) 用来描述数据从输入到输出的变换流程。 *DFD不同于程序流程图。 *DFD可以表现大到整个系统,小到一个模块 *分层数据流图 (2)数据字典(DD) 对软件中的每个数据规定一个定义条目,...原创 2018-05-12 11:27:07 · 2335 阅读 · 0 评论 -
******十八 ******、软设笔记【软件工程】-软件测试基础、准则、分类、阶段
软件测试 软件测试是指在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。 *软件的正确性证明尚未得到根本的解决,软件测试仍是发现软件错误和缺陷的主要手段。 一、软件测试基础 测试用例是由测试数据和预期结果构成的。 *为了发现程序中的错误,应竭力设计能暴露错误的测试用例 *好的测试用例是发现至今为止尚未发现的错误。 *一次成功的测试是发现了至...原创 2018-05-12 11:27:48 · 2781 阅读 · 0 评论 -
******十九 ******、软设笔记【软件工程】-软件测试类型、软件维护
五、测试的类型 软件测试分为两大类:动态测试和静态测试。 1.动态测试: 动态测试指通过运行程序发现错误,分为: *黑盒测试法 黑盒测试又称为功能测试或数据驱动测试。把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。 ...原创 2018-05-13 21:29:28 · 2489 阅读 · 0 评论 -
****** 二十 ******、软设笔记【软件工程】-软件质量保证、特性、模型
项目质量: 一、软件质量保证 软件质量是“软件与明确的和隐含的定义的需求相一致的程度”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件狗应具有的隐含特征的程度。 软件质量具有如下3个要点: (1)用户需求是度量软件质量的基础。 (2)指定的标准定义了一组指导软件开发...原创 2018-05-13 21:30:57 · 2733 阅读 · 0 评论 -
****** 二十一 ******、软设笔记【软件工程】-项目管理-软件项目管理、项目估算、风险管理、项目计划编排方法与技术
项目管理: 一、项目管理内容 *进度管理 *范围管理 *采购管理 *风险管理 *沟通管理 *人力资源管理 *整体管理 *质量管理 *费用管理 二、软件项目估算 估算的内容包括: *软件规模的估算 *软件工...原创 2018-05-13 21:31:40 · 2838 阅读 · 0 评论 -
****** 二十二 ******、软设笔记【数据库】-基础知识-四个基础概念、三级模式、三个级别
基础知识 四个基础概念 *数据(Data) 是数据库中存储的基本对象,是描述事物的符号记录 数据的种类: 文本、图形、图像、音频、视频、学生的档案记录、货物的运输情况等。 *数据库(Database) 数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。 ...原创 2018-05-13 21:32:27 · 2689 阅读 · 0 评论 -
****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
数据操作 一、 常用的关系操作 *查询:选择、投影、连接、除、并、交、差 *数据更新:插入、删除、修改 查询的表达能力是其中的最主要的部分 *传统的集合运算是二目运算,包括并、交、差、广义笛卡尔积 *专门的关系运算包括:选择、投影、连接、除4种运算。 (1)并 具有相同的目n(两个关系都...原创 2018-05-13 21:33:06 · 2673 阅读 · 0 评论 -
****** 二十四 ******、软设笔记【数据库】-数据模型-关系模型、基本概念、规范化理论、范式
数据模型 一、关系模型 在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。 用表格结构表达实体集,用外键(外码)表示实体间的联系。 *优点: >建立在严格的数学概念基础上 >概念单一,结构简单、清晰,用户易懂易用 >存取路径对用户透明,从而数据独立性...原创 2018-05-13 21:33:48 · 2281 阅读 · 0 评论 -
****** 二十五 ******、软设笔记【数据库】-数据库语言-数据定义、数据查询
数据库语言 SQL是结构化查询语言(Structured Query Language)的缩写,其功能包括数据查询、数据操纵、数据定义和数据控制四个部分。 *SQL语言简洁、方便实用、功能齐全,已成为目前应用最广的关系数据库语言。 *SQL既是自含式语言(联机交互),又是嵌入式语言(宿主语言) 基本概念 *基本表(BASE TABLE):是独立存在的表,不是由...原创 2018-05-13 21:34:17 · 2037 阅读 · 0 评论 -
****** 二十六 ******、软设笔记【数据库】-数据库控制功能-并发控制、备份和恢复技术
数据库的控制功能 DBMS的基本工作单位是事务。 事务是用户定义的一个数据库操作序列,这些操作序列要么全做要么全部不做,是一个不可分割的工作单位。 事务具有以下特性(ACID特性) (1)原子性(atomicity) (2)一致性(consistency) (3)隔离性(isolati...原创 2018-05-13 21:34:56 · 2729 阅读 · 0 评论 -
****** 二十七 ******、软设笔记【数据库】-数据仓库与数据挖掘
数据仓库与数据挖掘 一、数据仓库 *是一个用以更好的支持企业(或组织)决策分析处理的、面向主题的、集成的、不可更新的(相对稳定的)、随时间不断变化的数据集合。 *本质上和数据库一样,是长期储存在计算机内的、有组织的、可共享的数据集合。 二、数据仓库的基本特征 *数据仓库的数据是面向主题的; *数据仓库的数据是集成的; ...原创 2018-05-13 21:35:57 · 2990 阅读 · 0 评论 -
****** 二十八 ******、软设笔记【数据库】-分布式数据库、特点、数据存储、DBMS组成
分布式数据库 一、分布式数据库 分布式数据库由一组数据组成,这些数据物理上分布在计算机网络的不同结点(场地)上,逻辑上是属于同一个系统。每个结点可以执行局部应用,也能通过网络通信子系统执行全局应用。 二、分布式数据库系统的特点 1.数据独立性 2.集中与自治相结合的控制结构 3.适当增加数据冗余度 4.全局的一致性、...原创 2018-05-13 21:36:34 · 3425 阅读 · 0 评论 -
****** 二十九 ******、软设笔记【计算机体系结构】-机内代码及运算
机内代码及运算 一。数的进制 *十进制 *二进制 *八进制 *十进制 二、进制的转换 1.十进制转二进制 把被转换的十进数整数反复地除以2,直到商为0,所得的余数(从末位读起)就是这个数的二进制表示。简称“除2取余法”。 2.二进制转十进制 方法是:二级制数按权展开求...原创 2018-05-14 14:00:13 · 2748 阅读 · 0 评论 -
****** 三十 ******、软设笔记【计算机体系结构】-循环冗余校验码(CRC)
循环冗余校验码(CRC) 广泛地在网络通信及磁盘存储时采用。 1.多项式 在循环冗余校验(CRC)码中,无一例外地要提到多项式的概念。一个二进制数可以以一个多项式来表示。如1011表示为多项式X3 + X1 + X0 ,如果把这里的X替换为2,这个多项式的值就是该数的值。从这个转换可以看出多项式最高幂次为n,则转换为二进制有n+1位, 2.编码组成 编码的组成是由K为信息码,加上R...原创 2018-05-14 14:01:09 · 2703 阅读 · 0 评论 -
****** 三十一 ******、软设笔记【计算机体系结构】-中央处理器
中央处理器 一、计算机的组成 计算机硬件由五大部件构成:控制器、运算器、存储器、输入设备和输出设备。 (1)运算器 也称为算术逻辑单元(ALU),对数据进行算术运算和逻辑运算。 *加法器(累加器) 专门存放算术或逻辑运算的操作数和运算结果的寄存器。 *程序状态寄存器 PSW用来存放两类信息:一类是体现当前指令执行结果的各种状态信息,如有无进位(CY位),有无溢位(OV位...原创 2018-05-14 14:02:15 · 2242 阅读 · 0 评论 -
****** 三十二 ******、软设笔记【计算机体系结构】-流水线技术
流水线技术 流水线技术是指在程序执行时,多条指令重叠进行操作的一种任务分解技术。把一个任务分解为若干顺序执行的子任务,不同的子任务由不同的执行机构来负责执行,而这些执行机构可以同时并行工作。 (1)计算执行时间 假定有某种类型的任务,可以分为N个子任务,每个子任务需要时间t,则完成该任务所需的时间为N x t。 *若以传统的方式,完成k个任务需要的时间是kNt。 *使用流水线技术,花费的时间...原创 2018-05-14 14:02:50 · 2796 阅读 · 0 评论 -
****** 三十三 ******、软设笔记【存储器系统】-主存储器、辅存储器
存储器系统 主存储器 存储器是计算机系统中的记忆设备,用来存放程序和数据。 计算机中全部的信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。 存储器分为: *寄存器 *Cache(高速缓冲存储器) *主存储器 *辅存储器 一、存储器的存取方式 存取方式 读/写装置 数据块标志 访问特性 代表 1、顺序存取 共享读/写装置 ...原创 2018-05-14 14:03:37 · 3437 阅读 · 0 评论 -
****** 三十四 ******、软设笔记【存储器系统】-Cache存储器
Cache存储器 Cache(高速缓冲存储器) 高速缓冲存储器是位于主存与CPU之间的一级存储器,有静态存储芯片(SRAM)组成,容量比较小,速度比主存高得多,接近于CPU的速度,单位成本比内存高。Cache存储了频繁访问内存的数据。 (1)Cache原理、命中率、失效率 使用Cache改善系统性能的主要依据是程序的局部性原理。 命中率、失效率 Cache的访问命中率为h(通常1...原创 2018-05-14 14:04:16 · 2565 阅读 · 0 评论 -
****** 三十五 ******、软设笔记【网络基础】-安全性、可靠性与系统性能评测-数据安全与保密
数据安全与保密 一、加密体系 按照加密秘钥和解密密钥的异同,有两种密钥体制: *对称密码体制 *非对称密码体制 1、对称密码体制 对称密码体制又称为秘密密钥体制(私密密码体制),加密和解密采用相同的密钥(或者可以通过一个推导出另一个)。 优点:加密速度快,通常用来加密大批量的数据。 缺点:需要管理的密码多。 常见的对称密钥技术 *DES:是一种迭代的分组密码,输入...原创 2018-05-14 14:05:24 · 2977 阅读 · 0 评论 -
****** 三十六 ******、软设笔记【网络基础】-安全性、可靠性与系统性能评测-容错技术
容错技术 提高计算机可靠性的技术可以分为避错技术和容错技术 *避错是指预防好避免系统在运行中出错。 *容错就是当计算机由于种种原因在系统中出现了数据、文件损坏或丢失时,系统能够自动将这些损坏或丢失的文件和数据恢复到发送事故以前的状态,是系统能够连续正常地运行。 一、冗余技术 实现容错的主要手段就是冗余。冗余是指所有对于实现系统规定功能来说是多余的那部分的资源。主要的冗余技术包括: *结构...原创 2018-05-14 14:05:52 · 3502 阅读 · 0 评论 -
****** 三十七 ******、软设笔记【网络基础】-网络分类、组成-计算机网络定义、分类、组成
网络分类、组成 一、计算机网络定义 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。 二、计算机网络的分类 按传输距离分为 *局域网(LAN)一般分布在几米到几公里范围 *城域网(MAN)一般分布在几公里到几十公里或一个城区。 *广域网(WAN)一...原创 2018-05-14 14:06:20 · 2887 阅读 · 0 评论 -
****** 三十八 ******、软设笔记【网络基础】-网络设备
网络设备 一、网卡(NIC) 又称为网络适配器。用于计算机和网络电缆之间的物理连接。 网卡完成物理层和数据链路层的大部分功能。 每块网卡都有一个唯一的地址,称为MAC地址或物理地址,采用十六进制数表示,共六个字节(48位)。前三个字节是厂家编码,后三个字节由各厂家自行指派。 二、中继器(Repeater) 是工作在物理层设备。适用于完全相同的两类网络的互连,主要功能是通过对数据信号的复制、...原创 2018-05-14 14:06:46 · 3165 阅读 · 0 评论