冠县做网站推广,网站开发第三方支付,微擎微信管理系统,阜阳公司网站建设目录
计算机网络概论
计算机系统基础知识
中央处理单元
数据表示
校验码
计算机体系结构
计算机体系结构的发展
存储系统
输入/输出技术
安全性、可靠性与系统性能评测基础知识
加密技术和认证技术
计算机可靠性
程序设计语言基础知识
程序设计语言概述
程序设计…目录
计算机网络概论
计算机系统基础知识
中央处理单元
数据表示
校验码
计算机体系结构
计算机体系结构的发展
存储系统
输入/输出技术
安全性、可靠性与系统性能评测基础知识
加密技术和认证技术
计算机可靠性
程序设计语言基础知识
程序设计语言概述
程序设计语言的基本概念
语言处理程序基础
编译程序基本原理
解释程序基本原理
数据结构
线性结构
栈和队列
树
二叉树的性质与存储结构
二叉树的遍历
最优二叉树
图
图的定义与存储
拓扑排序和关键路径
排序
简单排序
快速排序
堆排序
归并排序
操作系统知识
进程管理
进程间的通信
进程调度
死锁
存储管理
分页存储管理
段页式存储管理
虚拟存储管理
设备管理
I/O软件
磁盘调度
文件管理
文件的结构和组织
存取方法和存储空间的管理
软件工程基础知识
软件工程概述
软件过程
软件过程模型
演化模型
敏捷开发方法Scrum
系统测试
系统测试与调试
传统软件的测试策略
测试方法
运行和维护知识
系统维护概述
软件项目管理
风险管理
软件质量
软件质量特性
考点补充
结构化开发方法
系统分析与设计概要
系统设计的基本原理
系统总体结构设计
结构化分析方法
数据流图
数据字典
WebApp分析与设计
WebApp设计
面向对象技术
面向对象基础
面向对象的基础概念
面向对象分析
面向对象设计
UML
UML中的图
设计模式
结构型设计模式
行为设计模型
考点补充
算法设计与分析
动态规划法
动态规划法的基本思想
贪心法
贪心法的基本思想
数据库技术基础
基本概念
数据库的三级模式结构
数据模型
E-R模型
关系代数
5种基本的关系代数运算
关系数据库的规范化
规范化
数据库的控制功能
事务管理
网络与信息安全基础知识
网络互连硬件
网络的传输介质
网络的协议与标准 Internet及应用
Internet地址
Internet服务
网络安全概述
考点补充
标准化和软件知识产权基础知识
知识产权基础知识
计算机软件著作权
专利权概述
商标权考点
补充考点
三层C/S结构
高质量的软件
高质量文档
图像扫描仪
下午题
第三题UML建模
第四题算法题
分治法递归
动态规划法
回溯法
第六题Java语言程序设计 计算机网络概论
计算机系统基础知识
中央处理单元
CPU中央处理单元的组成部件运算器、控制器、寄存器组和内部总线
数据表示
补码
在补码表示中最高位为符号位0表示正号1表示负号正数的补码与反码都与原码相同负数的补码等于其补码的末位1
A-BAB的补码通过这个公式可以把减法运算转化为加法运算从而不必单独设计运算器的减法逻辑
浮点数N2^E*F,E称为阶码决定数值范围F称为尾数决定数值精度
校验码
海明码利用奇偶性进行检错和纠错 数据位为校验位为满足2^k-1nk校验位Pi在2^(i-1)被校验的海明码下标校验位的下标和码距最小为2n1循环冗余校验码左边为信息码(数据)右边为校验码 校验码由信息码产生校验码位数越多校验能力越强采用的是模2运算
计算机体系结构
计算机体系结构的发展
指令集发展的两种途径 指令系统类型 指令 寻址方式 实现方式 其他 CISC复杂指令集 数量多使用频率差别大可变长格式 支持多种 微程序控制技术微码 研制周期长 RISC精简指令集 数量少使用频率接近定长格式大部分为单周期指令操作寄存器只有少部分store/load操作内存 支持方式少 增加通用寄存器硬布线逻辑控制为主适合采用流水线 使用频率较高的指令是设计重点以提高执行速度
存储系统
高速缓存cache存放主存的部分拷贝信息判断CPU访问的信息是否在cache中如果命中直接访问如果未命中将要访问的信息进行替换。目的提高CPU访问主存数据或指令的效率存储器类别
DRAM动态随机存取储器最为常见的系统内存电容存储信息因电容存在自放电数据需周期性刷新
SRAM静态随机存取寄存器晶体管存储信息
EPROM可擦除可编程只读存储器晶体管存储信息
EEPROM电可擦可编程只读存储器晶体管存储信息
输入/输出技术
直接程序控制外设数据的输入输出过程是在CPU执行程序的控制下完成的中断方式当IO系统与外设交换数据时CPU无需等待也不必查询IO的状态而可以抽身出来处理其他任务。CPU与外设可并行操作 数据传输过程中需要由CPU通过执行程序来实现限制了数据的传送速度DMAdirect memory access,直接内存存取是指数据在内存与IO设备间的直接成块传送即内存与IO设备间传送一个数据块的过程中不需要CPU的任何干涉只需要CPU在过程开始启动与过程结束时的处理实际操作由DMA硬件直接执行完成CPU在此传送过程中可做其他事情 外设与CPU可并行工作数据传输过程不需要CPU干预
安全性、可靠性与系统性能评测基础知识
加密技术和认证技术
数据加密技术分为两类对称加密私人密钥加密如DES算法非对称加密公开密钥加密如RSA算法X509数字证书标准推荐使用的密码算法是RSA国密SM2数字证书采用的公钥密码算法是ECC基于椭圆曲线的公钥密码算法数字时间戳服务能提供电子文件的日期和时间信息的安全保护。在报文中添加时间戳可以防止重放攻击口令认证基于用户所知道的秘密而进行认证简单易于实现但口令认证只认口令而不考虑其他因素监听、盗用、攻击等因此安全性较低
计算机可靠性
可靠性从它开始运行到某时刻这段时间内能正常运行的概率串联系统RR1*R2*....*RN, 并联系统R1-(1-R1)(1-R2)*...*(1-RN)
程序设计语言基础知识
程序设计语言概述
程序设计语言的基本概念
对于大多数通用程序设计语言用上下文无关文法描述其语法即可高级程序语言划分按照程序执行角度 编译类程序设计语言如C、C、java等先编译成机器语言再由机器运行机器码二进制执行效率较高解释类程序设计语言如python、JS等不需要编译每执行一次就翻译一次执行效率比较低脚本类程序设计语言是一种解释性语言由解释器解释运行如python、JS等标记语言常用于描述格式化和链接
语言处理程序基础
编译程序基本原理
编译程序的功能是将高级语言书写的源程序翻译成与之等价的目标程序。编译程序的工作过程分为6个阶段词法分析-》语法分析-》语义分析-》中间代码生成-》代码优化-》目标代码生成。语法分析的输入是记号流构造出语法树判断输入串的语法是否正确。语法分析中递归子程序分析属于“自上而下”的分析法自顶而下的语法分析法是一种自顶向下的构建语法树的方法它从源程序的起始符号开始通过递归调用子程序不断展开非终结符号直到最终得到一课语法树中间代码的后缀式逆波兰式把运算符写在运算对象的后面如x:(ab)*(cd),其后缀式为xabcd*:。优点是根据运算对象和运算符的出现次序进行计算不需要使用括号也便于用栈实现求值有限自动机状态转换图中每个状态对应图中的一个结点每个转换函数对应图中的一条有向弧中间代码将高级语言源程序通过编译或解释方式进行翻译时可以先生成与源程序等价的某种中间代码 常用的中间代码有后缀式、三地址码、三元式、四元式和树等形式中间代码和具体机器无关使用中间代码有利于进行与机器无关的优化处理和提高编译程序的可移植性可以将不同高级程序语言翻译成同种中间代码中间代码可以跨平台
解释程序基本原理
解释程序不产生源程序的目标程序这是它和编译程序的主要区别。在词法、语法和语义分析方面与编译程序的工作原理基本相同但是在运行用户程序时它直接执行源程序或源程序的中间表示形式高级语言编译与解释方式的比较 效率编译比解释方式的效率更高。运行程序时解释程序需要反复扫描源程序如每一次引用变量都要进行类型检查甚至需要重新进行存储分配从而降低了程序的运行速度编译程序生成源程序的目标代码编译一次就可以多次运行运行效率更高灵活性解释方式比编译方式更灵活。由于解释程序需要反复检查源程序当解释器直接运行源程序时”在运行中”修改程序就成为可能另外当解释器直接在源程序上工作时它可以对错误进行更准确的定位可移植性解释方式比编译方式的可移植性更好。解释器是边解释边执行只要有相应的解释器解释程序就可以运行在各种系统上可移植性好编译器是先翻译后执行它对源程序进行编译的结果是可以直接在电脑上运行的机器码但该机器码可在这种操作系统下运行不能在另一种操作系统下运行要想移植需要该源代码并使用不同的编译器因此编译器的可移植性更差
数据结构
线性结构
栈和队列
栈帧用来存储执行被调用函数的一段专用空间调用者通过实参向被调用函数传递参数被调用函数通过形参来接收调用者传递过来的实参然后在函数体内执行各种操作。被调用函数执行完毕后应该知道返回到哪里因此栈帧中应包含形参变量、局部变量、返回地址。其中全局变量是指整体程序都可使用的变量因此全局变量定义在函数体外所以在栈帧中无需包括全局变量
树
二叉树的性质与存储结构
二叉树的性质 第i层最多有2^(i-1)个结点高度为k的二叉树最多有2^k-1个结点任何一个二叉树n0n21n个结点的完全二叉树深度为logn1不同类型二叉树的定义和特点 满二叉树完全二叉树且没有度为1的结点线索二叉树在遍历过程中记录结点的前驱和后继结点最优二叉树哈夫曼树带权路径长度最短的树二叉排序树左子树的结点平衡二叉树左子树和右子树的高度差绝对值不超过1
二叉树的遍历
先序遍历访问根节点先序遍历左子树、先序遍历右子树中序遍历中序遍历左子树根节点中序遍历右子树后序遍历后序遍历左子树后序遍历右子树根节点
最优二叉树
哈夫曼编码让电文中出现次数较多的字符采用尽可能短的编码那么电文码串总长度可减少。构造最优二叉树的哈夫曼方法 选择权值最小的两个结点构建一棵二叉树根节点的权值为左右子树结点权值之和递归执行将树中每个结点的左分支标上0右分支标记1叶子节点的字符编码为从根节点到叶子节点的路径上0、1组成的字符串
图
图的定义与存储
图的基本存储结构有邻接矩阵表示法和邻接链表表示法 邻接矩阵表示法用一个矩阵表示图中顶点之间的关系具有n个顶点的图其邻接矩阵是一个n阶方阵邻接链表表示法为图中的每个顶点建立一个单链表第i个单链表的结点表示依附于顶点vi的边有向图中是以vi为尾的弧
拓扑排序和关键路径
关键路径从源点到汇点的路径中长度最长的路径。关键路径上的所有活动都是关键活动如果任何一项关键活动没有按期完成就会影响整个工程的进度顶点事件的最早发生时间ve(j)max{ve(i)dut}顶点事件的最晚发生时间Vl(i)min{v(j)-dut}
排序
简单排序
插入排序:待排序元素与有序子数组比较找到合适位置插入 时间复杂度O(n*n)最好情况正序时间复杂度O(n)最坏情况逆序时间复杂度O(n*n)辅助空间O(1)稳定的排序方法冒泡排序相邻元素两两比较若为逆序则交换顺序 时间复杂度O(n*n)最好情况正序时间复杂度O(n)最坏情况逆序时间复杂度O(n*n)辅助空间O(1)稳定的排序方法简单选择排序从所有还没有比较的数据中选择一个最小的与当前元素比较如果比当前元素小则进行交换。 时间复杂度O(n*n)最好情况正序时间复杂度O(n*n)最坏情况逆序时间复杂度O(n*n)辅助空间O(1)不稳定的排序方法
快速排序
快速排序时间复杂度O(n*logn)最好情况正序时间复杂度O(n*n)最坏情况逆序时间复杂度O(n*n)辅助空间O(logn)不稳定的排序方法
堆排序
堆排序待排序数组构建完全二叉树不断地将最大的孩子结点换到根节点所有子树交换完最大的一个在根节点。将根节点与最后一个元素交换最后一个节点断开二叉树关联时间复杂度O(n*logn)最好情况正序时间复杂度O(n*logn)最坏情况逆序时间复杂度O(n*logn)辅助空间O(1)不稳定的排序方法
归并排序
归并排序时间复杂度O(n*logn)最好情况正序时间复杂度O(n*logn)最坏情况逆序时间复杂度O(n*logn)辅助空间O(n)
稳定的排序方法
操作系统知识
进程管理
进程间的通信
PV操作是实现进程同步与互斥的常用方法。P表示申请一个资源V表示释放一个资源在进程执行前执行P操作进程执行后执行V操作。信号量S的物理意义S0表示资源可用数S
进程调度
进程调度方式是指当有更高优先级的进程到来时如何分配CPU。调度方式分为可剥夺和不可剥夺两种 可剥夺方式当有更高优先级的进程到来时强行将正在运行进程的CPU分配给高优先级的进程不可剥夺方式当有更高优先级的进程到来时必须等待正在运行进程自动释放占用的CPU然后将CPU分配给高优先级的进程
死锁
设某系统中有3个并发进程都需要4个同类资源该系统不会发生死锁的最少资源数量每个进程分配3个资源再额外加1个资源保证其中一个进程可运行资源释放后再执行其他进程3*3110
存储管理
分页存储管理
计算机系统的页面有两部分组成页号和页内地址0-11位业内地址每页大小为2^124K12-31位为页号 逻辑地址为页号页内地址物理地址为块号页内地址 段页式存储管理
段页式存储系统的结构如下则系统最多可有1024个段每个段最大允许有1024个页页的大小为4K 虚拟存储管理
页面置换算法 最佳置换算法在最长时间内不再被访问的页面置换出去先进先出置换算法选择在主存中驻留时间最久的页面置换出去最近最少未使用置换算法每个页面设置一个访问字段用于记录这个页面自上次被访问以来所经历的时间T选择T最大的页面进行置换最近未用置换算法主存中的页面设置一个访问位所有页面连接成一个循环队列选择一个页面置换时若访问位为1则重置为0检查下一个页面若为0则置换
设备管理
I/O软件
I/O软件隐藏了I/O操作实现的细节使得用户通过抽象的I/O命令就可使用I/O设备方便用户使用
磁盘调度
磁盘的访问时间包括三个部分一是磁头从原先位置移动到目的磁道所需要的时间称为寻道时间二是在到达目的磁道后等待被访问的记录块旋转到磁头下方的时间称为旋转延迟或旋转到达时间三是信息的传输时间含读写时间磁盘调度分为移臂调度和旋转调度两类并且是先进行移臂调度然后再进行旋转调度磁盘调度算法 最短寻道时间优先要求访问的磁道与当前磁头所在的磁道距离最近使得每次的寻道时间最短
文件管理
文件的结构和组织
文件系统采用多级索引结构文件长度计算 存取方法和存储空间的管理
位示图某文件管理系统在磁盘上建立了位示图记录磁盘的使用情况。若系统的字长为32位磁盘的物理块依次编号为0、1、2..... 4096号物理块的使用情况在位示图中的第***个字中描述。分析系统的字长为32位可以记录32个物理块的使用情况则位示图中的第1个字描述0-31号物理块的使用情况第2个字描述32-63号物理块4096在位示图的第129个字中描述若磁盘的容量为200GB物理块的大小为1MB则位示图的大小为**个字。分析磁盘有200*1024204800个物理块故位示图的大小为204800/326400个字
软件工程基础知识
软件工程概述
软件过程
软件过程能力成熟度模型(CMM)研究的目的是提供一种评价软件承接能力的方法同时它可帮助软件组织改进其软件过程。将软件过程改进分为5个成熟等级 1级初始级过程无序进度、预算、功能和质量等不可预测2级可重复级软件过程制度化可重复3级已定义级过程实现标准化4级已管理级过程的定量化5级优化级过程可自发的不断改进防止同类问题二次出现
软件过程模型
演化模型
演化模型特别适用于对软件需求缺乏准确认识的情况典型的演化模型有原型模型和螺旋模型原型模型比较适合于用户需求不清、需求经常变化的情况当系统规模不是很大也不太复杂时采用该方法比较好螺旋模型特别适用于庞大、复杂并且具有高风险的系统
敏捷开发方法Scrum
三个工作product backlog、sprint backlog、product increment product backlog(产品待办事项)产品经理需要完成的主要工作列表sprint backlog冲刺待办事项团队从产品代办事项中选择出来的冲刺事项product increment(增量 或 冲刺目标)团队对“已完成”、里程碑、冲刺目标的定义
五个事件sprint、sprint planning、daily scrum、sprint review、sprint retrospective sprint planning(冲刺规划)明确冲刺交付物及如何实现sprint(冲刺)团队共同完成冲刺目标的实际时间段daily scrum(每日简短例会)昨天做了什么、今天计划做什么、是否遇到障碍sprint review冲刺审查冲刺结束时团队非正式会议一起演示增量或检查增量sprint retrospective(冲刺回顾)团队一起讨论哪些工作进展顺利、哪些工作有待改进
系统测试
系统测试与调试
测试设计与测试用例在需求分析阶段完成撰写
传统软件的测试策略
有效的软件测试实际上分为4步进行单元测试、集成测试、确认测试、系统测试 单元测试侧重于模块中的内部处理逻辑和数据结构集成测试把模块按系统说明书的要求组合起来进行测试目标是利用已通过单元测试的构件建立设计中描述的程序结构旨在发现与接口相关的错误的测试确认测试集中于用户可见的动作和用户可识别的系统输出系统测试将已经确认的软件、硬件、外设和网络等其他因素结合在一起进行信息系统的各种集成测试和确认测试目的是通过与系统的需求相比较发现所开发的系统与用户需求不符或矛盾的地方
测试方法
白盒测试 白盒测试常用的技术是逻辑覆盖、循环覆盖和基本路径覆盖逻辑覆盖考察用测试数据运行被测程序时对程序逻辑的覆盖程度主要的逻辑覆盖标准有语句覆盖、判定覆盖、条件覆盖、路径覆盖 语句覆盖被测试程序中的每条语句至少执行一次对程序执行逻辑的覆盖很低判定覆盖被测程序中的每个判定表达式至少获得一次真值和假值条件覆盖每个判定语句中每个逻辑条件的各种可能的值至少满足一次路径覆盖覆盖被测程序中所有可能的路径对程序执行逻辑的覆盖很高覆盖路径给流程图的所有结点标号统计不同路径mccabe度量法统计环路复杂度M(边)-N(顶点)2封闭区间1
运行和维护知识
系统维护概述
软件维护是在软件已经交付使用之后为了改正错误或满足新的需求而修改软件的过程 提高软件可维护性是开发软件系统所有步骤的关键目的软件维护是软件生命周期最长的一段相对于软件开发任务而言软件维护工作更加复杂
系统维护包括硬件维护、软件维护、数据维护 硬件维护设备保养性维护和故障维护软件维护根据需求变化或硬件环境的变化对应用程序进行部分或全部修改 正确性维护改正性维护改正系统测试阶段尚未发现的错误适应性维护适应信息技术变化和管理需求变化而进行的修改如硬件更换、管理人员提出新的信息需求完善性维护改善性扩充功能和改善性能而进行的修改预防性维护主动增加预防性的新功能使应用系统适应各类变化而不被淘汰数据维护数据库的安全性和完整性以及并发性控制还要维护数据库中的数据
软件项目管理
风险管理
软件风险包含两个特性不确定性、损失。不确定性是指风险可能发生也可能不发生损失指如果风险发生就会产生恶性结果评估风险影响如果风险真的发生风险的本质、范围和时间可能会影响风险所产生的后果风险控制的目的是辅助项目组建立处理风险的策略如果风险可以预测可以避免其发生但有些风险可以预测但无法避免风险可划分为已知风险和未知风险已知风险可以管理未知风险不可管理不可预测、不可控制、不可避免
软件质量
软件质量特性
ISO/IEC软件质量模型的质量特性和质量子特性如下 功能性适合性、准确性、互用性、依从性、安全性可靠性成熟性、容错性、易恢复性易使用性易理解性、易学性、易操作性效率时间特性、资源特性可维护性易分析性、易改变性、稳定性、易测试性可移植性适应性、易安装性、一致性、易替换性
考点补充
MTTFmean time to failure:平均无故障时间取所有系统开始运行到发生故障之间的时间段的平均时间MTTRmean time to repair:平均修复时间从系统发生故障到维修结束之间的时间段的平均时间MTBFmean time between failure:平均失效间隔两次故障发生之间的时间段平均值可靠性MTTF/(1MTTF)可维护性1/(1MTTR)可用性MTBF/(1MTBF)
结构化开发方法
系统分析与设计概要
系统设计的基本原理
衡量模块独立程度的标准有两个耦合性和内聚性耦合是模块之间的相对独立性的度量包含7种类型无直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合 无直接耦合两个模块之间没有直接的关系数据耦合两个模块之间通过简单的数据值调用标记耦合两个模块之间传递的是数据结构控制耦合两个模块之间传递的是控制变量外部耦合两个模块之间通过软件之外的环境联结公共耦合两个模块之间通过公共数据环境联结如全局简单变量、共享的通信区、内存的公共覆盖区等内容耦合一个模块直接使用另一个模块的内部数据模块的内聚类型包括7种类型功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚 顺序内聚一个模块种的各个处理元素都密切相关于同一个功能且必须顺序执行前一功能元素的输出就是下一个功能元素的输入过程内聚一个模块完成多个任务这些任务按照指定的过程执行逻辑内聚模块内执行若干个逻辑相似的功能通过参数确定该模块完成哪个功能
系统总体结构设计
系统结构设计原则 分解-协调原则解决复杂问题的一个很重要的原则就是把它分解成多个小问题分别处理在处理过程中根据系统总体要求协调各部门的关系自顶向下的原则首先抓住系统总的功能目的然后逐层分解即先确定上层模块的功能再确定下层模块的功能信息隐蔽、抽象原则上层模块只规定下层模块做什么、模块间的协调关系但不规定怎么做以保证各模块的相对独立性和内部结构的合理性一致性原则统一的规范、统一的标准明确性原则每个模块必须功能明确、接口明确模块独立性要好尽可能高内聚、低耦合模块规模要适当原有模块分解成若干功能尽可能单一的模块但分解要适度因为过小的模块有可能降低模块的独立性造成系统接口的复杂性优化模块结构时适当的处理方法 使得模块功能完整消除重复功能改善软件结构避免或减少模块之间的病态连接模块的规模大小在考虑到各种具体情况的前提下力争做到高内聚、低耦合、深度和宽度合理、扇入和扇出系数合理、模块规模适中等在划分模块时一个模块的作用范围应该在其控制范围之内。一个模块的作用范围或称影响范围指受该模块内一个判定影响的所有模块的集合。一个模块的控制范围指模块本身以及其所有下属模块直接或间接从属于它的模块的集合因而原则上一个模块的作用范围应该在其控制范围之内,若没有,则可以将判定所在模块合并到父模块中,使判定处于较高层次
结构化分析方法
数据流图
数据流图的基本图形元素数据流、加工、数据存储、外部实体数据流由一组固定成分的数据组成表示数据的流向加工输入数据流经过处理变成了输出数据流。数据流图中常见的3种错误加工有输入但没有输出加工有输出没有输入加工中输入不足以产生输出数据存储以记录文件或记录表的形式来存储数据外部实体存在于软件系统之外的人员或组织它指出系统所需数据的发源地和系统所产生数据的归宿地。如对于一个考务处理系统而言考生向系统提供报名单输入数据流所以考生是考务处理系统的一个源而考务处理系统要将考试成绩的统计分析表输出数据流传递给考试中心所以考试中心是该系统的一个宿顶层图描述系统的输入和输出即系统从哪些外部实体接收数据流以及系统发送数据流到哪些外部实体。顶层图只有一个加工即待开发的软件系统0层图将顶层图的加工分解成若干个加工并用数据流将这些加工连接起来使得输入数据经过若干个加工处理后变换成顶层图的输出数据流确定加工根据功能分解、业务处理流程确定加工确定数据流父图中响应加工的输入/输出数据流为子图边界上的输入/输出数据流子加工之间应增添一些新的数据流数据存储子图中需要保存某些中间数据以备以后使用。新数据存储至少有一个加工为其写入数据有一个加工读取数据确定宿和源将顶层图中的源和宿画在0层图中
数据字典
常用的加工逻辑描述方法有结构化语言、判定表和判定树3种判定表数据流图中某个加工的一组动作依赖于多个逻辑条件的取值这时用自然语言或结构化语言都不易于清楚地描述出来而用判定表能够清楚地表示复杂的条件组合与应作的动作之间的对应关系结构化语言结构分为内层和外层 外层采用顺序、选择IF-THEN-ELSE-ENDIF、重复DO-WHILE-ENDDO3种基本结构内层接近于自然语言的描述
WebApp分析与设计
WebApp设计
采用MVC模型-视图-控制器体系结构进行软件系统开发的优点 MVC模式的控制器和视图可以随着模型的扩展而进行相应的扩展只要保持一种公共的接口控制器和视图的旧版本也可以继续使用提高系统的可维护性MVC模型允许使用各种不同视图来访问同一个服务器端的代码即多个视图可以共享一个模型有利于代码重用提高系统的开发效率
面向对象技术
面向对象基础
面向对象的基础概念
面向对象的三大特征封装、继承、多态 封装一种信息隐蔽技术它的目的是使对象的使用者和生产者分离使对象的定义和实现分开继承子类可以继承父类的属性和方法子类中还可以定义自己的属性和方法。一个子类可以继承多个父类多态不同的对象收到同一个消息可以产生完全不同的结果绑定是一个把过程调用和响应调用所需要执行的代码加以结合的过程。静态绑定在编译时执行动态绑定在运行时执行
面向对象分析
面向对象分析包含5个活动认定对象、组织对象、描述对象间的相互作用、确定对象的操作、定义对象的内部信息 认定对象在应用领域中按自然存在的实体确定对象。在定义域中首先将自然存在的“名词”作为一个对象这通常是研究问题、定义域实体的良好开始
面向对象设计
面向对象的设计原则 单一原则当需要修改某个类的时候原因有且只有一个让一个类只做一种类型责任开放封闭原则可以扩展即开放的不可修改即封闭的里氏替换原则在任何父类可以出现的地方可以用子类的实例来赋值给父类型的引用依赖倒置原则细节依赖于抽象即高模块不应该依赖于底层模块二者都应该依赖于抽象接口分离原则不应该强迫客户依赖它们不用的方法依赖于抽象不依赖于具体共同封闭原则包中所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包产生影响则将对该包中的所有类产生影响而对于其他的包不造成任何影响共同重用原则一个包中的所有类应该是共同重用的如果重用了包中的一个类那么要重用包中的所有类
UML
UML中的图
用例图展现参与者、用例功能 用例的关系include包含关系、扩展关系extend、泛化关系 包含关系当一个用例中所使用的某种功能而该功能已经被另外的用例所定义那么在用例执行过程中可以调用这个用例这两个用例就是包含与被包含的关系扩展关系一个用例包含两种及两种以上的场景可以将这个用例分为一个基本用例和多个扩展用例泛化关系即继承关系类图类之间的关系包括依赖、聚合、组合、泛化继承、实现 泛化关系是解题的突破点UML状态图 状态图由状态、转换、事件和活动组成由于状态可以是单一的也可以是嵌套的所以活动可以在状态内执行也可以在状态迁移时执行转换迁移是两种状态之间的一种关系表示对象在源状态执行一定的事件或动作并且在某个特定事件发生而且某个特定条件满足时而进入目标状态事件触发没有特定监护条件的迁移对象也会离开当前状态转换迁移是源状态和目标状态之间的一种关系可以包含触发事件、监护条件、状态、动作当某个事件发生后对象的状态将发生变化事件可以触发迁移UML活动图 活动图展现了在系统内从一个活动到另一个活动的流程元素开始、分支、并发分叉、并发汇合、结束UML构件图 构件图展现了一组构件之间的组织和依赖专注于系统的静态实现视图图中通常包括构件、接口以及各种关系。
设计模式
结构型设计模式
适配器模式是结构型对象模式 意图将一个类的接口转换成客户希望的另外一个接口适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作适用性1想使用一个已经存在的类而它的接口不符合要求2想创建一个可以服用的类该类可以与其他不相关的类或不可预见的类协同工作示例驱动新能源汽车的发动机时电能和光能汽车分别采用不同驱动方法而客户端希望使用统一的驱动方法需要定义一个统一的驱动接口屏蔽不同的驱动方法桥接模式Bridge是结构型对象模式: 意图将抽象部分与其实现部分分离使它们可以独立变化适用情况不希望在抽象和它的实现部分之间有一个固定的绑定关系示例欲开发一个绘图软件要求使用不同的绘图程序绘制不同的图形。该绘图软件的扩展性要求将不断扩充新的图形和新的绘图程序。以绘制直线和图形为例得到如下图所示的类图。该设计采用模式将抽象部分与其实现部分分离使它们都可以独立地变化
行为设计模型
责任链模式是行为型对象模式 意图使多个对象都有机会处理请求从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链并沿着这条链传递该请求直到有一个对象处理它为止适用性1有多个对象可以处理一个请求哪个对象处理该请求运行时刻自动确定2想在不明确指定接收者的情况下向多个对象中的一个提交一个请求3可处理一个请求的对象集合应被动态指定示例不同级别的日志信息记录方式不同每个级别的日志处理对象根据信息级别高低采用不同方式进行记录。每个日志处理对象检查消息的级别如果达到它的级别则进行记录否则不记录然后将消息传递给它的下一个日志处理对象命令模式是行为型对象模式 意图将一个请求封装为一个对象从而使得可以用不同的请求对客户进行参数化对请求排队或记录请求日志以及支持可撤销的操作适用性抽象出待执行的动作以参数化某对象在不同的时刻指定、排列和执行请求支持取消操作支持修改日志用构建在原语操作上的高层操作构造一个系统解释器模式是行为型对象模式 意图给定一个语言定义它的文法的一种表示并定义一个解释器这个解释器使用该表示来解释语言中的句子适用性适用于当有一个语言需要解释执行并且可将该语言中的句子表示为一个抽象语法树迭代器模式是行为型对象模式 意图提供一种方法顺序访问一个聚合对象中的各个元素且不需要暴露该对象的内部表示适用性访问一个聚合对象的内容而无须暴露它的内部表示支持对聚合对象的多种遍历为遍历不同的聚合结构提供一个统一的接口中介者模式是行为型对象模式 意图用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用从而使其耦合松散而且可以独立地改变他们之间的交互适用性一组对象以定义良好但是复杂的方式进行通信产生的相互依赖关系结构混乱且难以理解减少多个对象或类之间的通信复杂性示例在某系统中不同组GROUP访问数据的权限不同每个用户User可以是一个或多个组中的成员每个组包含零个或多个用户。现要求在用户和组之间设计映射将用户和组之间的关系由映射进行维护备忘录模式是行为型对象模式 意图在不破坏封装性的前提下捕获一个对象的内部状态并在对象之外保存这个状态。这样以后就可以将对象恢复到原先保存的状态适用性必须保存一个对象在某一个时刻的状态这样以后需要时它才能恢复到先前的状态如果一个用接口来让其他对象直接得到这些状态将会暴露对象的实现细节并破坏对象的封装性观察者模式是行为型对象模式 意图定义对象间的一种一对多的依赖关系当一个对象的状态发生改变时所有依赖于它的对象都得到通知并被自动更新适用性当一个抽象模型有两个方面其中一个方面依赖于另一个方面将这两者封装在独立的对象中以使它们可以各自独立地改变和复用当对一个对象的改变需要同时改变其他对象而不知道具体有多少对象有待改变时当一个对象必须通知其他对象而它又不能假定其他对象是谁策略模式是行为型对象模式 意图定义一系列算法将它们一个一个封装起来并且使它们可以相互替换适用性1许多相关的类仅仅是行为有异2需要使用一个算法的不同变体3避免暴露复杂的、与算法有关的数据结构4定义了多种行为以多个条件语句的形式出现示例将温度自动换算的系统改造为一个更通用的应用能够实现任意计量单位之间的换算如千克与英镑之间的换算、厘米与英寸之间的换算等。
考点补充
采用面向对象方法进行软件开发在分析阶段架构师主要关注系统的行为即系统应该做什么
算法设计与分析
动态规划法
动态规划法的基本思想
动态规划算法将待求解问题分解成若干个子问题先求解子问题然后从这些子问题的解得到原问题的解。这类问题的两个重要性质最优子结构一个问题的最优解包含了其子问题的最优解重叠子问题用来解原问题的递归算法可以反复地解同样的子问题而不是总在产生新的子问题
贪心法
贪心法的基本思想
贪心算法不是从整体最优考虑只是局部最优。这类问题的两个重要性质最优子结构一个问题的最优解包含其子问题的最优解贪心选择性质问题的整体最优解可以通过一系列局部最优解的选择
数据库技术基础
基本概念
数据库的三级模式结构
数据库系统采用三级模式结构外模式用户与数据库系统的接口是用户用到的那部分数据的描述概念模式也称模式是数据库中全部数据的逻辑结构和特征的描述内模式数据物理结构和存储方式的描述是数据在数据库内部的表示方式定义所有的内部记录类型、索引和文件的组织方式
数据模型
E-R模型
多对多的关系需要建立一个新的联系如医生和病人需要建立一个病房E-R图向关系模型的转换 一对一可以转换为一个独立的关系模式也可以与任何一端对应的关系模式合并一对多可以转换为一个独立的关系模式也可以与n端对应的关系模式合并多对多转换为一个独立的关系模式属性包括两个实体的主键以及联系的属性关键字由两个实体的关键字组成
关系代数
5种基本的关系代数运算
并RUS由属于R或属于S的元组构成的集合差R-S属于R但不属于S的元组构成的集合广义笛卡尔积R*S两个元数分别为n目和m目的关系R和S的广义笛卡尔积是一个nm列的元组集合元组的前n列是关系R的一个元组后m列是关系S的一个元组投影在关系中选择若干属性列组成新的关系选择从关系的水平方向进行运算从关系R中选择满足给定条件的元组
关系数据库的规范化
规范化
第一范式1NF每一分量是不可再分的数据项第二范式2NF每一个非主属性完全依赖于码 关系模式FIRSTsno,sname,status,city,pno,qty函数依赖集F{sno-sname, sno-status,status-city,(sno,pno)-qty}。不满足二范式FIRST的码为sno、pno而非主属性sname、status、city部分函数依赖于码。将FIRST关系分解为FIRST1sno,sname, status,cityFIRST2(sno,pno,qty)都属于2NF第三范式3NF不存在非主属性对码的传递函数依赖 FIRST1sno,sname, status,city不满足3NF因为sno-status,status-city存在非主属性city传递依赖于码sno。FIRST11sno,sname, statusFIRST12status,city分别满足三范式产生冗余和异常的两个重要原因是部份依赖和传递依赖
数据库的控制功能
事务管理
事务具有4个特性原子性、一致性、隔离性、持久性 原子性事务是原子的要么都做要么都不做一致性数据库只包含成功事务提交的结果隔离性当多个事务并发执行时任一事务的更新操作直到其成功提交的整个过程对其他事务都是不可见的持久性一旦事务提交成功即使数据库崩溃其对数据库的更新操作也将永久有效
网络与信息安全基础知识
网络互连硬件
网络的传输介质
在无线通信技术中蓝牙通信距离最短一般为10m左右用来连接本地外围的通信设备
网络的协议与标准 TCP/IP分层模型由4个层次组成 应用层用户调用应用程序来访问TCP/IP互连网络以享受网络上提供的各种服务传输层提供应用程序间的通信服务网际层又称IP层处理机器之间的通信问题网络接口层又称数据链路层负责接收IP数据报并把数据报通过选定的网络发出去应用层协议DHCP、DNS、telnet
传输层协议TCP传输控制协议、UDP用户数据报 连接性TCP是面向链接的协议收发数据前与对方建立可靠的链接其会监听端口UDP是面向无连接的协议数据传输前源端和目的端不建立链接可靠性TCP提供了可靠交互的服务传输过程中采用许多方法保证连接上提供可靠的传输服务如编号确认、流量控制、计时器等确保数据无差错不丢失不重复且按序到达;UDP提供尽可能最快的交付但不保证可靠交付。报文传输TCP面向字节流将应用层传过来的报文看成一串无结构的字节流分解成多个TCP报文传输后在目的站重新装配UDP协议面向报文不拆分应用报文只保留报文边界一次发送一个报文接收方除去报文头部后原封不动将报文交给上层应用。吞吐控制TCP阻塞控制、流量控制、重传机制、滑动窗口等机制保证传输质量UDP没有双工性TCP只能点对点双工通信UDP支持一对一、一对多、多对多交互通信使用场景TCP应用于万维网www、文件传输FTP、电子邮件SMTPUDP适用于实时通信SNMP是一种异步请求/响应协议采用UDP协议进行封装网际层协议ARP、RARP、IP、ICMP
Internet及应用
Internet地址
IPV6用128位二进制表示能够表示的地址空间2^128IPV4用32位二进制表示能够表示的地址空间2^32IP地址计算机设备进行网络通信时需要以IP地址为唯一标识进行网络通信。IP地址可分为公网IP和私网IP公网 IP 地址是一个全球唯一的地址用于标识一个设备在公共互联网上的位置私网IP用于内部网络间的通信主要使用在企业内部局域网中。 IP地址作用于网络层不具备唯一性MAC地址一种硬件地址是由网络适配器制造商预先设定的用于在计算机网络中识别物理设备具有唯一性作用于数据链路层
Internet服务
电子邮件服务相关协议 SMTPsimple mail transfer protocol即简单邮件传输协议描述电子邮件的信息格式及其传递处理方法保证被传送的电子邮件能够正确的寻址和可靠的传输它是面向文本的网络协议缺点是不能用来传送非ASCII码文本和非文字性附件MIME多用途Internet邮件扩充协议在发送电子邮件附加多媒体数据时需采用MIME协议来支持邮件传输PEM增强私密邮件保护协议PGP主要用在电子邮箱的加密等服务中POP保管用户未能及时取走的邮件
网络安全概述
漏洞扫描系统对信息系统和服务器进行定期扫描可以发现高危风险和安全漏洞入侵检测目的是检测出系统中违背系统安全性规则或者威胁到系统安全的活动发现入侵行为并报警但不能阻止恶意攻击。入侵检测技术包括专家系统、模型检测、简单匹配包过滤防火墙在IP层网络层实现的防火墙技术可根据包的源/目的IP地址、源/目的端口等包头信息判断是否允许包通过可见包过滤防火墙技术决定让不让包通过无法拦截对应用层的攻击Web应用防火墙根据预先定义的过滤规则和安全防护规则对所有访问Web服务器的HTTP请求和服务器响应进行HTTP协议和内容的过滤进而对Web服务器和Web应用提供安全防护功能数据库审计监控并记录用户对数据库服务器的各种操作并可以对数据库操作命令进行回放ACL:Access Control List,访问控制列表。一种用于控制用户对资源的访问权限的方法ACL中包含了一系列的访问规则每个规则指定了哪些用户或用户组有权访问资源以及具体的访问权限。SNAT局域网主机共享单个公网IP地址接入internet
考点补充
netstat:访问网络连接状态及相关信息的命令可以显示路由表、实际的网络连接和网络接口设备的状态信息以及与 IP、TCP、UDP 和 ICMP 协议相关的统计数据一般用于检验本机各端口的网络服务运行状况ping:测试两台主机之间的连通性msconfig:旨在对 Microsoft Windows 启动过程进行故障排除。它可以禁用或重新启用在启动时运行的软件、设备驱动程序或 Windows 服务还可以更改启动参数cmd:windows 命令解释器
标准化和软件知识产权基础知识
知识产权基础知识
计算机软件著作权
公民作为单位的雇员如其开发的软件属于执行本职工作的结果软件著作权应当归单位享有若开发的软件不是执行本职工作的结果著作权不属于单位享有如果雇员主要使用了单位的设备不能属于雇员个人享有。委托开发软件作品接受他人委托开发的软件其著作权的归属由委托者与受委托者签订书面合同约定无合同或合同未作明确约定的其著作权由受委托者享有。软件著作权中的翻译权是指将原软件从一种程序语言转换成另一种程序语言的权利我国保护计算机软件著作权的两个基本法律文件《中华人民共和国著作权法》和《计算机软件保护条例》
专利权概述
获取条件专利权、商标权需要申请才能获得著作权、商业秘密权自动获取
商标权考点
必须使用注册商标的是烟草类商品商标权可申请延期有可能无限期拥有知识产权
补充考点
三层C/S结构
三层C/S结构是将软件在逻辑上分成表示层、功能层和数据层三部分三层C/S结构的优点 具有更灵活的硬件系统对于各层可以选择与其处理负荷和处理特性相适应的硬件合理分割三层结构并使其独立可以使系统的结构变得简单清晰这样提高了程序得可维护性应用各层可以并行开发各层可以选择各自最适合得开发语言有利于变更和维护应用技术规范按层分割功能使得各个程序的处理逻辑变得十分简单利用功能层有效地隔离开表示层和数据层未授权的用户难以绕过功能层而利用数据库工具或黑客手段非法地访问数据层为严格的安全管理奠定了坚实的基础系统可用性高具有良好的开放性可跨平台操作支持异构数据库
高质量的软件
高质量的软件必须满足3个前提1软件必须满足用户规定的需求2软件应遵循规定标准所定义的一系列开发准则3软件还应满足某些隐含的需求如可理解性、可维护性
高质量文档
高质量文档包括的特点针对性、无歧义、易读性、完整性、灵活性、可追溯性
图像扫描仪
使用图像扫描仪以300DPI的分辨率扫描一幅3*4英寸的图片数字图像的像素为900*1200
下午题
第三题UML建模
【软考中级-软件设计师】案例分析三下午题-分析与设计_哔哩哔哩_bilibili
2022年上半年真题解析
2022年上半年试题三问题一_哔哩哔哩_bilibili
第四题算法题
分治法递归
基本思想一个大问题分解成一些规模较小的子问题分而治之。子问题相互独立且与原问题相同两个基本要素边界条件、递归体典型实例归并排序、最大子段和问题
动态规划法
基本思想一个大问题分解成一些子问题子问题往往不是相互独立的基本要素用一个表记录所有已解决的子问题的答案典型实例0-1背包、最长公共子序列
回溯法
基本思想深度优先遍历的思想基本要素画树图更有利于理解深度遍历和回溯过程典型案例n皇后问题
第六题Java语言程序设计
考点语法、设计模式