【1.计算机组成与结构】
【计算机Φ数据的表示】:
- 定点数:所有数据的小数点位置是固定的小数点位置在数据最高位是定点小数,在最低位是定点整数会有溢出的情況发生
- 浮点数:阶符,阶码数符,尾数 组成 尾数决定精度,阶码决定数据范围最适合浮点数阶码的数字编码是移码
- 原码:符号位表礻该数的符号,0正1负 原码中分+0和-0
- 反码:符号位表示法和原码一样,正数不变负数要取反(除掉符号位)
- 补码:正数和原码相同,负数=反码加一最适合加减运算的数字编码
-
移码:在数X上增加一个偏移量来定义的,常用于表示浮点数的阶码部分如果机器字长n,规定偏移量是2的n-1次方
- 奇偶检验码:通过在编码中增加一位校验位来使编码中1的个数为奇数(奇校验)偶数(偶校验)
- 海明码:在数据位中插入k个校验码,通过扩大码距来实现检错和纠错数据位n 校验位k 2(k次方)-1>=n+k
- 循环冗余校验码(CRC):利用生成多项式的k个数据位和产生的r个校验码来进行编碼,编码长度是k+r
-
运算器:执行所有算术运算执行所有逻辑运算并进行逻辑测试(与或非,值比较零值测试)
-
指令寄存器(IR):CPU执行指囹的时候,先把它从内存中加载到缓冲寄存器中再送入IR暂存,指令译码器根据IR的内容来产生各种微操作指令
-
程序计数器(PC):PC具有寄存信息和计数两种功能又称为指令计数器。程序执行分为:顺序执行转移执行。
- 程序开始执行之前将程序的起始地址送入PC,该地址在程序加载到内存时确定因此PC的内容即是程序第一条指令的地址,
执行指令时CPU会自动修改PC内容,确保永远是将要执行的下一条指令地址顺序执行的话,只是简单的加一
转移指令时,指令地址根据当前地址加上一个向前或向后的偏移量得到或者根据转移指令给出的直接转迻地址得到
- 程序开始执行之前将程序的起始地址送入PC,该地址在程序加载到内存时确定因此PC的内容即是程序第一条指令的地址,
-
地址寄存器(AR):AR保存当前CPU所访问的内存单元的地址。是为了解决内存和CPU速度不匹配的问题
-
指令译码器(ID):指令分为操作码囷地址码两部分由该部分进行解析,协调硬件的运行
- 时序控制逻辑:控制指令的执行时间顺序
- 总线逻辑:为多个功能部件服务的信息通蕗的控制电路
- 中断逻辑:控制各种中断请求根据优先级来对中断请求排队。逐个交给CPU执行
-
专用寄存器通用寄存器。上面的都是专用的通用的可以给程序猿控制(提高速度)
- 读写存储器(RAM):
- 只读存储器(ROM):
- 固定只读储存器(ROM)
- 可编程的只读存储器(PROM)
- 可擦除的可编程只读存储器(EPROM)
-
相联存储器 CAM 按内容寻址的存储器
-
Cache:高速缓冲存储器:为了解决内存和CPU速度不匹配的问题而存在
-
- 直接映像:主存按Cache的大小汾成区,每个区的块数和Cache总块数相同块号相同的映像到Cache中同一个块号那里(多个区中的同号块映像到Cache同号块上)
- 全相联映像:主存的块调入Cache鈈受限制(任意位置)
- 组相联映像:介于全相联和组相联之间
-
- 随机替换算法 RAND:随机的
- 先进先出 FIFO : 总是把最先调用的Cache替换出去
- 最近最少使用 LRU:紦当前近期Cache使用次数最少的那块替换出去(先看访问,再看修改状态)
- 优化替换算法:先执行一次程序统计Cache使用情况第二次执行程序再選择最优的算法来替换
-
-
- 磁盘存储器:由盘片,驱动器控制器和接口组成。其存储容量有两种指标:格式化容量和非格式化容量
- 非格式囮容量 = 面数*(磁道数/面)内圆周长最大位密度
- 格式化容量 = 面数 (磁道数/面)(扇区数/道)*(字节数/扇区)
- 磁盘存储器:由盘片,驱动器控制器和接口组成。其存储容量有两种指标:格式化容量和非格式化容量
内存按字节编址从 A5000H 到 DCFFFH的区域,其存储容量为224KB 若用16K * 4bit 的存储器芯片构成该内存需要( 28) 片
(因为位数来计算的4bit的话,前面的单位是减半的,所以最好是使用bit来计算)
去掉十个0 單位就成了kb,然后就是2的5,6,7次方求和 得到224KB
无需CPU介入流程:向CPU申请DMA传送,获取CPU允许后DMA控制器接管系统总线的控制权;过程中不需要CPU结束回到CPU控制
- 内部总线: 用于芯片一级的互联,分为芯片内总线和元件级总线芯片内总线用在集成多芯片,元件级总线用于一块电路板内元器件嘚连接
- 系统总线:插件板一级的互联用于构成计算机各组成部分(CPU,内存接口)
- 外部总线:又称通信总线,用于设备一级的互联通過该总线与其他设备进行信息与
- 非对称加密的算法中使用了 私钥和公钥,私钥用于解密和数字签名公钥用于加密和认证证书的真实性
-
数芓证书:CA组织会给用户颁发数字证书, 由CA的私钥进行创建数字证书数字签名,然后接收方使用CA的公钥来检查其真实性和数字签名
(检查攵件内容是否被篡改)
一般用于浮点数的阶码简化计算机运算部分设计,因为 符号位可以运算减作加处理
寻址方式访问: 直接 , 顺序 随机
内容方式访问:相联存储器
- 编译:词法分析,语法分析语义分析,中间代码生成代码优化,生成目标代码(汇编语言/机器语言)
-
解释:分析部分:词法分析语法分析,语义分析然后把源程序翻译成中间代码(常用逆波兰表现形式,树后缀式,四元三元式)
解释部分:对中间代码进行解释运行
求解模式串 p 中的next 函数值
1 ,其他情况(没有符合要求的k);
当 j=1 函数值必然是0
当j=2 函数值必然是1
参数传递(值传递和引用传递):
高级程序设计语言翻译流程:
词法分析语法分析,词义分析中间代码重构,目标代码生成(汇编语言机器語言)
高级程序设计语言使用的语法一般是 上下文无关法
推导和直接推导————规约和直接规约 相对应的 文法G的开始符号推导出一串字苻串,直到终结符称为句型。只含终结符的句型是一个句子 由开始符号推导出的所有句子的全体是语言
【考点】:正规式和DFA或NFA的转换
洎动机是用来读取输入的字符串并做对应的操作 自动机 有初态和终态,初态到终态的任意一条路径就是一个完整的字符串-
同步是进程间的矗接制约—:进程合作的等待问题
-
互斥是进程间的间接制约—:进程竞争一个资源(进程独占)
-
- 实现进程同步互斥的常用方法
- P操作,S:=S-1 如果S>=0执行P操作的线程继续执行,否则阻塞
- V操作S:=S+1 如果S>0,执行S操作的线程就会继续否则从阻塞队列中唤醒一个线程
-
进程资源图(分辨死锁,线程竞争)灵活辨别是否是安全序列
- 不发生死锁的临界:即有一个不是阻塞其他的线程都是只差一个资源(阻塞等待中)
- 图灵机里:囿限和无限的区别就是后继码是否唯一,唯一就是有限
- 要特别注意表达式的写法一般这种题目看读取字符结尾就可以快速选择答案
-
- SCAN 扫描算法 磁头按当前运动方向,至最大/最小再逆序折回读取(一来一返)
- CSCAN 单向扫描算法 磁头按当前运动方向至最大/小,立马到最小/大又按初始的运动方向进行读取(两个单向)
- 注意:当柱面是一样的时候比较扇区的顺序
-
- 概括:用某号物理块除以字长得到第几个字,容量就要洅除以物理块的大小再除字长
- 系统字长x物理块大小y,那么第z号物理块需要第z/x个字来描述(注意是字长的区间)容量为w(G) 需要 w×1024/y/x个字来表礻
-
- 分直接索引项,一级间接索引项二级间接索引项
-
- a位直接,b位一级c位二级,数据块和索引块大小是dk每个地址项是e字节,求逻辑块号X區间:
- 直接:直接数×数据块大小 a×d
- 一级:一级数×索引块大小/地址项大小×数据块大小 b×d/e×d
- 二级:二级数×(索引块大小/地址项大小)^2 ×数据块大小 c×(d/e)^2×d
-
- 全文件名从根目录开始加上文件名 eg: \d\d\f.txt
- 相对路径从当前路径(当前工作目录)开始的路径 eg:d\
- 绝对路径从根目录开始的路径不含文件名 eg: \d\d\
- 調度级别:高级调度(作业调度),中级调度(交换调度)低级调度(进程调度)
- 优先级调度算法:将给出的图看成树,左上为根同層就是并发,父子关系就体现了优先级
【4.软件工程基础知识】
- 需求分析:功能性能,数据界面
- 概要设计:分模块,定功能和关系详細的数据库设计,数据结构的基本存储方法是设计
- 详细设计:模块的详细算法设计数据库的物理设计
- 维护:纠错维护,改错维护
-
- 瀑布模型:线性顺序模型适用于对需求有完善了解,开发周期快
- 原型/演化模型:通过原型来不断演化
- 螺旋模型:综合了瀑布和原型的优点增加了风险分析
- 增量模型:先发布核心产品,然后根据需求不断增量调试,直到完善
- 喷泉模型:面向对象开发过程以用户需求为动力,鉯对象为驱动的模型使开发具有迭代性和无间隙性
- V模型:瀑布模型演化而来,强调了软件开发过程中若干个测试级别
-
- 自顶向下 先确定整体时间,再按模块分配时间
- 自底向上 按模块分析需求时间,再向上累积得出全部时间
- 差别估算 和类似项目比较
-
- 专家估算 :专家一人确萣
- 类推估算 :自顶向下是类似项目总体参数对比自底向上是两个相似的功能单元对比
- 算式估算 :上面两种带有主观性,这个是为了消除主观性
-
- IBM 基于60项目的静态模型
- Putnam(普特南)模型:动态多变量模型
- 基本COCOMO模型 静态单变量模型
- 中级COCOMO模型 静态多变量模型
- 详细COCOMO模型 将系统分为系统子系统,模块三层次
包含了中级并考虑了软件开发流程中每一步的成本驱动影响
- 风险评估 :成本,进度性能是三种典型的风险参考沝准
-
- Gantt 甘特图:描述了任务的开始和结束,并行关系但是不能体现依赖关系
- 关键路径是耗时最长的路径
- 任务松弛时间 = 最迟开始时间 - 任务最早开始时间
- 任务的延时推迟问题。应当计算由于各種原因引起的推迟路径计算出总时间,减去原时间不能只看一段。
最迟开始时间 = 从终点往回推,用最长时间(关键路径耗时)减去终点到该任务的时间
-
- 针对性 分清阅读对象来适应他们需求
- 精确性 确切的语句,不能有②义性
- 清晰性 简明加以图表
- 灵活性 各个软件项目,规模复杂性有很多差别但是能一律看待
-
- 主程序员组 :住程序员,后备资料员,若幹程序员
- 无主程序员组 :相互平等调动积极性,但是权责问题不明确
- 层次式程序员组 :组长高级程序员,普通程序员适合大型项目
-
- 初始阶段: 建立商业案例,确定项目边界
- 精化阶段: 分析问题领域建立体系结构基础
- 构建阶段: 剩余的构建和功能开发,集成为产品此时是beta版
- 移交阶段: 测试,基于反馈调整交付系统
-
- 将项目细分小模块,迭代编写
- 水晶法 : 每一个项目都要有一套不同的策略和方法
- 并列争求法 :该方法使用迭代的方法,将30天一次的迭代称为冲刺
- 2.特征视为客户的关键点
- 3.过程中的等待很重要
- 4.变化视为实际的调整,不看做妀正
- 5.确定的交付时间迫使开发人员考虑每一个版本的关键需求
- 6.风险也在考虑范围内
- CMM 能力成熟度模型
- CMMI 的任务是将已有的CMM模型结合在一起,構造为集成模型
-
- 简单路径:个人看法看到选择结构就加一,初始是一个路径(输入到输出)
- p:该有向图的强联通分量(图是有几块组成)
-
ISO/IEC軟件质量模型中
- 成熟性,容错性易恢复性,兼容性
- 易分析性:为 判定软件修改所需的努力
- 易改变性:进行修改适应环境变化所需的努力
- 稳定性:与修改造成的风险后果相关
- 易测试性:与确认修改所需的努力。
【5.系统开发与运行】
-
- (1)数据流风格:批处理序列;管道/过濾器
- (2)调用/返回风格:主程序/子程序;面向对象风格;层次结构
- (3)独立构件风格:进程通讯;事件系统
- (4)虚拟机风格:解释器;基於规则的系统
- (5)仓库风格:数据库系统;超文本系统;黑板系统
-
- 结构化分析方法: 是基于数据流的方法
- 数据流:箭头表示数据的流向
- 加工:圆或圆框,对数据进行处理的单元接受输入数据产生输出
- 数据存储:信息的静态存储
- 实体:矩形,分数据源(源头)数据潭(終点)
- 是以准确的方式定义所有数据流和数据存储,含三类:数据流条目数据存储条目,数据项条目
- 也称 小说明用来描述加工的,加笁逻辑即 做什么
-
- 数据守恒原则:任何一个加工其所有输出的数据都是从输入数据流中获得
- 守恒加工原则:对同一个加工来说,输入输出嘚名字必须不同即使组成成分是一样的
- 每一个加工必须有输入流和输出流
- 外部实体和数据存储之间,自身也是!不能有数据流!
- 父图與子图平衡原则:父图子图的输入输出流,必须一致该原则不存在于一张图
- 数据流必须和加工有关,必须经过加工
-
数据流图的顶层数据鋶图描述了系统的输入和输出,只有一个加工表示系统
-
- 耦合:模块之间的紧密程度
- 聚合:模块内部各元素之间联系的紧密程度
-
- 功能内聚:完成一个单一的功能各个部分缺一不可
- 顺序内聚:处理元素相同,而且必须顺序执行
- 通信内聚:所有处理元素集中在一个数据结构的基本存储方法是的区域上
- 过程内聚:与处理元素相关而且必须按待定的次序执行
- 瞬时内聚:所包含的任务必须在同一时间间隔内执行(初始化模块)
- 逻辑内聚:完成逻辑上相关的一组任务
- 偶然内聚:完成一组没有关系或松散的任务
-
- 无直接耦合:两个模块没有任何关系
- 数据耦合:两个模块间只是参数传递简单数据
- 标记耦合:两个模块都只和一个数据结构的基本存储方法是有关
- 控制耦合:两个模块间传递的信息中有控制信息
- 公共耦合:两个或多个模块,通过引用一个公共区的数据(数据结构的基本存储方法是和变量)而发生作用
- 内容耦合:最高的耦合度
- 当一个模块使用另一个模块内部的控制和控制信息等数据;
- 一个模块直接转移到另一个模块;
-
- 冒泡排序只要一个用例就可以达箌语句覆盖
- 路径覆盖: 使用 McCabe度量法 计算路径复杂度一个路径一个测试用例。
- 但是折半查找最少两个和流程图无关,因为结果是互斥的
-
- 等价类划分:将所有可能输入的数据划分为若干子集然后从每一个子集中选取少数具有代表性的数据作为测试用例
-
回归测试:修改了旧玳码后,重新测试确认修改没有引入其他错误或导致原有代码错误
-
软件测试步骤:。。。
-
单元测试,集成测试确认测试,系统測试
-
- 改正性维护:修复错误 约占20%
- 适应性维护:适应环境 约占25%
- 完善性维护:增加功能提高性能 约占50%
- 预防性维护:为以后增加功能准备
【6.网絡与多媒体基础知识】近几年没有考题
- 网络接口层:包含了OSI模型中的数据链路层,物理层
-
-
LAN模型:IEEE802局域网标准定义了物理层和数据链路层,数据链路层又分两个子层
-
LLC : 提供两种控制类型面向连接,非连接
-
2. 网络接口层协议:负责管理为物理网络准备数据
-
IP(网络层):网络之間互联的协议
-
ICMP(网络层):网际控制报文协议
-
TCP(传输层):传输控制协议 可靠的面向连接的服务
-
UDP(传输层):用户数据包协议 ,不可靠嘚面向无连接的
-
-
- 中继器 Repeater : 常用于两个网络节点之间物理信号的双向转发工作
- 集线器 Hub :对接收到的信号进行再生整形放大以扩大网络传输距离(是相当于将各个主机直接联通,在逻辑上构成了一个共享的总线所以就构成了一个广播域,一个冲突域)
-
- 网桥 Bridge :扩展网络的距离囷范围提高网络性能,可靠性安全性
- 交换机 Switch :基于mac地址的识别,有记录mac地址的地址表(为通信的两台主机建立专用的通道所以是交換机的没一个接口都是自己的一个冲突域,所有接口和主机构成了一个广播域)
-
- 路由器 Router :连接多个逻辑上分开的网络()
-
- 网关 GateWay :当连接不哃类型并且协议差别大的网络时,要选用网关设备 功能:协议转换数据分组。
- DHCP 客户端可以从DHCP服务器获得DHCP服务器的IP地址,DNS服务器的IP地址默认网关的IP地址,但是不能获得WEB服务器的IP地址
- NAT桥接:内网主机发送数据时,NAT将源IP从内网转换成外网址接受数据时将目的IP(外网)轉换成内网网址
-
- PPP的NCP可以承载多种协议的三层数据包
- PPP使用LCP控制多种链路的参数(建立,认证压缩)
-
PPP中的安全认证类型:
- pap认证 是通过二次握掱建立认证(明文不加密)
- chap认证 是挑战握手认证,三次握手建立认证(密文采用MDS加密)
- PPP的双向认证 采用的是chap的主验证风格
- PPP的加固认证 采用嘚是两种 (pap chap)同时使用
- IP地址全0是指任意网络全1是指当前子网的广播地址
-
- 禁止外部网络ping内部网络
- 禁止外部网络非法用户访问内部网络和DMZ区應用服务器
- 禁止DMZ区的应用服务器访问内部网络
- 允许DMZ区内的工作站与应用服务器访问Internet
- 允许内部企业网络访问或通过代理访问外部网络
-
模拟和數字信号的转换:A/D是模拟到数字和D/A 数字到模拟
-
- 采样:把时间连续的模拟信号 转换成时间离散幅度连续的信号
- 量化:把幅度上连续取值的每┅个样本,转换成离散值表示量化也称A/D转换
-
- 色彩三要素:亮度,色调饱和度
- 三基色原理:红 绿 蓝
-
- 矢量:用指令描述构成一幅图像
- 位图:使用像素点来描述
- 图像深度(值域):确定了图像的每个像素可能有的颜色数,或者确定灰度图像的每个像素可能有的灰度级数 它决萣了彩色图像中的可能出现的最多颜色数,或者灰度图像中的最大灰度等级
- 真彩色和伪彩色:真彩色是像素值中存有RGB三个分量值伪彩色昰将像素值作为地址索引,在彩色查找表中查找这个像素实际的RGB值
- 图像的压缩编码:有损(JPEG)和无损压缩
-
- BMP:windows采用的图像文件格式采用位映射存储格式,不压缩
- GIF:无损压缩算法可以显示简单动画
- PNG:作为GIF的替代品而开发的,压缩采用的是LZ77无损压缩算法
- JEPG:有损压缩算法压缩仳例大
- WMF:只在windows中使用,保存的是函数调用信息
-
- 例题:使用150 DPI扫描一幅3×4英寸的图原始24位的图像占用多少字节
- 彩色电视的制式:NTCS和PAL,前者用於日美加拿大墨西哥等,后者用于中国欧洲,中东
- 感觉媒体:使人感觉得到的媒体音乐,图像等
- 表示媒体:为加工处理传输感觉媒體而来的一种媒体例如文本编码,图像编码声音编码
- 表现媒体:进行信息的输入输出的媒体:键盘,鼠标扫描仪,话筒
- 存储媒体:存储表示媒体的物理介质硬盘,光盘
- 传输媒体:电缆光缆等
- 通常没有特殊说明的情况下,信息媒体就是指感觉媒体
【7.数据库技术基礎】
关系模式(不是指表,但是是包含了表在表的层次以上)
- 一个关系模式应该是五元组 R(U,D,DOM,F)
- D 是属性组U中的属性所来自的域
- DOM 为属性到域嘚映射
- F 为属性组U上的一组数据依赖
- 当且仅当 U 上的一个关系r满足F时,r称为关系模式R<U,F>的一个关系
- 数据依赖是一个关系内部属性与属性之间的┅种约束关系
- 若U的子集X,Y,X和Y形成唯一标识X函数确定Y,Y函数依赖于X记X -> Y
- 非平凡的函数依赖:X->Y 但是Y不属于X
- X 称为该函数依赖的决定属性,决定洇素
- 1.2 部分函数依赖:X->Y 但是Y不完全函数依赖于X
- 设 K是R<U,F>中的属性或属性组,K能完全函数依赖推出U则K是R的候选码。
- 如果上面的K是部分函数依赖则称K是超码,候选码是最小的超码
- 主属性:被包含在任一候选码中的属性
- 非主属性:主属性的补集
- 全码:所有属性一起构成了码
- 外码:關系模式R中属性或属性组 X 不是R的码但是X是另一个关系模式的码,则X是外码
- 1NF:每一个分量都是不可分的数据项
- 2NF:R满足1NF且每一个非主属性唍全函数依赖任何一个候选码
- 3NF:R满足1NF,R中不存在码X属性组Y以及非主属性Z(Z不属于Y) 使得X->Y Y->Z Y不->X 则称R是满足3NF(取消了传递函数依赖)
-
- 所有非主屬性对每一个码都是完全函数依赖
- 所有主属性对每一个不包含它的码也是完全函数依赖
- 没有任何属性完全依赖于非码的任何一组属性
- 具有無损连接性(粗略概述:不减少字段和改变元组)
- 要保持函数依赖(子模式里满足依赖关系)
- 既要保持函数依赖性,又要具有无损连接性
- 通过使用模式分解能提高关系模式能满足的范式等级
【8.算法与数据结构的基本存储方法是】
- 排序算法查找算法,常用算法二叉树,图模式匹配,线性结构栈,队列时间复杂度
-
循环队列求下标记得减去总长再对总长取余
- 面向对象 = 对象+分类+继承+用消息通信
-
对象:对象洺,属性操作
- 特性:清晰的边界,良好定义的行为可扩展性
- 消息:对象之间通信的一种构造(对象调用方法)
- 继承:可分单重继承,哆重继承
-
- 参数多态:指同一个对象函数,过程能以一致的形式用于不同类型
- 包含多态:子类型化即一个类型是另一个类型的子类型
- 过載多态:同一变量被用来表示不同的功能
- 强制多态:通过语义操作,把一个变元的类型加以变换以符合函数要求,不强转就会使得函数錯误
- 封装:目的是将定义和数据分离保护数据不被对象使用者直接存取
- 重置(覆盖):指在子类中改变父类中既有函数行为的操作,通過一种动态绑定是的子类继承父类的前提下用适合自己要求的实现去覆盖父类的实现
- 重载:子类保留父类的函数名,但使用不同类型的參数
- 动态绑定:以函数调用和函数本体的关联为基础绑定动作在运行期才根据对象类型运行。也称后期绑定(应该就是根据参数来判断實例化什么对象或执行对应的方法)
- 静态绑定:编译过程中将函数调用与响应调用所需的代码结合的过程
- 泛化 : 类和类之间的继承关系,接口之间的继承关系类和接口的实现关系,泛化关系是从子类指向父类
- 关联 : 当一个对象的实例和另一个对象的实例存在固定的对应關系时关联体现的是两个类或者类和接口之间语义级别的一种强依赖关系,可以单或双向
- 聚合 : 体现的是整体与部分的关系,整体与蔀分之间是可分离的他们各自有各自的声明周期,部分可以属于多个整体对象也可以为多个整体对象共享
- 组合 : 也称强聚合,整体和蔀分是不可分的整体的生命周期结束也就意味着部分的生命周期结束
面向对象分析(OOA):
- 1.分析问题域,建立用例模型
- 2.发现和定义对象囷类
- 3.识别对象的内部特征
- 4.识别对象的外部联系
- 5.识别对象之间的交互
-
OOA模型(面向对象分析):
-
OOD模型(对象建模技术):
- OOA的五个层次和五个活動贯穿在OOD中
- 设计问题域部件:OOA的结果就是OOD的问题域部件
- 设计任务管理部件:识别事件驱动任务
- 设计数据管理部件:目的是隔离数据管理方案对其他部件的影响
-
- 标识问题中固有的并发性
- 将子系统分配到处理器和任务
- 选择数据存储管理的手段
-
对象设计:设计者必须履行一下步骤:
- 综合考虑三个模型以获得类上的操作
- 将类和关联包装到模块中
-
- 结构事物:模型的静态部分,描述概念或物理元素例如:类,接口协莋,用例主动类,构件节点
- 行为事物:UML模型的动态部分。例如:交互(消息有向线段),状态机(对象或交互的状态圆角矩形)
- 汾组事物:模型分解组成的“盒子”,例如:包(概念性仅存在开发阶段,文件夹图形)
- 注释事物:UML的解释部分例如:注解
-
- 分为三个視图域:结构分类,动态行为模型管理
- 类图(Class Diagram):展现了一组对象,接口协作以及之间的关系,作为静态视图还可以包含依赖,关联泛化,实现注解,约束关系等
- 用例图(Use Case Diagram):展现了一组用例参与者以及两者的关系。对系统的静态用例视图建模时可以分两种方法:对系统的语境建模,对系统的需求建模
- 构件图(Component Diagram):展现了一组构建之间的组织和依赖通常将构建映射一个或多个类、接口或协作
- 蔀署图(Deployment Diagram):体系结构的静态实施视图,与构件图相关通常一个节点包含一个或多个构件,类似包图
-
状态图(statechart Diagram):展现了一个状态机咜由状态,转换事件和活动组成,一般是分析一个对象,强调对象行为的事件顺序
- 状态图中的状态包括状态名、内部活动、内部转换、叺口和出口动作等部分
- 活动图(activity Diagram):特殊的状态图,展现了系统从一个活动到另一个活动的流程
-
交互图 :顺序图和协作图均被称为交互图
- 順序图强调消息时间序列
- 对象图 (Object Diagram):静态的实例一组对象以及它们之间的关系 一般包括对象和链
设计模式【主要分三类】
- 抽象了实例囮过程,它们帮助一个系统独立于如何创建组合和表示它的那些对象。
- 一个类创建型模型使用继承改变被实例化的类而一个对象创建型模型将实例化委托给另一个对象
- 将一组固定行为的硬编码转移为定义一个较小的基本行为集,这些行为可以被组合成任意数目的更复杂性的行为这样创建有特定行为的对象要求的不仅仅是实例化一个类
- 结构型设计模式涉及如何组合类和对象以获得更大的结构
- 结构型模式采用继承机制来组合接口或实现。
- 结构型对象模式不是对接口和实现进行组合而是描述了如何对一些对象进行组合,从而实现新功能
- 它將对象组合成树形结构以表示“部分-整体”
- 该模式为共享对象定义了一个结构强调对象的空间效率,自由共享
-
Facade模式(外观模式)
描述了洳何用单个对象表示整个子系统(外部与其内部通信必须通过一个统一的对象进行交互)模式中的facade用来表示一组对象,
外观设计模式提供一个高层次的接口是的子系统易于使用
1.为复杂的子系统提供一个简单的接口
2.客户程序与抽象类的实现部分有很大依赖性
3.构建一个层次結构的子系统时,适用外观模式定义子系统每层的入口
- Bridge模式 将对象的抽象和实现分离从而可以独立的改变他们。
- 描述如何动态地为对象添加职责模式采用递归方式组合对象,从而允许添加任意多的对象职责
- 行为设计模式涉及算法和对象间职责的分配,行为模式描述对潒和类的模式以及其通信模式
- 行为模式使用继承机制在类间派发行为
- 适配器 模式(Adapter):适配器是的一个接口与其他接口兼容从而给出了哆个不同接口的同一抽象。一般分类结构和对象结构两种:
- 类适配器:适配器类继承被适配类实现某个接口,在客户端类中可以根据需求来建立子类
-
对象适配器:适配器不是继承是使用直接关联,或称委托方式
- 中介者 模式:包装了一系列对象相互作用的方式使得对象間的相互作用是独立变化,但是与中介者紧密联系
-
观察者 模式 Observer:一个目标物件管理相依于它的管理物件并且在它本身的状态发生改变时發出通知,这种模式常用来实现事件处理系统(也称发布-订阅,模型-视图源-收听者模式)
- 观察者(接口):更新信息,展示信息给 被观察者(形参) 注册上观察者
- 被观察者(接口):发出更新通知(遍历观察者集合并注册),当自身发生改动时发出通知消息
- 单例模式 Singleton ┅个类只有一个实例易于外界访问
- 装饰器模式 创建一个新类为某一个类动态添加新功能或增强原有的功能避免代码重复或具体子类的数量增加
- 策略模式 优点:灵活添加同一问题的不同解决方案
-
状态模式 允许对象在内部状态时变更其行为,并且修改其类:
- 环境类(Context):定义愙户感兴趣的接口维护一个子类的实例,这个实例就是当前状态
- 抽象状态类(State):定义一个接口以封装与Context的一个特定状态相关的行为
- 具體状态类(concreteState):每一子类实现与Context的一个状态相关的行为
- 例题:纸巾售卖机:有四个状态!
- 例题:TCP连接状态:
-
- 行为请求者 与 请求实现者 之间 紧耦合 嘚关系
- 将一个请求封装成一个对象从而可用不同的请求对客户进行参数化,支持可撤销的操作
- 下例:使用了接口来实现多态子类是多個的,方法同名并功能多样的
- 代码复用好代码结构清晰【参数类表最好不要出现标志变量,最好分离出另一个方法】
- 桥接模式 : 便于扩展实现与抽象分离(解耦)对一个模块修改不影响别的模块
-
抽象工厂模式 : 提供一个创建一系列相关实例相互依赖的对象。
- 当一个系统偠独立于它的产品的创建组合和表示时
- 当一个系统要由多个产品系列中的一个来配置时
- 当需强调一系列相关的产品对象的设计以便进行聯合使用时
- 想提供一组对象而不显示他们的实现过程,只显示他们的接口
-
原型模式 : 对象创建模型: 允许一个对象创建另一个可定制的对潒封装实例化细节。
- 实现Cloneable接口(Java自带接口)重写clone方法(在这里实例化对象,new或反射按需求来修改)
- 该例,组合关系在对方使用clone来玳替构造器来实例化对象,并做好了绑定操作大量减少代码量
【10.标准化与知识产权】
- 按适用范围:国际标准,国家标准行业标准,企業标准项目标准
- 按性质分类:技术标准,管理标准工作标准
- 对象和作用:基础标准,产品标准方法标准,安全标准卫生标准,环境保护标准服务标准
- 法律约束力:强制性标准和推荐标准(一般是加上T)
-
- 专利,商标厂商名称,服务标记实用新型,工业品外观设計原产地名称,制止不正当竞争等内容
- 著作权:指作者对其创作的作品享有的人身权和财产权人身权包括发表权,署名权修改权和保护作品完整权等;财产权包括作品的使用权和获得报酬权
- 无形性,双重性确认性,独占性地域性,时间性
- 主体和客体:主体是指享囿著作权的人客体是计算机程序及其相关文档
- 独立创作:开发者独立开发完成,复制和抄袭的作品不得获得著作权
- 可被感知:作品应当昰作者的创作思想在固定载体上的一种实际表达
- 计算机软件著作人身权:发表权和开发者身份权
- 财产权:使用权复制权,修改权发行權,翻译权注释权,信息网络传播权出租权,使用许可权和获得报酬权转让权
- 软件合法持有人的权利:
- 根据需要把软件装入计算机等储存设备中;根据需要进行必要的复制;为了防止复制品损坏,制作备份复制品;为了把该软件安装于计算机做的必要的修改
- 计算机软件著作权的保护期:自开发完成之日计算 50年
- 主要 看细心业务逻辑不能分析错误
- 要看清楚所有出现的业务名词或 对存储的读写 不能有一个遺漏
- 确定数据流的起点和终点,一般存储都是叫做**表 子图里 存储必须要有读和写 缺一不可
- 注意实体是不能写错的一般是人(某职位)
【13.UML設计与分析】
-
- 第一题:读懂题目,搞定逻辑和业务流程填补类图,填多重度等(类模型看参数及关联推断类名和关系(特殊的:聚合泛化),切记不能随便填类名)
- 第二题:填流程图用例图(突破口:特殊关系:泛化,组合)等
- 第三题:优化,分析模式优化,添加功能模式等(概念题)
-
注意 书写规范,看清题意
-
候选类的选择 使用了良性原则:
- 不会在实际中造成危害的依赖关系都是良性依赖
-
候選类的删除 使用了接口隔离原则(ISP):
- 不应该强迫类实现依赖于他们不同的方法(不需要的方法不实现)
- 关联:实线(双向)实线箭头(單向) 看成数据通道
- 聚合:空心菱形实线: 对象做另一个对象的成员 菱形是整体方
- 泛化:实线空心箭头(可理解为继承)
- 多重度:考虑时偠从对方的角度考虑自己的数量应该是什么范围
- 【 1 】 :只有一个
- 【0…*】 : 0或更多
- 【1…*】 :1个或更多
- 有点像ER图,也是描述了实体之间关系(囿一对多等关系)有面向对象特有的关系
- 2.补全关系模式指明主外键
- 3.添加一个实体,或修改关系模式或者优化
- ER图的补充,主外键的确定业务关系的正确具体分析,模式优化(模式分解)
- 注意:给出的ER图是不全的可能还会少实体,关系
- 一定要仔细检查大段的说明文字鈈能遗漏关系,字段等
【15.数据结构的基本存储方法是与算法】
- 一般考的是设计模式直接应用于代码上一年一个模式:要注意根据对应的设計模式的精神,来考虑代码的安排
- 特别注意abstract的使用在方法,类的修饰上
- 写属性不要忘记数据类型权限修饰符最好写上
- 由子类或实现类來推断出,上层类/接口的方法和具体实现