软件设计师(6) – 剩余部分

《软件设计师教程》剩余部分的笔记,考试之前整理到word中,考完试才有时间搬过来;

不得不说,中级还是有点儿东西的,这次不知道能不能通过;这一系列的笔记仅仅算是考点的记录,每个知识点扩展下去的话,没一年半载是搞不定的;

笼统的学了这一遍,感觉比较重要的知识有:设计模式、算法、数据流图、UML图,个个都是大坑;

一、面向对象

1、设计模式

这里只整理分类吧,之前就看过好几遍,现在为了软考,又学了一遍,看了一遍又一遍,因为不怎么用,老是忘,而且有些设计模式值看懂了大概,具体实现就不知道怎么写了;

创建型设计模式

Abstract Factory(抽象工厂)、Builder(生成器)、Factory Method(工厂方法)、Prototype(原型)、Singleton(单例);

结构型设计模式

Adapter(适配器)、Bridge(桥接)、Composite(组合)、Decorator(装饰)、Facade(外观)、Flyweight(享元)、Proxy(代理);

行为设计模式

Chain of Responsibility(责任链)、Command(命令)、Interpreter(解释器)、Iterator(迭代器)、Mediator(中介者)、Memento(备忘录)、Observer(观察者)、State(状态)、Strategy(策略)、Template Method(模板方法)、Visitor(访问者)

2、UML

UML中有4种关系:依赖、关联、泛化、实现;

比较重要的图有下面几种:

  • 类图(Class Diadram)展现了一组对象、接口、协作和它们之间的关系。在面向对象系统的建模中,最常见的就是类图,它给出系统的静态设计视图。
  • 组件图(Component Diagram)展现了一组组件之间的组织和依赖。
  • 通信图(communication diagram)是一种交互图,它强调收发消息的对象或参与者的结构组织。
  • 部署图(Deploy Diagram)是用来对面向对象系统的物理方面建模的方法,展现了运行时处理结点以及其中构件(制品)的配置。

3、面向对象基础

多态

  • 参数多态:应用广泛、最纯的多态。
  • 包含多态:同样的操作可用于一个类型及其子类型。包含多态一般需要进行运行时的类型检查。
  • 强制多态:编译程序通过语义操作,把操作对象的类型强行加以变换,以符合函数或操作符的要求。
  • 过载多态:同一个名(操作符﹑函数名)在不同的上下文中有不同的类型。

二、算法

1、分治法

把一个问题拆分成多个小规模的相同子问题,一般可用递归解决;

经典问题:斐波那契数列、归并排序、快速排序、二分查找;

2、动态规划

划分子问题,并把子问题结果使用数组存储,利用查询子问题结果构造最终问题结果,得到的是一个全局最优解;

经典问题:矩阵乘法、背包问题、最长公共子序列(LCS);

*今年考试下午卷的算法题考的就是这个,而且题目是教材中的例题改的,15分不知道能不能得5分…… 判断算法类型的空填对了,我判断的依据是代码中有一个判断、赋值的过程,动态规划,肯定要先选定一个解,后面有更优的再进行替换,不知道能不能作为识别该算法的依据;

3、贪心法

局部最优,不能保证全局最优;每步有明确的、既定的策略;

4、回溯法

按照深度优先策略,从根结点出发搜索解空间树;可以得到全部的最优解,也可以加条件得到一个最优解;

经典问题:N皇后问题;

三、结构化开发

1、内聚和耦合

耦合从低到高:无直接耦合 –> 数据耦合 –> 标记耦合 –> 控制耦合 –> 外部耦合 –> 公共耦合 –> 内容耦合;

数据耦合:传值;标记耦合:传的是引用/对象

内聚从强到弱: 功能内聚 –> 顺序内聚 –> 通信内聚 –> 过程内聚 –> 时间内聚 –> 逻辑内聚 –> 偶然内聚

四、数据库技术

1、三级模式,两级映像

外模式:也称用户模式或子模式,是用户与数据库系统的接口,是用户用到的那部分数据的描述(视图级)

概念模式:也称模式,数据库中全部数据的逻辑结构和特征的描述(表级),只涉及描述,不涉及具体的值;

内模式:也称存储模式,数据库物理结构和存储方式的描述,物理存储(文件级)

模式/内模式映像:保证数据库中数据的逻辑独立性;

外模式/模式映像:保证数据库中数据的物理独立性;

2、关系代数

并(Union):S1∪S2,两个关系直接合并;

交(Intersection):S1∩S2,两个关系都有的部分;

差(Difference):S1-S2,在S1中去掉S2也有的部分,得到最终结果;

笛卡尔积:S1×S2,两个关系中的记录两两结合作为一条记录;

投影(Projection):从关系的垂直方向进行运算(取某些字段),πsno,sname(S1),表示取关系 S1 的 sno、sname 字段;

选择(Selection):σsno=’12’(S1),取关系 S1 中 sno=12 的记录;σ1<3(S1×S2),表示在 S1 和 S2 的笛卡尔积中,取第一个字段值小于第三个字段值的记录,此处的1、3代表 sno 等字段;

自然连接(Join):S1⋈S2,相同字段的相同值合并成一条记录;

3、规范化理论

候选键:能唯一标识数据的键;

主键:候选键里选一个;

第一范式(1NF)

在关系模式R中,当且仅当所有域仅包含原子值,即每个属性都是不可再分的数据项,则称关系模式R是第一范式;

属性值都是不可分割的原子值;

第二范式(2NF)

当且仅当关系模式R是第一范式,且每一个非主属性完全依赖候选键(没有不完全依赖)时,则称关系模式R是第二范式;

1NF->2NF:消除非主属性对候选键的部分依赖;

不能包含部分依赖:AB->C,A->C,属于部分依赖,不满足第二范式;

第三范式(3NF)

当且仅当关系模式R是第二范式,且R中没有非主属性传递依赖于候选键时,则称关系模式R是第三范式;

2NF->3NF:消除非主属性对候选键的传递依赖;

不能包含传递依赖:A->B,B->C,则A->C,属于传递依赖,不满足第三范式;

BC范式(BCNF)

设R是一个关系模式,F是它的依赖集,当且仅当F中每个依赖的决定因素必定包含R的某个候选码,R属于BCNF;

3NF->BCNF:消除主属性对候选键的部分依赖和传递依赖;

1NF -> 2NF -> 3NF -> BCNF,从前到后,依次在前一范式上增加限制条件

五、网络与信息安全基础知识

1、OSI/RM七层模型 和 TCP/IP 模型

层级ISO/OSI模型主要功能主要设备及协议TCP/IP模型
7应用层实现具体的应用功能基于TCP:POP3、FTP、HTTP、Telnet、SMTP
基于UDP:DHCP、TFTP、SNMP、DNS
NFS:最初只支持UDP,后来支持TCP
应用层
6表示层数据的格式与表达、加密、压缩
5会话层访问验证,建立、管理和终止会话
4传输层端到端的连接TCP、UDP传输层
3网络层分组传输和路由选择三层交换机、路由器、ARP、RARP、IP、ICMP、IGMP网际层
2数据链路层相邻结点无差别传输以帧为单位的信息,流量控制;网桥、交换机、网卡、PPTP、L2TP、SLIP、PPP网络接口及硬件层
1物理层提供物理链路的特性,非物理媒体,二进制传输中继器、集线器(多端口的中继器)

1-3层:负责通信功能,一般称为通信子网层;

5-7层:属于资源子网的功能范畴,称为资源子网层;传输单位统称为报文;

几个经常考到的协议

  • POP3:收邮件;SMTP:发邮件;
  • Telnet:远程登录协议;
  • NFS:网络文件服务协议;
  • SNMP:网络管理协议;
  • ARP:IP地址转物理地址;RARP:物理地址转IP地址;
  • ICMP:发送差错和报文的协议,还是利用IP传送报文;ping工具基于此协议开发;
  • DHCP:动态分配IP地址

2、IP地址

IP地址(这里指IPv4)用4个字节(8位二进制)来表示,之间用点隔开;这样每个字节转换成10进制,表示范围为 0~255(28-1)

IP地址可以分为5类,全0表示网络,全1表示广播;

  • A类:网络地址占1个字节,最高位为0,余下7位为真正的网络地址,支持1~126个网络;后面三个字节为主机地址,共提供 224-2 (减去全0和全1的情况)个端点的寻址;该类地址的第一个字节十进制为 000~127;
  • B类:网络地址占2个字节,最高两位为10,余下14位为真正的网络地址;该类地址的第一个字节十进制为 128~191;
  • C类:网络地址占3个字节,最高三位为110,余下21位为真正的网络地址;该类地址的第一个字节十进制为 192~223;
  • D类:识别头为1110,用于组播;该类地址的第一个字节十进制为 224~239;
  • E类:实验保留,识别头为1111,该类地址的第一个字节十进制为 240~255;

子网掩码

网络地址全为1,主机地址全为0;比如最常用的C类地址,默认子网掩码转为10进制为 255.255.255.0;

划分子网

拿部分主机号当子网号,网络号不动;

例:B类IP地址168.193.0.0划分为24个子网,子网掩码为多少?

解题过程是这样的,B类地址后两个字节(16位)为主机号,划分24个子网,从主机号中借用5位(最多32个子网)就够了,即16位主机号中,5位用来表示子网地址,11位表示主机地址;这样划分后,总的32位中,前21位表示网络号,子网掩码为网络号全为1,主机号全为0,则当前的子网掩码为:1111 1111 . 1111 1111 . 1111 1000 . 0000 0000,转换为十进制为 255.255.248.0;

3、加密

对称加密

又称公开密钥加密,加密强度不高,效率高,密钥分发困难;

常用算法:DES、3DES(三重DES)、RC-5、IDEA

非对称加密

又称共享密钥加密,加密强度高,速度慢;

常用算法:RSA、ECC;

签名

使用发送方的私钥加密,用发送方的公钥验证;

消息摘要

由单向散列函数加密成固定长度的散列值;不可逆;

摘要算法:

  • MD5:4个32位组成的128位散列值;
  • SHA:160位散列值;

4、病毒和木马

病毒:破坏;

木马(病毒):获取信息、控制电脑的后门程序;

如果这篇文章对你有用,可以点击下面的按钮告诉我

0

发表回复