1、操作系统为用户提供了两类接口:操作一级的接口和程序控制一级的接口。其中操作一级的接口包括控制命令、菜单命令、窗口等;程序控制一级的接口包括系统调用。
2、3、4、PV操作
5、6、7、关系模式和E-R图的概念和性质。
8、
9、CISC(Complex Instruction Set Computer,复杂指令集计算机)——基本思想是进一步增强原有指令的功能,用更为复杂的新指令取代原先由子程序完成的功能,实现软件功能的硬件化,导致机器的指令系统越来越庞大而复杂。CISC计算机一般所含的指令数目至少300条以上,有的甚至超过500条。
RISC(Reduced Instruction Set Computer,精简指令集计算机)——基本思想是通过减少指令总数和简化指令功能,降低硬件设计的复杂度,使指令能单周期执行,并通过优化编译,提高指令的执行速度,采用硬线控制逻辑,优化编译程序。
10、高速缓存Cache用来存放当前最活跃的程序和数据,作为主存局部域的副本,其特点是:容量一般在几KB到几MB之间;速度一般比主存快5到10倍,由快速半导体存储器构成;其内容是主存局部域的副本,对程序员来说是透明的。
替换算法的目标是使Cache获得最高的命中率。常用的算法有随机替换算法、先进先出算法、近期最少使用算法和优化替换算法。
Cache的性能是计算机系统性能的重要方面。命中率是Cache的一个重要指标,但不是最主要的指标。Cache设计的目标是在成本允许的条件下达到较高的命中率,使存储系统具有最短的平均访问时间。
Cache的命中率与Cache容量的关系是:Cache容量越大,则命中率越高,随着Cache容量的增加,其命中率逐渐接近100%。但是增加Cache容量意味着增加Cache的成本和增加Cache的命中时间。
11、虚拟存储器是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器。它借助于磁盘等辅助存储器来扩大主存容量,使之为更大或更多的程序所使用。虚拟存储器管理方式分为页式虚拟存储器、段式虚拟存储器和段页式虚拟存储器。
虚拟存储器是由硬件和操作系统自动实现存储信息调度和管理的。它的工作过程包括6个步骤:
①中央处理器访问主存的逻辑地址分解成组号a和组内地址b,并对组号a进行地址变换,即将逻辑组号a作为索引,查地址变换表,以确定该组信息是否存放在主存内。
②如该组号已存在主存内,则转而执行④;如果该组号不在主存内,则检查主存中是否有空闲区,如果没有,便将某个暂时不用的组调出送往辅存,以便将需要访问的信息调入主存。
③从辅存读出所要的组,并送到主存空闲区,然后将那个空闲的物理组号a和逻辑组号a登记在地址变换表中。
④从地址变换表读出与逻辑组号a对应的物理组号a。
⑤从物理组号a和组内字节地址b得到物理地址。
⑥根据物理地址从主存中存取必要的信息。
页式调度是将逻辑和物理地址空间都分为固定大小的页。主存按页顺序编号,而每个独立编址的程序空间有自己的页号顺序,通过调度,辅存中程序的各页可以离散装入主存中不同的页面位置,并根据页表一一对应检索。
12、总线是一组能为多个部件分时共享的信息传送线,用来连接多个部件并为之提供信息交换通路。所谓共享,指连接到总线上的所有部件都可通过它传递信息;分时性指某一时刻只允许一个部件将数据发送到总线上。因此,共享是通过分时实现的。
13、核心层交换机一般都是三层或三层以上的交换机,采用机箱式的外观,具有很多冗余的部件。在进行网络规划设计时,核心层的设备通常要占大部分投资,因为核心层是网络的高速主干,需要转发非常庞大的流量,对于冗余的能力、可靠性和传输速度方面要求较高。
核心层交换机还需要支持链路聚合功能,以确保为分布层交换机发送到核心层交换机的流量提供足够的带宽。核心层交换机还应支持聚合万兆链接。这样可以让对应的分布层交换机尽可能高效的向核心层传送流量。Qos是核心层交换机提供的重要服务之一。
策略路由是一种比基于目标网络进行路由更加灵活的数据包路由转发机制。应用了策略路由,路由器将通过路由图决定如何对需要路由的数据包进行处理,路由图决定了一个数据包的下一跳转发路由器。
14、结构化布线系统分为六个子系统:工作区子系统、水平子系统、干线(垂直)子系统、设备间子系统、管理子系统和建筑群子系统。
干线(垂直)子系统是由设备间(如计算机房、程控交换机房等)提供建筑中最重要的铜线或光纤线主干线路构成,是整个建筑的信息交通枢纽。一般它提供位于不同楼层的设备间和布线框间的多条连接路径,也可以连接单层楼的大片区域。
15、一个网络系统从构思开始,到最后被淘汰的过程称为网络生命周期。一般来说,网络生命周期应该包括系统的构思和计划、分析和设计、以及运行和维护的全过程。网络系统的生命周期是一个循环迭代的过程,每次迭代的动力都来自于网络应用需求的变更。每一个迭代周期都是网络重构的过程。常见的迭代周期可以分为以下五个阶段:需求规范、通信规范、逻辑网络设计、物理网络设计、实施阶段。
逻辑网络设计是指根据用户需要确定网络建设的方案,包括拓扑结构规划、地址分配、网络技术和服务器的选择等。物理网络设计的任务是选择符合逻辑性能要求的传输介质、设备、部件和场所等,并将他们搭建成一个可以正常运行的网络。
16、负载均衡一般由服务端安装的附加软件来实现,通过采用负载均衡技术,系统的吞吐量会得到增加。负载均衡可以在不同地理位置、不同网络结构的服务器集群之间进行,采用负载均衡技术,用户可以仅通过IP地址或域名访问相应的服务器。
17、
18、19、关键要判断在进行集成时,需要数据库中的单表还是多表进行数据整合。如果是单表即可完成整合,则可以将该表包装为记录,采用主动记录的方式进行集成;如果需要多张表进行数据整合,则需要采用数据映射的方式完成数据集成与处理。
20、21、针对题干描述,该企业进行系统集成时,“业务系统的运行平台和开发语言差异较大,而且系统所使用的通信协议和数据格式各不相同”。在这种情况下,需要采用总线技术对传输协议和数据格式进行转换与适配。当需要集成并灵活定义系统功能之间的协作关系时,应该采用基于工作流的功能关系定义方式。
22、软件产品配置是指一个软件产品在生存周期各个阶段所产生的各种形式和各种版本的文档、计算机程序、部件以及数据的集合。该集合的每一个元素称为该产品配置中的一个配置项。配置项主要有一下两大类。
属于产品组成部分的工作成果,如需求文档、设计文档、源代码和测试用例等。
属于项目管理和机构支撑过程域产生的文档,如工作计划、项目质量报告、项目跟踪报告等。这些文档虽然不是产品的组成部分,但是值得保存。
23、软件质量是指反映软件系统或软件产品满足规定或隐含需求的能力的特征和特性全体。软件质量管理是指对软件开发过程进行独立的检查活动,由质量保证、质量规划和质量控制三个主要活动构成。软件质量保证是指为保证软件系统或软件产品满足用户要求的质量而进行的有计划、有组织的活动,其目的是生产高质量的软件。软件评审是软件质量保证的主要活动之一。
24、需求跟踪包括编制每个需求与系统元素之间的联系文档,这些元素包括别的需求、体系结构、其他设计部件、源代码模块、测试、帮助文件和文档等。跟踪能力信息使变更影响分析十分便利,有利于确认和评估实现某个建议的需求变更所必须的工作。
利用需求跟踪能力链可以跟踪一个需求使用的全过程,也就是从初始需求到实现的前后生存期。跟踪能力是优秀需求规格说明书的一个特征,为了实现跟踪能力,必须统一地标识出每一个需求,以便能明确的进行查阅。
客户需求向前追溯到软件需求。这样就能区分出开发过程中或者开发结束后,由于客户需求变更受到影响的软件需求,这也可以确保软件需求规格说明包括了所有客户需求。
从软件需求回溯相应的客户需求。这也就是确认每个软件需求的源头。如果使用实例的形式来描述客户需求,那么客户需求与软件需求之间的跟踪情况就是使用实例和功能性需求。
从软件需求向前追溯到下一级工作产品。由于开发过程中系统需求转变为软件需求、设计、编码等,所以通过定义单个需求和特定产品元素之间的(联系)链,可以从需求向前追溯到下一级工作产品。这种联系链告诉我们每个需求对应的产品部件,从而确保产品部件满足每个需求。
从产品部件回溯到软件需求。说明了每个部件存在的原因。如果不能把设计元素、代码段或测试回溯到一个需求,可能存在“画蛇添足”的程序。然而,如果这些孤立的元素表明了一个正当的功能,则说明需求规格说明书漏掉了一项需求。
25、需求定义的过程也就是形成需求说明书的过程,通常有两种需求定义的方法:严格定义方法和原型方法。
严格定义方法也称为预先定义,需求要严格建立在以下基本假设之上:
①所有需求都能够被预先定义。这意味着在没有实际系统运行经验的情况下,全部的系统需求均可通过逻辑推断得到。但这种假设在许多场合是不能成立的。
②开发人员与用户之间能够准确而清晰地交流。
③采用图形(或文字)可以充分体现最终系统。在使用严格定义需求的开发过程中,开发人员与用户之间交流与沟通的主要工具是定义报告,包括文字、图形、逻辑规则和数据字典等技术工具。
原型化的需求定义过程是一个开发人员与用户通力合作的反复过程。从一个能满足用户基本需求的原型系统开始,允许在开发过程中提出更好的要求,根据用户的要求不断地对系统进行完善,它实质上是一种迭代的循环型的开发方式。采用原型方法是需注意以下几个问题:
①并非所有的需求都能在系统开发前被准确地说明。
②项目干系人之间通常都存在交流上的困难。
③需要实际的、可供用户参与的系统模型。
④有合适的系统开发环境。
⑤反复是完全需要和值得提倡的。需求一旦确定,就应该遵从严格定义的方法。
26、软件需求工程是包括创建和维护软件需求文档所必须的一切活动的过程,可以分为需求开发和需求管理两大工作。需求开发包括需求获取、需求分析、编写需求规格说明书(需求定义)和需求验证4个阶段。在需求开发阶段需要确定软件所期望的用户类型,获取各种用户类型的需求,了解实际的用户任务和目标,以及这些任务所支持的业务需求。
需求管理是一个对系统需求变更、了解和控制的过程,通常包括定义需求基线、处理需求变更和需求跟踪方面的工作。需求管理强调:控制对需求基线的变动;保持项目计划与需求的一致;控制单个需求和需求文档的版本情况;管理需求和联系链,或者管理单个需求和其他项目可交付产品之间的依赖关系;跟踪基线中的需求状态。
需求开发与需求管理是相辅相成的,需求开发是主线、目标;需求管理是支持、保障。
27、28、RUP(Rational Unified Process,统一软件开发过程)
RUP软件开发生命周期是一个二维的软件开发模型,其中有9个核心工作流,分别为:业务建模、需求、分析与设计、实现、测试部署、配置与变更管理、项目管理以及环境。
RUP把软件开发生存周期划分为多个循环,每个循环生成产品的一个新的版本,每个循环依次由4个连续的阶段组成,每个阶段完成确定的任务。这4个阶段分别为:
初始阶段:定义最终产品视图和业务模型,并确定系统范围。
细化阶段:设计及确定系统的体系结构,指定工作计划及资源要求。
构造阶段:构造产品并继续演进需求、体系结构、计划,直至产品提交。
移交阶段:把产品提交给用户使用。
每个阶段都有一个或多个连续的迭代组成。迭代并不是重复的做相同的事,而是针对不同用例的细化和实现。每一个迭代都是一个完整的开发过程,它需要项目经理根据当前迭代所处的阶段以及上次迭代的结果,适当地对工作流中的行为进行裁剪。在每个阶段结束前有一个里程碑评估该阶段的工作。如果未能通过该里程碑的评估,则决策者应该做出决定,是取消该项目还是继续该阶段的工作。
与其他软件开发过程相比,RUP具有自己的特点,即RUP是用例驱动的、以体系结构为中心的、迭代和增量的软件开发过程。
29、30、类封装了信息和行为,是面向对象的重要组成部分。设计类是面向对象设计过程中最重要的组成部分,也是最复杂和最耗时的部分。在面向对象设计过程中,类可以分为三种类型:实体类、边界类和控制类。
实体类映射需求中的每个实体。实体类保存需要存储在永久存储体中的信息。实体类对用户来说是最有意义的类,通常采用业务领域术语命名,一般来说是一个名词,在用例模型向领域模型的转化中,参与者一般对应于实体类。
控制类是用于控制用例工作的类,一般由动宾结构的短语(“动词+名词”或“名词+动词”)转化而来的名词。控制类用于对一个或几个用例所特有的控制行为进行建模,控制对象(控制类的实例)通常控制其他对象,因此它们的行为具有协调性。
边界类用于封装在用例内、外流动的信息或数据流。边界类是一种用于对系统外部环境与其内部运作之间的交互进行建模的类,用于实现目标软件系统与外部系统或外部设备之间的信息交流和互操作。
31、常用的面向对象设计原则包括开闭原则、里氏替换原则、依赖倒置原则、组合/聚合复用原则、接口隔离原则和最少知识原则等。这些设计原则首先都是面向复用的原则,遵循这些设计原则可以有效地提高系统的复用性,同时提高系统的可维护性。
最少知识原则(也称为迪米特法则)是面向对象设计原则之一,指一个软件实体应当尽可能少地与其他实体发生相互作用。这样,当一个实体被修改时,就会尽可能少地影响其他的实体。
最少知识原则主要用于控制信息的过载。在将最少知识原则运用到系统设计中时,要注意以下几点:
①在类的划分上,应当尽量创建松耦合的类,类之间的耦合度越低,就越有利于复用。一个处在松耦合中的类一旦被修改,不会对关联的类造成太大波动。
②在类的结构设计上,每个类都应当尽量降低其属性和方法的访问权限。
③在类的设计上,只要有可能,一个类型应当设计成不变类。
④在对其他类的引用上,一个对象对其他对象的引用应当降到最低。
32、结构化方法也称为生命周期法,是一种传统的信息系统开发方法,由结构化分析、结构化设计和结构化程序设计三部分组成,其精髓是自顶向下、逐步求精和模块化设计。
结构化方法的主要特点是:开发目标清晰化、开发工作阶段化、开发文档规范化和设计方法结构化。结构化方法特别适合于数据处理领域的问题,但是不适应于规模较大、比较复杂的系统开发。结构化方法的缺点是开发周期长、难以适应需求的变化、很少考虑数据结构。
面向对象方法是目前比较主流的开发方法。面向对象方法是系统的描述及信息模型的表示与客观实体相对应,符合人们的思维习惯,有利于系统开发过程中用户与开发人员的交流和沟通,缩短开发周期,提高系统开发的正确性和效率。可以把结构化方法和面向对象方法结合起来进行系统开发。首先使用结构化方法进行自顶向下的整体划分,然后再自底向上地采用面向对象方法开发系统。
敏捷方法是从20世纪90年代开始逐渐引起广泛关注的一种新型软件开发方法,以应对快速变化的需求。敏捷方法是一种以人为核心、迭代、循序渐进的开发方法。敏捷方法强调,让客户满意和软件尽早增量发布;小而高度自主的项目团队;非正式的方法;最小化软件工程工作产品以及整体精简开发。与传统方法相比,以它的灵活性来适应需求的变化。
面向服务的方法以粗粒度、松散耦合和基于标准的服务为基础,增强了系统的灵活性、可复用性和可演化性。
33、34、组合(Composite)模式又称为整体-部分(Part-whole)模式,属于对象的结构模式。在组合模式中,通过组合多个对象形成树形结构以表示整体-部分的结构层次。组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性。Composite模式的结构如下:
类Component为组合中的对象声明接口,在适当的情况下,实现所有类共有接口的缺省行为,声明一个接口用于访问和管理Component的子部件;
类Left在组合中表示叶结点对象,叶结点没有子结点,并在组合中定义图元对象的行为;
类Composite定义有子部件的那些部件的行为,存储子部件,并在Component接口中实现与子部件有关的操作;
类Client通过Component接口操纵组合部件的对象。
35、36、企业战略数据模型可分为数据库模型和数据仓库模型,数据库模型用来描述日常事务处理中的数据及其关系了数据仓库模型则描述企业高层决策者所需信息及其关系。在企业信息化过程中,数据库模型是基础,一个好的数据库模型应该客观地反映企业生产经营的内在联系。
37、企业信息化建设的核心和本质是企业运用信息技术,进行知识的挖掘,对业务流程进行管理。企业信息化的实施,可以沿着两个方向进行,自上而下方法必须与企业的制度创新、组织创新和管理创新相结合;自下而上方法必须以作为企业主体的业务人员的直接收益和使用水平逐步提高为基础。
38、企业业务流程重构是利用信息和网络技术,对企业的组织结构和工作方法进行“彻底的、根本性的”重新设计,以适应当今市场发展和信息社会的需求。核心业务应用方法是围绕核心业务应用计算机和网络技术,这是很多企业信息化成功的秘诀和有效途径。在业务数量浩繁并且流程错综复杂的大型企业里,建设覆盖整个企业的信息系统往往很难成功,各个部门的局部开发和应用又有很大的弊端,会造成系统严重分隔,形成许多“信息孤岛”,造成大量的无效或低效投资。常见的资源管理方法有ERP(企业资源规划)和SCM(供应链管理)。人力资本与人力资源的主要区别是人力资本理论把一部分企业的优秀员工看作是一种投资,能够取得投资收益。
39、外部设计处于软件设计的开始阶段,主要是按系统需求说明来确定此系统的软件结构和对应于系统需求说明,设计出各个功能部分的功能和接口。内部设计处于软件工程中的概要设计阶段,按照外部设计中确立的系统软件结构,来细化此系统各个功能部件以及各个部件接口的设计,并且详细给出各个功能部件详细的数据输入、输出设计。内部设计细化外部设计中的各种功能。
40、原型是软件系统的初始版本,用来演示概念并尝试设计选择,通常用来发现更多的问题和可能的解决方案。快速迭代式的原型开发能够有效控制成本,根据原型与最终产品之间的关系,原型开发分为三类:抛弃式原型开发利用原型验证和澄清系统的需求描述,重新构造系统;演化式原型开发逐步改进和细化原型,将原型进化至产生出目标系统;增量式原型开发在建立软件总体设计的基础上,采用增量开发方法,使原型称为最终系统。
41、静态分析通过解析程序文本,从而识别出程序语句的各个部分,审查可能的缺陷和异常之处,静态分析包括五个阶段:控制流分析阶段找出并突出显示那些带有多重出口或入口的循环以及不可达到的代码段;数据使用分析阶段突出程序中变量的使用情况;接口分析阶段检查子程序和过程声明以及它们使用的一致性;信息流分析阶段找出输入变量和输出变量之间的依赖关系;路径分析阶段找出程序中所有可能的路径并画出此路径中执行的语句。
42、确认测试主要用于验证软件的功能、性能和其他特性是否与用户需求一致。根据用户参与程度,通常包括以下4种类型。
①内部确认测试。内部确认测试主要由软件开发组织内部按照软件需求规格说明书进行测试。
②α测试和β测试。对于通用产品型的软件开发而言,α测试是指由用户在开发环境下进行测试,通过α测试以后的产品通常称为α版;β测试是指由用户在实际使用环境下进行测试,通过β测试的产品通常称为β版。一般在通过β测试后,才能把产品发布或交付给用户。
③验收测试。验收测试是指针对软件需求规格说明书,在交付前以用户为主进行的测试。其测试对象为完整的、集成的计算机系统。验收测试的目的是,在真实的用户工作环境下,检验软件系统是否满足开发技术合同或软件需求规格说明书。验收测试的结论是用户确定是否接收该软件的主要依据。
系统测试的目的是在真实系统工作环境下,验证完整的软件配置项能否和系统正确连接,并满足系统/子系统设计文档和软件开发合同规定的要求。系统测试的主要内容包括功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、安装与反安装测试等。其中性能测试包括负载测试、压力测试、可靠性测试和并发测试。
43、在系统交付以后,改变系统的任何工作,都可以被称为维护。在系统运行过程中,软件需要维护的原因是多样的,根据维护的原因不同,可以将软件维护分为以下4种:
①正确性(改正性)维护。改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。
②适应性维护。在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就称为适应性维护。
③完善性维护。在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。维护满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动称为完善性维护。
④预防性维护。这是指为了适应未来的软硬件环境的变化,应主动增加预防性的新的功能,以使应用系统适应各类变化而不被淘汰。
44、45、架构风格描述了一类软件架构的特征,它独立于实际问题,强调软件系统中通用的组织结构选择。垃圾回收机制是Java语言管理内存资源时常用的一种设计模式。
46、47、48、“4+1”视图,用来描述软件系统的架构。在“4+1”视图中,逻辑视图用来描述设计的对象模型和对象之间的关系;开发视图描述了软件模块的组织与管理;过程视图描述设计的并发和同步特征。
49、基于架构的软件设计(ABSD)以架构风格和质量属性为中心,强调由商业、质量和功能需求的组合驱动软件架构设计。ABSD方法有三个基础:功能分解、选择架构风格实现质量及商业需求和软件模板的使用。
50、黑板架构风格
51、解释器架构风格
52、数据共享架构风格
53、中介者模式
54、命令模式
55、责任链模式
56、57、
58、59、60、架构设计策略和质量属性的理解。软件质量属性通常需要采用特定的设计策略实现,并且设计策略会对其他的质量属性产生影响。心跳机制策略能提高该系统的可用性,优先级队列策略能够提高该系统的性能,限制访问策略能够提高该系统的安全性。
61、架构权衡分析法(ATAM)是一种常用的软件架构评估方法,该方法强调对软件的质量属性进行分析、分类和优先级排序等工作,在此基础上构件质量属性效用树,并对风险点、非风险点、敏感点和权衡点进行识别和分析。
62、63、一个质量属性会同时影响另外两个质量属性,描述的是一个敏感点;由于某种问题会影响系统的某种质量属性,这是一个系统的风险点。
64、SNMP(Simple Network Management Protocol,简单网络管理协议)
SNMPv3把对网络协议的安全威胁分为主要的和次要的两类。标准规定安全模块必须提供防护的两种主要威胁是:
①修改信息(Modification of Information):就是某些未经授权的实体改变了进来的SNMP报文,企图实施未经授权的管理操作,或者提供虚假的管理对象。
②假冒(Masquerade):即未经授权的用户冒充授权用户的标识,企图实施管理操作。
SNMPv3标准还规定安全模块必须对两种次要威胁提供防护:
①修改报文流(Message Stream Modification):由于SNMP协议通常是基于无连接的传输服务,重新排序报文流、延迟或重放报文的威胁都可能出现。这种威胁的危害性在于通过报文流的修改可能实施非法的管理操作。
②消息泄露(Disclosure):SNMP引擎之间交换的信息可能被偷听,对这种威胁的防护应采取局部的策略。
有两种威胁是安全体系结构不必防护的,因为它们不是很重要,或者这种防护没有多大作用:
①拒绝服务(Denial of Service):因为在很多情况下拒绝服务和网络失效是无法区别的,所以可以由网络管理协议来处理,安全子系统不必采取措施。
②通信分析(Traffic Analysis):即由第三者分析管理实体之间的通信规律,从而获取需要的信息。由于通常都是由少数管理站来管理整个网络的,所以管理系统的通信模式是可预见的,防护通信分析就没有多大作用了。
65、PGP(Pretty Good Privacy)已经成为使用最广泛的电子邮件加密软件。
66、
67、
68、
69、
70、
71、72、73、74、75、
2、3、4、PV操作
5、6、7、关系模式和E-R图的概念和性质。
8、
9、CISC(Complex Instruction Set Computer,复杂指令集计算机)——基本思想是进一步增强原有指令的功能,用更为复杂的新指令取代原先由子程序完成的功能,实现软件功能的硬件化,导致机器的指令系统越来越庞大而复杂。CISC计算机一般所含的指令数目至少300条以上,有的甚至超过500条。
RISC(Reduced Instruction Set Computer,精简指令集计算机)——基本思想是通过减少指令总数和简化指令功能,降低硬件设计的复杂度,使指令能单周期执行,并通过优化编译,提高指令的执行速度,采用硬线控制逻辑,优化编译程序。
10、高速缓存Cache用来存放当前最活跃的程序和数据,作为主存局部域的副本,其特点是:容量一般在几KB到几MB之间;速度一般比主存快5到10倍,由快速半导体存储器构成;其内容是主存局部域的副本,对程序员来说是透明的。
替换算法的目标是使Cache获得最高的命中率。常用的算法有随机替换算法、先进先出算法、近期最少使用算法和优化替换算法。
Cache的性能是计算机系统性能的重要方面。命中率是Cache的一个重要指标,但不是最主要的指标。Cache设计的目标是在成本允许的条件下达到较高的命中率,使存储系统具有最短的平均访问时间。
Cache的命中率与Cache容量的关系是:Cache容量越大,则命中率越高,随着Cache容量的增加,其命中率逐渐接近100%。但是增加Cache容量意味着增加Cache的成本和增加Cache的命中时间。
11、虚拟存储器是一个容量非常大的存储器的逻辑模型,不是任何实际的物理存储器。它借助于磁盘等辅助存储器来扩大主存容量,使之为更大或更多的程序所使用。虚拟存储器管理方式分为页式虚拟存储器、段式虚拟存储器和段页式虚拟存储器。
虚拟存储器是由硬件和操作系统自动实现存储信息调度和管理的。它的工作过程包括6个步骤:
①中央处理器访问主存的逻辑地址分解成组号a和组内地址b,并对组号a进行地址变换,即将逻辑组号a作为索引,查地址变换表,以确定该组信息是否存放在主存内。
②如该组号已存在主存内,则转而执行④;如果该组号不在主存内,则检查主存中是否有空闲区,如果没有,便将某个暂时不用的组调出送往辅存,以便将需要访问的信息调入主存。
③从辅存读出所要的组,并送到主存空闲区,然后将那个空闲的物理组号a和逻辑组号a登记在地址变换表中。
④从地址变换表读出与逻辑组号a对应的物理组号a。
⑤从物理组号a和组内字节地址b得到物理地址。
⑥根据物理地址从主存中存取必要的信息。
页式调度是将逻辑和物理地址空间都分为固定大小的页。主存按页顺序编号,而每个独立编址的程序空间有自己的页号顺序,通过调度,辅存中程序的各页可以离散装入主存中不同的页面位置,并根据页表一一对应检索。
12、总线是一组能为多个部件分时共享的信息传送线,用来连接多个部件并为之提供信息交换通路。所谓共享,指连接到总线上的所有部件都可通过它传递信息;分时性指某一时刻只允许一个部件将数据发送到总线上。因此,共享是通过分时实现的。
13、核心层交换机一般都是三层或三层以上的交换机,采用机箱式的外观,具有很多冗余的部件。在进行网络规划设计时,核心层的设备通常要占大部分投资,因为核心层是网络的高速主干,需要转发非常庞大的流量,对于冗余的能力、可靠性和传输速度方面要求较高。
核心层交换机还需要支持链路聚合功能,以确保为分布层交换机发送到核心层交换机的流量提供足够的带宽。核心层交换机还应支持聚合万兆链接。这样可以让对应的分布层交换机尽可能高效的向核心层传送流量。Qos是核心层交换机提供的重要服务之一。
策略路由是一种比基于目标网络进行路由更加灵活的数据包路由转发机制。应用了策略路由,路由器将通过路由图决定如何对需要路由的数据包进行处理,路由图决定了一个数据包的下一跳转发路由器。
14、结构化布线系统分为六个子系统:工作区子系统、水平子系统、干线(垂直)子系统、设备间子系统、管理子系统和建筑群子系统。
干线(垂直)子系统是由设备间(如计算机房、程控交换机房等)提供建筑中最重要的铜线或光纤线主干线路构成,是整个建筑的信息交通枢纽。一般它提供位于不同楼层的设备间和布线框间的多条连接路径,也可以连接单层楼的大片区域。
15、一个网络系统从构思开始,到最后被淘汰的过程称为网络生命周期。一般来说,网络生命周期应该包括系统的构思和计划、分析和设计、以及运行和维护的全过程。网络系统的生命周期是一个循环迭代的过程,每次迭代的动力都来自于网络应用需求的变更。每一个迭代周期都是网络重构的过程。常见的迭代周期可以分为以下五个阶段:需求规范、通信规范、逻辑网络设计、物理网络设计、实施阶段。
逻辑网络设计是指根据用户需要确定网络建设的方案,包括拓扑结构规划、地址分配、网络技术和服务器的选择等。物理网络设计的任务是选择符合逻辑性能要求的传输介质、设备、部件和场所等,并将他们搭建成一个可以正常运行的网络。
16、负载均衡一般由服务端安装的附加软件来实现,通过采用负载均衡技术,系统的吞吐量会得到增加。负载均衡可以在不同地理位置、不同网络结构的服务器集群之间进行,采用负载均衡技术,用户可以仅通过IP地址或域名访问相应的服务器。
17、
18、19、关键要判断在进行集成时,需要数据库中的单表还是多表进行数据整合。如果是单表即可完成整合,则可以将该表包装为记录,采用主动记录的方式进行集成;如果需要多张表进行数据整合,则需要采用数据映射的方式完成数据集成与处理。
20、21、针对题干描述,该企业进行系统集成时,“业务系统的运行平台和开发语言差异较大,而且系统所使用的通信协议和数据格式各不相同”。在这种情况下,需要采用总线技术对传输协议和数据格式进行转换与适配。当需要集成并灵活定义系统功能之间的协作关系时,应该采用基于工作流的功能关系定义方式。
22、软件产品配置是指一个软件产品在生存周期各个阶段所产生的各种形式和各种版本的文档、计算机程序、部件以及数据的集合。该集合的每一个元素称为该产品配置中的一个配置项。配置项主要有一下两大类。
属于产品组成部分的工作成果,如需求文档、设计文档、源代码和测试用例等。
属于项目管理和机构支撑过程域产生的文档,如工作计划、项目质量报告、项目跟踪报告等。这些文档虽然不是产品的组成部分,但是值得保存。
23、软件质量是指反映软件系统或软件产品满足规定或隐含需求的能力的特征和特性全体。软件质量管理是指对软件开发过程进行独立的检查活动,由质量保证、质量规划和质量控制三个主要活动构成。软件质量保证是指为保证软件系统或软件产品满足用户要求的质量而进行的有计划、有组织的活动,其目的是生产高质量的软件。软件评审是软件质量保证的主要活动之一。
24、需求跟踪包括编制每个需求与系统元素之间的联系文档,这些元素包括别的需求、体系结构、其他设计部件、源代码模块、测试、帮助文件和文档等。跟踪能力信息使变更影响分析十分便利,有利于确认和评估实现某个建议的需求变更所必须的工作。
利用需求跟踪能力链可以跟踪一个需求使用的全过程,也就是从初始需求到实现的前后生存期。跟踪能力是优秀需求规格说明书的一个特征,为了实现跟踪能力,必须统一地标识出每一个需求,以便能明确的进行查阅。
客户需求向前追溯到软件需求。这样就能区分出开发过程中或者开发结束后,由于客户需求变更受到影响的软件需求,这也可以确保软件需求规格说明包括了所有客户需求。
从软件需求回溯相应的客户需求。这也就是确认每个软件需求的源头。如果使用实例的形式来描述客户需求,那么客户需求与软件需求之间的跟踪情况就是使用实例和功能性需求。
从软件需求向前追溯到下一级工作产品。由于开发过程中系统需求转变为软件需求、设计、编码等,所以通过定义单个需求和特定产品元素之间的(联系)链,可以从需求向前追溯到下一级工作产品。这种联系链告诉我们每个需求对应的产品部件,从而确保产品部件满足每个需求。
从产品部件回溯到软件需求。说明了每个部件存在的原因。如果不能把设计元素、代码段或测试回溯到一个需求,可能存在“画蛇添足”的程序。然而,如果这些孤立的元素表明了一个正当的功能,则说明需求规格说明书漏掉了一项需求。
25、需求定义的过程也就是形成需求说明书的过程,通常有两种需求定义的方法:严格定义方法和原型方法。
严格定义方法也称为预先定义,需求要严格建立在以下基本假设之上:
①所有需求都能够被预先定义。这意味着在没有实际系统运行经验的情况下,全部的系统需求均可通过逻辑推断得到。但这种假设在许多场合是不能成立的。
②开发人员与用户之间能够准确而清晰地交流。
③采用图形(或文字)可以充分体现最终系统。在使用严格定义需求的开发过程中,开发人员与用户之间交流与沟通的主要工具是定义报告,包括文字、图形、逻辑规则和数据字典等技术工具。
原型化的需求定义过程是一个开发人员与用户通力合作的反复过程。从一个能满足用户基本需求的原型系统开始,允许在开发过程中提出更好的要求,根据用户的要求不断地对系统进行完善,它实质上是一种迭代的循环型的开发方式。采用原型方法是需注意以下几个问题:
①并非所有的需求都能在系统开发前被准确地说明。
②项目干系人之间通常都存在交流上的困难。
③需要实际的、可供用户参与的系统模型。
④有合适的系统开发环境。
⑤反复是完全需要和值得提倡的。需求一旦确定,就应该遵从严格定义的方法。
26、软件需求工程是包括创建和维护软件需求文档所必须的一切活动的过程,可以分为需求开发和需求管理两大工作。需求开发包括需求获取、需求分析、编写需求规格说明书(需求定义)和需求验证4个阶段。在需求开发阶段需要确定软件所期望的用户类型,获取各种用户类型的需求,了解实际的用户任务和目标,以及这些任务所支持的业务需求。
需求管理是一个对系统需求变更、了解和控制的过程,通常包括定义需求基线、处理需求变更和需求跟踪方面的工作。需求管理强调:控制对需求基线的变动;保持项目计划与需求的一致;控制单个需求和需求文档的版本情况;管理需求和联系链,或者管理单个需求和其他项目可交付产品之间的依赖关系;跟踪基线中的需求状态。
需求开发与需求管理是相辅相成的,需求开发是主线、目标;需求管理是支持、保障。
27、28、RUP(Rational Unified Process,统一软件开发过程)
RUP软件开发生命周期是一个二维的软件开发模型,其中有9个核心工作流,分别为:业务建模、需求、分析与设计、实现、测试部署、配置与变更管理、项目管理以及环境。
RUP把软件开发生存周期划分为多个循环,每个循环生成产品的一个新的版本,每个循环依次由4个连续的阶段组成,每个阶段完成确定的任务。这4个阶段分别为:
初始阶段:定义最终产品视图和业务模型,并确定系统范围。
细化阶段:设计及确定系统的体系结构,指定工作计划及资源要求。
构造阶段:构造产品并继续演进需求、体系结构、计划,直至产品提交。
移交阶段:把产品提交给用户使用。
每个阶段都有一个或多个连续的迭代组成。迭代并不是重复的做相同的事,而是针对不同用例的细化和实现。每一个迭代都是一个完整的开发过程,它需要项目经理根据当前迭代所处的阶段以及上次迭代的结果,适当地对工作流中的行为进行裁剪。在每个阶段结束前有一个里程碑评估该阶段的工作。如果未能通过该里程碑的评估,则决策者应该做出决定,是取消该项目还是继续该阶段的工作。
与其他软件开发过程相比,RUP具有自己的特点,即RUP是用例驱动的、以体系结构为中心的、迭代和增量的软件开发过程。
29、30、类封装了信息和行为,是面向对象的重要组成部分。设计类是面向对象设计过程中最重要的组成部分,也是最复杂和最耗时的部分。在面向对象设计过程中,类可以分为三种类型:实体类、边界类和控制类。
实体类映射需求中的每个实体。实体类保存需要存储在永久存储体中的信息。实体类对用户来说是最有意义的类,通常采用业务领域术语命名,一般来说是一个名词,在用例模型向领域模型的转化中,参与者一般对应于实体类。
控制类是用于控制用例工作的类,一般由动宾结构的短语(“动词+名词”或“名词+动词”)转化而来的名词。控制类用于对一个或几个用例所特有的控制行为进行建模,控制对象(控制类的实例)通常控制其他对象,因此它们的行为具有协调性。
边界类用于封装在用例内、外流动的信息或数据流。边界类是一种用于对系统外部环境与其内部运作之间的交互进行建模的类,用于实现目标软件系统与外部系统或外部设备之间的信息交流和互操作。
31、常用的面向对象设计原则包括开闭原则、里氏替换原则、依赖倒置原则、组合/聚合复用原则、接口隔离原则和最少知识原则等。这些设计原则首先都是面向复用的原则,遵循这些设计原则可以有效地提高系统的复用性,同时提高系统的可维护性。
最少知识原则(也称为迪米特法则)是面向对象设计原则之一,指一个软件实体应当尽可能少地与其他实体发生相互作用。这样,当一个实体被修改时,就会尽可能少地影响其他的实体。
最少知识原则主要用于控制信息的过载。在将最少知识原则运用到系统设计中时,要注意以下几点:
①在类的划分上,应当尽量创建松耦合的类,类之间的耦合度越低,就越有利于复用。一个处在松耦合中的类一旦被修改,不会对关联的类造成太大波动。
②在类的结构设计上,每个类都应当尽量降低其属性和方法的访问权限。
③在类的设计上,只要有可能,一个类型应当设计成不变类。
④在对其他类的引用上,一个对象对其他对象的引用应当降到最低。
32、结构化方法也称为生命周期法,是一种传统的信息系统开发方法,由结构化分析、结构化设计和结构化程序设计三部分组成,其精髓是自顶向下、逐步求精和模块化设计。
结构化方法的主要特点是:开发目标清晰化、开发工作阶段化、开发文档规范化和设计方法结构化。结构化方法特别适合于数据处理领域的问题,但是不适应于规模较大、比较复杂的系统开发。结构化方法的缺点是开发周期长、难以适应需求的变化、很少考虑数据结构。
面向对象方法是目前比较主流的开发方法。面向对象方法是系统的描述及信息模型的表示与客观实体相对应,符合人们的思维习惯,有利于系统开发过程中用户与开发人员的交流和沟通,缩短开发周期,提高系统开发的正确性和效率。可以把结构化方法和面向对象方法结合起来进行系统开发。首先使用结构化方法进行自顶向下的整体划分,然后再自底向上地采用面向对象方法开发系统。
敏捷方法是从20世纪90年代开始逐渐引起广泛关注的一种新型软件开发方法,以应对快速变化的需求。敏捷方法是一种以人为核心、迭代、循序渐进的开发方法。敏捷方法强调,让客户满意和软件尽早增量发布;小而高度自主的项目团队;非正式的方法;最小化软件工程工作产品以及整体精简开发。与传统方法相比,以它的灵活性来适应需求的变化。
面向服务的方法以粗粒度、松散耦合和基于标准的服务为基础,增强了系统的灵活性、可复用性和可演化性。
33、34、组合(Composite)模式又称为整体-部分(Part-whole)模式,属于对象的结构模式。在组合模式中,通过组合多个对象形成树形结构以表示整体-部分的结构层次。组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性。Composite模式的结构如下:
类Component为组合中的对象声明接口,在适当的情况下,实现所有类共有接口的缺省行为,声明一个接口用于访问和管理Component的子部件;
类Left在组合中表示叶结点对象,叶结点没有子结点,并在组合中定义图元对象的行为;
类Composite定义有子部件的那些部件的行为,存储子部件,并在Component接口中实现与子部件有关的操作;
类Client通过Component接口操纵组合部件的对象。
35、36、企业战略数据模型可分为数据库模型和数据仓库模型,数据库模型用来描述日常事务处理中的数据及其关系了数据仓库模型则描述企业高层决策者所需信息及其关系。在企业信息化过程中,数据库模型是基础,一个好的数据库模型应该客观地反映企业生产经营的内在联系。
37、企业信息化建设的核心和本质是企业运用信息技术,进行知识的挖掘,对业务流程进行管理。企业信息化的实施,可以沿着两个方向进行,自上而下方法必须与企业的制度创新、组织创新和管理创新相结合;自下而上方法必须以作为企业主体的业务人员的直接收益和使用水平逐步提高为基础。
38、企业业务流程重构是利用信息和网络技术,对企业的组织结构和工作方法进行“彻底的、根本性的”重新设计,以适应当今市场发展和信息社会的需求。核心业务应用方法是围绕核心业务应用计算机和网络技术,这是很多企业信息化成功的秘诀和有效途径。在业务数量浩繁并且流程错综复杂的大型企业里,建设覆盖整个企业的信息系统往往很难成功,各个部门的局部开发和应用又有很大的弊端,会造成系统严重分隔,形成许多“信息孤岛”,造成大量的无效或低效投资。常见的资源管理方法有ERP(企业资源规划)和SCM(供应链管理)。人力资本与人力资源的主要区别是人力资本理论把一部分企业的优秀员工看作是一种投资,能够取得投资收益。
39、外部设计处于软件设计的开始阶段,主要是按系统需求说明来确定此系统的软件结构和对应于系统需求说明,设计出各个功能部分的功能和接口。内部设计处于软件工程中的概要设计阶段,按照外部设计中确立的系统软件结构,来细化此系统各个功能部件以及各个部件接口的设计,并且详细给出各个功能部件详细的数据输入、输出设计。内部设计细化外部设计中的各种功能。
40、原型是软件系统的初始版本,用来演示概念并尝试设计选择,通常用来发现更多的问题和可能的解决方案。快速迭代式的原型开发能够有效控制成本,根据原型与最终产品之间的关系,原型开发分为三类:抛弃式原型开发利用原型验证和澄清系统的需求描述,重新构造系统;演化式原型开发逐步改进和细化原型,将原型进化至产生出目标系统;增量式原型开发在建立软件总体设计的基础上,采用增量开发方法,使原型称为最终系统。
41、静态分析通过解析程序文本,从而识别出程序语句的各个部分,审查可能的缺陷和异常之处,静态分析包括五个阶段:控制流分析阶段找出并突出显示那些带有多重出口或入口的循环以及不可达到的代码段;数据使用分析阶段突出程序中变量的使用情况;接口分析阶段检查子程序和过程声明以及它们使用的一致性;信息流分析阶段找出输入变量和输出变量之间的依赖关系;路径分析阶段找出程序中所有可能的路径并画出此路径中执行的语句。
42、确认测试主要用于验证软件的功能、性能和其他特性是否与用户需求一致。根据用户参与程度,通常包括以下4种类型。
①内部确认测试。内部确认测试主要由软件开发组织内部按照软件需求规格说明书进行测试。
②α测试和β测试。对于通用产品型的软件开发而言,α测试是指由用户在开发环境下进行测试,通过α测试以后的产品通常称为α版;β测试是指由用户在实际使用环境下进行测试,通过β测试的产品通常称为β版。一般在通过β测试后,才能把产品发布或交付给用户。
③验收测试。验收测试是指针对软件需求规格说明书,在交付前以用户为主进行的测试。其测试对象为完整的、集成的计算机系统。验收测试的目的是,在真实的用户工作环境下,检验软件系统是否满足开发技术合同或软件需求规格说明书。验收测试的结论是用户确定是否接收该软件的主要依据。
系统测试的目的是在真实系统工作环境下,验证完整的软件配置项能否和系统正确连接,并满足系统/子系统设计文档和软件开发合同规定的要求。系统测试的主要内容包括功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、安装与反安装测试等。其中性能测试包括负载测试、压力测试、可靠性测试和并发测试。
43、在系统交付以后,改变系统的任何工作,都可以被称为维护。在系统运行过程中,软件需要维护的原因是多样的,根据维护的原因不同,可以将软件维护分为以下4种:
①正确性(改正性)维护。改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。
②适应性维护。在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就称为适应性维护。
③完善性维护。在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。维护满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动称为完善性维护。
④预防性维护。这是指为了适应未来的软硬件环境的变化,应主动增加预防性的新的功能,以使应用系统适应各类变化而不被淘汰。
44、45、架构风格描述了一类软件架构的特征,它独立于实际问题,强调软件系统中通用的组织结构选择。垃圾回收机制是Java语言管理内存资源时常用的一种设计模式。
46、47、48、“4+1”视图,用来描述软件系统的架构。在“4+1”视图中,逻辑视图用来描述设计的对象模型和对象之间的关系;开发视图描述了软件模块的组织与管理;过程视图描述设计的并发和同步特征。
49、基于架构的软件设计(ABSD)以架构风格和质量属性为中心,强调由商业、质量和功能需求的组合驱动软件架构设计。ABSD方法有三个基础:功能分解、选择架构风格实现质量及商业需求和软件模板的使用。
50、黑板架构风格
51、解释器架构风格
52、数据共享架构风格
53、中介者模式
54、命令模式
55、责任链模式
56、57、
58、59、60、架构设计策略和质量属性的理解。软件质量属性通常需要采用特定的设计策略实现,并且设计策略会对其他的质量属性产生影响。心跳机制策略能提高该系统的可用性,优先级队列策略能够提高该系统的性能,限制访问策略能够提高该系统的安全性。
61、架构权衡分析法(ATAM)是一种常用的软件架构评估方法,该方法强调对软件的质量属性进行分析、分类和优先级排序等工作,在此基础上构件质量属性效用树,并对风险点、非风险点、敏感点和权衡点进行识别和分析。
62、63、一个质量属性会同时影响另外两个质量属性,描述的是一个敏感点;由于某种问题会影响系统的某种质量属性,这是一个系统的风险点。
64、SNMP(Simple Network Management Protocol,简单网络管理协议)
SNMPv3把对网络协议的安全威胁分为主要的和次要的两类。标准规定安全模块必须提供防护的两种主要威胁是:
①修改信息(Modification of Information):就是某些未经授权的实体改变了进来的SNMP报文,企图实施未经授权的管理操作,或者提供虚假的管理对象。
②假冒(Masquerade):即未经授权的用户冒充授权用户的标识,企图实施管理操作。
SNMPv3标准还规定安全模块必须对两种次要威胁提供防护:
①修改报文流(Message Stream Modification):由于SNMP协议通常是基于无连接的传输服务,重新排序报文流、延迟或重放报文的威胁都可能出现。这种威胁的危害性在于通过报文流的修改可能实施非法的管理操作。
②消息泄露(Disclosure):SNMP引擎之间交换的信息可能被偷听,对这种威胁的防护应采取局部的策略。
有两种威胁是安全体系结构不必防护的,因为它们不是很重要,或者这种防护没有多大作用:
①拒绝服务(Denial of Service):因为在很多情况下拒绝服务和网络失效是无法区别的,所以可以由网络管理协议来处理,安全子系统不必采取措施。
②通信分析(Traffic Analysis):即由第三者分析管理实体之间的通信规律,从而获取需要的信息。由于通常都是由少数管理站来管理整个网络的,所以管理系统的通信模式是可预见的,防护通信分析就没有多大作用了。
65、PGP(Pretty Good Privacy)已经成为使用最广泛的电子邮件加密软件。
66、
67、
68、
69、
70、
71、72、73、74、75、
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28998293/viewspace-775522/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/28998293/viewspace-775522/