为了准备软考高级,考前20天刷大量希赛网每日一题,以下题目都来自希赛网~
总结自身的错题以及可记忆的题~
个别分类可能不正确
CRC校验码:
(中间的模2除法是 异或操作)
最后的余数 结果为CRC校验码
需求定义
分为定义和原型
定义适用于需求已全面获取,需求较为明确,如果达不到则使用原型。
1、求分析阶段:数据流图。
2、概要设计阶段:模块结构图、层次图和HIPO图。
3、详细设计阶段:程序流程图、伪代码、图。
UML2.0中—共定义了14种图。
配置项是构成产品配置的主要元素,配置项主要有以下两大类:
如果单纯问配置项
在著作权法中规定:署名权、修改权、保护作品完整权的保护期是不受时间限制的,也就是永久保护。
而发表权、使用权和获得报酬权的保护期限为:作者终生及其死亡后的50年(第50年的12月31日)。
软件著作权中规定:开发软件所用的思想、处理过程、操作方法或者数学概念不受保护。
从开发风范上看,可分为自顶向下的开发方法和自底向上的开发方法
从性质上看,可分为形式化方法和非形式化方法。
设计模式
六大类 | 说明 |
---|---|
单—职责原则 | 设计目的单—的类。 |
开放封闭原则 | 对扩展开放,对修改封闭。李氏(Liskov))替换原则:子类可以替换父类。 |
依赖倒置原则 | 要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程。 |
接口隔离原则 | 使用多个专门的接口比使用单—的总接口要好。 |
组合重用原则 | 要尽量使用组合,而不是继承关系达到重用目的。 |
迪米特(Demeter)原则(最少知识法则) | 一个对象应当对其他对象有尽可能少的了解。 |
设计模式类别
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
Singleton 单例模式,属于创建型
Memento是备忘录模式,属于行为型
Bridge是桥接,特点是实现接口与实现分离
类别 | 说明 |
---|---|
工厂方法模式 | 定义了一个创建对象的抽象方法,由子类决定要实例化的类 |
抽象工厂模式 | 定义了一个接口用于创建相关或有依赖关系的对象族,而无需明确指定具体类 |
单例模式 | 确保一个类最多只有一个实例,并提供一个全局访问点 |
建造者模式 | 封装一个复杂对象构造过程,并允许按步骤构造。 |
原型模式 | 通过复制现有实例来创建新的实例,无需知道相应类的信息 |
适配器模式 | 适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。 |
装饰器模式 | 动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性 |
代理模式 | 代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用 |
外观模式 | 隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口 |
桥接模式 | 将抽象部分与它的实现部分分离,使它们都可以独立地变化 |
组合模式 | 将对象组合成树形结构以表示"部分-整体"的层次结构 |
享元模式 | 通过共享的方式高效的支持大量细粒度的对象 |
策略模式 | 策略模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户 |
模板方法模式 | 定义一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤 |
观察者模式 | 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新 |
迭代子模式 | 提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示 |
责任链模式 | 如果有多个对象有机会处理请求,责任链可使请求的发送者和接受者解耦,请求沿着责任链传递,直到有一个对象处理了它为止 |
命令模式 | 将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开 |
备忘录模式 | 该模式又叫快照模式 |
状态模式 | 表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象 |
访问者模式 | 将作用于某种数据结构中的各元素的操作分离出来封装成独立的类,使其在不改变数据结构的前提下可以添加作用于这些元素的新的操作,为数据结构中的每个元素提供多种访问方式。它将对数据的操作与数据结构进行分离 |
中介者模式 | 中介者模式又叫调停模式,它是迪米特法则的典型应用 |
环路复杂度计算(Mccabe):
第一种:V(G) = E - N + 2,E为流图边条数,N为结点数
第二种:V(G) = P + 1,P为判定节点数
按照传统的软件生命周期方法学,可以把软件生命周期划分为软件定义、软件开发、软件运行与维护三个阶段。
瀑布模型的特点是因果关系紧密相连,前一个阶段工作的结果后一个阶段 工作的输入。或者说,每一个阶段都是建筑在前一个阶段正确结果之上,前一个阶段的错漏会隐蔽地带到后一个阶段。
这种错误有时甚至可能是灾难性的。因此每一个阶段工作完成后,都要进行审查和确认,这是非常重要的。
管道过滤器风格:输入某个构件,经过内部处理,产生数据输出的系统,正是管道过滤器中过滤器的职能,把多个过滤器使用管道相联的风格为管道过滤器风格。
解释器:
例题:某企业内部现有的主要业务功能经封装为Web服务。为了拓展业务范围,需要将现有的业务功能进行多种组合,形成新的业务功能。针对业务灵活组合这一要求,采用( )架构风格最为合适。
中介者模式:根据题干描述,该系统需要能够支持不同芯片之间的数据交互,并能够独立改变芯片之间的数据交互过程。
这种情况下,可以引入一个中介层,通过中介层屏蔽不同芯片之间的两两交互。
传统的编译器一般采用数据流架构风格, 在这种架构中,每个构件都有一组输入和输出,数据输入构件,经过内部处理,然后产生数据输出。
编译处理过程中,会分步将源代码一次次的处理,最终形成目标代码,这与数据流架构风格相当吻合。
顺序批处理是强调把数据整体处理的
IDE是一种集成式的开发环境,在这种环境中,多种工具是围绕同一数据进行处理,这种情况适合用数据共享架构风格。
IDE环境是一种交互式编程,在修改程序代码后,会同时触发语法高亮显示、语法错误提示、程序结构更新等多种功能的调用与结果呈现。在做一件事情时,同时触发一系列的行为, 这是典型的隐式调用风格(事件驱动系统)。
“使IDE能够生成符合新操作系统要求的运行代码”,这一要求是可以通过适配策略满足的,像设计模式中的适配器模式便是采用适配的方式,形成一致的接口。
软件需求开发的最终文档经过评审批准后,则定义了开发工作的需求基线(baseline) 。
这个基线在用户和开发人员之间就构筑了计划产品功能需求和非功能需求的一个约定(agreement) ,它是需求开发和需求管理之间的桥梁。
软件设计包括体系结构设计、接口设计、数据设计和过程设计。
软件系统工具的种类繁多,很难有统一的分类方法。
通常可以按软件过程活动将软件工具分为软件开发工具、软件维护工具、软件管理和软件支持工具。
时间管理的过程包括: .
1、活动定义
2、活动排序
3、活动的资源估算
4、活动历时估算
5、制定计划
6、进度控制
软件开发环境(software development environment)是支持软件产品开发的软件系统。
它由软件工具集和环境集成机制构成
前者用来支持软件开发的相关过程、活动和任务年
后者为工具集成和软件开发、维护和管理提供统一的支持,它通常包括数据集成、控制集成和界面集成。
需求管理是一个对系统需求变更、了解和控制的过程
需求管理过程与需求开发过程相互关联,当初始需求导出的同时就启动了需求管理计划,一旦形成了需求文档的初稿,需求管理活动就开始了。
关于需求管理过程域内的原则和策略,可以参考:
为实现对象重用,COM支持两种形式的对象组装
传统软件工程方法学采用结构化设计方法(SD) , 从工程管理角度结构化设计分为两步:
RUP的三个核心特点是:以架构为中心,用例驱动,增量与迭代。
其中增量与迭代的好处是:
面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成;
设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图等。
黑盒测试也称为功能测试,要于集成测试,确认测试和系统测试阶段
黑盒测试根据软件需求规格说明所规定的功能来设计测试用例,包括功能分解、等价类划分、边界值分析、判定表因果图、状态图、随机测试、错误推测和正交试验法等。
在设计测试用例时,等价类划分是用得最多的一种黑盒测试方法。
所谓等价类就是某个输入域的集合,对每一个输入条件确定若干个有效等价类和若干个无效等价类,分别设计覆盖有效等价类和无效等价类的测试用例。
静态测试是指被测试程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测。
静态测试包括对文档的静态测试和对代码的静态测试。
与之对应的动态测试是利用计算机运行得到测试结果的方式进行测试。动态测试中的黑盒测试不关注程序的内部结构,只从程序块的功能、输入、输出角度分析问题,设计测试用例并展开测试工作。
确认测试中,需要’确认”的,是用户需求。所以这种测试有一个显著的特点, 就是测试必须要有用户的参与。
根据测试目的不同,性能测试主要包括压力测试、负载测试、并发测试和可靠性测试等。
特定领域软件架构(Domain Specific Software Architecture,DSSA)
以一个特定问题领域为对象,形成由领域参考模型、参考需求、参考架构等组成的开发基础架构,其目标是支持一个特定领域中多个应用的生成。
DSSA的基本活动包括领域分析、领域设计和领域实现。
J2EE架构中
在一个典型的基于MVC(Model View Controller)的J2EE应用中
语音识别、知识推理等问题复杂,解空间很大、求解过程不确定的这一类软件系统,通常会采用黑板架构风格
对于因数据输入某个构建,经过内部处理,产生数据输出的系统,通过采用管道-过滤器架构风格。
架构构建的三个特点:
根据基于软件架构的设计的定义,基于软件架构的设计(Architecture Based Software Design,ABSD)强调由商业、质量和功能需求的组合驱动软件架构设计。
ABSDM模型把整个基于体系结构的软件过程划分为体系结构需求、设计、文档化、复审、实现、演化等六个子过
程。
它强调采用视角和视图来描述软件架构
采用用例和质量场景来描述质量需求。
补充另外一个视图:
“4+1"视图中的"4",
4 指的是:逻辑视图、开发视图、过程视图、物理视图
“1"指的是场景视图。
在RUP中采用“4+ 1"视图模型来描述软件系统的体系结构。
“4+1"视图包括逻辑视图、 实现视图、进程视图、部署视图和用例视图。
构件组装技术大致可分为(不包括构件组装技术)
系统架构组装分为三个不同的层次:
从本质上看,需求和软件架构设计面临的是不同的对象: 一个是问题空间;另一个是解空间。保持两者的可追踪性和转换,一直是软件工程领域追求的目标。从软件需求模型向SA模型的转换主要关注两个问题:
构件的特性是:
(1) 独立部署单元;
(2) 作为第三方的组装单元;
(3) 没有(外部的)可见状态。
一个构件可以包含多个元素但是一个元素只能属于一 个构件。 将一个类拆分进行部署通常没什么意义。
对象的特性是: (注意是对象,不是构件)
(1) 一个实例单元,具有唯一的标志。
(2) 可能具有状态,此状态外部可见。
(3) 封装了自己的状态和行为。
ATAM被分为四个主要的活动区域,分别是场景和需求收集、 架构视图和场景实现、属性模型构造和分析、属性模型折中。
体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。
性能(performance) 是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。
可用性(availability)是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。
安全性(security) 是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。
可靠性:产品在规定的条件和规定的时间内,完成规定功能的能力。
常考质量属性及相应设计策略如下:
不同策略主要针对一个或多个软件质量属性,其中
风险点、非风险点、敏感点和权衡点是进行软件架构评价的关键步骤。
其中敏感点是实现一个特定质量属性的关键特征,该特征为一个或多个软件构件所共有。
系统权衡点会影响一个或多个属性,并对于多个属性来说都是敏感点。基于该定义,可以看出"改变加密的级别可能会对安全性和性能都产生显著的影响"正是—个对系统权衡点的描述。
数据库容灾属于系统安全和应用安全考虑范畴
数据仓库4大特点:
所谓的两个阶段是指:第一阶段: 准备阶段(表决阶段)和第二阶段:提交阶段(执行阶段)。
网络系统生命周期划分为5个阶段:需求规范、通信规范、逻辑网络设计、物理网络设计、实施阶段。
RAID5的容量,计算公式为最小的盘容量 * (n-1)个盘
例题:
假如有3块容量是80G的硬盘做RAID 5阵列,则这个RAID 5的容量是(160G ) ;
而如果有2块80G的盘和1块40G的盘,此时RAID 5的容量是(80G)。
协议 | 说明 |
---|---|
IPSec | IP网络提供安全性的协议和服务的集合,它是VPN(Virtual Private Network,虚拟专用网)中常用的一种技术 |
L2TP | 是一种工业标准的Internet隧道协议,功能大致和PPTP协议类似,比如同样可以对网络数据流进行加密 |
PGP | 是一种工业标准的Internet隧道协议,功能大致和PPTP协议类似,比如同样可以对网络数据流进行加密 |
PPTP | 与L2TP都属于动态IP连接好的隧道协议 |
设计考虑 硬件无关性 才能保证 软件良好的移植性
嵌入式实时操作系统兼具嵌入式操作系统的特点和实时操作系统的特点。(没有通用性的特点)
嵌入式操作系统主要有以下特点:
实时操作系统的最核心特点是实时性强。
数据集成的目的是实现不同系统的数据交流与共享,是进行其他更进一步集成的基础。
应用系统的集成是实现不同系统之间的互操作,使得不同应用系统之间能够实现数据和方法的共享
业务流程的集成使得在不同应系统中的流程能够无缝连接,实现流程的协调运作和流程信息的充分共享。
企业战略数据模型分为数据库模型和数据仓库模型
关键成功因素法(CSF) :分析找出使得企业成功的关键因素,然后再围绕这些关键因素来确定系统的需求,并进行规划。
在现行系统中,总存在着多个变影响系统目标的实现,若干个因素是关键的和主要的(即关键成功因素)。通过对关键成功因素的识别,找出实现目标所需的关键信息集合,从而确定系统开发的优先次序。关键成功因素来自于组织的目标,通过组织的目标分解和关键成功因素识别、性能指标识别,一直到产生数据字典。
企业信息化建设是通过IT技术的部署来提高企业的生产运维效率,从而降低经营成本。这个过程中业务流程的管理与知识的挖掘是重要的活动。因为在进行信息化过程中,由于计算机技术的引入,使得企业原本手工化的业务流程需要优化,从而适应计算机化的快速处理。
同时从企业已积累的资源库中,挖掘有价值的信息,也是信息化建设的点,这些知识的挖掘,能给企业带来丰厚的利润。
集成管理是企业信息资源管理的主要内容之一。实行企业信息 资源集成的前提是对企业历史上形成的企业信息功能的集成,其核心是对企业内部和外部信息流的集成,实施的基础是各种信息手段的集成。
通过集成管理实现企业信息系统各要素的优化组合,使信息系统各要素之间形成强大的协同作用,从而最大限度地放大企业信息的功能,实现企业可持续发展的目的。
商业智能的核心技术包括:数据仓库、数据挖掘、联机分析处理。
数字证书上的签名,可以通过CA对数字证书的签名来核实有效性。这个动作是用来验证网站的真伪而不能验证客户方的真伪。
SNMPv3把对网络协议的安全威胁分为主要的和次要的两类。
标准规定安全模块必须提供防护的两种主要威胁是:
必须提供防护的两种次要威胁是:
不必提供防护的威胁包括:
信号量S的物理意义
S大于等于0,代表系统资源可用数
S小于0,其绝对值代表等待资源的进程数。
关键路径题目:
其中,作业C所需的时间,乐观估计为5天,最可能为14天,保守估计为17天。假设其他作业都按计划进度实施,为使该项目按进度计划如期全部完成。作业C ( )。
A.必须在期望时间内完成
B.必须在14天内完成
C.比期望时间最多可拖延1天
D.比期望时间最多可拖延2天
答案:
首先使用3点估算法计算出C的所需天数: (5+14*4+17) /6=13。
然后构造网络图,计算关键路径,关键路径为: ABDEG,长度27, C不在关键路径上。进-步计算C的总时差,会发现C的总时差为2,所以C可以比期望时间最多拖延2天。