一、面向服务的架构
1.请分别用200字以内文字说明什么是面向服务架构(SOA)以及ESB在SOA的作用与特点
面向服务的体系架构(SOA)是一种粗粒度、松耦合的服务架构,服务之间通过简单、精确定义接口进行通信。他可以根据需求通过网络对松散耦合的粗粒度的应用组件进行分布式部署、使用和组合。SOA能够帮助企业系统架构设计者以更迅速、更可靠、更高重用性设计整个业务系统架构,基于SOA的系统架构能够更加从容的面对业务的急剧变化。
企业服务总线(ESB)是由中间件技术实现的全面支持面向服务架构的基础软件平台,支持异构环境的服务以及基于消息和事件驱动模式的交互,并且具有适当的服务质量和可管理性。
二、分布式数据库缓存
1.分布式数据库缓存的基本概念?MemCache和redis的详细比较?
分布式数据库缓存指的是在高并发环境下,为了减轻数据库压力和提高系统响应时间,在数据库系统和应用系统之间增加的独立缓存系统。
目前市场上常见的数据库缓存系统是MemCache和Redis,他们的主要区别如下:
MemChace:数据类型是简单的key/value结构,不支持持久性,分布式存储为客户端哈希分片/一致性哈希,支持多线程,内存管理为私有内存池/内存池,不支持事务管理
Redis:丰富的数据结构,支持持久性,多种方式(主从、sentinel、Cluster等)进行分布式存储,不支持多线程,无内存管理,有限支持事务管理
2.请用300字以内的文字,说明redis分布式存储的两种常见方案,解释说明redis集群切片的几种常见方式。
redis分布式存储的常见方案有3种:
1.主从(Master/Slave)模式;
2.哨兵(Sentinel)模式;
3.集群(Cluster)模式
redis集群切片的常见方式有:
1.客户端实现分片。分区逻辑在客户端实现,客户端采用一致性哈希决定redis节点。
2.中间件实现分片。在应用软件和redis中间,例如Twemproxy、Codis等,由中间件实现服务到后台redis节点的路由分派。
3.客户端服务端协作分片。redis cluster模式,客户端采用一致性哈希,服务端提供错误节点的重定向服务。
三、设计模式
(1)设计模式按照其应用模式可以分为三类:创建型、结构型和行为型,请用200字以内说明三者的作用。
创建型模式主要用于创建对象,为设计类实例化新对象提供指南。
结构型模式主要用于处理类或对象的组合,对类如何设计以形成更大的结构提供指南。
行为型模式主要用于描述类或对象的交互以及职责的分配,对类之间交互以及分配责任的方式提供指南。
(2)什么是策略模式?策略模式的使用场景以及优缺点?
策略模式:定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化; 使用的关键点是面向对象、面向接口编程。
意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。
主要解决:在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护。
何时使用:一个系统有许多许多类,而区分它们的只是他们直接的行为。
如何解决:将这些算法封装成一个一个的类,任意地替换。
关键代码:实现同一个接口。
应用实例:
1、诸葛亮的锦囊妙计,每一个锦囊就是一个策略。
2、 旅行的出游方式,选择骑自行车、坐汽车,每一种旅行方式都是一个策略。
3、 JAVA AWT 中的 LayoutManager。
优点:
1、算法可以自由切换。
2、避免使用多重条件判断。
3、扩展性良好。
缺点:
1、策略类会增多。
2、所有策略类都需要对外暴露。
使用场景:
1、如果在一个系统里面有许多类,它们之间的区别仅在于它们的行为,那么使用策略模式可以动态地让一个对象在许多行为中选择一种行为。
2、 一个系统需要动态地在几种算法中选择一种。
3、 如果一个对象有很多的行为,如果不用恰当的模式,这些行为就只好使用多重的条件选择语句来实现。
注意事项:如果一个系统的策略多于四个,就需要考虑使用混合模式,解决策略类膨胀的问题。
应用举例:
1、系统开辟积分商城,会员可以使用积分去兑换或购买合作伙伴的产品及服务。
解决办法:使用策略模式
在具有公共接口的独立类中定义每个计算。可以利用该模式创建各种促销类,他们从同一个超类继承。每个类都有相同名称的标准接口方法,用于根据会员等级计算将要折扣的金额总数。
在具有公共接口的独立类中定义每个计算。可以利用该模式创建各种促销类,他们从同一个超类继承。每个类都有相同名称的标准接口方法,用于根据订单编号计算将要折扣的金额总数。计算每个促销的内部代码对促销来说完全不同。
(3)什么是适配器模式?适配器模式的优点和缺点?
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。
这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。
我们通过下面的实例来演示适配器模式的使用。其中,音频播放器设备只能播放 mp3 文件,通过使用一个更高级的音频播放器来播放 vlc 和 mp4 文件。
意图:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
主要解决:主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。
何时使用:
1、系统需要使用现有的类,而此类的接口不符合系统的需要。
2、想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作,这些源类不一定有一致的接口。
3、通过接口转换,将一个类插入另一个类系中。(比如老虎和飞禽,现在多了一个飞虎,在不增加实体的需求下,增加一个适配器,在里面包容一个虎对象,实现飞的接口。)
如何解决:继承或依赖(推荐)。
关键代码:适配器继承或依赖已有的对象,实现想要的目标接口。
应用实例:
1、美国电器 110V,中国 220V,就要有一个适配器将 110V 转化为 220V。
2、 JAVA JDK 1.1 提供了 Enumeration 接口,而在 1.2 中提供了 Iterator 接口,想要使用 1.2 的 JDK,则要将以前系统的 Enumeration 接口转化为 Iterator 接口,这时就需要适配器模式。
3、在 LINUX 上运行 WINDOWS 程序。
4、 JAVA 中的 jdbc。
优点:
1、可以让任何两个没有关联的类一起运行。
2、提高了类的复用。
3、增加了类的透明度。
4、灵活性好。
缺点:
1、过多地使用适配器,会让系统非常零乱,不易整体进行把握。比如,明明看到调用的是 A 接口,其实内部被适配成了 B 接口的实现,一个系统如果太多出现这种情况,无异于一场灾难。因此如果不是很有必要,可以不使用适配器,而是直接对系统进行重构。
2、 由于 JAVA 至多继承一个类,所以至多只能适配一个适配者类,而且目标类必须是抽象类。
使用场景:有动机地修改一个正常运行的系统的接口,这时应该考虑使用适配器模式。
应用举例:
1、每个合作伙伴的类提供了不同的调用方法,系统设计中需要考虑如果公司更换了合作伙伴,应该尽可能少地在系统中修改或创建新类。
适配器模式
解决方案:增加一个类作为适配器,转换类的接口到客户端类期望的另一个接口。实现一个适配器类,这个类为系统的其他部分提供了一个不变的方法供调用,为了集成不同商品供应商提供的优惠计算类,编写一个适配器类的子类,包含调用购买类所需的代码。该子类将系统的调用映射到某个供应商的优惠计算类。如果要更换供应商,那么只需要写一个新的适配器子类,其他保持不变。
(4)工厂设计模式
1.应用程序设计中,数据库访问需要良好的封装性和可维护性,因此经常使用工厂设计模式来实现对数据库访问的封装。请解释工厂设计模式,并说明其优点和应用场景;请解释说明工厂模式在数据库访问层中的应用。
工厂设计模式定义了创建对象的接口,允许子类决定实例化哪个类,而且允许请求者无须知道要被实例化的特定类,这样可以在不修改代码的情况下引入新类。
优点:(1)没有了将应用程序类绑定到代码中的要求,可以使用任何实现了接口的类;(2)允许子类提供对象的扩展版本。
应用场景:(1)类不能预料到它必须创建的对象的类;(2)类希望其子类指定它要创建的对象。
在数据访问层定义采用工厂设计模式,定义统一的操作数据库的接口,然后根据数据库的不同,由类工厂来决定实例化哪个类。在具体类中实现特定的数据库访问类。这样,就可以实现由客户端指定或根据配置文件来选择访问不同的数据库,从而实现应用程序与数据库无关。
常用的对称加密算法包括DES、RC-5、IDEA,RSA属于非对称加密
数字签名的主要功能是:保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。
TCP/IP在多个层次中引入了安全机制,其中TLS协议位于传输层。
TLS (Transport Layer Security Protocol)
采用关系型数据库可能带来的问题:
1.用户执行读写操作时,响应时间均变得很慢;
2.随着系统功能的扩充,原有数据格式发生变化,又出现新的数据格式,维护困难;
3.数据容量很快超过系统原有的设计上限,数据库扩容困难;
4.软件系统不断出现宕机,整个系统可用性较差。
产生的主要原因:
1.用户响应时间慢。大型网络系统要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强可以,但是应对上万次SQL写数据请求,磁盘I/O就已经无法承受了。特别是涉及到多表连接操作,会导致响应变慢。
2.数据格式变化。大型社交网络系统随着用户的使用,会不断地增加新的功能,导致原有数据格式发生变化,甚至出现新的数据格式。但关系数据库中采用元组方式组织数据,难以使用新型数据格式,难以维护。
3.数据容量超过上限。对于大型社交网络系统,往往会在很短的时间内产生海量数据。关系数据库多采用中央数据存储,使得数据容量受限于前期设计的上限,很难实现数据容量的横向扩展。
4.系统可用性差。关系数据库采用中央数据存储,容易成为系统的性能瓶颈,单点故障很容易导致系统奔溃,负载过高往往导致系统出现宕机现象。
采用NoSQL数据库的原因:
NoSQL数据库支持高并发数据访问,性能较高;
NoSQL数据库的数据存储结构松散,能够灵活支持多种类型的数据格式;
NoSQL数据库能够支撑海量数据的存储,且易于横向扩展。
NoSQL数据库基于分布式数据存储,不存在单点故障和性能瓶颈,系统可用性高。
采用NoSQL数据库可能存在的问题:
1.NoSQL数据库现有产品不够成熟,大多数产品处于初创期;
2.NoSQL数据库并未形成一定的标准,产品种类繁多,缺乏官方支持;
3.NoSQL数据库不提供对SQL的支持,学习和应用迁移成本较高;
4.NoSQL数据库支持的特性不够丰富,现有产品提供的功能比较有限。
四、软件架构评估
1.在架构评估过程中,质量属性效用树是对系统质量属性进行识别和优先级排序的重要工具。效用树主要关注性能、可修改性、可用性和安全4个方面。
2.请用300字以内的文字给出系统架构风险、敏感点和权衡点的定义。
系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。
敏感点是为了实现某种特定质量属性,一个或多个系统组件所具有的特性。
权衡点是影响多个质量属性,并对多个质量属性来说都是敏感点的系统属性。
3.用例之间的三种关系?
用例之间主要有包含、扩展、泛化三种关系。
(1)包含关系。当可以从两个或两个以上的用例当中提取公共行为时,应该可以使用包含关系来表示他们。
(2)扩展关系。如果一个用例明显地混合了两种或者两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,这样可能会使描述更加清晰。
(3)泛化关系。当多个用例共同拥有一种类似的结构和行为时,可以将他们的共性抽象成为父用例,其他的用例作为泛化关系的子用例。
五、系统架构设计
1.决定系统架构设计的非功能性需求主要有四类:操作性需求、性能需求、安全性需求和文化需求。请简要说明四类需求的含义。
操作性需求:指系统完成任务所需的操作环境要求及如何满足系统将来可能的需求变更的要求。(技术环境需求、系统集成需求、可移植性需求、维护性需求)
性能需求:针对系统性能要求的指标,如吞吐率、响应时间和容量等。(速度需求、容量需求、可信需求)
安全性需求:指为防止系统奔溃和保证数据安全所需要采取的保护措施的要求,为系统提供合理的预防措施。(系统价值需求、访问控制需求、加密/认证需求、病毒控制需求)
文化需求:指使用本系统的不同用户群体对系统提出的特有要求。(多语言需求、个性化定制需求、规范性描述需求、法律需求)
2.请从多应用支持、基础服务支持以及可扩展性这三个方面对webx与springmvc框架进行对比?
(1)基础服务支持:因为webx在阿里巴巴和淘宝使用了很多年,对于超大访问量的电子商务网站,webx经受了考验,被证明是成熟可靠的。
(2)多应用支持:webx和springmvc一样,完全建立在spring框架之上,可以使用spring的所有特性。webx被设计成多个层次,层次间的分界线很清晰,每个层次都足够开放和易于扩展。
(3)可扩展性:webx对spring做了扩展,一个组件可以扩展另一个组件,也可以被其他组件扩展。这种机制使webx具有较好的扩展性。且比未经扩展的spring更易使用。
3.结合你的经验,请列举出4条SQL语句优化的基本策略。
(1)建立物化视图或尽可能减少多表查询。
(2)以不相干子查询替代相干子查询。
(3)只检索需要的列。
(4)用带in的条件子句等价替换or子句。
(5)经常提交commit,以尽早释放锁。
(6)避免嵌套的游标(Cursor)和多重循环等。
4.索引调整需要考虑的原则?
(1)如果更新操作成为系统瓶颈(因为每次更新操作会重建表的索引),则需要考虑删除某些索引。
(2)应该针对不同应用情况选择适当的索引类型。例如,如果经常使用范围查询,则B树索引比散列索引更加高效。
(3)将有利于大多数据查询和更新的索引设为聚类(Cluster)索引。
同时需要对建立的索引进行实际的测试,因为索引的使用是由数据库管理系统(数据库优化器)决定的。如果建立索引不当,数据库管理系统将不利用已经建立的索引,而采取全表扫描。
5.结合你的系统架构经验,请用400字以内的文字简要讨论C/S和B/S两种架构风格各自的优点和缺点。
C/S架构风格的优点:
(1)客户机应用程序和服务器程序分离,二者的开发既可以分开进行,也可以同时进行;
(2)技术成熟,允许网络分布操作,交互性强,具有安全的存取模式;
(3)网络压力小,响应速度快,有利于处理大量数据;
(4)模型思想简单,易于人们理解和接受等。
C/S架构风格的缺点:
(1)客户机与服务器的通信依赖于网络,服务器的负荷过重;
(2)无法实现快速部署和安装,维护工作量大,升级困难;
(3)开发成本较高,客户端程序设计复杂,灵活性差;
(4)用户界面风格不一,软件移植性和数据集成困难;
(5)数据库的安全性因客户机程序直接访问而降低等。
B/S架构风格的优点:
(1)易于部署、维护和升级;
(2)具有良好的开放性和可扩充性,可以应用在广域网上,方便了信息的全球传输、查询和发布;
(3)可跨平台操作,无需开发客户端软件;
(4)通过JDBC等数据库连接接口,提高了动态交互性、服务器的通用性与可移植性等。
B/S架构风格的缺点:
(1)数据的动态交互性不强,不利于在线事务处理(OLTP)应用;
(2)数据查询等响应速度较慢;
(3)系统的安全性较难以控制等。
6.简要说明基于DSSA的软件设计开发主要包含哪些阶段以及每个阶段的目标。
领域分析:获得领域模型。领域模型描述领域中系统之间共同的需求,即领域需求。
领域设计:获得特定领域软件架构。DSSA描述领域模型中表示需求的解决方案。
领域实现:依据领域模型和DSSA开发和组织可重用信息,并对基础软件架构进行实现。
7.My SQL 数据库中,主从复制是通过binary log来实现主从服务器的数据同步。请简述主从复制的过程。
当在从库上启动复制时,首先创建I/O线程连接主库,主库随后创建Binlog Dump线程读取数据库事件并发送给I/O线程,I/O线程获取到事件数据库后更新到从库的中继日志Relay Log中去,之后从库上的SQL线程读取中继日志Relay Log中更新的数据库事件并应用。
8.主从复制可以采用同步、异步、半同步复制。请简述每种复制技术的特点。
(1)同步复制:主数据库需要等待所有备数据库均操作成功才可以响应用户,影响用户体验。这种方式保证了系统的一致性,但牺牲了数据的可用性。
(2)异步复制:当用户请求更新数据时,主数据库处理完请求后可直接给用户响应,而不必等待备数据库完成同步,备数据库会异步进行数据的同步,用户的更新操作不会因为备数据库未完成数据同步而导致阻塞。这种方式保证了系统的可用性,但牺牲了数据的一致性。
(3)半同步复制:用户发出写请求后,主数据库会执行写操作,并给备数据库发送同步请求,但主数据库不用等待所有备数据库回复数据同步成功便可响应用户,也就是说主数据库可以等待一部分备数据库同步完成后响应用户写操作执行成功。
9.流程图和数据流图是软件系统分析设计中常用的两种手段,请用300字以内文字简要说明流程图与数据流图的含义及其区别,并说明项目组为何确定采用数据流图作为建模手段。
数据流图作为一种图形化工具,用来说明业务处理过程、系统边界内所包含的功能和系统中的数据流。
流程图以图形化的方式展示应用程序从数据输入开始到获得输出为止的逻辑过程,描述处理过程的控制流。
两者的区别主要包括:
(1)数据流图中的处理过程可并行;流程图在某个时间点只能处于一个处理过程。
(2)数据流图展现系统的数据流;流程图展现系统的控制流。
(3)数据流图展现全局的处理过程,过程之间遵循不同的计时标准;流程图中处理过程遵循一致的计时标准。
(4)数据流图适用于系统分析中的逻辑建模阶段;流程图适用于系统设计中的物理建模阶段。
高质量数据流图设计时应考虑的三个原则:
(1)复杂性最小化原则:DFD分层结构就是把信息划分为小的且相对独立的一大批子集例子,这样就可以单独考查每个DFD。如果要了解某个过程更加详细的信息,可以跳转到该过程的下一层;如果要知道一个DFD如何与其他DFD相关联,可以跳转到上一层DFD进行考查。
(2)接口最小化原则:是复杂性最小化的一种具体规则,在设计模型时,应使得模型中各个元素之间的接口或连接数最小化。
(3)数据流一致性原则:一个过程和它的分解在数据流内容中是否有差别?是否存在有数据流出但没有相应的数据流入的加工?是否存在有数据流入但没有相应的数据流出的加工?
为什么数据流图要分层?画分层的DFD要遵循哪些原则?
分层的目的:便于逐步细化、结构清晰。
画分层的DFD要遵循哪些原则:
(1)父图与子图之间数据要平衡。
(2)分解的深度和层次达到使加工足够简单、易于理解的基本加工为止。
(3)区分局部文件和局部外部项(局限于数据流中某一层或某几层的文件和外部项)。
(4)不要把控制流作为数据流。
(5)忽略琐碎的枝节。
(6)每个数据流要有一个合适的名字,尽量使用现实系统中有具体意义的名字。
10.分析比较两种集成方案的优点和不足
拟采取的集成方法:涉及不同的集成层次,集成方法复杂多样
将现有系统看成是抽象的服务的提供者,集成方法统一明确。
对企业集成需求的符合程度:不同层次的集成方法关注点不同,功能点组合方面能力较弱
强调功能的暴露与服务的组合,便于提供增值服务
集成系统体系结构:一般为中心辐射性,系统间的耦合程度较高
基于总线结构的体系结构,系统的耦合度低
集成系统的可扩展性:遗产系统集成方法多样,系统耦合性高,可扩展性较差
集成系统具有模块化、松耦合的特点,可扩展性强
11.企业数据的分布性和异构性是应用系统方便访问企业数据和在企业数据之上提供增值服务的主要障碍。基于SOA的企业集成通过信息服务提供集成数据的能力,针对该企业的集成实际情况,请用300字以内的文字列举3种基于SOA的企业集成中的“数据整合-信息服务”,并给出简要说明。
(1)联邦服务:提供将各种类型的数据聚合的能力,它既支持关系型数据,也支持XML数据、文本数据和内容数据等非关系型数据。同时,所有的数据仍然按照自己本身的方式管理。
(2)复制服务:提供远程数据的本地访问能力,它通过自动的实时复制和数据转换,在本地维护一个数据源的副本。本地数据和数据源在技术实现上是可以独立的。
(3)转换服务:用于数据源格式到目标格式的转换,可以是批量的或者是基于记录的。
(4)搜索服务:提供对企业数据的查询和检索服务,既支持数据库等结构化数据,也支持如PDF等非结构上数据。
12.结合你的系统架构涉及经验,请用300字以内的文字简要说明FT公司项目组在对该企业构建SOA架构时,除了注意原有系统架构中的集成需求之外,还需要在服务构建时重点关注哪些问题。
当基于SOA来构建一个企业级的系统架构时,一定要注意对原有系统架构中的集成需求进行细致的分析和整理。而关于系统中最重要的元素,也就是SOA系统中服务的构建有两点需要特别注意的地方:1.是对于服务粒度的控制,2是对于无状态服务的设计。
13.某软件企业为影音产品销售公司W开发一套在线销售系统,以提升服务的质量和效率。项目组经过讨论后决定釆用面向对象方法开发该系统。在设计建模阶段需要满足以下设计要求:
(1) W公司经常进行促销活动。根据不同的条件(如订单总额、商品数量、产品种类等),公司可以提供百分比折扣或现金减免等多种促销方式供提交订单的用户选择。实现每种促销活动的代码量很大,且会随促销策略不同经常修改。系统设计中需要考虑现有的促销和新的促销,而不用经常地重写控制器类代码。
(2) 该在线销售系统需要计算每个订单的税率,不同商品的税率及计算方式会有所区别。所以W公司决定在系统中直接调用不同商品供应商提供的税率计算类,但每个供应商的类提供了不同的调用方法。系统设计中需要考虑如果公司更换了供应商,应该尽可能少地在系统中修改或创建新类。
项目组架构师决定采用设计模式来满足上述设计要求,并确定从当前已经熟练掌握的设计模式中进行选择,这些设计模式包括:适配器模式(Adapter)、构造器模式(Builder)、命令模式(Command)、外观模式(Facade)、中介模式(Mediator)、原型模 式(Prototype)、代理模式(Proxy)、状态模式(State)和策略模式(Strategy)等。
问题:4.1 设计模式按照其应用模式可以分为三类:创建型、结构型和行为型,请用200字以内文字说明三者的作用。
问题:4.2 请将项目组已经掌握的设计模式按照其作用分别归类到创建型、结构型和行为型模式中。
问题:4.3 针对题目中所提出的设计要求(1)和(2),项目组应该分别选择何种设计模式? 请分别用200字以内文字说明具体的解决方案。
策略模式
在具有公共接口的独立类中定义每个计算。可以利用该模式创建各种促销类,他们从同一个超类继承。每个类都有相同名称的标准接口方法,用于根据订单编号计算将要折扣的金额总数。计算每个促销的内部代码对促销来说完全不同。
适配器模式
解决方案:增加一个类作为适配器,转换类的接口到客户端类期望的另一个接口。实现一个适配器类,这个类为系统的其他部分提供了一个不变的方法供调用,为了集成不同商品供应商提供的税率计算类,编写一个适配器类的子类,包含调用购买类所需的代码。该子类将系统的调用映射到某个供应商的税率计算类。如果要更换供应商,那么只需要写一个新的适配器子类,其他保持不变。
14.中国著作权法中对公民作品的发表权的保护期限是作者有生之年加死亡后50年。
15.分布透明性指用户不必关心数据的逻辑分片,不必关心数据存储的物理位置分配细节,也不必关心局部场地上数据库的数据模型。(分片透明性)是分布透明性的最高层次。(位置透明性)指用户或应用程序应当了解分片情况,但不必了解片段的存储场地。(逻辑)透明性是指用户或应用程序应当了解分片及各片断存储的场地,但不必了解局部场地上使用的是何种数据类型。
16.用户界面设计的原则包括置用户于控制之下、减少用户的记忆负担、保持界面的一致。
17.系统的硬件环境、软件环境和数据环境发生变化时需要对系统进行维护,这种维护属于适应性维护(为适应软件运行环境改变而做的改变)。
18.对于开发模型来说,喷泉模型复用好、开发过程无间隙、节省时间。螺旋模型是瀑布与原型模型结合体,适用于复杂项目。RAD模型需要用户参与,模块化要求高,不适用新技术。RUP模型是用例驱动、架构为中心、迭代、增量。
19.在面向对象分析中,利用用例与用例图表示需求,并从中提炼出领域模型,以上两者形成类图,之后再进行后续的开发工作。
20.中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,应用程序之下。管理计算资源和网络通信。
21.什么是SQL注入攻击?列举抵御SQL注入攻击的方式?
SQL注入攻击,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
抵御sql注入攻击:
1.使用PreparedStatement
2.使用存储过程
3.验证输入/过滤输入
4.专业的安全产品
22.结构化方法的开发过程一般是先把系统功能视为一个大的模块,再根据系统分析与设计的要求对其进行进一步的模块分解或组合。OMT方法使用了建模的思想,讨论如何建立一个实际的应用模型,包括对象模型、动态模型和功能模型。对象模型描述系统中对象的静态结构、对象之间的关系、属性和操作,主要用对象图来实现;动态模型描述与时间和操作顺序有关的系统特征,例如,激发事件、事件序列、确定事件先后关系的状态等,主要用状态图来实现动态模型;功能模型描述一个计算如何从输入值得到输出值,它不考虑计算的次序,主要用DFD来实现功能模型。
23.假如有3块容量是80G的硬盘做RAID 5阵列,则这个RAID 5的容量是( );而如果有2块80G的盘和1块40G的盘,此时RAID 5的容量是( )
第1题:
RAID 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。这种方案中数据信息与校验信息的配比是N+1方案,即N份数据,1份校验信息,所以用3块容量为80G的硬盘实际数据容量为160G。
第2题:
当用3盘不同容量的盘做RAID 5时,会以最小容量的盘为准,所以2块80G和1块40G的盘视为3块40G的盘,所以容量为80G。RAID 5 磁盘容量=单个硬盘*(N-1),其中N>=3.本题中3个80G硬盘,则RAID 5 磁盘容量=80G*(3-1)=160G.
24.在中断时,CPU断点信息一般保存到栈中。
25.为实现程序指令的顺序执行,CPU程序计算器(PC)中的值将自动加1.
26.计算机系统中,相联存取方式是根据所访问的内容来决定要访问的存储单元,常用在(Cache)存储器中。
27.软件方法学是以软件开发方法为研究对象的学科。其中,( 自顶向下开发方法 )是先对最高层次中的问题进行定义、设计、编程和测试,而将其中未解决的问题作为一个子任务放到下一层次中去解决。( 自底向上开发方法 )是根据系统功能要求,从具体的器件、逻辑部件或者相似系统开始,通过对其进行相互连接、修改和扩大,构成所要求的系统。( 形式化开发方法)是建立在严格数学基础上的软件开发方法。
28.计算机系统的主存主要是由DRAM构成的。
DRAM:动态随机存取存储器
SRAM:静态随机存取存储器
CACHE:高速缓存
EEPROM:可擦可编程只读存储器
29.在仓库风格中,有两种不同的构件,其中,中央数据结构说明当前状态,独立构件在中央数据存储上执行。
30.嵌入式实时操作系统与一般操作系统相比,具备许多特点。以下不属于嵌入式实时操作系统特点的是()。
问题1选项
A.可剪裁性
B.实时性
C.通用性
D.可固化性
嵌入式实时操作系统兼具嵌入式操作系统的特点和实时操作系统的特点。
嵌入式操作系统主要有以下特点:
(1)微型化 (2)代码质量高 (3)专业化 (4)实时性强(5)可裁减、可配置。
实时操作系统的最核心特点是实时性强。
C选项的通用性与嵌入式操作系统相背,所以不属于嵌入式实时操作系统的特点。
31.假设系统中互斥资源R的可用数为25。T0时刻进程P1、P2、P3、P4对资源R的最大需求数、已分配资源数和尚需资源数的情况如表a所示,若P1和P3分别申请资源R数为1和2,则系统( )。
表a T0时刻进程对资源的需求情况
问题1选项
A.只能先给P1进行分配,因为分配后系统状态是安全的
B.只能先给P3进行分配,因为分配后系统状态是安全的
C.可以同时给P1、P3进行分配,因为分配后系统状态是安全的
D.不能给P3进行分配,因为分配后系统状态是不安全的
由于系统中一共有25个可用资源,分别给P1-P4分配了:6、4、7、6个资源,所以目前系统剩余资源数为:25-6-4-7-6=2。此时,若给P1分配1个资源,则P1还需要3个资源,系统只余下1个资源。这1个资源分配给任何一个进程都无法满足进程的总资源需求量,从而导致系统进入死锁状态,这是不安全的系统状态。但若给P3分配2个资源,能满足P3的全部资源需求,P3执行完之后,将释放9个资源,此时执行P1、P2、P4中的任意一个均是安全状态,所以这种分配方式才是安全合理的。
某企业开发信息管理系统平台进行E-R图设计,人力部门定义的是员工实体具有属性:员工号、姓名、性别、出生日期、联系方式和部门,培训部门定义的培训师实体具有属性:培训师号、姓名和职称,其中职称={初级培训师,中级培训师,高级培训师},这种情况属于( )。在合并E-R图时,解决这一冲突的方法是( )。
问题1选项
A.属性冲突
B.结构冲突
C.命名冲突
D.实体冲突
问题2选项
A.员工实体和培训师实体均保持不变
B.保留员工实体,删除培训师实体
C.员工实体中加入职称属性,剔除培训师实体
D.将培训师实体所有属性并入员工实体,删除培训师实体
ER图集成时产生的冲突及解决办法:
属性冲突:包括属性域冲突和属性取值冲突。
命名冲突:包括同名异义和异名同义。
结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同。
本题中,培训师属于员工的一种,所以不应该抽象为两个不同实体,这个冲突属于结构冲突,解决方案是员工实体中加入职称属性,剔除培训师实体。
33.基于架构的软件设计方法是架构驱动的方法,该方法是一个自顶向下的方法,软件系统的架构通过该方法得到细化,直到能产生软件构件和类。
34.计算机系统中主机与外设间的输入输出控制方式有多种,其中占用主机CPU时间最多的是程序查询方式。
35.一般说来,SoC称为系统级芯片,也称片上系统,它是一个有专用目标的集成电路产品:以下关于SoC不正确的说法是(B)。
A.SoC是一种技术,是以实际的、确定的系统功能开始,到软/硬件划分,并完成设计的整个过程
B.SoC是一款具有运算能力的处理器芯片,可面向特定用途进行定制的标准产品
C.SoC是信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上,完成信息系统的核心功能
D.SoC是将微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上,是面向特定用途的标准产品
36.若系统正在将系统目录文件修改的结果写回磁盘时系统发生掉电、则对系统影响相对较大。
38.采用三级模式结构的数据库系统中,如果对一个表创建聚索引,那么改变的是数据库的内模式。
39.电子邮件客户端通过发起对SMTP服务器的25端口的TCP连接来进行邮件发送。
POP3,邮件接收协议,缺省端口110,
SMTP,邮件发送协议,缺省端口25,
HTTP,超文本传输协议,缺省端口80,
IMAP,交互式邮件存取协议,缺省端口143
40.数据资产的特征包括:可增值、可共享、可控制、可量化
虚拟性、时效性、安全性、交换性和规模性
41.数据管理能力成熟度评估模型(DCMM)是我国首个数据管理领域的国家标准,DCMM提出了符合我国企业的数据管理框架,该框架将组织数据管理能力划分为8个能力域,分别为:数据战略、数据治理、数据架构、数据标准、数据质量、数据安全、数据应用和数据生存周期。
40.完整的信息安全系统至少包含三类措施,即技术方面的安全措施、管理方面的安全措施和相应的政策法律。其中,信息安全的技术措施主要有:信息加密、数字签名、身份鉴别、访问控制、网络控制技术、反病毒技术、数据备份和灾难恢复。
41.与瀑布模型相比,增量式开发降低了实现需求变更的成本,更容易得到客户对于已完成开发工作的反馈意见,并且客户可以更早地使用软件并从中获得价值。
42.CMMI是软件企业进行多方面能力评价的、集成的成熟度模型,软件企业在实施过程中,为了达到本地化,应组织体系编写组,建立基于CMMI的软件质量管理体系文件,体系文件的层次结构一般分为四层,包括1顶层方针2模板类文件3过程文件4规程文件 按照自顶向下的塔型排列,以下顺序正确的是1342
43.信息建模方法是从数据的角度对现实世界建立模型,模型是现实系统的一个抽象,信息建模方法的基本工具是实体联系图。
44.在分布式系统中,中间件通常提供两种不同类型的支持,即交互支持和提供公共服务。
45.工作流表示的是业务过程模型,通常使用图形形式来描述,以下不可用来描述工作流的是用例图。
活动图可以用于描述系统的工作流程和并发行为,活动图其实可看作状态图的特殊形式,活动图中一个活动结束后将立即进入下一个活动。BPMN(Business Process Modeling Notation)指业务流程建模与标注,包括这些图元如何组合成一个业务流程图(Business Process Diagram)。Petri-Net 是所有流程定义语言之母。
46.软件配置管理工具的常见功能包括版本控制、变更管理、配置状态管理、访问控制和安全控制。
47.在UML2.0中,顺序图用来描述对象之间的消息交互,其中循环、选择等复杂交互使用序列片段表示,对象之间的消息类型包括同步消息、异步消息、返回消息、参与者创建消息、参与者销毁消息。
48.以下有关构件特征的描述,说法不正确的是D
A.构件是独立的部署单元
B.构件可作为第三方的组装单元
C.构件没有外部的可见状态
D.构件作为部署单元是可拆分的
解析:构件作为部署单元,具有原子性,是不可拆分的
49.在构件的定义中,接口是一个已命名的一组操作的集合。
50.在服务端构件模型的典型解决方案中,EJB和COM+模型较为适用于应用服务器。
51.在白盒测试中,测试强度最高的是D
A.语句覆盖
B.分支覆盖
C.判定覆盖
D.路径覆盖
52.在黑盒测试中,判定表方法最适合描述在多个逻辑条件取值组合所构成的复杂情况下,分别要执行哪些不同的动作。
53.回归测试的目的是测试软件变更之后,变更部分的正确性和对变更需求的符合性,以及软件原有的、正确的功能、性能和其他规定的要求的不损害性。
54.基于体系结构的软件设计(Architecture-Based Software Design.ABSD)方法是体系结构驱动,是指构成体系结构的(商业、质量和功能需求)的组合驱动。ABSD方法是一个自顶向下、递归细化的方法,软件系统的体系结构通过该方法得到细化,直到能产生(软件构件和类)。
55.软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。其中,在批处理风格软件体系结构中,每个处理步骤是一个单独的程序,每一步必须在前一步结束后才能开始,并且数据必须是完整的,以(整体)的方式传递,基于规则的系统包括规则集、规则解释器、规则/数据选择器及(工作内存)。
56.软件系统质量属性(Quality Attribute)是一个系统的可测量或者可测试的属性,它被用来描述系统满足利益相关者需求的程度,其中,(可修改性)关注的是当需要修改缺陷、增加功能、提高质量属性时,定位修改点并实施修改的难易程度,(可伸缩性)关注的是当用户数和数据量增加时,软件系统维持高服务质量的能力。
57.为了精确描述软件系统的质量属性,通常采用质量属性场景(Quality Attribute Scenario)作为描述质量属性的手段。质量属性场景是一个具体的质量属性需求,是利益相关者与系统的交互的简短陈述,它由刺激源、刺激、环境、制品、(响应和响应度量)六部分组成。其中,想要学习系统特性、有效使用系统、使错误的影响最低、适配系统、对系统满意属于(易用性)质量属性场景的刺激。
58.效用树是采用架构权衡分析方法(Architecture Tradeoff Analysis Mehtod,ATAM)进行架构评估的工具之一,其树形结构从根部到叶子节点依次为(树根、质量属性、属性分类、质量属性场景)。
59.5G网络采用网络切片技术可将5G网络分割成多张虚拟网络,每个虚拟网络的接入,传输和核心网是逻辑独立的,任何一个虚拟网络发生故障都不会影响到其它虚拟网络。在一个网络切片中,至少可分为无线网子切片、承载网子切片和核心网子切片三部分。
60.项目时间管理中的过程包括(活动定义、活动排序、活动的资源估算、活动历时估算、制定计划和进度控制)。
61.数据库系统运行的基本工作单位是事务,事务相当于操作系统中的进程,是用户定义的一个数据库操作序列,这些操作序列要么全做要么全不做,是一个不可分割的工作单位。数据库的(原子性)是指操作序列要么全做要么全不做。设计时用(影子拷贝)实现。数据库从一个一致性状态变到另一个一致性状态的性质称为(一致性)。设计时用(完整性约束)检查实现。
62.数据仓库包括数据源、数据的存储与管理、OLAP服务器与各种报表工具、查询工具、数据分析工具、数据挖掘工具及各种基于数据仓库或数据集市的应用开发工具。其中数据分析工具主要针对OLAP服务器,报表工具、数据挖掘工具主要针对数据仓库。(OLTP是传统的关系型数据库联机事务处理过程)
63.数据仓库中的(集成性)消除了源数据中的不一致性,提供了整个企业的一致性全局信息。
数据仓库4大特点:
面向主题:数据按主题组织。
集成的:消除了源数据中的不一致性,提供了整个企业的一致性全局信息。
相对稳定的(非易失的):主要进行查询操作,只有少量的修改和删除操作(或是不删除)。
反映历史变化(随着时间变化):记录了企业从过去某一时刻到当前各个阶段的信息,可对发展历程和未来趋势做定量分析和预测。
64.N版本程序设计是一种静态的故障屏蔽技术,采用前向恢复的策略。N版本程序的设计思想是用N个具有相同功能的程序同时执行一项计算,结果通过多数表决来选择。
65.(装饰器)设计模式能够动态地给一个对象添加一些额外地职责而无须修改此对象地结构;(工厂方法)设计模式定义一个用于创建对象的接口,让子类决定实例化哪一个类;欲使一个后端数据模型能够被多个前端用户界面连接,采用(中介者)模式最适合。
组合模式将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。适用于:想表示对象的部分-整体层次结构;希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。
外观模式为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。适用于:要为一个复杂子系统提供一个简单接口时,子系统往往因为不断演化而变得越来越复杂;客户程序与抽象类的实现部分之间存在着很大的依赖性;当需要构建一个层次结构的子系统时,使用Facade模式定义子系统中每层的入口点。
享元模式运用共享技术有效地支持大量细粒度的对象。适用于:一个应用程序使用了大量的对象;完全由于使用大量的对象,造成很大的存储开销;对象的大多数状态都可变为外部状态;如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象;应用程序不依赖于对象标识。
装饰器模式描述了以透明围栏来支持修饰的类和对象的关系,动态地给一个对象添加一些额外地职责,从增加功能的角度来看,装饰器模式相比生成子类更加灵活。适用于:在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;处理那些可以撤销的职责;当不能采用生成子类的方式进行扩充时。
观察者模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。适用于:当一个抽象模型有两个方面,其中一个方面依赖于另一个方面,将这两者封装在独立的对象中以使它们可以各自独立地改变和复用;当对一个对象地改变需要同时改变其他对象,而不知道具体有多少对象有待改变时;当一个对象必须通知其他对象,而它又不能假定其他对象是谁,即不希望这些对象是紧耦合的。
中介者用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间地交互。适用于:一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解;一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象;想定制一个分布在多个类中的行为,而又不想生成太多的子类。如使一个后端数据模型能够被多个前端用户界面连接,采用此模式最合适。
工厂方法定义一个创建对象的接口,让子类决定将哪一个类实例化,使一个类的实例化延迟到其子类。适用于:当一个类不知道它所必须创建的对象的类的时候;当一个类希望由它的子类来指定它所创建的对象的时候;当类将创建对象的职责委托给多个帮助子类中的某一个,并且希望将哪一个帮助子类是代理者这一信息局部化的时候。
命令模式可以将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,还可以对请求排队,或记录请求日志,以及支持可撤销的操作。
状态模式将每一个条件分支放入一个独立的类中,这样就可以根据对象自身的情况将对象的状态作为一个对象,这一对象可以不依赖于其他对象而独立变化。
策略模式定义一系列的算法,把它们封装起来,并且使它们可相互替换,使得算法可独立于使用它的客户而变化。
66.薛大龙博士是一名教师,性别男,身高180,主讲软考,擅长打五笔字型。该实例中类和对象的相关描述,正确的是();
薛大龙是对象,教师是类,性别身高是状态信息,讲课和打五笔字型是对象行为。
67.在数据库设计的需求分析阶段应当形成(需求说明文档、数据字典和数据流图),这些文档可以作为(概念结构设计)阶段的设计依据。
数据库设计主要分为用户需求分析、概念结构、逻辑结构和物理结构设计四个阶段。
68.以下关于嵌入式系统硬件抽象层的叙述,错误的是(D)。
A.硬件抽象层与硬件密切相关,可对操作系统隐藏硬件的对样性
B.硬件抽象层将操作系统与硬件平台隔开
C.硬件抽象层使软硬件的设计与调试可以并行
D.硬件抽象层应包括设备驱动程序和任务调度
69.(任务执行时间)不是反映嵌入式实时操作系统实时性的评价指标。
70.TCP采用可变大小的滑动窗口协议进行流量控制。在前向纠错系统中,当接收端检测到错误后就根据纠错编码的规律自行纠错;在后向纠错系统中,接收方会请求发送方重发出错分组。IP协议不预先建立虚电路,而是对每个数据报独立地选择路由并一站一站地进行转发,直到送达目标地。
71.以下关于域名服务器的叙述,错误的是(B)。
A.本地缓存域名服务不需要域名数据库
B.顶级域名服务器是最高层次的域名服务器
C.本地域名服务器可以采用递归查询和迭代查询两种查询方式
D.权限服务器负责将其管辖区内的主机域名转换为该主机的IP地址
本题考查域名服务器及相关技术。 可提供域名服务的包括本地缓存、本地域名服务器、权限域名服务器、顶级域名服务器以及根域名服务器。DNS主机名解析的查找顺序是,先查找客户端本地缓存,如果没有成功,则向DNS服务器发出解析请求。 本地缓存是内存中的一块区域,保存着最近被解析的主机名及其IP地址映像。由于解析程序缓存常驻内存中,所以比其他解析方法速度快。 当一个主机发出DNS查询报文时,这个查询报文就首先被送往该主机的本地域名服务器。本地域名服务器离用户较近,当所要查询的主机也属于同一个本地ISP时,该本地域名服务器立即就能将所查询的主机名转换为它的IP地址,而不需要再去询问其他的域名服务器。 每一个区都设置有域名服务器,即权限服务器,它负责将其管辖区内的主机域名转换为该主机的IP地址。在其上保存有所管辖区内的所有主机域名到职地址的映射。 顶级域名服务器负责管理在本顶级域名服务器上注册的所有二级域名。当收到DNS查询请求时,能够将其管辖的二级域名转换为该二级域名的IP地址。或者是下一步应该找寻的域名服务器的IP地址。 根域名服务器是最高层次的域名服务器。每一个根域名服务器都要存有所有顶级域名服务器的IP地址和域名。当一个本地域名服务器对一个域名无法解析时,就会直接找到根域名服务器,然后根域名服务器会告知它应该去找哪一个顶级域名服务器进行查询。
72.以下关于网络存储的叙述,正确的是()。
A. DAS支持完全跨平台文件共享,支持所有的操作系统
B. NAS通过SCSI连接至服务器,通过服务器网卡在网络上传输数据
C. FC SAN的网络介质为光纤通道,而IP SAN使用标准的以太网
D. SAN设备有自己的文件管理系统,NAS中的存储设备没有文件管理系统
试题答案:C
73.在uml图中,(类图)展现了一组对象、接口、协作和它们之间的关系。(定时图)强调消息跨越不同对象或参与者的实际时间,而不仅仅只是关心消息的相对顺序。(部署图)软件和硬件之间的物理关系以及处理节点的组件分布情况。(包图)描述由模型本身分解而成的组织单元,以及它们之间的依赖关系。
74.软件架构设计主要关注软件构件的结构、属性、交互作用,并通过多种视图全面描述特定系统的架构。
75.在软件设计中,(概要设计)的主要任务是将系统的功能需求分配给软件模块,确定每个模块的功能和调用关系,形成软件的系统结构图。而为每个具体任务选择适当的技术手段和处理方法的过程称为(详细设计)。
76.假如有3块80T的硬盘,采用RAID6的容量是(80T)。
RAID6的容量是(N-2)*最低容量=(3-2)*80T=80T
77.以下关于CPU的叙述中,错误的是()。
A.CPU产生每条指令的操作信号并将操作信号送往相应的部件进行控制
B.程序计数器PC除了存放指令地址,也可以临时存储算术/逻辑运算结果
C.CPU中的控制器决定计算机运行过程的自动化
D. 指令译码器是CPU控制器中的部件
CPU的功能主要包括程序控制、操作控制、时间控制和数据处理。CPU主要由运算器、控制器、寄存器组和内部总线等部件组成。CPU产生每条指令的操作信号并将操作信号送往相应的部件进行控制,因此说法A正确。 CPU中的控制器用于控制整个CPU的工作,它决定了计算机运行过程中的自动化,因此说法C正确。 程序计数器PC具有寄存信息和计数两种功能,又称为指令计数器。程序的执行分为两种情况,顺序执行和转移执行。在程序执行前,将程序的起始地址送入PC,该地址在程序加载到内存时确定,执行指令时,CPU将自动修改PC的内容,当指令按照顺序执行时,PC加1。如果是转移指令,后继指令的地址根据当前指令的地址加上一个向前或向后转移的位移量得到。因此PC没有临时存储算术/逻辑运算结果的功能。因此说法B错误。 CPU中的控制器包括指令寄存器(IR)、程序计数器(PC)、地址寄存器(AR)和指令译码器(ID)。因此说法D正确。 综上所述,答案为B。
80.以下关于CISC(Complex Instruction Set Computer,复杂指令集计算机)和RISC(Reduced Instruction Set Computer,精简指令集计算机)的叙述中,错误的是()
A. 在CISC中,复杂指令都采用硬布线逻辑来执行
B. 一般而言,采用CISC技术的CPU,其芯片设计复杂度更高
C. 在RISC中, 更适合采用硬布局逻辑执行指令
D. 采用RISC技术,指令系统中的指令种类和寻址方式更少。
CISC可以有效地减少编泽代码中指令的数目,使取指操作所需要的内存访问数量达到最小化。此外CISC可以简化编译器结构,它在处理器指令集中包含了类似于程序没计语言结构的复杂指令,这些复杂指令减少了程序设计语言和机器语言之间的语义差别,而且简化了编译器的结构。为了支持复杂指令集,CISC通常包括一个复杂的数据通路和一个微程序控制器。 RISC(reduced instruction set computer,精简指令集计算机)是一种执行较少类型计算机指令的微处理器,起源于80年代的MIPS主机 (即RISC机),RISC机中采用的微处理器统称RISC处理器。RISC微处理器不仅精简了指令系统,采用超标量和超流水线结构;它们的指令数目只有几十条,却大大增强了并行处理能力。由于RISC处理器指令简单、采用硬布线控制逻辑、处理能力强、速度快,世界上绝大部分UNIX工作站和服务器厂商均采用RISC芯片。
81.下面是关于CISC和RISC的叙述,其中错误的是()
A.CISC是指复杂指令集计算机。这类计算机的寻址方式多,指令格式复杂,不利于高速流水线作业B.8086/8088、80286和80386都是CISC类型的微处理器C.RISC是指精简指令集计算机。这类计算机的指令格式简洁,绝大多数指令长度相同,适合流水线作业D.Pentium微处理器是RISC类型的微处理器
在现代计算机系统中,根据CPU指令组设计的风格,把计算机区分为CISC和RISC两类:CISC计算机,即复杂指令组计算机,这类计算机的寻址方式多,指令格式复杂,如Intel公司的 80486、Pentium等微处理器都设计成为指令种类和数量繁多的结构,所以选项D是错误的;其他选项都是正确的描述,所以应该选择D。
82.逆向工程导出的信息可以分为实现级、结构级、功能级和领域级四个抽象层次。程序的抽象语法树属于______;反映程序分量之间相互依赖关系的信息属于______。 A.实现级B.结构级C.功能级D.领域级
逆向工程与重构工程是目前预防性维护采用的主要技术。所谓软件的逆向工程就是分析已有的程序,寻求比源代码更高级的抽象表现形式。一般认为,凡是在软件生命周期内将软件某种形式的描述转换成更为抽象形式的活动都可称为逆向工程。逆向工程导出的信息可以分为如下4个抽象层次。 ①实现级:包括程序的抽象语法树、符号表等信息。 ②结构级:包括反映程序分量之间相互依赖关系的信息,例如调用图、结构图等。 ③功能级:包括反映程序段功能及程序段之间关系的信息。 ④领域级:包括反映程序分量或程序诸实体与应用领域概念之间对应关系的信息。 显然,上述信息的抽象级别越高,它与代码的距离就越远,通过逆向工程恢复的难度亦越大,而自动工具支持的可能性相对变小,要求人参与判断和推理的工作增多。
83.逆向工程导出的信息分为4个抽象层次。使用用户指导下的搜索与变换(User-Directed Search and Transformation)方法可导出()信息。
A.实现级和功能级
B.实现级和结构级
C.功能级和领域级
D.结构级和领域级
逆向工程恢复信息的方法
用户指导下的搜索与变换方法 实现级、结构级
变换式方法(Transformation Approaches) 实现级、结构级、功能级
基于领域知识(Domain Knowledge-Based)的方法 功能级、领域级
铅板恢复法 实现级、结构级
84.特定领域软件架构是一个特定的问题领域中由领域模型、参考需求和参考架构等组成的开发基础架构。以下关于
DSSA所具备的特征描述中,错误的是()
A.对整个领域能有合适程度的抽象
B.具备该领域固定的、典型的在开发过程中的可重用元素
C.一个严格定义的问题域或解决域
D.具有易用性,使其可以用于领域中某个特定应用的开发
DSSA应具备以下4个方面的特征:
1.一个严格定义的问题域或解决域
2.具有普遍性,使其可以用于领域中某个特定应用的开发
3.具备该领域固定的、典型的在开发过程中的可重用元素
4.对整个领域能有合适程度的抽象
85.以下关于网络结构与拓扑构型设计方法的描述中,错误的是 (18) 。 A.核心层网络用于连接分布在不同位置的子网,实现路由汇聚等功能B.汇聚层根据接入层的用户流量,进行本地路由、安全控制、流量整形等处理C.接入层网络用于将终端用户计算机接入到网络之中D.核心层设备之间、核心层设备与汇聚层设备之间通常采用冗余链路的光纤连接
通常,大中型网络系统采用分层的设计思想,可以方便地分配与规划带宽,有利于均衡负荷,提高网络效率,是解决网络系统规模、结构和技术的复杂性的有效方法。大中型企业网、校园网或机关办公网基本上都采用3层网络结构。其中,核心层网络用于连接服务器集群、各建筑物子网交换路由器,以及与城域网连接的出口;汇聚层网络用于将分布在不同位置的子网连接到核心层网络,实现路由汇聚的功能;接入层网络用于将终端用户计算机接入到网络之中。 通常,核心层设备之间、核心层设备与汇聚层设备之间直接使用具有冗余链路的光纤连接;汇聚层设备与接入层设备之间、接入层设备与用户计算机之间可以视情况而选择价格低廉的非屏蔽双绞线(UTP)连接。
86.某服务器软件系统对可用性(Availability)、性能(Performance)和可修改性(Modification)的要求较高, (21) 设计策略能提高该系统的可用性, (22) 设计策略能够提高该系统的性能, (23) 设计策略能够提高该系统的可修改性。
不同策略主要针对一个或多个软件质量属性,其中Ping/Echo主要提高系统的可用性;限制访问主要提高系统的安全性;运行时注册主要提高系统的可修改性;接口.实现分离主要提高系统的可修改性;主动冗余提高系统的可靠性;队列调度主要提高系统的性能;信息隐藏主要提高系统的可修改性;记录.回放主要提高系统的可测试性,等等。
87.软件架构需求是指用户对目标软件系统在功能、行为、性能和设计约束等方面的期望。以下活动中,不属于软件架构需求过程中标识构件范畴的是______。 A.生成类图 B.对类图进行分组C.对类图进行测试 D.将类合并打包
软件架构需求过程主要是获取用户需求,标识系统中所要用到的构件,并进行架构需求评审。其中,标识构件又详细地分为生成类图、对类图进行分组和将类打包成构件3个步骤。
88.与SOA紧密相关的技术主要有UDDI、WSDL、SOAP和REST等,而这些技术都是以XML为基础而发展起来的。(UDDI)提供了一种服务发布、查找和定位的方法,是服务的信息注册规范,以便被需要该服务的用户发现和使用它。(WSDL)是对服务进行描述的语言,它有一套基于XML的语法定义,包含服务实现定义和服务接口定义。(SOAP)定义了服务请求者和服务提供者之间的消息传输规范。通过它,应用程序可以在网络中进行数据交互和远程过程调用(Remote Procedure Call,RPC)。
89.UML的事务是对模型中最具有代表性的成分的抽象,(结构事务)是模型的静态部分,描述概念或物理元素;(注释事务)用来描述、说明和标注模型的任何元素。UML用关系把事务结合在一起,(依赖关系)描述一个事务发生变化会影响另一个事务的语义;(泛化关系)描述特殊元素的对象可替换一般元素的对象。
90.常用对象加密算法不包括(RSA)
RSA属于非对称密钥体制
91.数字签名的功能不包括()
A.防止发送方和接收方的抵赖行为
B.发送方身份确认
C.接收方身份确认
D.保证数据的完整性
92.TCP/IP在多个层次中引入了安全机制,其中TLS协议位于(传输层)
93.下列安全协议中,()能保证交易双方无法抵赖。
A.SET
B.HTTPS
C.PGP
D.MOSS
94.紧耦合多机系统一般通过(共享内存)实现多机间的通信。对称多处理器结构(SMP)属于(紧耦合)系统。
95.软件架构设计包括提出架构模型、产生架构设计和进行设计评审等活动,是一个迭代的过程。以下关于软件架构设计活动的描述,错误的是______。 A.在建立软件架构的初期,一般需要选择一个合适的架构风格B.将架构分析阶段已标识的构件映射到架构中,并分析这些构件之间的关系C.软件架构设计活动将己标识构件集成到软件架构中,设计并实现这些构件D.一旦得到了详细的软件架构设计,需要邀请独立于系统开发的外部人员对系统进行评审
软件架构设计包括提出架构模型、产生架构设计和进行设计评审等活动,是一个迭代的过程,在建立软件架构的初期,一般需要选择一个合适的架构风格,将架构分析阶段已标识的构件映射到架构中,并分析这些构件之间的关系,一旦得到了详细的软件架构设计,需要邀请独立于系统开发的外部人员对系统进行评审。一般来说,软件架构设计活动将已标识构件集成到软件架构中,设计这些构件,但不予以实现。
96.某软件开发团队欲开发一套管理信息系统,在项目初期,用户提出了软件的一些基本功能,但是没有详细定义输入、处理和输出需求。在这种情况下,该团队在开发过程应采用 (19) 。 A.瀑布模型B.增量模型C.原型开发模型D.快速应用程序开发(RAD)
[分析] 在软件开发过程中,如果用户仅仅提出软件的一些基本功能,但是没有详细定义输入、处理和输出需求。在这种情况下,该软件开发团队应该采取原型开发方法最为合适。因此本题应该选C。
97.某软件公司欲开发一个在线交易系统。为了能够精确表达用户与系统的复杂交互过程,应该采用UML的()进行交互过程建模。 A.类图 B.序列图 C.部署图 D.对象图
[解析] 一个系统的行为可以用许多方法来说明,包括协作或者交互的方法。用例设计通常使用交互(特别是序列图)来说明系统的行为。当系统或者子系统的行为主要通过同步消息传递来说明时,序列图非常有用。由于消息序列通常没有严格的定义,因此,尤其是在事件驱动系统中,异步消息传递更容易利用状态机和协作来进行说明。
软件的逆向工程是一个恢复设计的过程,从现有的程序中抽取数据、体系结构和过程的设计信息。逆向工程的完备性可以用在某一个抽象层次上提供信息的详细程度来描述,在大多数情况下,抽象层次越高,完备性就越低。下列可以通过逆向工程恢复的制品中,完备性最低的是(25)。
A过程的设计模型
B程序和数据结构
C对象模型、数据和控制流
D UML状态图和部署图
解析:软件的逆向工程是一个设计恢复的过程,从现有的程序中抽取数据、体系结构和过程的设计信息。逆向工程的完备性是指在某一个抽象层次上提供信息的详细程度,在大多数情况下,抽象层次越高,完备性就越低。逆向过程和实现该过程的工具的抽象层次是指可从源代码中抽取出来的设计信息的精密程度。理想情况下,抽象程度应该尽可能高。逆向工程过程应该能够导出过程的设计模型(一种底层的抽象);程序和数据结构信息(稍高层次的抽象);对象模型、数据和控制流模型(相对高层的抽象);UML图,状态及部署图(高层抽象)。随着抽象层次增高,完备性就会降低。因此本题应该选择D。
99.特定领域软件架构(DSSA)是在一个特定应用领域为一组应用提供组织结构参考的标准软件架构。实施DSSA的过程中包括一系列基本的活动,其中 (19) 活动的主要目的是为了获得DSSA。该活动参加人员中, (20) 的主要任务是提供关于领域中系统的需求规约和实现的知识。 A.领域专家 B.领域分析者 C.领域设计者 D.领域实现者
本题主要考查特定领域软件架构的基本定义和基本活动。特定领域软件架构(DSSA)是在一个特定应用领域为一组应用提供组织结构参考的标准软件架构。实施DSSA的过程中包括一系列基本的活动,其中领域设计活动的主要目的是为了获得DSSA。该活动参加人员中,领域专家的主要任务是提供关于领域中系统的需求规约和实现的知识。
100.某公司要开发一个软件产品,产品的某些需求是明确的,而某些需求则需要进一步细化。由于市场竞争的压力,产品需要尽快上市。则开发该软件产品最不适合采用( )模型。
A.增量
B.原型
C.瀑布
D.螺旋
瀑布模型要求待开发的系统需求是完整的、简明的、一致的,其突出缺点是不适应用户需求的变化,开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果。对于需求不确定的软件产品不适合采用瀑布模型。
101.企业应用集成是一个战略意义上的方法,它从服务和信息角度将多个信息系统绑定在一起,提供实时交换信息和影响流程的能力。() 提供企业之间的信息共享能力,() 在用户使用角度能够对集成系统产生一个“整体”的感觉。
问题1选项
A.API集成
B.数据集成
C.界面集成
D.过程集成
问题2选项
A.API集成
B.数据集成
C.界面集成
D.过程集成
102.某企业拥有多个应用系统,分别采用不同的语言和平台独立构建而成,企业需要集成来自不同系统的数据,并使用可定制格式的数据频繁地、立即地、可靠地、异步地传输数据。以下集成方式,最能满足这种要求的是 (32) 。 A.文件共享B.数据库共享C.远程方法调用D.消息机制
[分析] 一个企业往往拥有多个应用系统,会分别采用不同的语言和平台独立构建而成。当企业需要集成来自不同系统的数据,并使用可定制格式的数据频繁地、立即地、可靠地、异步地传输数据时,通常会选择最为灵活的消息机制实现这样的需求,因此本题应该选择D。
103.服务组件体系结构(ServiceComponentArchitecture,SCA)是基于面向服务体系结构(ServiceOrientedArchitecture,SOA)的思想描述服务之间组合和协作的规范。以下关于SCA的叙述,不正确的是()
A. SCA定义了语言中立的服务组合方式,能够进行跨语言的服务调用
B. SCA加强组件的接口与传输协议的关联,提高组件的内聚性
C. SCA实现服务组件和其传输协议的绑定,这种绑定是可扩展的
D. SCA主要是为了满足软件集成的需要而创建的架构
服务组件体系结构(SCA)是一个规范,它描述用于使用SOA构建应用程序和系统的模型。它可简化使用SOA进行的应用程序开发和实现工作。SCA提供了构建粗粒度组件的机制,这些粗粒度组件由细粒度组件组装而成。SCA将传统中间件编程从业务逻辑分离出来,从而使程序员免受其复杂性的困扰。它允许开发人员集中精力编写业务逻辑,而不必将大量的时间花费在更为底层的技术实现上。SCA方法的优势包括:简化业务组件开发;简化作为服务网络构建的业务解决方案的组装和部署;提高可移植性、可重用性和灵活性;通过屏蔽底层技术变更来保护业务逻辑资产;提高可测试性。SCA服务组件与传统组件的主要区别在于:服务组件往往是粗粒度的,而传统组件以细粒度居多;服务组件的接口是标准的,主要是WSDL接口,而传统组件常以具体API形式出现;服务组件的实现与语言是无关的,而传统组件常绑定某种特定的语言;服务组件可以通过组件容器提供QoS的服务,而传统组件完全由程序代码直接控制。
104.商业智能关注如何从业务数据中提取有用的信息,然后采用这些信息指导企业的业务开展。商业智能系统主要包括数据预处理、数据仓库、数据分析和数据展现4个主要阶段。其中数据预处理是整合企业原始数据的第一步,它包括数据的抽取、转换和加载三个过程。
105.某高校管理信息系统的数据库设计过程中, (21) 阶段是在需求分析的基础上,对用户信息加以分类、聚集和概括,建立信息模型,并依照选定的数据库管理系统软件,转换成为数据的 (22) ,再依照软硬件环境,最终实现数据的合理存储。 A.物理模式B.逻辑模式C.内模式D.概念模式
B
[分析] 通常将数据库设计分为需求分析、概念结构设计、逻辑结构设计和数据库物理设计4个阶段。 需求分析是指收集和分析用户对系统的信息需求和处理需求,得到设计系统所必需的需求信息,建立系统说明文档。其目标是通过调查研究,了解用户的数据要求和处理要求,并按一定格式整理形成需求说明书。 概念结构设计阶段的目标是对需求说明书提供的所有数据和处理要求进行抽象与综合处理,按一定的方法构造反映用户环境的数据及其相互联系的概念模型,即用户的数据模型或企业数据模型。这种概念数据模型与DBMS无关,是面向现实世界的、极易为用户所理解的数据模型。为保证所设计的概念数据模型能正确、完全地反映用户的数据及其相互关系,便于进行所要求的各种处理,在本阶段设计中可吸收用户参与和评议设计。在进行概念结构设计时,可先设计各个应用的视图,即各个应用所看到的数据及其结构,然后再进行视图集成,以形成一个单一的概念数据模型。这样形成的初步数据模型还要经过数据库设计者和用户的审查与修改,最后形成所需的概念数据模型。 逻辑结构设计阶段的设计目标是把上一阶段得到的与DBMS无关的概念数据模型转换成等价的,并为某个特定的DBMS所接受的逻辑模型所表示的概念模式,同时将概念设计阶段得到的应用视图转换成外部模式,即特定DBMS下的应用视图。在转换过程中要进一步落实需求说明,并满足DBMS的各种限制。该阶段的结果是用DBMS所提供的数据定义语言(DDL)写成的数据模式。逻辑设计的具体方法与DBMS的逻辑数据模型有关。逻辑模型应满足数据库存取一致性及运行等各方面的用户需求。 物理设计阶段的任务是把逻辑设计阶段得到的满足用户需求的已确定的逻辑模型在物理上加以实现,其主要的内容是根据DBMS提供的各种手段,设计数据的存储形式和存取路径,如文件结构、索引的设计等,即设计数据库的内模式或存储模式。数据库的内模式对数据库的性能影响很大,应根据处理需求及DBMS、操作系统和硬件的性能进行精心设计。
106.某公司承接了一个开发家用空调自动调温器的任务,调温器测量外部空气温度,根据设定的期望温度控制空调的开关。根据该需求,公司应采用______架构风格最为合适。 A.解释器B.过程控制C.分层D.管道-过滤器
本题主要考查架构风格与架构设计策略。 根据题目描述,调温器需要实时获取外界的温度信息,与用户定义的温度进行比较并做出动作。根据该系统的应用领域和实际需求,可以看出这是一个典型的过程控制架构风格的应用场景。
107.以下作品中,不适用或不受著作权法保护的作品是( )。
问题1选项
A.国务院颁布的《计算机软件保护条例》
B.某作家的作品《绿化树》
C.最高人民法院组织编写的《行政诉讼案例选编》
D.某人在公共场所的即兴演说
著作权法不适用于: 法律、法规,国家机关的决议、决定、命令和其他具有立法、行政、司法性质的文件,及其官方正式译文。而A选项中的“国务院颁布的《计算机软件保护条例》”属于该情况,所以不受著作权法保护。
108.以下我国的标准代号中,( )表示行业标准。
问题1选项
A.GB
B.GJB
C.DB11
D.Q
GB是国家标准。
DB是地方标准。
Q是企业标准。
GJB是国家军用标准,是属于行业标准。
以下我国的标准代号中,______表示行业标准。 A.GB B.SJ C.DB11 D.Q
B
[解析] 本题考查标准与标准化基本知识。我国标准分为国家标准、行业标准、地方标准和企业标准四类。 国家标准是由国务院标准化行政主管部门制定的标准。国家标准的编号由标准代号、标准发布顺序号和标准发布年代号构成。国家标准的代号由大写汉字拼音字母构成,强制性国家标准代号为GB,推荐性国家标准的代号为GB/T。例如,“GB 8567-1988软件产品开发文件编制指南”为强制性国家标准。 行业标准代号由国务院各有关行政主管部门提出其所管理的行业标准范围的申请报告,国务院标准化行政主管部门审查确定并正式公布该行业标准代号。已正式公布的行业代号:QJ(航天)、SJ(电子)、JB(机械)、JR(金融)、HB(航空)等等。行业标准代号由汉字拼音大写字母组成,再加上斜线T组成推荐性行业标准。行业标准的编号由行业标准代号、标准发布顺序及标准发布年代号组成。例如,“HB6698-1993软件工具评价与选择的分类特性体系”为强制性行业标准编号。GJB为中华人民共和国国家军用标准代号。 地方标准是由省、自治区、直辖市标准化行政主管部门制定并报国务院标准化行政主管部门和国务院有关行业行政主管部门备案的标准。地方标准代号由大写汉字拼音DB加上省、自治区、直辖市行政区划代码的前两位数子(北京市11、天津市12),再加上斜线T组成推荐性地方标准(DBXX/T),不加斜线T为强制性地方标准(DBXX)。地方标准的编号由地方标准代号、发布顺序号、发布年三部分组成,即DBXX XXX-XXXX。 企业标准是由企业自行组织制定、作为组织生产依据的相应标准。企业标准一经制定颁布,即对整个企业具有约束性,是企业法规性文件,没有强制性企业标准和推荐企业标准之分。企业代号可用大写拼音字母或阿拉数字或两者兼用所组成(Q/XXX),按中央所属企业和地方企业分别由国务院有关行政主管部门或省、自治区、直辖市政府标准化行政主管部门会同同级有关行政主管部门加以规定。企业标准的编号由企业标准代号,发布顺序号和发布年代号组成,即O/XXX XXXX-XXXX。
109.关于XML基本语法,以下说法不正确的是()
A. XML文档必须以声明开始
B. 元素可以有一个或多个属性
C. 字符数据是包含于元素中的文字内容
D. XML 名字主要用来规范XML元素名和属性名的命名
以下不符合XML文档语法规范的是()。
A . 文档的第一行必须是XML文档声明
B . 文档必须包含根元素
C . 首个开始标记必须和结束标记配对使用
D . 标记之间可以交叉嵌套
一个XML文档通常以一个XML声明作为开始,XML声明在文档中是可选内容,可加可不加。
关于XML的语法要求不正确的是(C)。
A.在XML中编写注释的语法与HTML的语法相似
B.XML文档必须有一个元素是所有其他元素的父元素。该元素称为根元素。
C.XML的属性值与HTML语言不一样,不添加引号
D.声明不属于XML本身的组成部分。它不是XML元素,也不需要关闭标签
110.关于中间件的描述,不正确的是( )。
A. 中间件是一种通用服务,解决了分布系统的异构问题
B. 中间件具有标准的程序接口和协议,可实现应用与平台的无关
C. 中间件可以在多种操作系统上运行
D. 面向消息中间件是建立对象之间客户机/服务器关系的中间件
以下关于软件中间件的叙述,错误的是______。 A.中间件通过标准接口实现与应用程序的关联,提供特定功能的服务B.使用中间件可以提高应用软件可移植性C.使用中间件将增加应用软件设计的复杂度D.使用中间件有助于提高开发效率
[解析] 中间件是一类较为特殊的构件。中间件工作于操作系统与应用程序之间,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件有以下几种类型。 ・远程过程调用:它是一种广泛使用的分布式应用程序处理方法。应用程序使用RPC来远程执行一个位于不同地址空间里的过程,并且从效果上看和执行本地调用相同。要注意的是,这里的“远程”既可以指不同的计算机,也可以指同一台计算机上的不同进程。一个RPC应用可分为两个部分,分别是服务器和客户。这里的“服务器”和“客户”是指逻辑上的进程,而不是指物理计算机。 ・面向消息的中间件:利用高效可靠的消息传递机制进行平台无关的数据交换,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可在分布式环境下扩展进程间的通信,并支持多种通信协议、语言、应用程序、硬件和软件平台。例如,IBM的MQSeries、BEA的MessageQ等都属于面向消息的中间件产品。 ・事务处理监控器:也称为交易中间件,是当前应用最广泛的中间件之一。它能支持数以万计的客户进程对服务器的并发访问,使系统具有极强的扩展性,因此,适于电信、金融、证券等拥有大量客户的领域。在对效率、可靠性要求严格的关键任务系统中具有明显优势。TPM一般支持负载均衡,支持分布式两阶段提交,保证事务完整性和数据完整性,并具有安全认证和I故障恢复等功能,能很好地满足应用开发的要求。 ・数据库访问中间件:通过一个抽象层访问数据库的技术,从而允许使用相同或相似的代码访问不同的数据库资源。例如常见的ODBC与JDBC就属于数据库访问中间件。 通过引入中间件技术,可以使应用软件可移植性提高、开发效率提高,同时由于一些复杂的应用程序之间的通信可由中间件完成,所以还降低了应用软件设计的复杂性。所以C选项的描述不正确。
中间件的作用表述不正确的是()。
A.负责客户机与服务器之间的连接和通信,以及客户机与应用层之间的高效率通信机制
B.提供应用层相同服务之间的互操作机制,以及应用层与数据库之间的连接和控制机制
C.提供一个多层体系结构的应用开发和运行的平台,以及一个应用开发框架,支持模块化的应用开发
D.屏蔽硬件、操作系统、网络和数据库的差异
提供应用层不同服务之间的互操作机制,以及应用层与数据库之间的连接和控制机制
5. 中间件功能:
(1) 负责客户机与服务器之间的连接和通信,以及客户机与应用层之间的高效率通信机制。
(2) 提供应用层不同服务之间的互操作机制,以及应用层与数据库之间的连接和控制机制。
(3) 提供多层体系结构的应用开发和运行的平台,以及应用开发框架,支持模块化应用开发。
(4) 屏蔽硬件、操作系统、网络和数据库的差异。
(5) 应用负载均衡和高可用性、安全机制与管理功能,及交易管理机制,保证交易一致性。
(6) 提供一组通用的服务去执行不同的功能,避免重复的工作和使应用之间可以协作。
6. 消息中间件定义和使用场景:
(1)定义:消息中间件属于分布式系统中一个子系统,关注于数据的发送和接收,利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。
(2)使用场景:典型的异步处理、应用解耦、流量削锋、消息通讯四个场景。举例:秒杀活动,一般会因为流量过大,导致流量暴增,应用挂掉。加入消息队列。(流量削锋)
11.常用消息中间件:ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ。
111.自动售货机根据库存、存放货币量、找零能力、所选项目等不同,在货币存入并进行选择时具有如下行为:交付产品不找零 :交付产品找零:存入货币不足而不提供任何产品;库存不足而不提供任何产品。这一业务需求适合采用(44)模式设计实现,其类图如下图所示,其中(45)是客户程序使用的主要接口,可用状态来对其进行配置。此模式为(46),体现的最主要的意图是(47)。
A. 观察者(Obeserver)
B. 状态(State)
C. 策略(Stratehy)
D. 访问者(Visitor)
B
答案: B
有State关键词 状态模式:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做状态,这样的对象叫做有状态的(stateful)对象,这样的对象状态是从事先定义好的一系列值中取出的。当一个这样的对象与外部事件产生互动时,其内部状态就会改变,从而使得系统的行为也随之发生变化。是整个状态模式的基类也是对外的接口
自动售货机根据库存、存放货币量、找零能力、所选项目等不同,在货币存入并进行选择时具有如下行为:交付产品不找零:交付产品找零:存入货币不足而不提供任何产品;库存不足而不提供任何产品。这一业务需求适合采用(状态(State))模式设计实现,其类图如下图所示,其中( VendingMachineState)是客户程序使用的主要接口,可用状态来对其进行配置。此模式为(请作答此空),体现的最主要的意图是( )。
A创建型对象模式
B结构型对象模式
C行为型类模式
D行为型对象模式
解析:状态型模式的特点是对于对象内部的状态,允许其在不同的状态下,拥有不同的行为,对状态单独封装成类。题干中根据投入货币的情况,售货机分别有交付产品不找零和交付产品找零以及不提供货物等行为判断该模式是属于状态模式。VendingMachineState是客户程序使用的主要接口。设计模式的类型如下所示:
观察者模式(ObserverPattern):观察者模式定义了对象间的一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。
访问者模式(VisitorPattern):表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用与这些元素的新操作。即对于某个对象或者一组对象,不同的访问者,产生的结果不同,执行操作也不同。
备忘录模式(MementoPattern):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态。
策略模式(StrategyPattern):策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
命令模式(CommandPattern):将一个请求封装成一个对象,从而使得用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。
的目的是检查模块之间,以及模块和已集成的软件之间的接口关系,并验证已集成的软件是否符合设计要求。
A 单元测试 B 集成测试 C 系统测试 D 回归测试
113.防卫式程序设计不包括(C)
A.错误检测
B.破坏估计
C.错误调整
D.错误恢复
防卫式程序设计是一种不采用任何传统的容错技术就能实现软件容错的方法,对于程序中存在的错误和不一致性,防卫式程序设计的基本思想是通过在程序中包含错误检查代码和错误恢复代码,使得一旦发生错误,程序就能撤消错误状态,恢复到一个已知的正确状态中去。其实现策略包括错误检测、破坏估计和错误恢复三个方面。
114.以下关于软件架构风格与系统性能关系的叙述,错误的是____D____。 A.对于采用层次化架构风格的系统,划分的层次越多,系统的性能越差B.对于采用管道―过滤器架构风格的系统,可以通过引入过滤器的数据并发处理提高系统性能C.对于采用面向对象架构风格的系统,可以通过减少功能调用层次提高系统性能D.对于采用过程调用架构风格的系统,可以通过将显式调用策略替换为隐式调用策略提高系统性能
本题主要考查对软件架构风格与系统性能之间关系的理解。对于采用层次化架构风格的系统,划分的层次越多,系统完成某项功能需要的中间调用操作越多,其性能越差。对于采用管道-过滤器架构风格的系统,可以通过引入过滤器的数据并发处理可以有效提高系统性能。对于采用面向对象架构风格的系统,可以通过减少功能调用层次提高系统性能。对于采用过程调用架构风格的系统,将显式调用策略替换为隐式调用策略能够提高系统的灵活性,但会降低系统的性能。
115.CRM是一套先进的管理思想及技术手段,它通过将人力资源、业务流程与专业技术进行有效的整合,最终为企业涉及到客户或消费者的各个领域提供了完美的集成,使得企业可以更低成本、更高效率地满足客户的需求,并与客户建立起基于学习型关系基础上的一对一营销模式,从而让企业可以最大程度的提高客户满意度及忠诚度,挽回失去的客户,保留现有的客户,不断发展新的客户,发掘并牢牢地把握住能给企业带来最大价值的客户群。,
116.在基于体系结构的软件设计方法中,采用(44)来描述软件架构,采用(45)来描述功能需求,采用(46)来描述质量需求。
A. 类图和序列图
B. 视角与视图
C. 构件和类图
D. 构件与功能
ABSD方法是体系结构驱动,指构成体系结构的商业,质量和功能需求的组合驱动的。在基于体系结构的软件设计方法中,采用视角和视图来描述软件架构,采用用例来描述功能需求,采用质量场景来描述质量需求。
117.以下关于软件生存周期模型的叙述,正确的是( )。
A. 在瀑布模型中,前一个阶段的错误和疏漏会隐蔽地带到后一个阶段
B. 在任何情况下使用演化模型,都能在一定周期内由原型演化到最终产品
C. 软件生存周期模型的主要目标是为了加快软件开发的速度
D. 当一个软件系统的生存周期结束之后,它就进入到一个新的生存周期模型【解析】
118.在项目某阶段的实施过程中,A活动需要两天两人完成,B活动需要两天两人完成,C活动需要5天4人完成,D活动需要3天两人完成,E活动需要1天1人完成,该阶段的时标网络图如图8.10所示。该项目组共有8人,且负责A和E活动的人因另有安排,无法帮助其他人完成相应工作,且项目整个工期刻不容缓。()安排是恰当的,能够使实施任务顺利完成。
A. B活动提前两天开始
B. B活动推迟两天开始
C. D 活动提前两天开始
D. D活动推迟两天开始
假定负责A活动的两人,其中有1个人可以实施E活动。这两个人另有安排,无法帮助其他人完成相应工作,且项目整个工期刻不容缓。那么项目组还剩下6个人,B活动有3天的浮动时间,D活动有两天的浮动时间。C活动为关键路径,没有浮动时间,人力资源也不能释放。因此,选择推迟D活动两天开始,等B活动在项目的第3天开始、第4天完成、释放出两人之后,D活动利用这两个人完成工作。
119.下图中活动“G”可以拖延( )周而不会延长项目的最终结束日期。
A.0
B.1
C.3
D.4
项目关键路径:DHC
项目工期计算:9+0+3 =12(周)
任务G松弛时间 = DHC-FG=12-(5+3)=4(周)
120.在软件的使用过程中,用户往往会对软件提出新的功能要求与性能要求。为了满足这些要求而进行的维护属于 (55) 维护。 A.改正性B.适应性C.完善性D.预防性
[分析] 本题考查的是软件维护概念。根据维护活动的不同原因可将软件维护分为改正性维护、适应性维护、完善性维护和预防性维护。其中改正性维护进行改正软件在功能、性能等方面的缺陷或错误,适应性维护是为了适应运行环境的变化而进行的修改,完善性维护是在软件的使用过程中,为满足用户提出新的功能和性能需求而对软件进行的扩充、增强和改进等。另外,为提供软件的可维护性和可靠性等,对软件的一部分进行重新开发,即进行预防性维护。
121.以下关于软件架构设计重要性的描述,( )是错误的。
A.软件架构设计能够满足系统的性能、安全性、可维护性等品质
B.软件架构设计能够帮助项目干系人(Stakeholder)更好地理解软件结构
C.软件架构设计能够帮助架构师更好地捕获和细化系统需求
D.软件架构设计能够有效地管理系统的复杂性,并降低系统维护费用。
122.某工程包括A、B、C、D四个作业,其衔接关系、正常进度下所需天数和所需直接费用、赶工进度下所需的最少天数和每天需要增加的直接费用见下表。该工程的间接费用为每天5万元。据此,可以估算出完成该工程最少需要费用( )万元,以此最低费用完成该工程需要( )天。
问题1选项
A.106
B.108
C.109
D.115
问题2选项
A.7
B.9
C.10
D.12
第1题:本题是项目管理中,时间管理的关键路径问题。先将题目中的各个结点依赖关系画出来,如图所示:
通过结点依赖图,结合题目正常进度所需天数很容易看出ACD为关键路径。关键路径长度为12天。但这样得到的就是最短工期与最少花费吗?不是。因为题目指出间接花费是每天5万元,而赶工每天的费用仅2-4万。此时赶工完成部分任务,既能缩短工期,又能降低费用,是合适的解决方案,经过分析,赶工方案为:
A赶工2天,B赶工1天,D赶工3天。此时关键路径长度为7天,总花费为106万。
分析过程如下:
(1)总成本=直接成本+间接成本。
赶工处理之前,项目的直接成本是各个作业的直接费用10+15+12+18=55万元;
间接费用,根据题干“该工程的间接费用为每天5万元”,项目工期为12天,所以间接成本是12×5=60万元;
总成本=55+60=115万元。
赶工的必要性:每压缩一天工期,可以节约间接成本5万元,而赶工每天会增加直接成本,只要赶工增加的成本不超过5万元,那么就可以安排赶工,节约项目总成本。
确定赶工方案:赶工必定是节约了间接成本,也就是压缩了项目工期,只有关键路径才能影响项目工期。
根据关键路径A-C-D(12天),选择代价最小的作业进行压缩,也就是D活动,当D活动压缩2天之后,A-C-D工期为10天,与A-B工期一样;
此时关键路径发生了改变,有2条关键路径,分别是A-C-D和A-B,此时若要压缩工期,必须2条路径同时压缩,那么此时的压缩方案有多种:压缩相交结点A,每天增加直接成本4万元;同时压缩B和D,每天增加成本2+2=4万。由于A原本需要3天最少需要1天,可压缩的空间是2天,B活动原本需要7天最少需要3天,可压缩空间4天,D活动原本需要5天最少需要2天,可压缩空间是3天,之前已经对D压缩了2天,也就是说B和D同时压缩的方案,由于D的限制,还有1天可压缩。
此时可压缩方案分别是A压缩2天,B和D同时压缩1天,项目工期为10-2-1=7天。
综上:赶工的全部过程如下,(1)D压缩2天;(2)A压缩2天;(3)B和D压缩1天。(其中(2)和(3)顺序可交换)。
也就是A压缩2天,B压缩1天,D压缩3天。
(4)确定最终的花费:
间接成本:7×5=35万元
直接成本:原直接费用10+15+12+18=55万元,赶工费用,A:4×2=8;B:2×1=2;D:2×3=6;总直接成本:55+8+2+6=71万元
总成本:35+71=106万元。
123.面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成;设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图等。
124.常用的黑盒测试技术包括等价类划分、边值分析、错误推测和因果图等。
白盒测试,又称结构测试,主要用于单元测试阶段。它的前提是可以把程序看成装在一个透明的白箱子里,测试者完全知道程序的结构和处理算法。这种方法按照程序内部逻辑设计测试用例,检测程序中的主要执行通路是否都能按预定要求正常工作。
白盒测试根据软件的内部逻辑设计测试用例,常用的技术是逻辑覆盖,即考察用测试数据运行被测程序时对程序逻辑的覆盖程度。主要的覆盖标准有 6 种:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合条件覆盖和路径覆盖。
软件测试方法可分为静态测试和动态测试。
静态测试:指被测试程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测,包括对文档静态测试和对代码的静态测试。对文档的静态测试主要以检查单的形式进行,而对代码的静态试,包括桌前检查、代码审查、代码走查的方式。使用这种方法能够有效地发现30%-70%的逻辑设计和编码错误。
动态测试:指在计算机上实际运行程序进行软件测试,一般采用白盒测试和黑盒测试方法。
黑盒测试法:功能性测试,不了解软件代码结构,根据功能设计用例,测试软件功能。
白盒测试法:结构性测试,明确代码流程,根据代码逻辑设计用例,进行用例覆盖。
测试阶段:
(1)单元测试:也称为模块测试,测试的对象是可独立编译或汇编的程序模块、软件构件或OO软件中的类(统称为模块),测试依据是软件详细设计说明书。
(2)集成测试:目的是检查模块之间,以及模块和已集成的软件之间的接口关系,并验证已集成的软件是否符合设计要求。测试依据是软件概要设计文档。
(3)系统测试:测试对象是完整的、集成的计算机系统;测试的目的是在真实系统工作环境下,验证完成的软件配置项能否和系统正确连接,并满足系统/子系统设计文档和软件开发合同规定的要求。测试依据是用户需求或开发合同。主要内容包括功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、安装与反安装测试等,其中,最重要的工作是进行功能测试与性能测试。功能测试主要采用黑盒测试方法;性能测试主要指标有响应时间、吞吐量、并发用户数和资源利用率等。
(4)确认测试:主要用于验证软件的功能、性能和其他特性是否与用户需求一致。根据用户的参与程度,通常包括以下类型:
内部确认测试:主要由软件开发组织内部按照SRS进行测试。
Alpha测试:用户在开发环境下进行测试。
Beta测试:用户在实际使用环境下进行测试,通过改测试后,产品才能交付用户。
验收测试:针对SRS,在交付前以用户为主进行的测试。其测试对象为完整的、集成的计算机系统。验收测试的目的是,在真实的用户工作环境下,检验软件系统是否满足开发技术合同或SRS。验收测试的结论是用户确定是否接收该软件的主要依据。除应满足一般测试的准入条件外,在进行验收测试之前,应确认被测软件系统已通过系统测试。
(5)配置项测试:测试对象是软件配置项,测试目的是检验软件配置项与SRS的一致性。测试的依据是SRS.在此之间,应确认被测软件配置项已通过单元测试和集成测试。
(6)回归测试:测试目的是测试软件变更之后,变更部分的正确性和对变更需求的符合性,以及软件原有的、正确的功能、性能和其他规定的要求的不损害性。
测试策略
自底向上:从最底层模块开始测试,需要编写驱动程序,而后开始逐一合并模块,最终完成整个系统的测试。优点是较早的验证了底层模块。
自顶向下:先测试整个系统,需要编写桩程序,而后逐步向下直至最后测试最底层模块。优点是较早的验证了系统的主要控制和判断点。
三明治:既有自底向上也有自顶向下的测试方法,二者都包括。兼有二者的优点,缺点是测试工作量大。
考题来喽:
1.软件确认测试也称为有效性测试,主要验证()。确认测试计划通常是在需求分析阶段完成的。根据用户的参与程度不同,软件确认测试通常包括()。
A.系统中各个单元模块之间的协作性
B.软件与硬件在实际运行环境中能否有效集成
C.软件功能、性能及其它特性是否与用户需求一致
D.程序模块能否正确实现详细设计说明中的功能、性能和设计约束等要求
A.黑盒测试和白盒测试
B.一次性组装测试和增量式组装测试
C.内部测试、Alpha、Beta和验收测试
D.功能测试、性能测试、用户界面测试和安全性测试
2.软件测试一般分为两个大类:动态测试和静态测试。前者通过运行程序发现错误,包括()等方法;后者采用人工和计算机辅助静态分析的手段对程序进行检测,包括()等方法。
A.边界值分析、逻辑覆盖、基本路径
B.桌面检查、逻辑覆盖、错误推测
C.桌面检查、代码审查、代码走查
D.错误推测、代码审查、基本路径
A.边界值分析、逻辑覆盖、基本路径 B.桌面检查、逻辑覆盖、错误推测
C.桌面检查、代码审查、代码走查 D.错误推测、代码审查、基本路径
测试用例:
黑盒测试用例:将程序看做一个黑盒子,只知道输入输出,不知道内部代码,由此设计出测试用例,分为下面几类:
等价类划分:把所有的数据按照某种特性进行归类,而后在每类的数据里选取一个即可。等价类测试用例的设计原则:设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。
边界值划分:将每类的边界值作为测试用例,边界值一般为范围的两端值以及在此范围之外的与此范围间隔最小的两个值,如年龄范围为0-150,边界值为0,150,-1,151四个。
错误推测:没有固定的方法,凭经验而言,来推测有可能产生问题的地方,作为测试用例进行测试。
因果图:由一个结果来反推原因的方法,具体结果具体分析,没有固定方法。
白盒测试用例:知道程序的代码逻辑,按照程序的代码语句,来设计覆盖代码分支的测试用例,覆盖级别从低至高分为下面几种:
(1)语句覆盖SC:逻辑代码中的所有语句都要被执行一遍,覆盖层级最低,因为执行了所有的语句,不代表执行了所有的条件判断。
(2)判定覆盖DC:逻辑代码中的所有判断语句的条件的真假分支都要覆盖一次。
(3)条件覆盖CC:针对每一个判断条件内的每一个独立条件都要执行一遍真和假。
(4)条件判定组合覆盖CDC:同时满足判定覆盖和条件覆盖。
(5)路径覆盖:逻辑代码中的所有可行路径都覆盖了,覆盖层级最高。