软件设计师-个人笔记-错题集

2018 下半年

摘要算法

算法生成的长度
MD5128
SHA1160

对称加密算法

  • DES
  • 3DES
  • IDEA
  • AES

非对称加密算法

  • RSA
  • ECC
  • DSA
  • ElGamal

法律

作者的署名权,修改权,保护作品完整权的保护期不受限制

商标权可每隔10年无限续期-》可无限拥有

我国保护计算机软件著作权的两个基本法律文件是《中华人民共和国著作权法》和《计算机软件保护条例》

数据流图

成分:

  • 数据存储
  • 数据流
  • 加工
  • 外部实体-》指系统之外,又和系统的联系的人或事物或软件系统

软件工程的模型

增量模型在各个阶段并不交付一个可运行的完整的产品, 而是满足客户需求的一个子集的可运行产品。整个产品被分解为若干个构件,开发人员逐个构件地交付产品,这样做的好处是软件开发可以较好的适应变化, 客户可以不断的看到所开发的产品, 降低开发风险

软件质量模型

功能性

适合性
准确性
互用性
依从性
安全性

效率

时间特性
资源特性

可靠性

成熟性
容错性
易恢复性

可维护性

易分析性
易改变性
稳定性
易测试性

易使用性

易理解性
易学性
易操作性

可移植性

适应性
易安装性
一致性
易替换性

多态的分类

  • 参数多态:应用广泛,最纯的多态(模板)
  • 包含多态:同样的操作可用于一个类型及其子类型。一般需要类型检查
  • 过载多态:同一个名(操作符,函数名)在不同的上下文有不同的类型(重载)
  • 强制多态:(类型的强制或隐式转换)

c语言编译过程

(1) 词法分析阶段:识别单词, 删除无用的信息(将字符流转化为记号流

(2) 语法分析阶段:以单词作为输入,分析单词符号是否形成符合规则的语法(表达式,赋值,循环),按语法规则分析检查每条语句是否有正确的逻辑结构,构造语法树(将记号流转化为结构)(检查结构是否正确)

(3) 语义分析阶段:检查源程序是否存在语义错误,检查等于号的左端,右端类型是否匹配,是否除0等(检查含义是否符合语法规则

中间代码有后缀式,三地址码,语法树三种形式

c语言的用户空间

代码区,静态数据区,栈区,堆区

  • 栈区,堆区也叫动态数据区

  • 全局变量在存储空间的静态数据区

数据库透明性

分片透明:用户不必知道关系数据是如何分片的(分块存储),它们对数据的操作在全局关系上进行,即关系如何分片对用户是透明的。

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

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

**逻辑透明:**是最低层次的透明性,该透明性提供数据到局部数据库的映像,即用户不必关心局部DBMs支持哪种数据模型、使用哪种数据操纵语言,数据模型和操纵语言的转换是由系统完成的。

2019 上半年

防火墙

  • 包过滤防火墙通过检查每个数据包的信息来判断是否允许数据包通过
  • 应用级防火墙是在应用层上实现协议过滤和转发的功能(尤其是针对网络应用协议待定的数据过滤规则)
  • 数据库防火墙是针对关系型数据库保护而产生的一种主动防御技术
  • web防火墙是入侵检测系统,不是传统的防火墙

法律法规

为了商业利益向用户提供工具软件的复制品,侵犯了公司的著作权

商标权-》申请了才有,著作权-》软件开发完成的时候就有了

软件开发模型

极限编程要求测试先行,先测试代码,再编写程序

耦合

  • 无直接耦合。指两个模块之间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息。因此,模块间耦合性最弱,模块独立性最高。

  • 数据耦合。指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。

  • 标记耦合。指两个模块之间传递的是数据结构

  • 控制耦合。指一个模块调用另一个模块时,传递的是控制变量,被调用模块通过该控制变量的值有选择地执行模块内的某一功能。因此,被调用模块应具有多个功能,哪个功能起作用受调用模块控制。

  • 外部耦合。模块间通过软件之外的环境联结(如I/O将模块耦合到特定的设备、格式、通信协议上)时称为外部耦合。

  • 公共耦合。指通过一个公共数据环境相互作用的那些模块间的耦合。

  • 内容耦合。当一个模块直接使用另一个模块的内部数据,或通过非正常入口转入另一个模块内部时,这种模块之间的耦合称为内容耦合。

内聚

  • 偶然内聚(巧合内聚)。指一个模块内的各处理元素之间没有任何联系
  • 逻辑内聚。指模块内执行若干个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
  • 时间内聚。把需要同时执行的动作组合在一起形成的模块称为时间内聚模块。过程内聚。指一个模块完成多个任务,这些任务必须按指定的过程执行。
  • 通信内聚。指模块内的所有处理元素都在同一个数据结构上操作,或者各处理使用相同的输入数据或者产生相同的输出数据。
  • 顺序内聚。指一个模块中的各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。
  • 功能内聚。这是最强的内聚,指模块内的所有元素共同作用完成一个功能,缺一不可。耦合性和内聚性是模块独立性的两个定性标准,在将软件系统划分模块时,应尽量做到高内聚、低耦合,提高模块的独立性。

面向对象

聚合对象指一个对象包含其他的对象

数据库

GRANT 格式

grant<权限> on 表 [列名] to 用户 [with grant option]

网络

与tcp相比,udp无连接管理和流量控制的功能,也不负责重新发送丢失的数据或出错的数据,两者的共同点是均使用了16位端口号

ipconfig: 显示简要的信息
ipconfig/all: 显示详细的信息,可查看DHCP服务是否已启用
ipconfig/renew: 更新所有的适配器
ipconfig/release: 释放所有匹配的连接(IP)
ipconfig/displaydns:显示本地的dns的内容
ipconfig/flushdns: 清除本地的dns
ipconfig/registerdns: 手动注册dns

2019 下半年

网络协议

MIME多用途是用于描述信息内容类型的标准,与安全无关

面像对象

类中的成员变量也称属性,成员函数也称方法

数据库

自然连接需要去重,笛卡尔乘积不需要

笛卡尔积对两个关系R和S进行操作,产生的关系中元组个数为两个关系中元组个数之积。

等值连接则是在笛卡尔积的结果上再进行选择操作,挑选关系第 i 个分量与第(r+j) 个分量值相等的元组。

自然连接则是在等值连接(以公共属性值相等为条件)的基础上再行投影操作,去掉 S 中的公共属性列,当两个关系没有公共属性时,自然连接就转化成笛卡尔积。


事务的有原子性一致性隔离性持久性

  • 原子性:事务是原子的,要么做,要么不做
  • 一致性:事务执行的结果必须保证从一个一致的状态转到另外的一个一致的状态
  • 隔离性:事务之间是隔离的,当多个事务并发执行的时候,任一事务没执行完的时候,对于其他的事务都是透明的
  • 持久性:一旦事务完成,即使数据库崩溃,数据也不会丢失丢

算法

动态规则适合01背包,贪心适合部分背包

哈夫曼树

左节点小于根节点,右节点大于根节点

左边的权重是0,右边的是1

网络模型

建立进行可靠通信的是传输层的功能,同时,在传输层完成

状态自动机

确定的自动机:对于一个输入,都只有一个确定的转移

不确定的自动机:对于一个输入,存在多个转移

2020 下半年

计算机组成原理

cache

cache的变换由硬件自动完成

cpi

指cpu每执行一条指令所需要的时钟周期数

MIPS

每秒百万级指令执行数量

MIPS = 主频/(CPI*106)

DMA

一个DMA信号消耗一个总线周期

浮点数的变换

阶码小的向阶码大的对齐,通过乘2n的方式来完成

类设计的原则

  • 开闭原则:对扩展开放,对修改关闭
  • 接口分离原则:不应该强迫用户使用他们不用的方法。依赖抽象,不依赖具体,抽象不依赖具体的实现
  • 共同封闭原则:包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对包产生影响,则将对包中的所有的类都产生影响, 对其他的包无影响

数据库

冲突

  • 属性冲突:属性值的类型,聚会范围,取值集合不同
  • 命名冲突:不同意义的对象名称相同,或相同的意义不同的名称
  • 结构冲突:同一对象在不同应用中具有不同的抽象

左连接, 右连接, 等值连接,全外连接

left join (左连接,左外连接):返回包括左表中的所有记录和右表中连接字段相等的记录。

right join (右连接,右外连接):返回包括右表中的所有记录和左表中连接字段相等的记录。

inner join (等值连接或者叫内连接):只返回两个表中连接字段相等的行。

full join (全外连接):返回左右表中所有的记录和左右表中连接字段相等的记录。

2021 上半年

RISC和CISC

RISC:

  • 采用流水线技术
  • 简单的指令
  • 很多通用寄存器

CISC:

  • 不采用流水线技术
  • 复杂的指令
  • 很少的通用寄存器

数据库安全

SQL注入:目标是获得数据库的权限,非法获得数据

面向对象分析的顺序

  • 认定对象
  • 组织对象
  • 描述对象间的相互作用
  • 确定对象的操作

稀疏矩阵的压缩

  • 三元组顺序表
  • 行逻辑连接的顺序表
  • 十字链表

哈希表

同义词:哈希值相同

2021 下半年

面向对象设计的顺序

  • 识别类及对象
  • 定义属性
  • 定义服务
  • 识别关系
  • 识别包

面向对象

  • 对象的状态包含了对象的所有的属性(静态)和每个对象当前的值(动态)

  • 在编译时的绑定:静态绑定, 在运行时的绑定:动态绑定

对象的特性

  • 清晰的边界
  • 良好定义的行为
  • 可扩展性

面向对象的关系

类与类

  • 依赖:两个事物的语义, 一个事物的改变会影响另一个事物的改变

    • a依赖b ==》 A使用B
  • 关联:一种结构关系,描述了一组链,链是对象之间的连接

    • 组合:生命周期相同
    • 聚合:生命周期不同
  • 泛化:一种 特殊/一般 的关系,特殊的对象(子)可以替代一般的对象(父)

类与接口

  • 实现:类元之间的语义关系,其中一个类元指定了另一个类元保证执行的契约

如果A的方法中仅仅使用了B的对象,那么类A依赖于类B;若类A的部分是由类B的对象组成,并且类A控制类B的生命周期,那么,类A与类B是组合关系

职责

1. 单一职责原则(Single Responsibility Principle)
	每一个类应该专注于做一件事情。
2. 里氏替换原则(Liskov Substitution Principle)
	超类存在的地方,子类是可以替换的。
3. 依赖倒置原则(Dependence Inversion Principle)
	实现尽量依赖抽象,不依赖具体实现。
4. 接口隔离原则(Interface Segregation Principle)
	应当为客户端提供尽可能小的单独的接口,而不是提供大的总的接口。
5. 迪米特法则(Law Of Demeter)
	又叫最少知识原则,一个软件实体应当尽可能少的与其他实体发生相互作用。
6. 开闭原则(Open Close Principle)
	面向扩展开放,面向修改关闭。
7. 组合/聚合复用原则(Composite/Aggregate Reuse Principle CARP)
	尽量使用合成/聚合达到复用,尽量少用继承。原则: 一个类中有另一个类的对象。

不同的阶段

分析阶段

目地:获得对应用问题的理解,确定系统的功能要求,性能要求

主要关注系统的行为,明确系统提供什么服务

不考虑系统实现以及系统的测试问题,强调建立独立于系统实现的系统分析模型,其关注点仍然侧重于问题域

第一步:确定问题域

包含5个活动:

  • 认定对象
  • 组织对象
  • 描述对象的相互作用
  • 定义对象的操作
  • 定义对象的内部信息
领域模型

包含

  • 属性
  • 操作
  • 关联

设计阶段

将分析模型转化为设计模型

目地:定义系统构造的蓝图

实现阶段

选用一种面向对象程序的设计语言,采用对象,类及其相关的概念进行程序设计(coding)

序列图应该实现的方法

实心,实线,指向自己的箭头就是应该实现的方法

同步消息:实心三角箭头

异步消息:空心三角箭头

复杂对象的交互

领域模型采用类图进行建模

交互关系采用顺序图,交互概览图等进行建模

状态图

关注系统的动态视图

从一个状态到另一个状态之间的连线称为转移(Transition)。状态之间的过渡事件(Event)对应对象的动作或活动(Action)。事件有可能在特定的条件下发生,在UML中这样的条件称为守护条件(Guard Condition),发生的事件可通过对象的动作(Action)进行处理。状态之间的转移可带有标注,由三部分组成(每一部分都可省略),其语法为:事件名 [条件] / 动作名。

状态图适合用于表述在不同用例之间的对象行为。

事件触发转换

监护条件只有在相应的事件发生时才会检查

活动可以在转换时执行,也可以在状态内执行

使用类图的三种方式

  • 对系统的词汇进行建模
  • 对简单协作进行建模
  • 对逻辑数据库模式的建模

对象快照采用对象图进行建模

序列图

是交互图,强调消息的时间次序的交互图

用于展示一个用例和多个对象的行为

计算机安全

病毒

特征

  • 传播性
  • 隐蔽性
  • 感染性
  • 潜伏性
  • 破坏性

种类

Worm 蠕虫病毒

欢乐时光,熊猫烧香,红色代码,爱虫病毒,震网

Torjan 特洛伊木马

冰河

Backdoor 后门病毒
Macro 宏病毒

感染文本文档,电子表格

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值