软考高级系统架构 上午真题错题总结

news2024/11/18 11:32:32

目录

  • 前言
  • 一、2022年真题(√)
  • 二、2021年真题
  • 三、2020年真题(√)
  • 四、2019年真题(√)
  • 五、2018年真题(√)
  • 六、2017年真题(√)
  • 七、2016年真题(√)
  • 八、2015年真题(√)
  • 九、2014年真题(√)
  • 十、2013年真题(√)
  • 十一、2012年真题(√)
  • 十二、2011年真题(√)
  • 十三、2010年真题(√)
  • 十四、2009年真题(√)

前言

主要总结自身不会的点并记录其知识点

一、2022年真题(√)

磁盘调度的规则中,其算法遵循:移臂找柱面,旋转找扇区,不是磁头号


数据库的内模式定义的是:存储记录的类型、存储域的表示、存储记录的物理顺序,指引元、索引和存储路径等数据的存储组织。

外模式指用户要使用的模式,概念模式不涉及存储访问技术


  • 动态备份:备份期间允许对数据库进行存取或修改,即备份和用户事务可以并发执行。(事务正在运行)
  • 增量备份:备份上一次备份之后变化的数据。

依赖关系例子
自反律若Y∈X∈U,则X→Y
增广率若X→Y,且Z∈U,则XZ→YZ
传递率若X→Y,Y→Z,则X→Z

关于以上三条可推出下面的:

依赖关系例子
合并若X→Y,X→Z,则X→YZ
伪传递若X→Y,WY→Z,则XW→Z
分解若X→Y,Z∈Y,则X→Z

软件架构复用的类型包括机会复用和系统复用

  • 机会复用:开发过程中,只要发现有可复用的资源,就会对其进行复用
  • 系统复用:开发之前,就要进行规划,以决定哪些需要复用。

消息队列是在消息的传输过程中保持消息的容器。
MQ负责两个系统之间的传递信息,这两个系统可以是异构的,处于不同硬件,不同操作系统,用不同语言编写,只需要简单配置以及简单的调用几个MQ的API就可互相通讯,不需考虑底层系统和网络的复杂性。


HTTP是80端口
HTTPS是443端口

POP3是邮件接收,110端口
SMTP是邮件发送,25端口
IMAP是交互式邮件存取,143端口


可靠性是指产品在规定的条件下和规定的时间内完成规定功能的能力
常用的度量指标主要有故障率(失效率)、平均失效等待时间、平均失效间隔时间和可靠度等。

可靠度是软件系统在规定的条件下、规定的时间内不发生失效的概率。


DCMM评估内容包括数据战略、数据治理、数据架构、数据标准、数据安全、数据质量、数据应用和数据生存周期


一个完整的信息安全系统至少包含三类措施:技术方面的安全措施,管理方面的安全措施和相应的政策法律。

信息安全的技术措施主要有:信息加密、数字签名、数据完整性保护、身份鉴别、访问控制、数据备份和灾难恢复、网络控制技术、反病毒技术、安全审计、业务填充、路由控制机制、公证机制等。


增量式开发相比于瀑布模型的一些重要优点:

  • 降低了适应用户需求变更的成本。
  • 重新分析和修改文档的工作量较之瀑布模型要少很多。

在开发过程中更容易得到用户对于已做的开发工作的反馈意见。
用户可以评价软件的现实版本,并可以看到已经实现了多少。这比让用户从软件设计文档中判断工程进度要好很多。使更快地交付和部署有用的软件到客户方变成了可能,虽然不是所有的功能都已经包含在内。

相比于瀑布模型,用户可以更早地使用软件并创造商业价值。


软件过程构架结构由四个层次组成:方针、过程、规程和第四层的标准、规范、指南、模板、Checklist等组成。
1、方针为第一层文件,它是组织标准软件的高层次的抽象描述,它反映在公司的过程改进总体方针、政策中,由公司主管副总裁批准执行。
2、过程为第二层文件,主要规定在项目开发中执行该过程时应当执行的各项活动及适用标准。过程定义文件及其相关文件制定必须符合方针的要求。
3、规程为第三层文件,是对过程某些复杂活动的具体描述。
4、标准、规范、指南、模板、Checklist、范例库等是对上级过程或规程提供细致的步骤、活动及说明的支持性文档,第四层的文件从属于上级过程。


  • 业务流程图(TFD)是分析和描述现有系统的传统工具,是业务流程调查结果的图形化表示。
  • 实体联系图(E-R图)它是描述概念世界,建立概念模型的实用工具。
  • 数据流图(DFD)是表达系统内数据的流动并通过数据流描述系统功能的一种方法。
  • 数据字典(DD)是在DFD的基础上,对DFD中出现的所有命名元素都加以定义,使得每个图形元素的名字都有一个确切的解释。

需求抽取和分析的过程

  1. 发现需求
  2. 需求分类和组织
  3. 需求优先级划分和协商
  4. 需求规格说明

不是需求管理


中间件是独立的系统级软件,连接操作系统层和应用程序层,将不同操作系统提供应用的接口标准化,协议统一化,屏蔽具体操作的细节,中间件一般提供如下功能:
1、通信支持。中间件为其所支持的应用软件提供平台化的运行环境,该环境屏蔽底层通信之间的接口差异,实现互操作,所以通信支持是中间件一个最基本的功能。
2、应用支持。中间件的目的就是服务上层应用,提供应用层不同服务之间的互操作机制。
3、公共服务。公共服务是对应用软件中共性功能或约束的提取。将这些共性的功能或者约束分类实现,并支持复用,作为公共服务,提供给应用程序使用。


软件配置管理工具是指支持完成配置项标识、版本控制、变化控制、审计和状态统计等任务的工具,主要有下述功能:

  • (1)配置支持。配置是一组有共同目的的中间软件产品,其中每一个中间软件产品称为一个配置项。软件配置管理支持用户建立配置项之间的各种关系,并对这些关系加以维护,维护这些关系有助于完成某些特定任务(例如Build)和标识某一变化对整个系统开发的影响。
  • (⑵)版本控制。版本控制是软件配置管理的基本要求,它可以保证在任何时刻恢复任何一个版本、版本控制还记录每个配置项的发展历史,这样就保证了版本之间的可追踪性,也为查找错误提供了帮助,版本控制也是支持并行开发的基础。
  • (3)变更控制。变更控制是指在整个软件生存周期中对软件变更的控制。变更控制系统记录每次变更的相关信息(变更的原因、变更的实施者以及变更的内容等)。这些信息有助于追踪出现的各种问题。
  • (4)构造支持。软件系统往往由许多配置项构成,建立整个系统是个复杂和费时的过程,软件配置管理工具可以记录和追踪每个配置项信息,帮助用户自动和快速地建立系统,和版本控制结合在一起,可以有效地支持同时开发系统的多个版本。
  • (5)过程支持。过程详细描述了各种人员在整个软件生存周期中如何使用整个系统,过程控制可以保证每一步都按照正确的顺序由合适的人员实施。过程控制本来是软件开发环境中一个独立的部分,软件配置管理也开始提供这部分功能。软件配置管理工具对过程的支持还很不够,而且支持方式差别也很大,许多管理只是提供一个预先定义好的生存周期模型,并保证开发的每一步都按照这个模型规定进行。
  • (6)团队支持。团队支持是指多个开发人员同时开发一个软件系统。大多数软件系统都需要多个开发人员参与,有效的团队支持对开发人员是很有用的。团队支持主要包括工作区管理、并行开发管理和远程开发管理(某些软件配置管理工具还包括对开发人员支持)。

OMG在发布2.0修订信息需求之后,广泛听取了来自建模工具提供商、用户、学术团体、咨询机构以及其他标准化组织的26个响应者的建议,并于2000年年初发布了UML 2.0的4个组成部分的提案需求(RFP),分别是:基础结构(Infrastructure)、上层结构(Superstructure)、对象约束语言(OCL)和图交换(Diagram Interchange)的需求。

其中基础结构和上层结构构成了UML2.0提案需求的主体部分。

UML 2.0基础结构的设计目标是:定义一个元语言的核心InfrastructureLibrary,通过对此核心的复用,除了可以定义一个自展的UML元模型,也可以定义其他元模型,包括MOF和CWM(Common Warehouse Model,公共仓库模型)。

UML 2.0上层结构的设计目标是:严格地复用基础结构InfrastructureLibrary包中的构造物;提高对基于构件开发和MDA(Model Driven Architecture,模型驱动体系结构)的支持;优化构架规约的能力;增强行为图的可伸缩性、精确性、集成性等。

在UML2.0(Unified Modeling Language)中,顺序图用来描述对象之间的消息交互,其中循环、选择等复杂交互使用序列片段表示,对象之间的消息类型包括 同步消息、异步消息、返回消息、参与者创建消息、参与者销毁消息


构件的 接口是―种服务提供者对消费者的承诺,即契约(contract),用契约确保一组构件之间的行为组合。


软件源码复杂度度量方法主要有三种:代码行、Helstead方法、McCabe方法(环形复杂度)。

  1. 代码行方法:是一种最简单的方法,该方法认为,代码行越多,软件越容易产生漏洞。
  2. Helstead方法:思路是根据程序中可执行代码行的操作符和操作数的数量来计算程序的复杂性。操作符和操作数的量越大,程序结构就越复杂。
  3. McCabe方法:环路复杂度用来定量度量程序的逻辑复杂度。

白盒测试中,路径覆盖实际上考虑了程序中各种判定结果的所有可能组合,因此是一种较强的覆盖标准。
黑盒测试中,判定表最适合描述在多个逻辑条件取值的组合所构成的复杂情况下,分别要执行哪些不同的动作。
回归测试的目的是测试软件变更之后,变更部分的正确性和对变更需求的符合性,以及软件原有的、正确的功能、性能和其他规定的要求的不损害性。


  • 淘汰策略:低水平、低价值
  • 继承策略:低水平、高价值
  • 改造策略:高水平、高价值
  • 集成策略:高水平、低价值

Kruchten在1995年提出了一个“4+1"的视图模型。

“4+1"视图模型从5个不同的视角来描述软件架构,每个视图只关心系统的一个侧面,5个视图结合在一起才能反映软件架构的全部内容,其思想即为关注点分离

其中,“4"为逻辑视图、开发视图、进程视图、物理视图;“1"为场景。


ABSD方法是体系结构驱动,即指构成体系结构的商业、质量和功能需求的组合驱动的。

ABSD方法是一个自顶向下,递归细化的方法,软件系统的体系结构通过该方法得到细化,直到能产生软件构件和类。


基于规则的系统包括规则集、规则解释器、规则/数据选择器和工作内存,一般用在人工智能领域和DSS中。


软件复用过程包含:创建、复用、支持、管理4个过程。

  1. 创建过程:界定和提供可复用资产,以满足复用者的需要;
  2. 复用过程:利用可复用资产来生产应用软件产品;
  3. 支持过程:全面支持可复用资产的获取、管理和维护工作;
  4. 管理过程:执行计划、启动、资源、跟踪,并协调其他各个过程;

软件质量特性包括功能性、可靠性、易用性、效率、可维护性、可移植性等6个方面,每个方面都包含若干个子特性。

  • 功能性:适合性、准确性、互操作性、依从性、安全性;
  • 可靠性:成熟性、容错性、易恢复性;
  • 易用性:易理解性、易学性、易操作性;
  • 效率:时间特性、资源特性;
  • 可维护性:易分析性、易改变性、稳定性、易测试性;
  • 可移植性:适应性、易安装性、遵循性、易替换性;

最常见的质量属性分别是:可用性(Availability) 、可修改性(Modifiability) 、性能(Performance)、安全性(Security) 、可测试性(Testability)、易用性(Usability) 。

刻画质量属性的手段由六部分组成:刺激源、刺激、环境、制品、响应、响应度量;


质量属性效用树结构为:根――质量属性――属性求精(细分)—―场景(叶)


信息安全包括的要素有:

  1. 机密性:确保信息不暴露给未授权的实体或进程。
  2. 完整性:只有得到允许的人才能修改数据,并且能够判别出数据是否已被篡改。
  3. 可用性:得到授权的实体在需要时可以访问数据,即攻击者不能占用所有的资源而阻碍授权者的工作。
  4. 可控性:可以控制授权范围内的信息流向及行为方式。
  5. 可审查性:对出现的网络安全问题提供调查的依据和手段。

场景(scenarios)在进行体系结构评估时,一般首先要精确地得出具体的质量目标,并以之作为判定该体系结构优劣的标准。

为得出这些目标而采用的机制做场景。场景是从风险承担者的角度对与系统的交互的简短描述。在体系结构评估中,一般采用刺激(stimulus)、环境(environment)和响应(response)三方面来对场景进行描述。


5G网络的切片技术是将5G网络分割成多张虚拟网络,从而支持更多的应用。

就是将一个物理网络切割成多个虚拟的端到端的网络,每个虚拟网络之间,包括网络内的设备、接入、传输和核心网,是逻辑独立的,任何一个虚拟网络发生故障都不会影响到其它虚拟网络。在一个网络切片中,至少可分为无线网子切片、承载网子切片和核心网子切片三部分。

二、2021年真题

三、2020年真题(√)

实时是指计算机对于外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速响应。

  • 实时操作系统与分时操作系统的第一点区别是交互性强弱不同,分时系统交互性强,实时系统交互性弱但可靠性要求高;
  • 第二点区别是对响应时间的敏感性强,对随机发生的外部事件必须在被控制对象规定的时间内做出及时响应并对其进行处理;
  • 第三点区别是系统的设计目标不同,分时系统是设计成一个多用户的通用系统,交互能力强;而实时系统大都是专用系统。

本题考查对分布式数据库基本概念的理解。

  • 分片透明是指用户或应用程序不需要知道逻辑上访问的表具体是怎么分块存储的。
  • 复制透明是指采用复制技术的分布方法,用户不需要知道数据是复制到哪些节点,如何复制的。
  • 位置透明是指用户无需知道数据存放的物理位置
  • 逻辑透明是指用户或应用程序无需知道局部场地使用的是哪种数据模型。

微内核(Micro Kernel)是现代操作系统普遍采用的架构形式。它是一种能够提供必要服务的操作系统内核,被设计成在很小的内存空间内增加移植性,提供模块设计,这些必要的服务包括任务、线程、交互进程通信以及内存管理等。

而操作系统其他所有服务(含设备驱动)在用户模式下运行,可以使用户安装不同的服务接口(API)。

微内核的主要优点在于结构清晰、内核代码量少,安全性和可靠性高、可移植性强、可伸缩性、可扩展性高;
其缺点是难以进行良好的整体优化、进程间互相通信的开销大、内核功能代码不能被直接调用而带来服务的效率低。


软件文档又可分为用户文档和系统文档两类。其中,用户文档主要描述系统功能和使用方法,并不关心这些功能是怎样实现的。


建立需求基线的目的是防止需求的变化给程序架构造成重大影响。它在客户和开发者之间构筑了一个需求约定,是需求开发和需求管理之间的桥梁。


软件过程中的活动主要由软件人员来完成,软件活动主要包括软件描述、软件开发、软件有效性验证和软件演化。其中,软件描述定义了软件功能以及使用的限制。


通常可以按软件过程活动将软件工具分为软件开发工具、软件维护工具、软件管理和软件支持工具

软件开发工具有需求分析工具、设计工具、编码与排错工具、测试工具等。

按描述需求定义的方法可将需求分析分为基于自然语言或图形描述的工具和基于形式化需求定义语言的工具。


软件设计包括四个既独立又相互联系的活动,即数据设计、软件结构设计、人机界面设计和过程设计


通过信息隐蔽可以提高软件的可修改性、可测试性和可移植性,它也是现代软件设计的一个关键性原则。


构成一个系统的构件可分为五类:

  • 独立而成熟的构件得到了实际运行环境的多次检验;
  • 有限制的构件提供了接口,指出了使用的条件和前提;
  • 适应性构件进行了包装或使用了接口技术,把不兼容性、资源冲突等进行了处理,可以直接使用;
  • 装配的构件在安装时,已经装配在操作系统、数据库管理系统或信息系统不同层次上,可以连续使用;
  • 可修改的构件可以进行版本替换,如果对原构件修改错误、增加新功能,可以利用重新“包装”或写接口来实现构件的替换。

中间件提供平台和应用之间的通用服务,这些服务具有标准的程序接口和协议。

中间件的基本功能包括:

  • 为客户端和服务器之间提供连接和通信(不是数据交换标准)
  • 提供交易管理机制(不是标准消息格式)保证交易的一致性;
  • 提供应用的负载均衡和高可用性等。

脚本的基本结构主要有五种:

  • 线性脚本是录制手工测试的测试用例时得到的脚本;
  • 结构化脚本具有各种逻辑结构和函数调用功能
  • 共享脚本是指一个脚本可以被多个测试用例使用;
  • 数据驱动脚本是指将测试输入存储在独立的数据文件中,而不是脚本中;
  • 关键字驱动脚本是数据驱动脚本的逻辑扩展,用测试文件描述测试用例。

展示功能组织的静态视角能判断质量特性,展示并发行为的动态视角能判断系统行为特性。
选择的特定视角或视图也就是逻辑视图、进程视图、实现视图和配置视图。
使用逻辑视图来记录设计元素的功能和概念接口,设计元素的功能定义了它本身在系统中的角色,这些角色包括功能、性能等。


权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。因此,改变加密级别可能会对安全性和性能产生非常重要的影响。提高加密级別可以提高安全性,但可能要耗费更多的处理时间,影响系统性能。如果某个机密消息的处理有严格的时间延迟要求,则加密级别可能就会成为一个权衡点


软件模式可以按两个准则来分类:

  • 一是按设计模式的目的划分,可分为创建型、结构型和行为型三种模式;
  • 二是按设计模式的范围划分,即根据设计模式是作用于类还是作用于对象来划分,可以把设计模式分为类设计模式和对象设计模式。

在不指定具体类的情况下,**Abstract Factory(抽象工厂)**模式为创建—系列相关或相互依赖的对象提供了一个接口。**Builder(构造者模式)**模式将复杂对象的构建与其表示相分离,这样相同的构造过程可以创建不同的对象。**Prototype(原型模式)**模式允许对象在不了解要创建对象的确切类以及如何创建等细节的情况下创建自定义对象。


修改权 受到永久保护

四、2019年真题(√)

操作系统中的淘汰页面遵循:(状态位都存在,代表都在页面中,从这些页面进行筛选)

  1. 先淘汰未被访问的页面(程序的局部性原理,最近未被访问的页面下次被访问的概率更小)
  2. 如果页面最近都被访问过,则先淘汰未修改过的页面

在数据库中,以安全性的角度考虑,更新数据时,通过提供存储过程让第三方调用,避免向第三方提供系统的表结构,保证系统数据安全。


TCP端口号的作用是进程寻址依据,根据端口号将报文交付给上层的某一进程。


  • 在一个园区网中可以存在多台DHCP服务器,客户机申请后每台服务器都会给予响应,客户机通常选择最先到达的报文提供的IP地址;
  • 对客户端而言,在申请时不知道DHCP服务器地址,因此元法指定;
  • DHCP服务器提供的地址不必和服务器在同一网段;
  • 地址池中可以有多块地址,它们分属不同网段。

在这里插入图片描述


通常用户采用评价程序来评价系统的性能。

评价程序一般有专门的测量程序、仿真程序等,而评测准确度最高的评价程序是真实程序
在计算机性能评估中,通常将评价程序中用得最多、最频繁的那部分核心程序作为评价计算机性能的标准程序,称其为基准测试程序


关键成功因素法通过对关键成功因素的识别,找出实现目标所需要的关键信息集合,从而确定系统开发的优先次序
关键成功因素来源于组织的目标,通过组织的目标分解和关键成功因素识别、性能指标识别,一直到产生数据字典


从开发风范上看,软件方法有自顶向下的开发方法、自底向上的开发方法。
在实际软件开发中,大都是自顶向下与自底向上两种方法的结合,只不过是以何者为主而已。

  • 自顶向下是指将一个大问题分化成多个可以解决的小问题,然后逐—进行解决。每个问题都会有一个模块去解决它,且每个问题包括抽象步骤和具体步骤。
  • 形式化方法是指采用严格的数学方法,使用形式化规约语言来精确定义软件系统。
  • 非形式化的开发方法是通过自然语言、图形或表格描述软件系统的行为和特性,然后基于这些描述进行设计和开发,而形式化开发则是基于数学的方式描述、开发和验证系统。

从工程管理角度来看,软件设计可分为概要设计和详细设计两个阶段。

  • 概要设计也称为高层设计或总体设计,即将软件需求转化为数据结构和软件的系统结构;
  • 详细设计也称为低层设计,即对结构图进行细化,得到详细的数据结构与算法。

软件结构化设计包括架构设计、接口设计、数据设计和过程设计等任务。
它是一种面向数据流的设计方法,是以结构化分析阶段所产生的成果为基础,进一步自顶而下、 逐步求精和模块化的过程。


  • 通常将模块的结构和功能定义为外部特性
  • 将局部数据和实现该模块的程序代码称为内部特性

基于构件的软件开发中,已有的构建分类方法可以归纳为三大类:

  • 关键字分类法。根据领域分析的结果将应用领域的概念按照从抽象到具体的顺序逐次分解为树形或有向无回路图结构。
  • 刻面分类法。利用Facet(刻面)描述构件执行的功能、被操作的数据、构件应用的语境或任意其他特征。
  • 超文本方法。基于全文检索技术,使得检索者在阅读文档过程中可以按照人类的联想思维方式任意跳转到包含相关概念或构件的文档。

在这里插入图片描述


逆向工程过程能够导出过程的

  • 设计模型(实现级)、
  • 程序和数据结构信息(结构级)、
  • 对象模型、数据和控制流模型(功能级)
  • UML状态图和部署图(领域级)

其中,结构级包括反映程序各部分之间相关依赖关系的信息
功能级包括反映程序段功能及程序段之间关系的信息。


在这里插入图片描述
没有压力测试~
软件性能测试类型包括负载测试、强度测试和容量测试等。

  • 负载测试用于测试超负荷环境中程序是否能够承担;
  • 强度测试是在系统资源特别低的情况下考查软件系统极限运行情况;
  • 容量测试可用于测试系统同时处理的在线最大用户数量。

数据流体系结构包括批处理体系结构风格和管道-过滤器体系结构风格。
虚拟机体系结构风格包括解释器体系结构风格和规则系统体系结构风格。


基于架构的软件开发模型(Architecture-BasedSoftware Design Model,ABSDM)把整个基于架构的软件过程划分为
架构需求、设计、文档化、复审、实现、演化等6个子过程。

文档是在系统演化的每一个阶段,系统设计与开发人员的通信媒介,是为验证架构设计和提炼或修改这些设计(必要时)所执行预先分析的基础。
架构文档化过程的主要输出结果是架构需求规格说明和测试架构需求的质量设计说明书这两个文档。生成需求模型构件的精确的形式化的描述,作为用户和开发者之间的一个协约。


设计模式主要用于得到简洁灵活的系统设计,按设计模式的目的划分,可分为创建型、结构型和行为型三种模式。

  • 创建型模式是对对象实例化过程的抽象。


    Singleton模式确保一个类只有一个实例,并提供了全局访问入口

    Prototype模式允许对象在不了解要创建对象的确切类以及如何创建等细节的情况下创建自定义对象;


    Builder模式将复杂对象的构建与其表分离。

  • 结构型模式主要用于如何组合已有的类和对象以获得更大的结构,一般借鉴封装、代理、继承等概念将一个或多个类或对象进行组合、封装,以提供统一的外部视图或新的功能。

  • 行为型模式主要用奢对象之间的职责及其提供的服务的分配,它不仅描述对象或类的模式,还描述它们之间的通信模式,特别是描述—组对等的对象怎样相互协作以完成其中任—对象都无法单独完成的任务。


常考质量属性及相应设计策略如下:

  1. 性能:指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。
    代表参数:响应时间、吞嘬
    设计策略:优先级队列、资源调度
  2. 可用性:是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。
    代表参数:故障间隔时间
    设计策略:冗余、心跳线
  3. 安全性:是指系统在向合法用户提供服务的同时能够阻非授权用户使用的企图或拒绝服务的能力。安全性又可划分为机密性、完整性、可否认性及可控性等特性。
    设计策略:追踪审计、检测攻击
  4. 可修改性: 是指能够快速地以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。
    主要策略:信息隐藏
  5. 可靠性: 是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。主要考虑两个方面:容错、健壮性。
    代表参数: MTTF、 MTBF
    设计策略:冗余、心跳线

在这里插入图片描述


在这里插入图片描述
答案:

在这里插入图片描述

五、2018年真题(√)

数据仓库拥有以下四个特点:

  • ①面向主题:操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织。主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。
  • ②集成性:面向事务处理的操作型数据库通常与某些特定的应用相关,数据库之间相互独立,并且往往是异构的。而数据仓库中的数据是在对原有分散的数据库数据进行抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。
  • ③相对稳定性:操作型数据库中的数据通常需要实时更新,数据根据需要及时发生变化。数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新
  • ④反映历史变化:操作型数据库主要关心当前某一个时间段内的数据,而数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。

串行总线是计算机外部接口中常用的一种数据传输接口,可适应于长距离数据传输使用

  • 一般串行总线是按位(bit)传输数据,采用校验码进行数据校验
  • 串行总线的工作方式、传输位数、波特率等属性是通过程序可随时配置和更改的。
  • 串行总线的工作方式可分为全双工和半双工两种
  • 数据状态一般分为满状态、空状态、就绪状态等常用的全双工串行总线如RS-232等,半双工串行总线RS-422等。
  • 串行总线的数据发送和接收可以使用查询和中断两种

软件要节约能耗,通常在设计中主要考虑在以下方面:(低功耗)

  • 智能设备的优化调度可降低设备能耗。通过对智能设备的启动与停止优化调度,可以使设备最大限度地工作在低功耗范围。
  • 通过软硬件协同设计可以优化系统、降低系统功耗。硬件设计的复杂度是影响系统功耗的主要原因,在软硬件协同设计中将可以用软件实现功能尽量用软件实现,对功耗大的设备,尽量用软件控制算法,对功耗大的设备进行优化管理,可以有效降低功耗。
  • 任务调度优化可以降低硬件对能量的消耗。计算机硬件满负荷运行必然带来能量的大量消耗,合理优化任务的调度时刻、平衡运行负荷、提高Cache的命中率,可以大大提升处理器运算性能,降低对能量的消耗。
  • 编译优化技术可以降低硬件对能量的消耗。编译器是完成将高级语言翻译成机器可识别的机器语言,此外,编译器在生成目标码时涵盖了对程序代码的优化工作,传统的编译技术并不考虑代码的低功耗问题,随着绿色编译器技术的发展,绿色编译优化技术已经成为降低系统功耗的主要技术之一。
  • ⑤采用轻量级操作系统可以促使系统能耗降低。许多带有智能化的传感器设备己普遍采用了轻量级操作系统管理设备的运行,轻量级操作系统是一款综合优化了任务调度、电源管理和传感器管理等功能基础软件,它可以根据事件的触发特性,自动开启、休眠和关停设备的工作,从而达到低功耗能力。
  • ⑥软件设计中对算法采用优化措施可以降低系统对能量的消耗。这里的算法是指普遍性算法,软件首先是现有算法设计,然后才有程序代码,因此,基于能耗的算法优化,是软件节能的手段之一。

通常CPU的频率分为主频、倍频和外频。

  • 主频是指CPU内部的时钟频率,是CPU进行运算时的工作频率。
  • 外频是指CPU与周边设备传输数据的频率,具体是指CPU到芯片组之间的总线速度。
  • 倍频是指CPU频率和系统总线频率之间相差的倍数,CPU速度可以通过倍频来无限提升。

三者之间的计算公式:主频=外频×倍频


当给出某服务器名称时能解析出IP地址,查询IP地址时却不能解析出服务器名称时,表明域名服务器中没有为该服务器配置反向查询功能

解决办法是为该服务器创建PTR记录。


为了优化系统的性能,有时需要对系统进行调整。对于不同类型的系统,其调整参数也不尽相同。

例如,对于数据库系统,主要包括CPU/内存使用状况、SQL查询语句性能、进程/线程使用状态、日志文件大小等。

对于一般的应用系统,主要关注系统的可用性、响应时间、系统吞吐量等指标,具体主要包括应用系统的可用性、响应时间、并发用户数、特定应用资源占用等。


本题系统工程利用计算机作为工具,对系统的结构、元素、信息和反馈等进行分析,以达到最优规划、最优设计、最优管理和最优控制的目的。

这样,就形成了由时间维、逻辑维和知识维所组成的三维空间结构。其中,

  • 时间维表示系统工程活动从开始到结束按时间顺序排列的全过程,分为规划、拟定方案、研制、生产、安装、运行、更新七个时间阶段。
  • 逻辑维是指时间维的每一个阶段内所要进行的工作内容和应该遵循的思维程序,包括明确问题、确定目标、系统综合、系统分析、优化、决策、实施七个逻辑步骤。
  • 知识维列举需要运用包括工程、医学、建筑、商业、法律、管理、社会科学、艺术等各种知识和技能。

需求管理的活动包括:(没有文档管理
1、变更控制
2、版本控制
3、需求跟踪
4、需求状态跟踪

项目时间管理中的过程包括活动定义、活动排序、活动的资源估算、活动历时估算、制定计划和进度控制。


  • 原型模型又叫快速原型模型,其主要由原型开发阶段和目标软件开发阶段构成
    它指的是在执行实际软件的开发之前,应当建立系统的一个工作原型。一个原型是系统的一个模拟执行,和实际的软件相比,通常功能有限、可靠性较低及性能不充分。
    通常使用几个捷径来建设原型,这些捷径可能包括使用低效率的、不精确的和虚拟的函数,一个原型通常是实际系统的一个比较粗糙的版本。

  • 快速应用开发方法通过使用基于构件的开发方法获得快速开发,该方法更适合系统模块化程度较高时采用。

  • 螺旋模型把整个软件开发流程分成多个阶段,每一个阶段都由目标设定、风险分析、开发和有效性验证以及评审构成。


软件开发环境(Software Development Environment, SDE)是指在基本硬件和宿主软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称SDE。

它由软件工具和环境集成机制构成,前者用以支持软件开发的相关过程、活动和任务,后者为工具集成和软件的开发、维护及管理提供统一的支持。

  • 环境信息库存储与系统开发有关的信息,并支持信息的交流与共享。
  • 过程控制与消息服务器实现过程集成和控制集成的基础。

软件概要设计包括设计软件的结构、确定系统功能模块及其相互关系中要采用模块结构图、层次图和HIPO图描述程序的结构。


软件设计包括了四个既独立又相互联系的活动:

  • 高质量的数据设计将改善程序结构和模块划分,降低过程复杂性;(不是数据设计也不是算法设计)
  • 软件结构设计的主要目标是开发一个模块化的程序结构,并表示出模块间的控制关系;(不是数据结构设计)
  • 人机界面设计描述了软件与用户之间的交互关系。

EJB是Java EE应用程序的主要构件,EJB用于开发和部署多层结构的、分布式的、面向对象的Java EE应用系统。

  • 其中,会话型构件(Session Bean)负责完成服务端与客户端的交互;
  • 实体型构件(Entity Bean)用于数据持久化来简化数据库开发工作;
  • 消息驱动构件(Message Driven Bean)主要用来处理并发和异步访问操作

软件系统通过构件组装分为三个不同的层次:定制(customization)、集成(integration)和扩展(extension)

这三个层次对应于构件组装过程中的不同任务。


软件测试一般分为两个大类:动态测试和静态测试。

  • 动态测试是指通过运行程序发现错误,包括黑盒测试法(等价类划分、边界值分析、错误推测、因果图)、白盒测试法(逻辑覆盖、循环覆盖、基本路径法)和灰盒测试法等。

  • 静态测试是采用人工和计算机辅助静态分析的手段对程序进行检测,包括桌前检査、代码审查和代码走查。


著名的4+1模型包括五个主要的视图:

  • ①逻辑视图(Logical View),设计的对象模型(使用面向对象的设计方法时);
  • ②过程视图(Process View),捕捉设计的并发和同步特征;
  • ③物理视图(Physical View),描述了软件到硬件的映射,反映了分布式特性;
  • ④开发视图(Development View),描述了在开发环境中软件的静态组织结构;
  • ⑤架构的描述,即所做的各种决定,可以围绕着这四个视图来组织,然后由一些用例(usecases)或场景(scenarios)来说明,从而形成了第五个视图。

在仓库风格中有两种不同的构件:中央数据结构说明当前状态,独立构件在中央数据存储上执行,仓库与外构件间的相互作用在系统中会有大的变化。

按控制策略的选取分类,可以产生两个主要的子类。
若输入流中某类时间触发进程执行的选择,则仓库是传统型数据库;
另一方面,若中央数据结构的当前状态触发进程执行的选择,则仓库是黑板系统。


解释器模式、虚拟机模式,场景都是自定义~

六、2017年真题(√)

流水线的吞吐率是指单位时间内流水线完成的任务数或输出的结果数量,其最大吞吐率为“瓶颈”段所需时间的倒数。题中所示流水线的“瓶颈”为取操作数段。

流水线的加速比是指完成同样一批任务,不使用流水线(即顺序执行所有指令)所需时间与使用流水线(指令的子任务并行处理)所需时间之比。

题目中执行1条指令的时间为2Δt +1Δt +3Δt +1Δt +2Δt=9Δt,,因此顺序执行10条指令所需时间为90Δt。
若采用流水线,则所需时间为9Δt+(10-1)*3Δt=36Δt,因此加速比为90:36,即5:2。

流水线中的周期 用命令中最长的那一段


实时操作系统如同操作系统一样,就是一个后台的支撑程序,能针对硬件变化进行结构与功能上的配置、裁剪等。

其关注的重点在于任务完成的时间是否能够满足要求。


  • 加锁阶段和解锁阶段也称为扩展阶段和收缩阶段,是传统集中式数据库的两阶段提交协议。
  • 获取阶段和运行阶段是与开发数据库应用过程相关的阶段。
  • 表决阶段和执行阶段是分布式数据库的两阶段提交协议。

网络生命周期中,一般将迭代周期划分为五个阶段,即需求规范、通信规范、逻辑网络设计、物理网络设计和实施阶段。


对计算机评价的主要性能指标有时钟频率、数据处理速率、运算精度和内存容量等

对数据库管理系统评价的主要性能指标有最大连接数、数据库所允许的索引数量和最大并发事务处理能力等。


组织信息化需求通常包含三个层次

  • 战略需求的目标是提升组织的竞争能力,为组织的可持续发展提供支持环境。
  • 运作需求包含实现信息化战略目标的需求、运营策略的需求和人才培养的需求等三个方面。
  • 技术需求主要强调在信息层技术层面上对系统的完善、升级、集成和整合提出的需求。

需求变更管理过程如下图所示:

  • ①问题分析与变更描述。这是识别和分析需求问题或者一份明确的变更提议,以检查它的有效性,从而产生一个更明确的需求变更提议。
  • ②变更分析和成本计算。使用可追溯性信息和系统需求的一般知识,对需求变更提议进行影响分析和评估。变更成本计算应该包括对需求文档的修改、系统修改的设计和实现的成本。一旦分析完成并且确认,应该进行是否执行这一变更的决策。
  • ③变更实现。这要求需求文档和系统设计以及实现都要同时修改。如果先对系统的程序做变更,然后再修改需求文档,这几乎不可避免地会出现需求文档和程序的不一致。

软件过程四个步骤:
在这里插入图片描述
瀑布模型特点是因果关系紧密相连,前一个阶段工作的结果是后一个阶段工作的输入。或者说,每一个阶段都是建立在前一个阶段的正确结果之上,前一个阶段的错误和疏漏会隐蔽地带入后一个阶段。这种错误有时甚至可能是灾难性的,因此每一个阶段工作完成后,都要进行审查和确认。

敏捷方法的核心思想主要有以下三点。

  • ①敏捷方法是“适应性”而非“预设性”的。传统方法试图对一个软件开发项目在很长的时间跨度内做出详细的计划,然后依计划进行开发。这类方法在计划制定完成后拒绝变化。而敏捷方法则欢迎变化,其实它的目的就是成为适应变化的过程,甚至能允许改变自身来适应变化。
  • ②敏捷方法是以人为本,而不是以过程为本。传统方法以过程为本,强调充分发挥人的特性,不去限制它,并且软件开发在无过程控制和过于严格烦琐的过程控制中取得一种平衡,以保证软件的质量。
  • ③迭代增量式的开发过程。敏捷方法以原型开发思想为基础,采用迭代增量式开发,发行版本小型化。

与RUP相比,敏捷方法的周期可能更短。敏捷方法在几周或者几个月的时间内完成相对较小的功能,强调的是能尽早将尽量小的可用的功能交付使用,并在整个项目周期中持续改善和增强,并且更加强调团队中的高度协作。相对而言,敏捷方法主要适合于以下场合:

  • ①项目团队的人数不能太多,适合于规模较小的项目。
  • ②项目经常发生变更。敏捷方法适用于需求萌动并且快速改变的情况,如果系统有比较高的关键性、可靠性、安全性方面的要求,则可能不完全适合。
  • ③尚风险项目的实施。
  • ④从组织结构的角度看,组织结构的文化、人员、沟通性决定了敏捷方法是否使用。

通常可以按照软件过程活动将软件工具分为软件开发工具、软件维护工具、软件管理和软件支持工具。

软件开发工具对应软件开发过程的各种活动,软件开发工具有需求分析工具、设计工具、编码与排错工具、测试工具等


源代码控制系统(SCCS)是UNIX系统上的开发项目中使用的源代码和文档文件所做的更改控制的工具。


结构化程序设计采用自顶向下逐步求精的设计方法和单入口单出口的控制构件。逐

步求精的方法所开发的软件一般具有较清晰的层次;
单入口单出口的控制构件使程序具有良好的结构特征,大大降低了程序的复杂性,增强了程序的可读性、可维护性和可验证性,从而提高软件的生产率。

Bohm和Jacopini证明了仅用顺序、分支和循环三种基本的控制构件即能构造任何单入口单出口程序,这个结论奠定了结构程序设计的理论基础。


面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成。
设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和描述流程化处理过程的活动图等。


接口标准化是对消息的格式、模式和协议的标准化。


确认性测试也称为有效性测试,主要包括验证软件的功能、性能及其他特性是否与用户要求(需求)一致

确认测试计划通常是在需求分析阶段完成的。根据用户的参与程度,通常包括以下四种类型:

  • 内部确认测试(由软件开发组织内部按软件需求说明书进行测试)
  • Alpha测试(由用户在开发环境下进行测试)
  • Beta测试(由用户在实际使用环境下进行测试)
  • 验收测试(针对软件需求说明书,在交付前以用户为主进行的测试)。

软件架构风格描述某一特定领域中的系统组织方式和惯用模式,反映了领域中众多系统所共有的结构和语义两个方面的特征。


OMG接口定义语言IDL文件包含了六种不同的元素,包括模块定义、类型定义、常量定义、异常、接口描述和值类型,其中,接口描述是一个IDL文件最核心的内容,模块定义将被映射为Java语言中的包和C++语言中的命名空间。


C2体系结构风格可以概括为:通过连接件绑定在一起的按照一组规则运作的并行构件网络。

C2风格中的系统组织规则如下:

  • ①系统中的构件和连接件都有一个顶部和一个底部;
  • ②构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部,而构件与构件之间的直接连接是不允许的;
  • ③一个连接件可以和任意数目的其他构件和连接件连接;
  • ④当两个连接件进行直接连接时,必须由其中一个的底部到另一个的顶部。

现有的设计模式可以分为创建型模式、结构型模式和行为型模式三类。

  • 创建型模式通过采用抽象类所定义的接口,封装了系统中对象如何创建、组合等信息,其代表有工厂方法模式(Factory Method Pattern)、抽象工厂模式(Abstract Factory Pattern)、建造者模式(Builder Pattern)、原型模式(Prototype Pattern)、单例模式(Singleton Pattern)等。
  • 结构型模式主要用于如何组合己有的类和对象以获得更大的结构,其代表有适配器模式(Adapter Pattern)、桥接模式(Bridge Pattern)、组合模式(Composite Pattern)、装饰者模式(Decorator Pattern)、外观模式(Facade Pattern)、享元模式(Flyweight Pattern)、代理模式(Proxy Pattern)等。
  • 行为型模式主要用于对象之间的职责及其提供服务的分配方式,其代表有责任链模式(Chain of Responsibility Pattern)、命令模式(Command Pattern)、解释器模式(Interpreter Pattern)、迭代器模式(Iterator Pattern)、中介者模式(Mediator Pattern)、备忘录模式 (Memento Pattern)、观察者模式(Observer Pattern)、状态模式(State Pattern)、策略模式(Strategy Pattern)、模板方法模式(Template Method Pattern)、访问者模式(Visitor Pattern)等。

七、2016年真题(√)

操作系统流水线执行时间:一条指令时间 + (总指令条数 - 1) 一条指令中最大的周期*


在这里插入图片描述
在双缓冲时,系统处理一块数据的时间可以粗略地认为是Max(C,T)。

  • 如果C<T,可使块设备连续输入;
  • 如果C>T,则可使系统不必等待设备输入。

本题每一块数据的处理时间为10,采用双缓冲需要花费的时间为10×10+6+2=108。

单缓冲的工作。当第一块数据送入用户工作区后,缓冲区是空闲的,可以传送第二块数据。这样第一块数据的处理C1与第二块数据的输入T2是可以并行的, 系统对每一块数据的处理时间为:Max(C,T)+M。

  • 当T>C时,处理时间为M+T;
  • 当T<C时,处理时间为M+C。

本题每一块数据的处理时间为10+6=16,Docl文件的处理时间为16×10+2=162μs,比使用单缓冲节约了162-108=54μs时间。


区分服务要求每个IP分组都要根据IPv4协议头中的服务类型(在IPv6中是通信类型)字段加上一个DS码点,然后内部路由器根据DS码点的值对分组进行调度和转发。


把应用程序用的最多、最频繁的那部分核心程序作为评价计算机性能的标准程序,称为基准测试程序(benchmark)。

真实的程序、核心程序、小型基准程序和合成基准程序,其评测的准确程度依次递减。

Web服务器性能指标主要有请求响应时间、事务响应时间、并发用户数、吞吐量、资源利用率、每秒钟系统能够处理的交易或者事务的数量等。此处没有丢包率


项目时间管理包括使项目按时完成所必须的管理过程。

项目时间管理中的过程包括活动定义、活动排序、活动的资源估算、活动历时估算、制定进度计划以及进度控制。


螺旋模型实在快速模型的基础上扩展

螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。螺旋模型更适合大型的昂贵的系统级的软件应用。


版本控制工具属于软件维护工具,软件评价工具属于软件管理与软件支持工具。


面向对象设计的基本任务,把面向对象分析模型转换为面向对象设计模型。

面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成。

设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和描述流程化处理过程的活动图等。


本题考查软件重用的基础知识。软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。

软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域知识。


CORBA构件模型中,对象适配器的主要作用是在底层传输平台与接收调用并返回结果的对象实现之间进行协调,目前采用的对象适配器规范是POA(可移植对象适配器),它替代了传统的BOA(基本对象适配器)。

  • Servant(伺服对象)是最终完成客户请求的服务对象实现
  • 伺服对象管理器(伺服对象激活器和伺服对象定位器)用来提CORBA服务端的对象查找服务
  • 活动对象映射表用来保存已注册的CORBA对象标识和伺服对象之间的映射关系。

在这里插入图片描述

  • 基于Web Services实现的面向服务系统中,服务提供者、服务使用者和服务注册器之间的远程交互通过SOAP(简单对象访问协议)消息实现
  • 服务内容描述通过WSDL(Web服务描述语言)标准实现
  • 服务注册信息通过UDDI(服务统一描述、发现和集成)框架实现
  • 通过BPEL/BPEL4WS(业务过程执行语言)将分散的、功能单一的Web服务组织成一个复杂的有机应用。

  • 对于关系型数据库系统可以采用JDBC(Java数据库连接)进行连接
  • 对于非Java应用系统可以采用JCA(Java连接器架构)连接
  • 对于基于COFJBA的应用系统可以采用Java lDL(Java接口定义语言)实现集成。

软件集成测试也称为组装测试、联合测试(对于子系统而言,则称为部件测试)。

它将已通过单元测试的模块集成在一起,主要测试模块之间的协作性。
从组装策略而言,可以分为一次性组装测试和增量式组装(包括自顶向下、自底向上及混合式)两种。

集成测试计划通常是在软件概要设计阶段完成的,集成测试一般采用黑盒测试方法。


可修改性是指能够快速地以较高的性能价格比对系统进行变更的能力。包括可维护性、可扩展性、结构重组、可移植性4个方面。

没有可变性


软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式。
一个体系结构定义了一个词汇表和一组约束
架构风格反映领域中众多系统所共有的结构和语义特征


按照设计模式的目的进行划分,现有的设计模式可以分为创建型、结构型和行为型三种模式。

  • 创建型模式主要包括abstract factory、builder、factory method、prototype、singleton等
  • 结构型模式主要包括adaptor、bridge、composite、decorator、facade、flyweight和proxy
  • 行为型模型主要包括chain of responsibility、command、interpreter、iterator、mediator、memento、observer、state、strategy、template method、visitor等

网络攻击有主动攻击和被动攻击两类。

  • 主动攻击是指通过一系列的方法,主动地向被攻击对象实施破坏的一种攻击方式,例如重放攻击、IP地址欺骗、拒绝服务攻击等均属于攻击者主动向攻击对象发起破坏性攻击的方式。
  • 流量分析攻击是通过持续检测现有网络中的流量变化或者变化趋势,而得到相应信息的一种被动攻击方式。

八、2015年真题(√)

  • 分片透明是指用户或应用程序不需要知道逻辑上访问的表具体是怎么分块存储的
  • 复制透明是指采用复制技术的分布方法,用户不需要知道数据是复制到哪些节点,如何复制的位置透明是指用户无须知道数据存放的物理位置
  • 逻辑透明,即局部数据模型透明,是指用户或应用程序无须知道局部场地使用的是哪种数据模型。

嵌入式系统软件具有良好的可移植性,以实现对不同硬件平台的适用性,做到硬件无关性。


  • IPv6地址增加到128位,并且能够支持多级地址层次;
  • 地址自动配置功能简化了网络地址的管理;
  • 在组播地址中增加了范围字段,改进了组播路由的可伸缩性;
  • 增加的任意播地址比IPv4中的广播地址更加实用。
  • IPv6地址是一个或一组接口的标识符。

IPv6地址被分配到接口,而不是分配给结点。

IPv6地址有三种类型:
(1) 单播(Unicast)地址
(2) 任意播(AnyCast)地址
(3) 组播(Multicast)地址

在IPv6地址中,任何全“0”和全“1”字段都是合法的,除非特别排除的之外。特别是前缀可以包含“0”值字段,也可以用“0”作为终结字段。一个接口可以被赋予任何类型的多个地址(单播、任意播、组播)或地址范围。


供应链中的信息流覆盖了从供应商、制造商到分销商,再到零售商等供应链中的所有环节

其信息流分为需求信息流和供应信息流,这是两个不同流向的信息流。

当需求信息(如客户订单、生产计划和采购合同等)从需方向供方流动时,便引发物流

同时,供应信息(如入库单、完工报告单、库存记录、可供销售量和提货发运单等)又同物料一起沿着供应链从供方向需方流动。


商业智能系统的处理过程包括数据预处理、建立数据仓库、数据分析及数据展现4个主要阶段。

  • 数据预处理是整合企业原始数据的第一步,包括数据的抽取、转换和装载三个过程。
  • 建立数据仓库则是处理海量数据的基础。
  • 数据分析是体现系统智能的关键,一般采用OLAP和数据挖掘技术。
    联机分析处理不仅进行数据汇总/聚集,同时还提供切片、切块、下钻、上卷和旋转等数据分析功能,用户可以方便地对海量数据进行多维分析。
    数据挖掘的目标则是挖掘数据背后隐藏的知识,通过关联分析、聚类和分类等方法建立分析模型,预测企业未来发展趋势和将要面临的问题。
  • 在海量数据和分析手段增多的情况下,数据展现则主要保障系统分析结果的可视化。

项目范围是为了达到项目目标,为了交付具有某种特制的产品和服务,项目所规定要做的。

  • 在信息系统项目中,产品范围是指信息系统产品或者服务所应该包含的功能,项目范围是指为了能够交付信息系统项目所必须做的工作。

  • 产品范围是项目范围的基础,产品的范围定义是信息系统要求的度量,而项目范围的定义是生产项目计划的基础

  • 产品范围描述是项目范围说明书的重要组成部分。


软件项目配置管理,配置项的状态通常有3种,分别是草稿、正式发布和正在修改。


需求变更管理过程如下图所示:

  • ①问题分析和变更描述。这是识别和分析需求问题或者一份明确的变更提议,以检查它的有效性,从而产生一个更明确的需求变更提议。
  • ②变更分析和成本计算。使用可追溯性信息和系统需求的一般知识,对需求变更提议进行影响分析和评估。变更成本计算应该包括对需求文档的修改、系统修改的设计和实现的成本。一旦分析完成并且确认,应该进行是否执行这一变更的决策。
  • ③变更实现。这要求需求文档和系统设计以及实现都要同时修改。如果先对系统的程序做变更,然后再修改需求文档,这几乎不可避免地会出现需求文档和程序的不一致。

用例之间的关系主要有包含、扩展和泛化,利用这些关系,把一些公共的信息抽取出来,以便于复用,使得用例模型更易于维护。

  • ①包含关系。当可以从两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示它们。其中这个提取出来的公共用例称为抽象用例,而把原始用例称为基本用例或基础用例。
  • ②扩展关系。如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,这样使描述可能更加清晰。
  • ③泛化关系。当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。在用例的泛化关系中,子用例是父用例的一种特殊形式,子用例继承了父用例所有的结构、行为和关系。

RUP中的软件过程在时间上被分解为4个顺序的阶段,分别是初始阶段、细化阶段、构建阶段和移交阶段。

每个阶段结束时都要安排一次技术评审,以确定这个阶段的目标是否已经满足。如果评审结果令人满意,就可以允许项目进入下一个阶段。

可以看出,基于RUP的软件过程是一个迭代和增量的过程。
通过初始、细化、构建和移交4个阶段就是一个开发周期,每次经过这4个阶段就会产生一代软件。除非产品退役,否则通过重复同样的4个阶段,产品将演化为下一代产品,但每一次的侧重点都将放在不同的阶段上。这样做的好处是在软件开发的早期就可以对关键的、影响大的风险进行处理。


在这里插入图片描述

  • 高水平高价值:改造
  • 高水平低价值:集成 (低价值)
  • 低水平低价值:淘汰
  • 低水平高价值:继承 (很高的价值)

架构描述语言(Architecture Description Language,ADL)是一种为明确说明软件系统的概念架构和对这些概念架构建模提供功能的语言。

ADL主要包括以下组成部分:组件、组件接口、连接件和架构配置

ADL对连接件的重视成为区分ADL和其他建模语言的重要特征之一。


数据仓库风格:编程语言的集成开发环境需要提供代码编辑、语法高亮、代码编译、运行调试等功能,这些功能的特点是以软件代码为中心进行对应的编译处理与辅助操作。


软件架构设计包括提出架构模型、产生架构设计和进行设计评审等活动,是一个迭代的过程。

架构设计主要关注软件组件的结构、属性和交互作用,并通过多种视图全面描述特定系统的架构。


ATAM是在基于场景的架构分析方法(Scenarios-based Architecture Analysis Method,SAAM)基础之上发展起来的,主要包括场景和需求收集、架构视图和场景实现、属性模型构造和分析、属性模型折中等4个阶段。ATAM方法要求在系统开发之前,首先对这些质量属性进行评价和折中。

九、2014年真题(√)

IETF集成服务(IntServ)工作组根据服务质量的不同,把Internet服务分成了三种类型:

①保证质量的服务(Guranteed Services):对带宽、时延、抖动和丢包率提供定量的保证;
②负载受控的服务(Comrolled-load Services):提供一种类似于网络欠载情况下的服务,这是一种定性的指标;
③尽力而为的服务(Best-Effort):这是Internet提供的一般服务,基本上无任何质量保证。


三层模型将大型局域网划分为核心层、汇聚层和接入层,每一层都有特定的作用。

  • ①核心层是因特网络的高速骨干网,由于其重要性,因此在设计中应该采用冗余组件设计。在设计核心层设备的功能时,应尽量避免使用数据包过滤和策略路由等降低数据包转发速率的功能。如果需要连接因特网和外部网络,核心层还应包括一条或多条连接到外部网络的连接。
  • ②汇聚层是核心层和接入层之间的分界点,应尽量将资源汸问控制、流量的控制等在汇聚层实现。为保证层次化的特性,汇聚层应该向核心层隐藏接入层的细节,例如不管接入层划分了多少个子网,汇聚层向核心层路由器进行路由宣告时,仅宣告由多个子网地址汇聚而成的网络。为保证核心层能够连接运行不同协议的区域网络,各种协议的转换都应在汇聚层完成。
  • ③接入层为用户提供在本地网段i方问应用系统的能力,也要为相邻用户之间的互访需求提供足够的带宽。接入层还应该负责一些用户管理功能,以及户信息的收集工作。

对于真实程序、核心程序、小型基准程序和合成基准程序来说,其评测程度依次递减。

把应用程序中用的最多、最频繁的那部分核心程序作为评价计算机性能的标准程序,称为基准测试程序(Benchmark)。


ERP是对企业物流、资金流和信息流资源进行全面集成管理的管理信息系统。

在ERP五个层次的计划中

  • 生产预测计划是对市场需求进行比较准确的预测,是经营计划、生产计划大纲和主生产计划编制的基础;
  • 销售管理计划是针对企业的销售部门的相关业务进行管理,属于最高层计划的范畴,是企业最重要的决策层计划之一;
  • 生产计划大纲根据经营计划的生产目标制定,是对企业经营计划的细化
  • 主生产计划说明了在一定时期内生产什么,生产多少和什么时候交货,它的编制是ERP的主要工作内容;
  • 物料需求计划是对主生产计划的各个项所需的全部制造件和全部采购件的网络支持计划和时间进度计划
  • 能力需求计划是对物料需求计划所需能力进行核算的一种计划管理方法,能够帮助企业尽早发现企业生产能力的瓶颈,为实现企业的生产任务提供能力帮面的保障。

企业集成平台是一个支持复杂信息环境下信息系统开发、集成、协同运行的软件支撑环境,包括硬件、软件、软件工具和系统。

基本功能包括:(没有数据通信服务)

  • ①通信服务:提供分布环境下透明的同步/异步通信服务功能;
  • 信息集成服务:为应用提供透明的信息访问服务,实现异种数据库系统之间数据的交换、互操作、分布数据管理和共享信息模型定义
  • ③应用集成服务:通过高层应用编程接口来实现对相应应用程序的访问,能够为应用提供数据交换和访问操作,使各种不同的系统能够相互协作
  • ④二次开发工具:是集成平台提供的一组帮助用户开发特定应用程序的支持工具;
  • ⑤平台运行管理工具:是企业集成平台的运行管理和控制模块

商业智能通常被理解为将组织中现有的数据转化为知识,帮助组织做出明智的业务经营决策。

商业智能一般由数据仓库、联机分析处理、数据挖掘、数据备份和恢复等部分组成。


结构化分析方法的基本思想是自顶向下,逐层分解,把一个大问题分解成若干个小问题,每个小问题再分解成若干个更小的问题。经过逐层分解,每个最低层的问题都是足够简单、容易解决的。

结构化方法分析模型的核心是数据字典,围绕这个核心,有三个层次的模型,分别是数据模型、功能模型和行为模型(也称为状态模型)。

  • 一般使用E-R图表示数据模型
  • 用DFD(数据流图)表示功能模型
  • 用状态转换图表示行为模型

这三个模型有着密切的关系,它们的建立不具有严格的时序性,而是一个迭代的过程。


敏捷方法的核心思想主要有以下三点。

  • ①敏捷方法是“适应性”而非“预设性”的。传统方法试图对一个软件开发项目在很长的时间跨度内做出详细的计划,然后依计划进行开发。这类方法在计划制定完成后拒绝变化。而敏捷方法则欢迎变化,其实它的目的就是成为适应变化的过程,甚至能允许改变自身来适应变化。
  • ②敏捷方法是以人为本,而不是以过程为本。传统方法以过程为本,强调充分发挥人的特性,不去限制它,并且软件开发在无过程控制和过于严格繁琐的过程控制中取得一种平衡,以保证软件的质量。
  • ③迭代增量式的幵发过程**。敏捷方法以原型开发思想为基础,采用迭代增最式开发,发行版本小型化**。

与RUP相比,敏捷方法的周期可能更短。敏捷方法在几周或者几个月的时间内完成相对较小的功能,强调的是能尽早将尽量小的可用的功能交付使用,并在整个项目周期中持续改善和增强,并且更加强调团队中的高度写作。

相对而言,敏捷方法主要适合于以下场合:

  • ①项目团队的人数不能太多,适合于规模较小的项目。
  • ②项目经常发生变更。敏捷方法适用于需求萌动并且快速改变的情况,如果系统有比较高的关键性、可靠性、安全性方面的要求,则可能不完全适合。
  • ③高风险项目的实施。
  • ④从组织结构的角度看,组织结构的文化、人员、沟通性决定了敏捷方法是否使用。

在系统运行过程中,软件需要维护的原因是多样的。根据维护的原因不同,可以将软件维护分为以下4种:

  • ①改正性维护。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程称为改正性维护。
  • ②适应性维护。在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入/输出方法、数据存储介质)可能发生变化。为使软件适应这种变化而修改软件的过程称为适用性维护。
  • ③完善性维护。在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动成为完善性维护。
  • ④预防性维护。指预先提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编码和测试。

UML对系统架构的定义是系统的组织结构,包括系统分解的组成部分,以及它们的关联性、交互机制和指导原则等提供系统设计的信息。

具体来说,就是指以下5个系统视图:

  • ①逻辑视图。逻辑视图也称为设计视图,它表示了设计模型中在架构方面具有重要意义的部分,即类、子系统、包和用例实现的子集。
  • ②进程视图。进程视图是可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描述了并发与同步结构
  • ③实现视图。实现视图对组成基于系统的物理代码的文件和构件进行建模。
  • ④部署视图。部署视图把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构。
  • ⑤用例视图。用例视图是最基本的需求分析模型。

静态测试是指被测试程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测。

静态测试包括对文档的静态测试和对代码的静态测试。

对代码的静态测试包括控制流分析、数据流分析、接口分析和表达式分析。

  • ①控制流分析。控制流分析是指使用控制流程图检査被测程序控制结构的过程。例如,可检查被测程序是否存在没有使用的语句或子程序、是否调用并不存在的子程序,以及是否存在无法达到的语句等。
  • ②数据流分析。数据流分析是指使用控制流程图分析数据各种异常情况的过程,包括数据初始化、賦值或引用过程中的异常。例如,引用未定义的变量、对以前未使用的变量再次陚值等程序差错或异常情况。
  • ③接口分析。接口分析主要包括模块之间接口的一致性分析、模块与外部数据库及其他软件配置项之间的一致性分析、子程序和函数之间的接口一致性分析等。例如可以检查函数形参与实现的数量、顺序、类型和使用的一致性。
  • ④表达式分析。表达式分析用于检查程序代码中的表达式错误。例如,括号不配对、数组引用越界、除数为零,以及浮点数变量比较时的误差等错误。

本题考査单元测试的基本概念。单元测试也称为模块测试,测试的对象是可独立编译或汇编的程序模块、软件构件或面向对象软件中的类(统称为模块),其目的是检查每个模块能否正确地实现设计说明中的功能、性能、接口和其他设计约束等条件,发现模块内可能存在的各种差错。

单元测试的技术依据是软件详细设计说明书

测试一个模块时,可能需要为该模块编写一个驱动模块和若干个桩模块。

  • 驱动模块用来调用被测模块,它接收测试者提供的测试数据,并把这些数据传送给被测模块,然后从被测模块接收测试结果,并以某种可见的方式将测试结果返回给测试人员;

  • 桩模块用来模拟被测模块所调用的子模块,它接受被测模块的调用,检验调用参数,并以尽可能简单的操作模拟被调用的子程序模块功能,把结果送回被测模块。

顶层模块测试时不需要驱动模块,底层模块测试时不要桩模块。

单元测试策略主要包括自顶向下的单元测试、自底向上的单元测试、孤立测试和综合测试策略。

  • ①自顶向下的单元测试先测试上层模块,再测试下层模块。测试下层模块时由于它的上层模块已测试过,所以不必另外编写驱动模块。
  • ②自底向上的单元测试。自底向上的单元测试先测试下层模块,再测试上层模块。测试上层模块由于它的下层模块己经测试过,所以不必另外编写桩模块。
  • ③孤立测试不需要考虑每个模块与其他模块之间的关系,逐一完成所有模块的测试。由于各模块之间不存在依赖性,单元测试可以并行进行,但因为需要为每个模块单独设计驱动模块和桩模块,增加了额外的测试成本。
  • ④综合测试。上述三种单元测试策略各有利弊,实际测试时可以根据软件特点和进度安排情况,将几种测试方法混合使用。

软件架构设计是降低成本、改进质量、按时和按需交付产品的关键因素。

  • 软件架构设计能够满足系统的性能、安全性、可维护性等品质;
  • 软件架构设计能够帮助项目干系人(Stakeholder)更好地理解软件结构:
  • 软件架构设计能够有效地管理系统的复杂性,并降低系统维护费用;
  • 软件架构设计对系统开发具有指导性:
  • 软件架构设计为系统复用奠定的基础;
  • 软件架构设计能够支持冲突分析。

软件架构设计能够帮助架构师更好的捕获和细化系统需求(×)
需要注意的是,软件架构设计与系统需求是直交的,两者并无必然联系。


从本质上看,需求和软件架构设计面临的是不同的对象:一个是问题空间;另一个是解空间。

保持两者的可追踪性和转换,一直是软件工程领域追求的目标。

从软件需求模型向SA模型的转换主要关注两个问题:

  • ①如何根据需求模型构建软件架构模型;
  • ②如何保证模型转换的可追踪性。

软件架构设计阶段需要考虑的问题:
如何通过多视图模型描述软件系统的架构、如何确定架构模型中有哪些元素构成。

软件架构实现阶段中需要考虑的问题:如何通过模型转换技术,将高层架构模型逐步细化为细粒度架构模型。


在架构模型的指导下,可复用构件可以通过组装的方式在较高层次上实现系统,并能够提高系统实现的效率。

在构件组装过程中需要检测并解决架构失配问题

  • 其中构件失配主要包括由于系统对构件基础设施、控制模型和数据模型的假设存在冲突引起的失配。
  • 连接子失配包括由于系统对构件交互协议、构件连接时数据格式的假设存在冲突引起的失配。

4+1视图中,
逻辑是模型关键词,过程是开发和同步,物理是硬件,开发是开发。
在这里插入图片描述
当采用面相对象的设计方法描述对象模型时,通常采用类图表达类的内部属性和行为,以及类集合之间的交互关系
采用状态图定义对象的内部行为


参加DSSA的人员可以划分为多种角色

  • 其中领域分析者的任务是控制整个领域分析过程,进行知识获取,将获取的知识组织到领域模型中;
  • 领域设计者的任务是根据领域模型和现有系统开发出DSSA,并对DSSA的准确性和一致性进行验证。

软件架构风格描述某一特定领域中的系统组织方式和惯用模式,反映了领域中众多系统所共有的结构和语义两个方面的特征。


架构权衡分析方法是一种系统架构评估方法,主要在系统开发之前,针对性能、可用性、安全性和可修改性等质量属性进行评价和折中。


题目:
某服装店有甲、乙、丙、丁四个缝制小组。甲组每天能缝制5件上衣或6条裤子;乙组每天能缝制6件上衣或7条裤子;丙组每天能缝制7件上衣或8条裤子;丁组每天能缝制8件上衣或9条裤子。
每组每天要么缝制上衣,要么缝制裤子,不能弄混。订单要求上衣和裤子必须配套(每套衣服包括一件上衣和条裤子)。只要做好合理安排,该服装店15天最多能缝制() 套衣服。

答案:

甲、乙、丙、丁四组做上衣和裤子的效率之比分别为5/6、6/7、7/8、8/9,并且依次增加。

因此,丁组做上衣效率更高,甲组做裤子效率更高。

为此,安排甲组15天全做裤子,丁组15天全做上衣。设乙组用x天做上衣,15-x天做裤子;丙组用y天做上衣,15-y天做裤子,为使上衣和裤子配套
0+6x+7y+815=615+7(15-x)+8(15-y)+0
所以,13x+15y=1315,y=13-13x/1515天
共做套数6x+7y+8
15=6x+7(13-13x/15)+120=211-x/15
只有在x=0时,最多可做211套。此时,y=13

即甲乙丙丁四组分别用0、0、13、15天做上衣,用15、15、2、0天做裤子。

十、2013年真题(√)

本题考查层次化网络设计原则的基础知识。层次化网络设计应该遵循一些简单的原则,这些原则可以保证设计出来的网络更加具有层次的特性:

  • ①在设计时,设计者应该尽量控制层次化的程度,一般情况下,由核心层、汇聚层、接入层三个层次就足够了,过多的层次会导致整体网络性能的下降,并且会提高网络的延迟,但是方便网络故障排查和文档编写。
  • ②在接入层应当保持对网络结构的严格控制,接入层的用户总是为了获得更大的外部网络访问带宽,而随意申请其他的渠道访问外部网络是不允许的。
  • ③为了保证网络的层次性,不能在设计中随意加入额外连接,额外连接是指打破层次性,在不相邻层次间的连接,这些连接会导致网络中的各种问题,例如缺乏汇聚层的访问控制和数据报过滤等。
  • ④在进行设计时,应当首先设计接入层,根据流量负载、流量和行为的分析,对上层进行更精细的容量规划,再依次完成各上层的设计。
  • ⑤除去接入层的其他层次,应尽量采用模块化方式,每个层次由多个模块或者设备集合构成,每个模块间的边界应非常清晰。

管理创新是按照市场发展的要求,对企业现有的管理流程重新整合,从作为管理核心的财务、物料管理,转向技术、物资、人力资源的管理,并延伸到企业技术创新、工艺设计、产品设计、生产制造过程的管理,进而还要扩展到客户关系管理、供应链管理乃至发展到电子商务


企业信息集成,按集成内容,企业内部的信息集成一般可分为以下四个方面:技术平台集成,数据集成,应用系统集成和业务过程集成。

  • 应用系统集成是实现不同系统之间的互操作,使得不同应用系统之间能够实现数据和方法的共享;
  • 业务过程集成使得在不同应用系统中的流程能够无缝连接,实现流程的协调运作和流程信息的充分共享。

数据挖掘的任务有关联分析、聚类分析、分类分析、异常分析、特异群组分析和演变分析等等。

信息检索不是


在初始项目范围说明书&已文档化的主要的可交付物、假设和约束条件的基础上准备详细的项目范围说明书,是项目成功的关键。

范围定义的输入包括以下内容:

  • ①项目章程。如果项目章程或初始的范围说明书没有在项目执行组织中使用,同样的信息需要进一步收集和开发,以产生详细的项目范围说明书。
  • ②项目范围管理计划。
  • ③组织过程资产。
  • ④批准的变更申请。

没有项目文档管理方法


在面向对象设计中,类可以分为三种类型:实体类、边界类和控制类。

  • ①实体类映射需求中的每个实体,实体类保存需要存储在永久存储体中的信息。实体类是对用户来说最有意义的类,通常采用业务领域术语命名,一般来说是一个名词,在用例模型向领域模型转化中,一个参与者一般对应于实体类。
  • ②控制类是用于控制用例工作的类,一般是由动宾结构的短语(“动词+名词”或“名词+动词”)转化来的名词。控制类用于对一个或几个用例所特有的控制行为进行建模,控制对象通常控制其他对象,因此它们的行为具有协调性。
  • ③边界类用于封装在用例内、外流动的信息或数据流。边界类是一种用于对系统外部环境与其内部运作之间的交互进行建模的类。边界对象将系统与其外部环境的变更隔离开,使这些变更不会对系统其他部分造成影响。

RUP中的软件过程在时间上被分解为4个顺序的阶段,分别是初始阶段、细化阶段、构建阶段和移交阶段。

  • 初始阶段的任务是为系统建立业务模型并确定项目的边界。
  • 细化阶段的任务是分析问题领域,建立完善的架构,淘汰项目中最高风险的元素。在构建阶段,要开发所有剩余的构件和应用程序功能,把这些构件集成为产品。
  • 移交阶段的重点是确保软件对最终用户是可用的。

装饰(Decorator**)模式可以再不修改对象外观和功能的情况下添加或考删除对象功能**。

它可以使用一种对客户端来说是透明的方法来修改对象的功能,也就是使用初始类的子类实例对初始对象进行授权。

装饰模式还为对象动态地添加了额外的:重任,这样就在不使用静态继承的情况下,为修改对象功能提供了灵活的选择。

在以下情况中,应该使用装饰模式:

  • 想要在单个对象中动态并且透明地添加责任,而这样并不会影响其他对象;
  • 想要在以后可能要修改的对象中添加责任;
  • 当无法通过静态子类化实现扩展时。

]自顶向下方法的优点是:

  • 可为企业或机构的重要决策和任务实现提供信息。
  • 支持企业信息系统的整体性规划,并对系统的各子系统的协调和通信提供保证。
  • 方法的实践有利于提高企业人员整体观察问题的能力,从而有利于寻找到改进企业组织的途径。

自顶向下方法的缺点是:

  • 对系统分析和设计人员的要求较高。
  • 开发周期长,系统复杂,一般属于一种高成本、大投资的工程。
  • 对于大系统而言,自上而下的规划对于下层系统的实施往往缺乏约束力,
  • 从经济角度来看,很难说自顶向下的做法在经济上市合算的。

软件系统架构是关于软件系统的结构、行为和属性的高级抽象。

在描述阶段,主要描述直接构成系统的抽象组件以及各个组件之间的连接规则,特别是相对细致地描述组件的交互关系。在实现阶段,这些抽象组件被细化为实际的组件,比如具体类或者对象。

软件系统架构不仅指定了软件系统的组织和拓扑结构,而且显示了系统需求和组件之间的对应关系,包括设计决策的基本方法和基本原理。


架构风格定义了一类架构所共有的特征,主要包括架构定义、架构词汇表和架构约束。


软件架构能够在设计变更相对容易的阶段,考虑系统结构的可选方案,便于技术人员与非技术人员就软件设计进行交互,能够展现软件的结构、属性与内部交互关系。

但是软件架构与用户对系统的功能性需求没有直接的对应关系。


DSSA通常是一个具有三个层次的系统模型,包括领域开发环境、领域特定应用开发环境和应用执行环境

其中应用工程师主要在领域特定应用开发环境中工作。


架构文档化的主要输出结果是架构规格说明书和架构质量说明书。

十一、2012年真题(√)

数据库设计主要分为用户需求分析、概念结构、逻辑结构和物理结构设计四个阶段。

其中,在用户需求分析阶段中,数据库设计人员采用一定的辅助工具对应用对象的功能、性能、限制等要求所进行的科学分析,并形成需求说明文档、数据字典和数据流程图。

用户需求分析阶段形成的相关文档用以作为概念结构设计的设计依据。


硬件抽象层是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。

它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。


TCP采用可变大小的滑动窗口协议进行流量控制

在前向纠错系统中,当接收端检测到错误后就根据纠错编码的规律自行纠错;在后向纠错系统中,接收方会请求发送方重发出错分组。

IP协议不预先建立虚电路,而是对每个数据报独立地选择路由并一站一站地进行转发,直到送达目标地。


隐性调用,性能差


ERP中的企业资源包括企业的“三流”资源,即物流资源、资金流资源和信息流资源。


企业信息化。

CRM是一套先进的管理思想及技术手段,它通过将人力资源、业务流程与专业技术进行有效的整合,最终为企业涉及到客户或者消费者的各个领域提供了完美的集成,使得企业可以更低成本、更高效率地满足客户的需求,并与客户建立起基于学习性关系基础上的一对一营销模式,从而让企业可以最大程度提高客户满意度和忠诚度。

CRM系统的主要模块包括销售自动化、营销自动化、客户服务与支持、商业智能。

企业信息化方法主要包括 业务流程重构、核心业务应用、信息系统建设、主题数据库、资源管理和人力资本投资方法。


瀑布模型是最早使用的软件生存周期模型之一。瀑布模型的特点是因果关系紧密相连,前一个阶段工作的结果是后一个阶段工作的输入。或者说,每一个阶段都是建立在前一个阶段的正确结果之上,前一个阶段的错误和疏漏会隐蔽地带入后一个阶段。这种错误有时甚至可能是灾难性的,因此每一个阶段工作完成后,都要进行审查和确认。

演化模型主要针对事先不能完整定义需求的软件开发,是在快速开发一个原型的基础上,根据用户在调用原型的过程中提出的反馈意见和建议,对原型进行改进,获得原型的新版本,重复这一过程,直到演化成最终的软件产品。


螺旋模型是在快速原型的基础上扩展而成的一种生存周期模型。这种模型将整个软件开发流程分成多个阶段,每个阶段都由4部分组成,它们是:

  • ①目标设定。为该项目进行需求分析,定义和确定这一个阶段的专门目标,指定对过程和产品的约束,并且制定详细的管理计划。
  • 风险分析。对可选方案进行风险识别和详细分析,制定解决办法,采取有效的措施避免这些风险。
  • ③开发和有效性验证。风险评估后,可以为系统选择开发模型,并且进行原型开发,即开发软件产品。
  • ④评审。对项目进行评审,以确定是否需要进入螺旋线的下一次回路,如果决定继续,就要制定下一阶段计划。

基于UML的需求分析过程大致可分为以下步骤:

  • 利用用例及用例图表示需求。从业务需求描述出发获取执行者和场景;对场景进行汇总、分类、抽象,形成用例;确定执行者与用例、用例与用例图之间的关系,生成用例图。
  • 利用包图和类图表示目标软件系统的总体框架结构。根据领域知识、业务需求描述和既往经验设计目标软件系统的顶层架构;从业务需求描述中提取“关键概念”,形成领域概念模型;从概念模型和用例出发,研究系统中主要的类之间的关系,生成类图。

快速应用开发(Rapid Application Development,RAD)是一种比传统生存周期法快得多的开发方法,它强调极短的开发周期。

RAD模型是瀑布模型的一个高速变种,通过使用基于构件的开发方法获得快速开发。

但是RAD也具有以下局限性:

  • ①RAD对模块化要求比较高,如果有哪一项功能不能被模块化,那么RAD所需要的构建就会有问题;如果高性能是一个指标,且该指标必须通过调整接口使其适应系统构件才能获得,则RAD也有可能不能奏效。
  • ②开发者和客户必须在很短的时间完成一系列的需求分析,任何一方配合不当,都会导致RAD项目失败。
  • ③RAD只能用于管理信息系统的开发,不适合技术风险很高的情况。例如,当一个新系统要采用很多新技术,或当新系统与现有系统有较高的互操作性时,就不适合使用RAD。

软件开发环境应支持多种集成机制,根据功能的不同,集成机制可以划分为环境信息库、过程控制与消息服务器、环境用户界面三个部分。

  • ①环境信息库。环境信息库是软件开发环境的核心,用以存储与系统开发有关的信息,并支持信息的交流与共享。环境信息库中主要存储两类信息,一类是开发过程中产生的有关被开发系统的信息,例如分析文档、设计文档和测试报告等;另一类是环境 提供的支持信息,如文档模板、系统配置、过程模型和可复用构件等。
  • ②过程控制与消息服务器。过程控制与消息服务器是实现过程集成和控制集成的基础。过程集成时按照具体软件开发过程的要求进行工具的选择与组合,控制集成使各工具之间进行并行通信和协同工作。
  • ③环境用户界面。环境用户界面包括环境总界面和由它实行统一控制的各环境部件及工具的界面。统一的、具有一致性的用户界面是软件开发环境的重要特征,是充分发挥环境的优越性、高效地使用工具并减轻用户的学习负担的保证。

ADL主要包括以下组成部分:组件、组件接口、连接件和架构配置。ADL 对连接件的重视成为区分ADL和其他建模语言的重要特征之一


视图描述架构、视角描述利益相关人、架构响应和回答


在这里插入图片描述

外观模式是对象的结构模式,要求外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

  • 命令模式 可以支持灵活的撤销与重做行为
  • 状态模式 可以根据对象自身的情况将对象的状态作为一个对象,这一对象可以不依赖于其他对象而独立变化

  • SAAM•的主要输入是问题描述、需求说明和架构描述
  • 其分析过程主要包括场景开发、架构描述、单个场景评估、场景交互和总体评估。

十二、2011年真题(√)

操作系统为用户提供了两类接口:操作一级的接口和程序控制一级的接口。

  • 操作一级的接口包括操作控制命令、菜单命令等;
  • 程序控制一级的接口包括系统调用。

CISC (Complex Instruction Set Computer,复杂指令集计算机)的基本思想是进一步增强原有指令的功能,用更为复杂的新指令取代原先由软件子程序完成的功能,实现软件功能的硬件化,导致机器的指令系统越来越庞大而复杂。

CISC计算机一般所含的指令数目至少300条以上,有的甚至超过500条。

CISC的主要缺点如下:

  • ①微程序技术是CISC的重要支柱,每条复杂指令都要通过执行一段解释性微程序才能完成,这就需要多个CPU周期,从而降低了机器的处理速度;
  • ②指令系统过分庞大,从而使高级语言编译程序选择目标指令的范围很大,并使编译程序本身冗长而复杂,从而难以优化编译使之生成真正高效的目标代码
  • ③CISC强调完善的中断控制,势必导致动作繁多,设计复杂,研制周期
  • ④CISC给芯片设计带来很多困难,使芯片种类增多,出错几率增大,成本提高而成品率降低。

RISC (Reduced Instruction Set Computer,精简指令集计算机)的基本思想是通过减少指令总数和简化指令功能,降低硬件设计的复杂度,使指令能单周期执行,并通过优化编译,提高指令的执行速度,采用硬线控制逻辑,优化编译程序。
实现RISC的关键技术有:

  • ①重叠寄存器窗口(overlapping register windows)技术, 首先应用在伯克利的RISC项目中;
  • ②优化编译技术,RISC使用了大量的寄存器,如何 合理分配寄存器、提高寄存器的使用效率,减少访存次数等,都应通过编译技术的优化来实现;
  • ③超流水及超标量技术,这是RISC为了进一步提高流水线速度而采用的新技术;
  • ④硬线逻辑与微程序相结合在微程序技术中。

核心层:高速连接、冗余设计、较少的设备连接。此处没有策略路由


该企业进行系统集成时,“业务系统的运行平台和开发语言差异较大,而且系统所使用的通信协议和数据格式各不相同”。在这种情况下,需要采用总线技术对传输协议和数据格式进行转换与适配。

当需要集成并灵活定义系统功能之间的协作关系时,应该釆用基于工作流的功能关系定义方式。


关键要判断在进行集成时,需要数据库中的单表还是多表进行数据整合。

  • 如果是单表即可完成整合,则可以将该表包装为记录,采用主动记录的方式进行集成;
  • 如果需要多张表进行数据整合,则需要采用数据映射的方式完成数据集成与处理。

3个特点:
与其他软件开发过程相比,RUP具有自己的特点,即RUP是用例驱动的、以体系结构为中心的、迭代和增量的软件开发过程。

RUP软件开发生命周期是一个二维的软件开发模型,其中有9个核心工作流,分别为:业务建模、需求、分析与设计、实现、测试部署、配置与变更管理、项目管理以及环境。
RUP把软件开发生存周期划分为多个循环,每个循环生成产品的一个新的版本,每个循环依次由4个连续的阶段组成,每个阶段完成确定的任务。

这4个阶段分别为:

  • 初始阶段:定义最终产品视图和业务模型,并确定系统范围。
  • 细化阶段:设计及确定系统的体系结构,制定工作计划及资源要求。
  • 构造阶段:构造产品并继续演进需求、体系结构、计划直至产品提交。
  • 移交阶段:把产品提交给用户使用。每个阶段都有一个或多个连续的迭代组成。

迭代并不是重复地做相同的事,而是针对不同用例的细化和实现。


最少知识原则主要用于控制信息的过载。在将最少知识原则运用到系统设计中时, 要注意以下几点:

  • ①在类的划分上,应当尽量创建松耦合的类,类之间的耦合度越低,就越有利于复用。一个处在松稱合中的类一旦被修改,不会对关联的类造成太大波动。
  • ②在类的结构设计上,每个类都应当尽量降低其属性和方法的访问权限。
  • ③在类的设计上,只要有可能,一个类型应当设计成不变类。
  • ④在对其他类的引用上,一个对象对其他对象的引用应当降到最低。

结构化方法也称为生命周期法,是一种传统的信息系统开发方法,由结构化分析、 结构化设计和结构化程序设计三部分组成,其精髓是自顶向下、逐步求精和模块化设计。

  • 结构化方法的主要特点是:开发目标清晰化、开发工作阶段化、开发文档规范化和设计方法结构化。结构化方法特别适合于数据处理领域的问题,但是不适应于规模较大、比较复杂的系统开发。结构化方法的缺点是开发周期长、难以适应需求的变化、很少考虑数据结构。
  • 面向对象方法是目前比较主流的开发方法。面向对象方法是系统的描述及信息模型的表示与客观实体相对应,符合人们的思维习惯,有利于系统开发过程中用户与开发人 员的交流和沟通,缩短开发周期,提高系统开发的正确性和效率。可以把结构化方法和面向对象方法结合起来进行系统开发。首先使用结构化方法进行自顶向下的整体划分; 然后再自底向上地采用面向对象方法开发系统。
  • 敏捷方法是一种以人为核心、迭代、循序渐进的开发方法。敏捷方法强调,让客户满意和软件尽早增量发布:小而高度自主的项目团队;非正式g方法: 最小化软件工程工作产品以及整体精简开发。与传统方法相比,敏捷开发方法比较适合需求变化较大或者开发前期需求不是很清晰的项目,以它的灵活性来适应需求的变化。面向服务的方法以粗粒度、松散耦合和基于标准的服务为基础,增强了系统的灵活性、可复用性和可演化性。

企业战略数据模型可分为数据库模型和数据仓库模型

  • 数据库模型用来描述日常事务处理中的数据及其关系
  • 数据仓库模型则描述企业高层管理决策者所需信息及其关系。

  • 外部设计处于软件设计的开始阶段,主要是按系统需求说明来确定此系统的软件结构和对应于系统需求说明,设计出各个功能部分的功能和接口。
  • 内部设计处于软件工程中的概要设计阶段,按照外部设计中确立的系统软件结构,来细化此系统各个功能部件以及各个部件接口的设计,并且详细给出各个功能部件详细的数据输入、输出设计。内部设计细化外部设计中的各种功能。

迭代式的原型开发能够有效控制成本,根据原型与最终产品之间的关系,原型开发分为三类:

  • 抛弃式原型开发利用原型验证和澄清系统的需求描述,重新构造系统
  • 演化式原型开发逐步改进和细化原型,将原型进化直至产生出目标系统;
  • 增量式原型开发在建立软件总体设计的基础上,采用增量开发方法,使原型成为最终系统。

静态分析通过解析程序文本从而识别出程序语句的各个部分,审查可能的缺陷和异常之处,静态分析包括五个阶段:

  • 控制流分析阶段找出并突出显示那些带有多重出口或入口的循环以及不可达到的代码段
  • 数据使用分析阶段突出程序中变量的使用情况;
  • 接口分析阶段检查子程序和过程声明及它们使用的一致性
  • 信息流分析阶段找出输入变量和输出变量之间的依赖关系
  • 路径分析阶段找出程序中所有可能的路径并画出在此路径中执行的语句。

可以将软件维护分为以下4种:

  • ①正确性(改正性)维护。改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。
  • ②适应性维护。在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就称为适应性维护。
  • ③完善性维护。在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动称为完善性维护。
  • ④预防性维护。这是指为了适应未来的软硬件环境的变化,应主动增加预防性的新的功能,以使应用系统适应各类变化而不被淘汰。

著名的“4+1” 视图,用来描述软件系统的架构。在“4+1”视图中

  • 逻辑视图用来描述设计的对象模型和对象之间的关系;
  • 开发视图描述了软件模块的组织与管理;
  • 过程视图描述设计的并发和同步特征。

ABSD以架构风格和质量属性为中心,强调由商业、质量和功能需求的组合驱动软件架构设计。

ABSD方法有三个基础:功能分解、选择架构风格实现质量及商业需求和软件模板的使用。


限制访问策略可以提高系统的安全性


ATAM是一种常用的软件架构评估方法,该方法强调对软件的质量属性进行分析、分类和优先级排序等工作,在此基础上构建质量属性效用树,并对风险点、非风险点、敏感点和权衡点进行识别和分析。


标准规定安全模块必须提供防护的两种主要威胁是:

  • ①修改信息(Modification of Information):就是某些未经授权的实体改变了进来的SNMP报文,企图实施未经授权的管理操作,或者提供虚假的管理对象。
  • ②假冒(Masquerade):即未经授权的用户冒充授权用户的标识,企图实施管理操作。

SNMPv3标准还规定安全模块必须对两种次要威胁提供防护:

  • ①修改报文流(Message Stream Modificatiqn):由于SNMP协议通常是基于无连接的传输服务,重新排序报文流、延迟或重放报文的威胁都可能出现。这种威胁的危害性在于通过报文流的修改可能实施非法的管理操作。
  • ②消息泄露(Disclosure): SNMP引擎之间交换的信息可能被偷听,对这种威胁的防护应采取局部的策略。

有两种威胁是安全体系结构不必防护的,因为它们不是很重要,或者这种防护没有多大作用:

  • ①拒绝服务(Denial of Service):因为在很多情况下拒绝服务和网络失效是无法区别的,所以可以由网络管理协议来处理,安全子系统不必采取措施。
  • ②通信分析(Traffic Analysis):即由第三者分析管理实体之间的通信规律,从而获取需要的信息。由于通常都是由少数管理站来管理整个网络的,所以管理系统的通信模式是可预见的,防护通信分析就没有多大作用了。

十三、2010年真题(√)

内存按字节编址,利用8KX4b的存储器芯片构成8000H到FFFH的内存,共需 ??片
8FFFFH-84000H+1
= (8FFFFH+1) -84000H
= 90000H-84000H
= C000H。

十进制为12 * 163,由于为b单位,还要乘以8
片数=总容量/每个存储容量=12 * 163 * 8 (b) / 8 * 210 * 4= 12


大型局域网通常划分为核心层、汇聚层和接入层

  • 核心层在逻辑上只有一个,它连接多个分布层交换机,通常是一个园区中连接多个建筑物的总交换机的核心网络设备;
  • 汇聚层定义网络的访问策略;
  • 接入层提供局域网络接入功能,可以使用集线器代替交换机。

逻辑设计阶段的任务是:根据需求规范和通信规范,实施资源分配和安全规划。

其网络系统生命周期可以划分为5个阶段,实施这5个阶段的合理顺序是
需求规范、通信规范、逻辑网络设计、物理网络设计、实施阶段


  • 对运行系统进行评估的主要目的是评价信息系统在性能方面的表现,找出系统可能存在的性能瓶颈。
  • 常见的Web服务器性能评估方法有基准测试、压力测试和可靠性测试等
  • 评价Web服务器的主要性能指标有最大并发连接数、响应延迟和吞吐等。
  • 当系统性能降到基本水平时,要查找影响性能的瓶颈并消除该瓶颈。

现有的企业门户大致可以分为企业信息门户、企业知识门户和企业应用门户三种。

  • 企业信息门户重点强调为访问结构数据和无结构数据提供统一入口,实现收集、访问、管理和无缝集成。
  • 企业知识门户提供了一个创造、搜集和传播企业知识的平台,通过企业知识门户,员工可以与工作团队中的其他成员取得联系,寻找能够提供帮助的专家。
  • 企业应用门户是一个用来提高企业的集中贸易能力、协同能力和信息管理能力的平台。它以商业流程和企业应用为核心,将商业流程中功能不同的应用模块通过门户集成在一起,提高公司的集中贸易能力、协同能力和信息管理能力。

  • 共享数据库是一种重要的企业应用集成方式,它通常将应用程序的数据存储在一个共享数据库中,通过制定统一的数据库模式来处理不同应用的集成需求。
  • 共享数据库为不同的应用程序提供了统一的数据存储与格式定义,能够在一定程度上缓解数据语义不一致的问题,但无法完全解决该问题。
  • 在共享数据库集成中,多个应用程序可能通过共享数据库频繁地读取和修改相同的数据,这会使数据库成为一个性能瓶颈。
  • 共享数据库集成方式的一个重要限制来自外部的已封装应用,这些封装好的应用程序只能采用自己定义的数据库模式,调整和集成余地较小。

在初步项目范围说明书中己文档化的主要的可交付物、假设和约束条件的基础上准备详细的项目范围说明书,是项目成功的关键。

范围定义的输入包括以下内容:
①项目章程。如果项目章程或初始的范围说明书没有在项目执行组织中使用,同样的信息需要进一步收集和开发,以产生详细的项目范围说明书。
②项目范围管理计划。
③组织过程资产。
④批准的变更申请。

所以项目文档管理方案不属于范围定义的输入。


问题跟踪工具也可以随时按变更状态分类包裹变更请求的数目。

挑选工具时可以考虑以下几个方面:
①可以定义变更请求的数据项。
②可以定义变更请求生存期的状态转换图。
③可以加强状态转换图,使经授权的用户仅能做出所允许的状态变更。
④记录每一种状态变更的数据,确认做出变更的人员。
⑤可以定义在提交新请求或请求状态被更新后应该自动通知的设计人员。
⑥可以根据需要生成标准的或定制的报告和图表。


在RUP中采用“4+1”视图模型来描述软件系统的体系结构。

“4+1”视图包括逻辑视图、实现视图、进程视图、部署视图和用例视图。

  • 分析人员和测试人员关心的是系统的行为,因此会侧重于用例视图;
  • 最终用户关心的是系统的功能,因此会侧重于逻辑视图
  • 程序员关心的是系统的配置、装配等问题,因此会侧重于实现视图
  • 系统集成人员关心的是系统的性能、可伸缩性、吞吐率等问题,因此会侧重于进程视图;
  • 系统工程师关心的是系统的发布、安装、拓扑结构等问题,因此会侧重于部署视图。

螺旋模型是在快速原型的基础上扩展而成的。

这个模型把整个软件开发流程分成多个阶段,每个阶段都由4部分组成,它们是:
①目标设定。为该项目进行需求分析,定义和确定这一个阶段的专门目标,指定对过程和产品的约束,并且制定详细的管理计划。
②风险分析。对可选方案进行风险识别和详细分析,制定解决办法,采取有效的措施避 免这些风险。
③开发和有效性验证。风险评估后,可以为系统选择开发模型,并且进行原型开发,即开发软件产品。
④评审。对项目进行评审,以确定是否需要进入螺旋线的下一次回路,如果决定继续,就要制定下一阶段计划。

V模型是一种典型的测试模型。在V模型中测试过程被加在开发过程的后半部分,分别包括单元测试、集成测试、系统测试和验收测试。


软件开发环境(Software Development Environment)是支持软件产品开发的软件系统。
它由软件工具集和环境集成机制构成

  • 前者用来支持软件开发的相关过程、活动和任务年
  • 后者为工具集成和软件开发、维护和管理提供统一的支持,它通常包括数据集成、控制集成和界面集成。

数据集成机制提供了存储或访问环境信息库的统一的数据接口规范
界面集成机制采用统一的界面形式,提供统一的操作方式
控制集成机制支持各开发活动之间的通信、切换、调度和协同工作。


结构化分析方法是一种面向数据流的需求分析方法,其基本思想是自顶向下逐层分解。
数据流图是进行结构化分析时所使用的模型,(没有软件结构图),其基本成分包括数据流、加工、数据 存储和外部实体。
在进行结构化设计时,通过对数据流图进行变换分析和事务分析可以导出程序结构图。数据库设计可以分为4个主要阶段:
①用户需求分析。数据库设计人员采用一定的辅助工具对应用对象的功能、性能、限制等要求所进行的科学分析。
②概念设计。概念结构设计是对信息分析和定义,如视图模型化、视图分析和汇总。对应用对象精确地抽象、概括而形成的独立于计算机系统的企业信息模型。描述概念模型的较理想的工具是E-R图
③逻辑设计。将抽象的概念模型转化为与选用的DBMS产品所支持的数据模型相符合的逻辑模型,它是物理设计的基础。包括模式初始设计、子模式设计、应用程序设计、模式评价以及模式求精。
④物理设计。逻辑模型在计算机中的具体实现方案。UML是面向对象软件的标准化建模语言,其中状态图、活动图、顺序图和通信图可以用来对系统的动态行为进行建模。活动图展现了在系统内从一个活动到另一个活动的流程。活动图强调对象之间的控制流程。在活动图上可以表示分支和汇合。活动图与传统的程序流程图是不等价的。


在基于构件的软件开发中,逻辑构件模型用功能包描述系统的抽象设计,用接口描述每个服务集合,以及功能之间如何交互以满足用户需求,它作为系统的设计蓝图以保证系统提供适当的功能。

物理构件模型用技术设施产品、硬件分布和拓扑结构,以及用于绑定的网络和通信协议描述系统的物理设计,这种架构用于了解系统的性能、吞吐率等许多非功能性属性。


对象管理组织(OMG)基于CORBA基础设施定义了4种构件标准。

  • 实体(Entity) 构件需要长期持久化并主要用于事务性行为,由容器管理其持久化
  • 加工(Process)构件同样需要容器管理其持久化,但没有客户端可访问的主键。
  • 会话(Session)构件不需要容器管理其持久化,其状态信息必须由构件自己管理。
  • 服务(Service)构件是无状态的。

分布式系统开发分为5个逻辑计算层:

  • 表示层实现用户界面;
  • 表示逻辑层包括为了生成数据表示而必须进行的处理任务,如输入数据编辑等;
  • 应用逻辑层包括为支持实际业务应用和规则所需的应用逻辑和处理过程,如信用检查、数据计算和分析等;
  • 数据处理层包括存储和访问数据库中的数据所需的应用逻辑和命令,如查询语句和存储过程等
  • 数据层是数据库中实际存储的业务数据。

客户机/服务器系统开发时可以采用不同的分布式计算架构:

  1. 分布式表示架构是将表示层和表示逻辑层迁移到客户机,应用逻辑层、数据处理层和数据层仍保留在服务器上;
  2. 分布式数据架构是将数据层和数据处理层放置于服务器,应用逻辑层、表示逻辑层和表示层放置于客户机;
  3. 分布式数据和应用架构是将数据层和数据处理层放置在数据服务器上,应用逻辑层放置在应用服务器上,表示逻辑层和表示层放置在客户机上。

系统输入设计中

  • 通常通过内部控制的方式验证输入数据的有效性。
  • 数据类型检查确保输入了正确的数据类型;
  • 自检位用于对主关键字进行基于校验位的检查;
  • 域检査用于验证数据是否位于合法的取值范围;
  • 格式检查按照已知的数据格式对照检查输入数据的格式。

系统测试是将已经确认的软件、计算机硬件、外设和网络等其他因素结合在一起,进行信息系统的各种组装测试和确认测试,其目的是通过与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方。

系统测试是根据系统方案说明书来设计测试例子的,常见的系统测试主要有以下内容:
(1) 恢复测试:恢复测试监测系统的容错能力。检测方法是采用各种方法让系统出现故障,检验系统是否按照要求能从故障中恢复过来,并在约定的时间内开始事务处理,而且不对系统造成任何伤害。

如果系统的恢复是自动的(由系统自动完成),需要验证重新初始化、检查点、数据恢复等是否正确。如果恢复需要人工干预,就要对恢复的平均时间进行评估并判断它是否在允许的范围内。

(2) 安全性测试:系统的安全性测试是检测系统的安全机制、保密措施是否完善,主要是为了检验系统的防范能力。测试的方法是测试人员模拟非法入侵者,采用各种方法冲破防线。系统安全性设计准则是使非法入侵者所花费的代价比进入系统后所得到的好处要大,此时非法入侵已无利可图。

(3) 强度测试:是对系统在异常情况下的承受能力的测试,是检查系统在极限状态下运行时,性能下降的幅度是否在允许的范围内。因此,强度测试要求系统在非正常数量、频率或容量的情况下运行。强度测试主要是为了发现在有效的输入数据中可能引起不稳定或不正确的数据组合。例如,运行使系统处理超过设计能力的最大允许值的测试例子;使系统传输超过设计最大能力的数据,包括内存的写入和读出等。

(4)性能测试:检査系统是否满足系统设计方案说明书对性能的要求。性能测试覆盖了软件测试的各阶段,而不是等到系统的各部分都组装之后,才确定系统的真正性能。通常与强度测试结合起来进行,并同时对软件、硬件进行测试。软件方面主要从响应时间、处理速度、吞吐量、处理精度等方面来检测。

(5) 可靠性测试:通常使用以下两个指标来衡量系统的可靠性:平均失效间隔时间MTBF (mean time between failures)是否超过了规定的时限,因故障而停机时间MTTR (mean time to repairs)在一年中不应超过多少时间。

(6) 安装测试:在安装软件系统时,会有多种选择。安装测试就是为了检测在安装过程中是否有误、是否容易操作等。主要监测系统的每一个部分是否齐全,硬件的配置是否合理,安装中需要产生的文件和数据库是否已产生,其内容是否正确等。


根据基于软件架构的设计的定义,基于软件架构的设计(Architecture Based Software Development, ABSD)强调由商业、质量和功能需求的组合驱动软件架构设计。

它强调采用视角和视图来描述软件架构,采用用例和质量属性场景来描述需求。


  • 过程控制的定义:针对连续或间歇过程中的温度、压力、流量、液位、化学成分(如产品成分、含氧量)、物性参数(如粘度、熔融指数)等变量而实现的自动控制系统,使其保持恒定或按一定规律变化,克服干扰,满足性能指标要求。
  • 解释器(Interpreter)模式的定义:给分析对象定义一个语言,并定义该语言的文法表示,再设计一个解析器来解释语言中的句子。也就是说,用编译语言的方式来分析应用中的实例。这种模式实现了文法表达式处理的接口,该接口解释一个特定的上下文。
  • 隐式调用:通过外部环境刺激
  • 责任链模式中,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。因此责任链模式是能够满足该要求的最好模式。
    在这里插入图片描述
  • 中介者模式(Mediator Pattern)定义:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式又称为调停者模式,它是一种对象行为型模式。
    在这里插入图片描述

  • Ping/Echo主要提高系统的可用性
  • 限制访问主要提高系统的安全性;
  • 运行时注册主要提高系统的可修改性
  • 接口-实现分离主要提高系统的可修改性
  • 主动冗余提高系统的可靠性;
  • 队列调度主要提高系统的性能;
  • 信息隐藏主要提高系统的安全性
  • 记录-回放主要提高系统的可测试性

  • 敏感点是实现一个特定质量属性的关键特征,该特征为一个或多个软件构件所共有。
  • 系统权衡点会影响一个或多个属性,并对于多个属性来说都是敏感点。

数学模型分析工作主要包括模型的合理性分析、模型的误差分析和参数的灵敏性分析等,一般不包括模型的先进性分析。

十四、2009年真题(√)

同一个线程是直接限制(序号相同),同一个动作是间接限制(字母相同)


一般来说,嵌入式系统通常采用接口中的移位寄存器来实现数据的串/并和并/串转换操作。注意此处不是CPU中有移位功能的数据寄存器。


三层模型主要将网络划分为核心层、汇聚层和接入层

每一层都有着特定的作用:

  • 核心层提供不同区域或者下层的高速连接和最优传送路径;
  • 汇聚层将网络业务连接到接入层,并且实施与安全、流量负载和路由相关的策略;
  • 接入层为局域网接入广域网或者终端用户访问网络提供接入。

其中核心层是互连网络的高速骨干,由于其重要性,因此在设计中应该采用冗余组件设计,使其具备高可靠性,能快速适应变化。


  • 网络逻辑结构设计是体现网络设计核心思想的关键阶段,在这一阶段根据需求规范和通信规范,选择一种比较适宜的网络逻辑结构,并基于该逻辑结构实施后续的资源分配规划、安全规划等内容。

  • 物理网络设计是对逻辑网络设计的物理实现,通过对设备的具体物理分布、运行环境等的确定,确保网络的物理连接符合逻辑连接的要求。在这一阶段,网络设计者需要确定具体的软硬件、连接设备、布线和服务。

  • 现有网络体系分析的工作目的是描述资源分布,以便于在升级时尽量保护已有投资, 通过该工作可以使网络设计者掌握网络现在所处的状态和情况。

  • 需求分析阶段有助于设计者更好地理解网络应该具有什么功能和性能,最终设计出符合用户需求的网络,它为网络设计提供依据。


DAS磁盘
NAS存储文件系统
SAN专用存储网络


目前市场上主流的集成模式有三种,分别是面向信息的集成、面向过程的集成和面向服务的集成。

其中面向过程的集成模式强调处理不同应用系统之间的交互逻辑,与核心业务逻辑相分离,并通过不同应用系统之间的协作共同完成某项业务功能。


配置项是构成产品配置的主要元素,配置项主要有以下两大类:

  • (1) 属于产品组成部分的工作成果:如需求文档、设计文档、源代码和测试用例等;
  • (2) 属于项目管理和机构支撑过程域产生的文档:如工作计划、项目质量报告和项目跟踪报告等。

这些文档虽然不是产品的组成部分,但是值得保存。所以设备清单不属于配置项。


敏捷方法以原型开发思想为基础,采用迭代增量式开发,发行版本小型化,比较适合需求变化较大或者开发前期对需求不是很清晰的项目。


逆向工程导出的信息可分为如下4个抽象层次。

  • ①实现级:包括程序的抽象语法树、符号表等信息。
  • ②结构级:包括反映程序分量之间相互依赖关系的信息,例如调用图、结构图等。
  • ③功能级:包括反映程序段功能及程序段之间关系的信息。
  • ④领域级:包括反映程序分量或程序与应用领域概念之间对应关系的信息。

两个用例之间的关系主要有两种情况:一种是用于重用的包含关系,用构造型 include表示;另一种是用于分离出不同行为的扩展,用构造型extend表示。

  • ①包含关系:当可以从两个或两个以上的原始用例中提取公共行为,或者发现能 够使用一个构件来实现某一个用例的部分功能是很重要的事时,应该使用包含关系来表示它们。
  • ②扩展关系:如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种事情,可以断定将这个用例分为一个主用例和一个或多个辅用例描述可能更加清晰。

面向对象的设计模型包含以包图表示的软件体系结构图
交互图表示的用例实现图,完整精确的类图,针对复杂对象的状态图和用以描述流程化处理的活动图等。


基于构件的开发模型由软件的需求分析定义、体系结构设计、构件库建立、应用软件构建以及测试和发布5个阶段组成。


在一个典型的基于MVC (Model VIew Controller)的J2EE应用中

  • 系统的界面由JSP构件实现
  • 分发客户请求、有效组织其他构件为客户端提供服务的控制器由Servlet 构件实现
  • 数据库相关操作由Entity Bean构件实现
  • 系统核心业务逻辑由Session Bean 构件实现。

数据分割和数据复制是数据分布的两种重要方式。

数据分割有垂直分割和水平分割两种模式

  • 垂直分割是将表中不同字段的数据存储到不同的服务器上(字段列)
  • 水平分割将表中不同行的数据存储到不同的服务器上(数据行)

数据复制是为了提升数据访问效率而采用的一种增加数据冗余的方法,它将数据的多个副本存储到不同的服务器上,由RDBMS负责维护数据 的一致性。


系统测试是根据系统方案说明书来设计测试用例,常见的系统测试主要有恢复测试、安全性测试、压力测试、性能测试、可靠性测试、可用性测试、可维护性测试和安装测试。

没有路径测试


黑盒是程序外部功能,也称为功能测试。
白盒是程序内部逻辑


软件架构需求过程主要是获取用户需求,标识系统中所要用到的构件,并进行架构需求评审。(不应该包括设计构件的过程。)

其中标识构件又详细分为生成类图、对类图进行分组和将类打包成构件三步。


架构复审是基于架构开发中一个重要的环节。

架构设计、文档化和复审是一个迭代的过程。

  • 从这个方面来说,在一个主版本的软件架构分析之后,要安排一次由外部人员 **(用户代表和领域专家)**参加的复审。不是系统设计和开发人员。

  • 架构复审过程中,通常会对一个可运行的最小化系统进行架构评估和测试。

  • 架构复审的目标是标识潜在的风险,及早发现架构设计的缺陷和错误。


架构模式是软件设计中的高层决策,例如C/S结构就属于架构模式,**架构模式反映了开发软件系统过程中所作的基本设计决策;**设计模式主要关注软件系统的设计,与具体的实现语言无关;

惯用法则是实现时通过某种特定的程序设计语言来描述构件与构件之间的关系,例如引用-计数就是C++语言中的一种惯用法。

用户界面 - 》 事件驱动

图形用户界面 - 》 隐式调用

闭环架构,常用在简单模式

装饰器模式 -》 可以扩展子类

观察者模式 -》 可以扩展,新增子功能,但是不改变原来的类


敏感点 是共有,权衡点是 一影响多

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1129436.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Remmina Linux 远程桌面(堡垒机)解决方案,含文件互传

简介 Remmina 是一款在 Linux 和其他类 Unix 系统下的自由开源、功能丰富、强大的远程桌面客户端。 对于一个Linux作为主力开发机而言&#xff0c;Remmina 解决痛点主要是公司堡垒机远程客户现场的计算机&#xff0c;公司只给开发了win系统下的远程连接程序&#xff0c;而没有…

SQLi靶场

SQLi靶场 less1- less2 &#xff08;详细讲解&#xff09; less 1 Error Based-String (字符类型注入) 思路分析 判断是否存在SQL注入 已知参数名为id&#xff0c;输入数值和‘ 单引号‘’ 双引号来判断&#xff0c;它是数值类型还是字符类型 首先输入 1 &#xff0c; 发现…

IDEA在GitHub / Gitee中拉取特定一个分支代码方法

IDEA通过HTTP / SSH拉取项目的时候&#xff0c;默认都是拉取master分支的节点代码&#xff0c;对于我们通过分支来逐一消化项目的需求是相违背的&#xff0c;那么下面就是如何对一个项目特定分支读取方法 首先正常通过HTTP / SSH拉一个项目下来 打开分支列表&#xff0c;选择指…

一文了解GC垃圾回收

一文了解GC垃圾回收 1 判断一个对象为垃圾对象的方法 引用计数法(弃用) 可达性分析算法 是否有指向GC root 的引用链&#xff0c;如果有&#xff0c;不是垃圾对象 ---->GC roo:即rt.jar包中内容 2 内存泄漏与内存溢出区别 泄漏&#xff1a;原本需要被回收的对象&#…

Python 深度学习入门之CNN

CNN 前言一、CNN简介1、简介2、结构 二、CNN简介1、输出层2、卷积层3、池化层4、全连接层5、输出层 前言 1024快乐&#xff01;1024快乐&#xff01;今天开新坑&#xff0c;学点深度学习相关的&#xff0c;说下比较火的CNN。 一、CNN简介 1、简介 CNN的全称是Convolutiona…

英语——语法——从句——名词性从句——笔记

文章目录 名词性从句一、定义二、分类&#xff08;一&#xff09;宾语从句&#xff08;二&#xff09;主语从句&#xff08;三&#xff09;C同位语从句&#xff08;四&#xff09;D表语从句 名词性从句 一、句子成分 简而言之&#xff0c;构成一个句子的成分&#xff08;或要素…

关于 provide、inject 在Vue3中的用法

Vue3关于 provide、inject 的用法 一、传递变量/数据二、传递函数 前言&#xff1a; 在父子组件传递数据时&#xff0c;通常使用的是 props 和 emit。 父传子时&#xff0c;使用的是 props&#xff0c;如果是父组件传孙组件时&#xff0c;就需要先传给子组件&#xff0c;子组件…

STM32:TTL串口调试

一.TTL串口概要 TTL只需要两个线就可以完成两个设备之间的双向通信&#xff0c;一个发送电平的I/O称之为TX&#xff0c;与另一个设备的接收I/O口RX相互连接。两设备之间还需要连接地线(GND)&#xff0c;这样两设备就有相同的0V参考电势。 二.TTL串口调试 实现电脑通过STM32发送…

高等数学啃书汇总重难点(六)定积分的应用

无论是考研还是学校期末考试&#xff0c;这一部分的内容都不会太难&#xff0c;因此今天的内容一页笔记就足够放的下了。 重点在于理解所谓的元素法——也就是微元法&#xff0c;即定积分的几何意义。只不过&#xff0c;定积分几何意义的引例为平面问题&#xff0c;实际上&…

Spring初步了解到深入理解

文章目录 1.Spring1.1简介1.2优点1.3组成1.4拓展 2.IOC理论推导3.Hello Spring下面牵扯到的地址: 4.IOC创建对象的方式1.使用无参构造创建对象&#xff0c;默认2.假设我们要使用有参构造创建对象1.下标赋值2.类型3.参数名 5.Spring配置5.1别名5.2bean的配置5.3import 6.依赖注入…

Monocular arbitrary moving object discovery and segmentation 代码复现

环境 https://github.com/michalneoral/Raptor 1.创建environment.yaml name: raptor channels:- pytorch- conda-forge dependencies:- python3.8- pytorch1.9.0- torchvision0.10.0- cudatoolkit11.1- pipconda env create -f environment.yaml conda activate raptor2.安…

C++基类和派生类的内存分配,多态的实现

目录 基类和派生类的内存分配基类和派生类的成员归属多态的实现 基类和派生类的内存分配 类包括成员变量&#xff08;data member&#xff09;和成员函数&#xff08;member function&#xff09;。 成员变量分为静态数据&#xff08;static data&#xff09;和非静态数据&…

技术分享 | 针对蜜罐反制Goby背后的故事

0x01 概述 近期我们联动FORadar做了一个插件&#xff0c;实现了从企业名称->企业漏洞的全自动检测流程&#xff0c;在做具体实践的时候碰到了两个很有意思的蜜罐&#xff0c;其中一个蜜罐内置了Weblogic漏洞&#xff0c;同时配置有专门针对旧版本Goby反制Payload&#xff0…

点亮现代编程语言的男人——C语言/UNIX之父Dennis Ritchie

祝各位程序员们1024程序员节快乐&#x1f389;&#x1f389;&#x1f389; 图片来自网络&#xff0c;侵删 前言 在程序员中&#xff0c;有一位人物的不被人熟知&#xff0c;他的贡献甚至比他自身更要出名 C语言之父&#xff0c;UNIX之父——Dennis MacAlistair Ritchie 一…

0基础学习PyFlink——使用Table API实现SQL功能

在《0基础学习PyFlink——使用PyFlink的Sink将结果输出到Mysql》一文中&#xff0c;我们讲到如何通过定义Souce、Sink和Execute三个SQL&#xff0c;来实现数据读取、清洗、计算和入库。 如下图所示SQL是最高层级的抽象&#xff0c;在它之下是Table API。本文我们会将例子中的SQ…

【机器学习合集】深度学习模型优化方法最优化问题合集 ->(个人学习记录笔记)

文章目录 最优化1. 最优化目标1.1 凸函数&凹函数1.2 鞍点1.3 学习率 2. 常见的深度学习模型优化方法2.1 随机梯度下降法2.2 动量法(Momentum)2.3 Nesterov accelerated gradient法(NAG)2.4 Adagrad法2.5 Adadelta与Rmsprop法2.6 Adam法2.7 Adam算法的改进 3. SGD的改进算法…

LVS+keepalived高可用集群

1、定义 keepalived为lvs应运而生的高可用服务。lvs的调度器无法做高可用&#xff0c;keepalived实现的是调度器的高可用&#xff0c;但keepalived不只为lvs集群服务的&#xff0c;也可以做其他代理服务器的高可用&#xff0c;比如nginxkeepalived也可实现高可用&#xff08;重…

解密Kubernetes:探索开源容器编排工具的内核

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

zabbix6.0 部署配置

架构 先简单介绍zabbix监控的最主要的两个组件&#xff1a; zabbix server zabbix agent server 用来部署 web console以及相关的数据存储&#xff0c;所以需要配合一些数据库来保存数据&#xff0c;比如mysql,pgsql, 又有前端的页面所以还需要配置 nginx 和getway 所以 serve…