承接 终于考出了软件设计师,这里分享一下我的笔记,希望大家能一命通关
。
基础知识篇
1. 邮件相关协议
MIME:一个互联网标准,扩展了电子邮件标志,使其能够支持,与安全无关
。
与安全有关:SSL
,https
,Pgp
。
2. 编译原理
目标代码的生成:目标代码的生成和具体的机器密切相关
。
注意
1.后缀式和三地址码是常用的中间代码。
2.中间代码经常由逆波兰记号,三元式,和树。
复制代码
3. Cache地址映射方式 (常考题)
1.全相联映射方式
对于主存中的数据块可以拷贝到cache中的哪一行不做硬性规定
。
2.直接映射方式
一个主存块只能拷贝到cache的一个特定行位置去
。
3.组相联映射方式
全相联映射方式和直接映射方式的折中方案。
4.VLIW
超长指令字
5.浮点数计算(常考题)
浮点数计算,先对阶,小阶对大阶,尾数向右移
。
6.校验算法
6.1 海明威码
注意
海明码利用奇偶性进行纠错和检错
复制代码
6.2 奇偶校验
对于奇偶校验,是由若干位有效信息,再加上一个二进制位(校验位)组成校验码,其中奇校验“1”的个数为奇数,而偶校验“1”的个数为偶数,以此完整校验,如果其中传输过程中有偶数个数发生错误(即1变成0或0变成1),则“1”的个数,其奇偶就不会发生改变,也就无法发现错误了,只有奇数个数据位发生错误,才能发现错误。同时,奇偶校验只能查错不能纠错。
7.常用协议以及端口号
注意点
1.tcp使用的流量控制协议是可变大小的滑动窗口协议
2.E-Mail:25 110
3.HTTPS:443端口
复制代码
8.UML图
构件图(有个图标):
注意
1.消息指向为指向的对象的方法,消息序号表示调用先后顺序。
2.ML类图统称不用于对对象快照进行建模
复制代码
9.计算机
9.1 DMA
1.直接主存存取(Direct Memory Access, DMA)是指数据在主存与I/O设备之间(即主存与外设之间)直接成块传送。
2.计算机中CPU的中断响应时间是 从发出中断请求到开始进入中断程序。
3.CPU实在一个总线周期结束时响应DMA请求的。
复制代码
9.2 存储器
相联存储器是一种按内容访问的存储器。
9.3 补码和移码
+-0编码相同的是补码和移码
9.4 资源进程图
资源简化规则
- 第一步:先看系统还剩下多少资源没分配,再看有哪些进程是不阻塞(“不阻塞”即:系统有足够的空闲资源分配给它)的
- 第二步:把不阻塞的进程的所有边都去掉,形成一个孤立的点,再把系统分配给这个进程的资源回收回来
- 第三步:看剩下的进程有哪些是不阻塞的,然后又把它们逐个变成孤立的点。
- 第四步:最后,所有的资源和进程都变成孤立的点。这样的图就叫做“可完全简化”。
9.5 PV操作
信号量取值范围:-(n-5)~5
10.标准化和知识产权
10.1 著作权
1.按公司规定撰写或在某公司所开发出的软件(属于职务作品),公司享有著作权。
2.软件著作权自开发完成之日起产生。
3.在委托开发的情况下,著作权应由书面协议决定,若无书面协议,著作权属受委托方。
4 国务院颁布<某条例>属于政策法规,不适用著作权保护。
复制代码
10.2 专利权
1.申请专利冲突时,通过协商或抽签确定授予专利。
2.先申请或先使用者授权专利。
3.同样的发明只允许授予一条专利,若协商不成功,两方都无法获得专利。
4.智力活动(包括游戏规则方法\算法\计算机程序代码)不取得专利权。
复制代码
10.3 专利权
1.申请专利冲突时,通过协商或抽签确定授予专利.
2.先申请或先使用者授权专利.
3.同样的发明只允许授予一条专利,若协商不成功,两方都无法获得专利.
4.智力活动(包括游戏规则方法\算法\计算机程序代码)不取得专利权.
复制代码
10.4 复制权
1.使用软件复制品这在未知情的条件下,不必承担赔偿责任,且复制品可在合理支付费用后激素使用.
复制代码
10.5 软件许可使用
1.独占许可:专有许可,不可授予第三方,著作权不能使用。
2.独家许可:专有许可,不可授予第三方,著作权人可以使用。
3.普通许可:非专有许可,可授予第三方,著作权人可以使用。
复制代码
其它
1. 商标权保护期可延长.
2. 发明专利:20年;实用新型或外观设计专利:10年.
3. 署名权\修改权\保护作品完整权保护期不受限制.发表权为一次性权力,作评被发表一次后不再享有.
. 学术论文引用资源必须为已发表作品.
复制代码
11.计算机组成原理
11.1 cpu
- 累加寄存器,用来暂时存放逻辑运算部件ALU运算的结果信息。
程序计数器
(PC)确定下一条取指指令的地址,计算之前就要用到,属于控制器。(万年必考)
- 指令寄存器(IR)保存当前正在执行的一条指令。
- 地址寄存器(AR)用来保存当前CPU所要访问的内存单元的地址。
11.2 总线类型
总线线路都可以被归为三类:即数据总线、地址总线和控制总线。
12. 哈夫曼编码
baijiahao.baidu.com/s?id=166472…
注意
每次取最小两个
复制代码
12. 被动攻击&主动攻击
主动攻击:假冒,重放 ,改写,拒绝服务。
被动攻击:流量分析,消息内容泄露。
13. 对称加密&非对称加密(常考)
对称加密:DES,三重DES
非对称加密:RSA
14. 敏捷开发方法scrum
- Product Backlog 产品办事事项清单。
- Sprint Backlog,Sprint呆板事项清单。
- Sprint 冲刺迭代。
15. 数据库
15.1ACID
- 原子性:事务是原子的,要么做,要么不做。
- 一致性:事务执行的结果必须保证数据库从一个一致性状态变到另一个一致性状态。
- 隔离性:事务相互隔离。当多个事务并发执行时,任一事务的更新操作直到其成功提交的整个过程,对其它事务都是不可见的。
- 持久性:一旦事务提交成功,即使数据库崩溃,对其数据库的更新操作页永久有效。
15.2数据库关系
15.3数据库三泛式
1nf
mysql,sqlserver等创建的数据表都满足1nf,如果不满足这个范式,是不能创建成功数据表的。
主键可以标识唯一数据。属性不可分的意思是每一个字段都是最小的。
反例:
2nf
消除了非主属性对于码的部分函数依赖(部分函数依赖指的是非主属性通过一个主键属性就可以确定)
3nf
打破A->B-C,消除了非主属性对于码的传递函数依赖。
反例
存在id->系名->班主任
15.4数据库关系代数
- 常用符号
- ∪并- 差
- ∩交
- ×笛卡尔积
- >大于
- ≥大于等于
- < 小于
- ≤小于等于
- = 等于
- ≠不等于
- ∧与
- ∨或
- ¬非
- σ选择
- π 投影
- ⋈ 自然连接:先笛卡尔积,然后重复的属性只保留一份
- ÷ 除
15.5 左连接
15.6 全连接
注意
数据库逻辑结构设计阶段,需要需求阶段形成的数据字典和数据流图
复制代码
16. 网络
16.1 OSI/RM七层模型(常考)
16.2 信息安全
注意点
- 冲突域:集线器连接的主机,交换机的每个端口
- 广播域:路由器连接
无效的ip地址:windows,169.254.x.x linux,0.0.0.0
(建议背一下)
17. 媒体类型
17. 代码设计
17.1 七大原则
17.2 设计模式
18. 二叉树类型
满二叉树:只有度为0和2。
完全二叉树:小于满二叉树。
平衡二叉树:左右两颗字数度超过1。
排序二叉树:若需插入的关键字大于树根,则插入到右子树上,若小于树根,则插入到左子树上,若为空树,则作为树根节点。
必背知识点
1. 软件设计模型
1.1 喷泉模型(常考)
1.以用户需求为动力
2.支持软件重用
3.具有迭代性
4.开发界限模糊
5.自下而上
2. 软件成熟度模型
- CL0(未完成的):过程域未执行或未得到CL1中定义的所有目标。
CL1(已执行的):其共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标
。CL2(已管理的):其共性目标是集中于已管理的过程的制度化。根据组织级政策规定过程的运作将使用哪个过程,项目遵循已文档化的计划和过程描述,所有正在工作的人都有权使用足够的资源,所有工作任务和工作产品都被监控、控制、和评审
。CL3(已定义级的):其共性目标集中于已定义的过程的制度化。过程是按照组织的裁剪指南从组织的标准过程中裁剪得到的,还必须收集过程资产和过程的度量,并用于将来对过程的改进
。- CL4(定量管理的):其共性目标集中于可定量管理的过程的制度化。
使用测量和质量保证来控制和改进过程域,建立和使用关于质量和过程执行的质量目标作为管理准则。
CL5(优化的):使用量化(统计学)手段改变和优化过程域,以满足客户的改变和持续改进计划中的过程域的功效。
提示
建议划线的熟记,考频较高
3. COCOMO ||
用到的变量:
- DSI-源指令条数
- MM-工作开发量
- TDEV-开发进度
4. 耦合和内聚
4.1 耦合
- 直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。
- 数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。
- 标记耦合 :一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。
其实传递的是这个数据结构的地址
; - 控制耦合:如果一个模块
通过传送开关、标志、名字等控制信息
,明显地控制选择另一模块的功能,就是控制耦合。 - 外部耦合:一组模块都访问
同一全局简单变量而不是同一全局数据结构
,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。 - 公共耦合:
若一组模块都访问同一个公共数据环境
,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。 - 内容耦合:如果发生下列情形,两个模块之间就发生了内容耦合:
- 一个模块直接访问另一个模块的内部数据;
- 一个模块不通过正常入口转到另一模块内部;
- 两个模块有一部分程序代码重叠(只可能出现在汇编语言中);
- 一个模块有多个入口。
4.2 内聚
①巧合内聚,指一个模块内的各处理元素之间没有任何联系。
②逻辑内聚,指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
③时间内聚,把需要同时执行的动作组合在一起形成的模块。
④通信内聚,指模块内所有处理元素都在同一个数据结构上操作,或者指各处理使用相同的输入数据或者产生相同的输出数据。
⑤顺序内聚,指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一个功能元素的输出就是下一个功能元素的输入。
⑥功能内聚,是最强的内聚,指模块内所有元素共同完成一个功能,缺一不可。
4. 系统的维护和测试
在系统运行过程中,软件需要维护的原因是多样的,根据维护的原因不同,可以将软件维护分为以下四种:
- 改正性维护。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就称为改正性维护。
- 适应性维护。在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就称为适应性维护。
- 完善性维护。在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动称为完善性维护。
- 预防性维护。这是指预先提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。 本题对该销售系统的修改是为了应对数据格式的变化而做出的修改。
5. 多态类型
- 参数多态:应用广泛、最纯的多态。
- 含多态:同样的操作可用于一个类型及其子类型。包含多态一般需要进行运行时的类型检查。
- 强制多态:编译程序通过语义操作,把操作对象的类型强行加以变换,以符合函数或操作符的要求。
- 过载多态:同一个名(操作符﹑函数名)在不同的上下文中有不同的类型。
6. ISO/IEC软件质量模型
一、功能性:是指当软件在指定条件下使用,软件产品满足明确和隐含要求功能的能力。
- 适合性:是指软件产品与指定的任务和用户目标提供一组合适的功能的能力。
- 准确性:是指软件产品具有所需精确度的正确或相符的结果及效果的能力。
- 互操作性:是指软件产品与一个或多个规定系统进行交互的能力。
- 密安全性:是指软件产品保护信息和数据的能力,以使未授权的人员或系统不能阅读或修改这些信息和数据,但不拒绝授权人员或系统对其的访问。
- 功能依从性:是指软件产品依附与同功能性相关的标准、约定或法规以及类似规定的能力。
二、可靠性:在指定条件下使用时,软件产品维持规定的性能级别的能力。
成熟性:是指软件产品避免因软件中错误发生而导致失效的能力。
容错性:是指在软件发生故障或违反指定接口的情况下,软件产品维持规定的性能级别的能力。
易恢复性:是指在失效发生的情况下,软件产品重建规定的性能级别并恢复受直接影响的数据的能力。
可靠性依从性:是指软件产品依附与同可靠性相关的标准、约定或法规以及类似规定的能力。
三、易用性:是指在指定条件下使用时,软件产品被理解、学习、使用和吸引用户的能力。
- 易理解性:是指软件产品使用户能理解软件产品是否合适以及如何能将软件用于特定的任务和使用环境的能力。
- 易学性:是指软件产品使用户能学习它的能力。
- 易操作性:是指软件产品使用户能操作和控制它的能力。
- 吸引性:是指软件产品吸引用户的能力。
- 易用性依从性:是指软件产品依附与同易用性相关的标准、约定、风格指南或法规以及类似规定的能力。
四、效率:是指在规定条件下,相对于所用资源的数量,软件产品可提供适当的性能的能力。
- 时间特性:是指在规定条件下,软件产品执行其功能时,提供适当的响应时间和处理时间以及吞吐率的能力。
- 资源利用性:是指在规定条件下,软件产品执行其功能时,提供合适的数量和类型的资源的能力。
- 效率依从性:是指软件产品依附与同效率相关的标准或约定的能力。
五、维护性:是指软件产品可被修改的能力,修改可能包括修正,改进或软件适应环境、需求和功能规格说明中的变化。
- 易分析性:是指软件产品诊断软件中的缺陷或失效原因,以及判定待修改的部分的能力。
- 易改变性:是指软件产品使指定的修改可以被实现的能力。
- 稳定性:是指软件产品避免由于软件修改而造成意外结果的能力。
- 易测试性:是指软件产品使已修改软件能被确认的能力。
- 维护性依从性:是指软件产品依附与同维护性相关的标准或约定的能力。
可移植性:是指软件产品从一种环境迁移到另一种环境的能力。
- 适应性:是指软件产品无需采用有别于为考虑该软件的目的而准备的活动或手段,就可能适应不同的指定环境的能力。
- 易安装性:是指软件产品在指定环境中被安装的能力。
- 共存性:是指软件产品在公共环境中同与其分享公共资源的其他独立软件共存的能力。
- 易替换性:是指软件产品在环境相同、目的相同的情况下替代另一个指定软件产品的能力。
- 可移植性依从性:是指软件产品依附与同可移植性相关的标准或约定的能力。
7. 极限编程
极限编程是一种轻量级(敏捷)、高效、低风险、柔性、可预测的、科学的软件开发方式。• 4大价值观: 沟通、简单性、反馈和勇气。
• 5个原则:快速反馈、简单性假设、逐步修改、提倡更改和优质工作。
• 12个最佳实践:计划游戏(快速制定计划、随着细节的不断变化而完善)、小型发布(系统的设计要能够尽可能早地交付)、隐喻(找到合适的比喻传达信息)、简单设计(只处理当前的需求,使设计保持简单)、测试先行(先写测试代码,然后再编写程序)、重构(重新审视需求和设计,重新明确地描述它们以符合新的和现有的需求)、结队编程、集体代码所有制、持续集成(可以按日甚至按小时为客户提供可运行的版本)、每周工作40个小时、现场客户和编码标准。
7. 著作权
注意
署名权保护时间没有限制
《中华人民共和国著作权法》和《计算机软件保护条例》是构成我国计算机软件著作权的两个基本法律文件
8. 结构化分析和设计
- 是一种面向数据流的开发方法。自顶向下、逐层分解。
- 基本原则:功能的分解与抽象
- 使用手段包括数据流图,数据字典,结构化语言。
- 数据字典的条目:数据流,数据项,数据存储,基本加工。
- 过程设计主要包含对数据结构和算法的设计。
9. 防火墙
1.控制进出网络的数据包和数据流向
2.提供流量信息的日志和审计
3.隐藏内部IP一级网络结构的细节
10. 入侵检测技术
1.专家系统
2.模型检测
3.简单匹配
11. 配置管理
1.风险管理
2.变更管理
3.配置状态报告
12. 排序算法
注意
-
稳定的排序算法:冒泡排序、插入排序、归并排序(冒插归)。
-
时间复杂度平方:直冒插
常见公式
1. 串联系统可靠度
R1R2...
复制代码
2. 并联系统可靠度
1-(1-R1)(1-R2)(1-R3)...
复制代码
3. cache
系统平均周期 = 访问命中率*Cache的周期时间+(1-访问命中率)*主存储周期时间
复制代码
4. 流水线:
执行时间(常考):
注意 k是指令个数
吞吐率&吞吐量:
加速比:
5. 浮点数表示
注意
1. 对阶:从低到高对。
2.结果格式化:尾数必须是一位。
复制代码
5. 地址单元计算
地址单元计算:(结束地址+1)-(开始地址)
复制代码
6. 磁盘存取时间计算
7. 海明威计算公式
设数据位是n位,校验位是k位,则n和k必须满足以下关系:
8. 最少资源计算
系统最少资源=(所需资源-1)*进程个数+1
复制代码
9. 环路复杂度
V(G)=m-n+2
复制代码
说明:其中V(G)是有向图G中的环路个数,m是G种的有向弧数,n是G中的节点数。
请熟记这张图,因为偶尔会要自己简化
10. 内存地址的获取
内存地址=物理块号*页大小+页内地址
复制代码
例题
解析
//共多少字节
CFFFF-A0000+1 = 40000;
16^4*4B / 2^10 = 192K;
//总共多少片
192/64K = 3片;
复制代码
10. 递归树
11. 计算逻辑页面
物理地址 = 物理页号 + 页内地址
逻辑地址 = 逻辑页号 + 页内地址
复制代码
相关算法:
12. 信号量取值范围
-(n-k)~k
复制代码
提醒
n为进程数,k为信号量数
13. 计算机的可靠性
MTBF/(1+MTBF) = x/(x+1)
复制代码