软考(系统架构设计师)基础知识(二)
可参考培训视频网址:https://www.bilibili.com/video/av60964949/?p=1
历年真题:链接:https://pan.baidu.com/s/1a3VECBzACPyN7C1vZTdfZg
提取码:jfke
1.软件工程
信息系统开发方法
软件开发模型--类别
瀑布模型SDLC
瀑布模型属于结构化方法模型,只适用于需求明确或者二次开发的项目。
其他经典模型
螺旋模型
风险分析是螺旋模型新加的一个特有部分;
v模型
v模型在需求分析阶段就开始写验收测试与系统测试;
概要设计阶段就开始写集成测试;
详细设计阶段就开始写单元测试;
强调测试在整个开发过程中;
喷泉模型是面向对象方法的模型;
RAD(快速开发模型)
构建组装模型CBSD
统一过程(缩写为UP或RUP)
细化阶段:会完成架构的建立;
敏捷开发方法
适用于小项目;
逆向工程
2.1 需求工程
面向对象基本概念
UML
需求分类与需求获取
需求分析SA
分层数据流DFD
状态转换图
ER图
1.2系统设计
业务流程重组BPR
业务流程管理BPM
人机界面设计
结构化设计基本原则
内聚与耦合
其中功能内聚聚合度最高,而偶然内聚聚合度最低;
非直接耦合耦合度最低,而内容耦合耦合度最高;
系统结构/模块结构
需掌握图(b);其余了解;
设计原则
概念
设计模式分类
创建型模式
结构型模式
行为型模式
行为型模式2
1.3 软件测试(基本每次都考的知识点--重要)
测试原则与类型
测试用例设计
边界值:略小于区间和端点和略大于区间的值;
最高级别的覆盖是路径覆盖;
测试阶段
在服务器环境中测试是Alpha测试,在用户环境中测试是Beta测试;
面向对象测试
测试管理
软件调试
系统运行和维护
1.4 项目管理
CMMI
范围管理
WBS是将项目分解成多个工作包;
时间管理
其中三点估算法计算如下:假设一个工作包完成一般情况下需要10人天,超预期完成最好的情况下需要6人天,最坏情况下需要13人天,则用三点估算法计算(13+4*10+6)/ 6 = 9.8人天,约为10人天。即一般情况下需要的人天乘以4倍再加另外两个时间后求平均;
单代号网络图,PDM
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 软件架构设计
软件架构的概念
软件架构在需求分析和软件设计之间;
软件架构风格定义与分类
数据流风格
其中批处理序列需要等待上一步的数据流处理完一下步才能开始;
而管道-过滤器可以在上一步数据流只处理了一部分,就将这一部分作为下一步的一个输入;
调用/返回风格
独立构件风格
虚拟机风格
仓库风格
超文本简单了解是属于仓库风格就好;
两层C/S架构
三层C/S架构1
三层C/S架构2
三层C/S架构3
三层B/S架构
混合架构风格
富互联网应用RIA
AJAX
mushup
基于服务的架构SOA
基于服务的架构SOA
SOA的实现方式--Web Service
SOA的实现方式--ESB
ESB:服务总线;
ESB方式是通过总线连接各个服务,而Web Service是通过封装服务来实现的;
质量属性
质量属性
软件架构评估分类
基于场景的方式
ATAM
SAAM
软件产品线--基本概念
过程模型--双生命周期模型
过程模型--SEI模型
过程模型--三生命周期模型
其中三生命周期模型简单了解其存在即可;
组织结构
软件产品线建立方式
软件产品线建立方式是一个很重要部分,要清楚了解各个方式;
其中革命式是指一次性推倒重来;而演化方式是逐步演化;
最为稳妥的方式是基于现有产品演化为产品线;
风险度最高的是全新软件产品线的开发;
中间件技术--概念
主要的中间件技术
Corba
典型应用架构--J2EE
典型应用架构--.NET
.NET与J2EE
其中JVM是J2EE的运行虚拟机,而CLR是.NET的通用语言运行环境;
.NET可移植性较差,J2EE的可移植性较好;
典型应用架构--MVC设计模式
其中主动MVC中的模型是可以推送信息给视图的,而被动MVC中只有当视图获取模型数据时才会得到数据,模型是不会给视图推送数据的;这是两者的一个主要区别;
J2EE--Java企业应用框架
典型应用架构--MVP模式
1.6 系统安全分析与设计
信息系统安全属性
对称加密技术
非对称加密技术
其中甲的公钥加密的密文,只能用甲的私钥来解密;反过来也是如此,即用私钥加密,只能用公钥解密(但这种就起不到保密作用,因为公钥是公开的)这个其实就是非对称加密中的数字信封技术;
信息摘要
其中单向是指只能通过明文得到散列值,而不能通过散列值还原成明文;
特点:第三方无法篡改;
数字签名
数字信封与PGP
练习题:设计邮件加密系统
讲解在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)步中得到的邮件正文使用信息摘要方法生成的信息摘要进行比对,若一直则证明了邮件正文没有被篡改。至此,整个流程结束。
PKI公钥体系
PKI公钥体系
信息系统安全保障层次
安全审计与安全系统设计原则
各个网络层次的安全保障
PPTP和L2TP在数据链路层,是一种隧道协议;
IPSec在网络层部分,可以对数据包加密;
考试形式大部分为:问你哪个协议属于什么层的!
网络威胁与攻击1
其中窃听与业务流分析比较容易搞混,他们的一个区别是业务流分析是长期监听,同时还对统计方法对其进行分析;
ARP为地址解析协议;
网络威胁与攻击2
DoS与DDoS
其中DoS拒绝服务攻击,DDoS是分布式拒绝服务攻击;破坏的系统的可用性;
图中表示的是:黑客通过控制傀儡机来抓取肉机(即通过散播病毒,中病毒的普通机器),在要攻击某台服务器的时候,通过傀儡机控制所有的肉机对同一个服务器发起请求,达到攻击的效果。
DDoS攻击粗略防范(以点播视频网站为例):
1)当受到攻击时,提示在使用的用户网站在遭受攻击,拒绝非登录的用户使用或者拒绝近一个月才注册的用户的方法来缓解;
2)分析平常用户的一个分布,如一般情况下集中在北京上海等地,在发现突然很多其他地区的用户访问时,拒绝这些用户的访问,这种方法可能会有误伤的情况(即拒绝了正常用户的访问),但也很大程度上缓解了攻击的压力;
防火墙
详细参照P143
网络级只检查头部信息,而应用级还进行拆箱检查;
应用级主要掌握屏蔽子网;
屏蔽子网在外网与内网之间做了一个屏蔽子网区,也称为隔离区或DMZ(非军事区),该区域既不属于内部网络也不属于内部网络。该区域一般放置的是对外服务的服务器。
网络安全--入侵检测
计算机病毒与木马
以往的蠕虫病毒往往感染的是.exe或者.com文件,而宏病毒往往感染的是类似于Office或者word之类的文件;
1.7 系统可靠性分析与设计
系统故障模型
可靠性指标
在题目中若没有给定MTTR或者无法根据已有条件算出MTTR时,一般认为MTBF=MTTF;
可靠性与可用性
其中可靠度用R表示。
串联系统与并联系统
其中图中上半部分为串联系统,在计算失效率的过程中,如果失效率很低的情况下,可以使用如图中所示的公式进行累加,若很高的情况下不适合使用该公式;
其中图中下半部分为并联系统,由于求失效率的公式过于复杂,一般我们直接求出可靠度,然后用1减去可靠度即可得到失效率;
串联系统的可靠度等于各部件的可靠度相乘;并联系统可靠度等于1减去各部件的不可靠度的积;
模冗余系统与混合系统
一般常考的是下半部分的混合系统求解;该部分的求解往往是将并联的作为一个部分单独求解出可靠度,然后再以串联的方式求解出可靠度;
系统容错概念与分类
冗余系统
后向恢复相当于回到上一次备份的状态;
以下为软件容错的三种方法
N版本程序设计
N版本中,不同团队在需求规格说明书上就已经开始不一样了;
恢复块方法
防卫式程序设计
例子:我们平常开发用到的try{}catch{}也算作防卫式程序设计;
双机容错
双机热备模式:一个处于运行,一个处于备用状态,利用率只有50%,利用率较低;
双机互备模式:两台机器分别备份对方的内容,当其中一台机器出问题时,另一台就接管该台机器;
双机双工模式:同时提供相同的服务,类似于集群;
集群技术
集群技术