可参考培训视频网址:https://www.bilibili.com/video/av60964949/?p=1
历年真题:链接:https://pan.baidu.com/s/1a3VECBzACPyN7C1vZTdfZg
提取码:jfke
1.软件工程



瀑布模型属于结构化方法模型,只适用于需求明确或者二次开发的项目。


风险分析是螺旋模型新加的一个特有部分;

v模型在需求分析阶段就开始写验收测试与系统测试;
概要设计阶段就开始写集成测试;
详细设计阶段就开始写单元测试;
强调测试在整个开发过程中;
喷泉模型是面向对象方法的模型;
RAD(快速开发模型)


细化阶段:会完成架构的建立;

适用于小项目;

2.1 需求工程







1.2系统设计





其中功能内聚聚合度最高,而偶然内聚聚合度最低;
非直接耦合耦合度最低,而内容耦合耦合度最高;

需掌握图(b);其余了解;







1.3 软件测试(基本每次都考的知识点--重要)


边界值:略小于区间和端点和略大于区间的值;
最高级别的覆盖是路径覆盖;

在服务器环境中测试是Alpha测试,在用户环境中测试是Beta测试;




1.4 项目管理


WBS是将项目分解成多个工作包;

其中三点估算法计算如下:假设一个工作包完成一般情况下需要10人天,超预期完成最好的情况下需要6人天,最坏情况下需要13人天,则用三点估算法计算(13+4*10+6)/ 6 = 9.8人天,约为10人天。即一般情况下需要的人天乘以4倍再加另外两个时间后求平均;

FS关系:A完成B才可以开始;(题目如无特殊注明,默认是FS关系)
FF关系:A完成B才可以完成(A、B谁先开始没有约定);
SS关系:A开始B才能开始;
SF关系:A开始B才能完成;
图中的ES是最早开始时间,EF是最早结束时间,LS是最晚开始时间,LF是最晚结束时间;
正向推导可以得到各个活动的ES和EF,在最后把最后一个活动的最早结束时间作为它的最晚结束时间,再逆向推到既可以得到LS和LF;
总时差是LS-ES或LF-EF得出的值,其中把总时差为0的活动连起来就是整个工程的关键路径;

其中边上字母是活动,数字是持续时间;
圆点是事件;


由此可知关键路径为总时差为0的活动连接起来的路径:1234679




(难点)


在剩余工作成本计算中需要注意的地方是:若题目简述的是非典型偏差(即后期的工作不会按之前的偏差情况继续进行,而是以预期进度进行),这时候ETC=BAC-EV;若是典型偏差,则为ETC=(BAC-EV)/CPI;


可以看到该项目成本超支,进度滞后;





质量控制针对的是结果,质量保证针对的是过程

帕累托分析:二八定律,分主次;









1.5 软件架构设计

软件架构在需求分析和软件设计之间;


其中批处理序列需要等待上一步的数据流处理完一下步才能开始;
而管道-过滤器可以在上一步数据流只处理了一部分,就将这一部分作为下一步的一个输入;




超文本简单了解是属于仓库风格就好;













ESB:服务总线;
ESB方式是通过总线连接各个服务,而Web Service是通过封装服务来实现的;










其中三生命周期模型简单了解其存在即可;


软件产品线建立方式是一个很重要部分,要清楚了解各个方式;
其中革命式是指一次性推倒重来;而演化方式是逐步演化;
最为稳妥的方式是基于现有产品演化为产品线;
风险度最高的是全新软件产品线的开发;






其中JVM是J2EE的运行虚拟机,而CLR是.NET的通用语言运行环境;
.NET可移植性较差,J2EE的可移植性较好;

其中主动MVC中的模型是可以推送信息给视图的,而被动MVC中只有当视图获取模型数据时才会得到数据,模型是不会给视图推送数据的;这是两者的一个主要区别;


1.6 系统安全分析与设计



其中甲的公钥加密的密文,只能用甲的私钥来解密;反过来也是如此,即用私钥加密,只能用公钥解密(但这种就起不到保密作用,因为公钥是公开的)这个其实就是非对称加密中的数字信封技术;

其中单向是指只能通过明文得到散列值,而不能通过散列值还原成明文;
特点:第三方无法篡改;



讲解在P134上;

解析:具体流程如下:
1)首先是发送方A将邮件正文是使用(对称加密)随机密钥K来加密得到邮件密文,将密文发送给接收方B;
2)此时接收方B尚未得到随机密钥K,无法进行解密,为此需要发送方同时发送加密后的密钥K;
3)发送方A将K使用接收方的公钥来加密K(数字信封),得到加密后的K,再将加密后的K发送给接收方B;
4)接收方B获得加密后的密钥K后,使用本机私钥(图中的Db)来对K进行解密,得到初始的随机密钥K;
5)接收方B使用解密好的随机密钥K来对邮件密文进行解密,得到邮件正文;
6)为了验证该邮件正文是否被篡改和发送这不可抵赖,还需要以下几个步骤;
7)发送方A对邮件正文使用信息摘要的技术产生信息摘要,再使用发送方A的私钥Da进行加密得到摘要密文(此过程为数字签名),再将此摘要密文发送给接收方B;
8)接收方B拿到摘要密文后,使用发送方A的公钥Ea进行签名解密,若解密成功则发送方一定是A(实现发送者不可抵赖);
9)通过解密后得到邮件摘要,用该邮件摘要与第(5)步中得到的邮件正文使用信息摘要方法生成的信息摘要进行比对,若一直则证明了邮件正文没有被篡改。至此,整个流程结束。





PPTP和L2TP在数据链路层,是一种隧道协议;
IPSec在网络层部分,可以对数据包加密;
考试形式大部分为:问你哪个协议属于什么层的!

其中窃听与业务流分析比较容易搞混,他们的一个区别是业务流分析是长期监听,同时还对统计方法对其进行分析;
ARP为地址解析协议;


其中DoS拒绝服务攻击,DDoS是分布式拒绝服务攻击;破坏的系统的可用性;
图中表示的是:黑客通过控制傀儡机来抓取肉机(即通过散播病毒,中病毒的普通机器),在要攻击某台服务器的时候,通过傀儡机控制所有的肉机对同一个服务器发起请求,达到攻击的效果。
DDoS攻击粗略防范(以点播视频网站为例):
1)当受到攻击时,提示在使用的用户网站在遭受攻击,拒绝非登录的用户使用或者拒绝近一个月才注册的用户的方法来缓解;
2)分析平常用户的一个分布,如一般情况下集中在北京上海等地,在发现突然很多其他地区的用户访问时,拒绝这些用户的访问,这种方法可能会有误伤的情况(即拒绝了正常用户的访问),但也很大程度上缓解了攻击的压力;

详细参照P143
网络级只检查头部信息,而应用级还进行拆箱检查;
应用级主要掌握屏蔽子网;
屏蔽子网在外网与内网之间做了一个屏蔽子网区,也称为隔离区或DMZ(非军事区),该区域既不属于内部网络也不属于内部网络。该区域一般放置的是对外服务的服务器。


以往的蠕虫病毒往往感染的是.exe或者.com文件,而宏病毒往往感染的是类似于Office或者word之类的文件;
1.7 系统可靠性分析与设计


在题目中若没有给定MTTR或者无法根据已有条件算出MTTR时,一般认为MTBF=MTTF;

其中可靠度用R表示。

其中图中上半部分为串联系统,在计算失效率的过程中,如果失效率很低的情况下,可以使用如图中所示的公式进行累加,若很高的情况下不适合使用该公式;
其中图中下半部分为并联系统,由于求失效率的公式过于复杂,一般我们直接求出可靠度,然后用1减去可靠度即可得到失效率;
串联系统的可靠度等于各部件的可靠度相乘;并联系统可靠度等于1减去各部件的不可靠度的积;

一般常考的是下半部分的混合系统求解;该部分的求解往往是将并联的作为一个部分单独求解出可靠度,然后再以串联的方式求解出可靠度;


后向恢复相当于回到上一次备份的状态;
以下为软件容错的三种方法

N版本中,不同团队在需求规格说明书上就已经开始不一样了;


例子:我们平常开发用到的try{}catch{}也算作防卫式程序设计;

双机热备模式:一个处于运行,一个处于备用状态,利用率只有50%,利用率较低;
双机互备模式:两台机器分别备份对方的内容,当其中一台机器出问题时,另一台就接管该台机器;
双机双工模式:同时提供相同的服务,类似于集群;

