基于构件的开发模型包括软件的需求分析定义、(/)、 ( )、 (/),以及测试和发布5个顺序执行的阶段。
A. 数据库建模
B. 业务过程建模
C. 对象建模
D. 构件库建立
解析:基于构件的开发模型利用模块化方法将整个系统模块化,并在一定构件模型的支持下复用构件库中的一个或多个软件构件。基于构件的开发模型融合了螺旋模型的许多特征,本质上是演化形的,开发过程是迭代的。基于构件的开发模型由软件的需求分析定义、体系结构设计、构件库建立、应用软件构建以及测试和发布5个阶段组成。
以下关于软件构件及其接口的叙述,错误的是( )。
A. 构件是软件系统中相对独立且具有一定意义的构成成分
B. 构件在容器中进行管理并获取其属性或者服务
C. 构件不允许外部对所支持的接口进行动态发现或调用
D. 构件可以基于对象实现,也可以不基于对象实现试
解析:软件构件是软件系统中具有一定意义的、相对独立的可重用单元。与对象相比,构件可以基于对象实现,也可以不作为对象实现。构件需要在容器中管理并获取容器提供的服务;客户程序可以在运行状态下利用接口动态确定构件所支持的功能并调用。
软件架构贯穿于软件的整个生命周期,但在不同阶段对软件架构的关注力度并不相 同,在( )阶段,对软件架构的关注最多。
A. 需求分析与设计
B. 设计与实现
C. 实现与测试
D. 部署与变更
解析:软件架构贯穿于软件的整个生命周期,但在不同的阶段对软件架构的关注力度并不相同。
其中设计与实现阶段在软件架构上的工作最多,也最重要,因此关注力度最大。
软件架构设计是降低成本、改进质量、按时和按需交付产品的关键活动。以下关于软件架构重要性的叙述中,错误的是( )。
A. 架构设计能够满足系统的性能、可维护性等品质
B. 良好的架构设计能够更好地捕获并了解用户需求
C. 架构设计能够使得不同的利益相关人(stakeholders)达成一致的目标
D. 架构设计能够支持项目计划和项目管理等活动
解析:系统架构的给出必须建立在需求明确的基础上。
软件架构需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。以下活动中,不属于软件架构需求过程范畴的是( )。
A. 设计构件
B. 需求获取
C. 标识构件
D. 架构需求评审
解析:软件架构需求是指用户对目标软件系统在功能、行为、性能和设计约束等方面的期望。需求过程主要是获取用户需求,标识系统中所要用到的构件,并进行架构需求评审。其中标识构件又详细分为生成类图、对类图进行分组和将类打包成构件三步。软件架构需求并不应该包括设计构件的过程。
答案:D、C、B、B、A
Architecture Tradeoff Analysis Method (ATAM)是一种软件架构的评估方法,以下关于该方法的叙述中,正确的是( )。
A. ATAM是一种代码评估方法
B. ATAM需要评估软件的需求是否准确
C. ATAM需要对软件系统进行测试
D. ATAM不是一种精确的评估工具
解析:ATAM是软件体系结构评估中的一种方法,主要对软件体系结构的设计结果进行评估。评估是软件系统详细设计、实现和测试之前的阶段工作,因此评估不涉及系统的实现代码和测试,因为评估是考査软件体系结构是否能够合适地解决软件系统的需求,并不对软件需求自身是否准确进行核实,而软件需求是否准确是需求评审阶段的工作。ATAM并不是一种精确的评估方法,该方法表现的主要形式是评审会议。
在RUP中采用“4+1”视图模型来描述软件系统的体系结构。在该模型中,最终用户侧重于(/),系统工程师侧重于( )。
A. 实现视图
B. 进程视图
C. 逻辑视图
D. 部署视图
解析:在RUP中采用“4+1”视图模型来描述软件系统的体系结构。“4+1”视图包括逻辑视图、实现视图、进程视图、部署视图和用例视图。
在基于构件的软件开发中,( )描述系统设计蓝图以保证系统提供适当的功能;(/)用来了解系统的性能、吞吐率等非功能性属性。
A. 逻辑构件模型
B. 物理构件模型
C. 组件接口模型
D. 系统交互模型
解析:在基于构件的软件开发中,逻辑构件模型用功能包描述系统的抽象设计,用接口描述每个服务集合,以及功能之间如何交互以满足用户需求,它作为系统的设计蓝图以保证系统提供适当的功能。物理构件模型用技术设施产品、硬件分布和拓扑结构,以及用于绑定的网络和通信协议描述系统的物理设计,这种架构用于了解系统的性能、吞吐率等许多非功能性属性。
对象管理组织(OMG)基于CORBA基础设施定义了4种构件标准。其中( )的状态信息是由构件自身而不是由容器维护。
A. 实体构件
B. 加工构件
C. 服务构件
D. 会话构件
解析:对象管理组织(OMG)基于CORBA基础设施定义了4种构件标准。
分布式系统开发中,通常需要将任务分配到不同的逻辑计算层。业务数据的综合计算分析任务属于( )。
A. 表示逻辑层
B. 应用逻辑层
C. 数据处理层
D. 数据层
解析:分布式系统开发分为5个逻辑计算层:
答案: D、D、A、D、B
在客户机/服务器系统开发中,采用( )时,应将数据层和数据处理层放置于服务器,应用逻辑层、表示逻辑层和表示层放置于客户机。
A. 分布式表示结构
B. 分布式应用结构
C. 分布式数据和应用结构
D. 分布式数据结构
解析:客户机/服务器系统开发时可以采用不同的分布式计算架构:
软件架构是降低成本、改进质量、按时和按需交付产品的关键因素。以下关于软件架构的描述,错误的是( )。
A. 根据用户需求,能够确定一个最佳的软件架构,指导整个软件的开发过程
B. 软件架构设计需要满足系统的质量属性,如性能、安全性和可修改性等
C. 软件架构设计需要确定组件之间的依赖关系,支持项目计划和管理活动
D. 软件架构能够指导设计人员和实现人员的工作
解析:软件架构是降低成本、改进质量、按时和按需交付产品的关键因素,软件架构设计需要满足系统的质量属性,如性能、安全性和可修改性等,软件架构设计需要确定组件之间的依赖关系,支持项目计划和管理活动,软件架构能够指导设计人员和实现人员的工作。一般在设计软件架构之初,会根据用户需求,确定多个候选架构,从中选择一个较优的架构,并随着软件的开发,对这个架构进行微调,以达到最佳效果。
某公司欲开发一个漫步者机器人,用来完成火星探测任务。机器人的控制者首先定义探测任务和任务之间的时序依赖性,机器人接受任务后,需要根据自身状态和外界环境进行动态调整,最终自动完成任务。针对这些需求,该机器人应该采用( )架构风格最为合适。
A. 解释器
B. 主程序-子程序
C. 隐式调用
D. 管道-过滤器
解析:根据题目描述,漫步者机器人需要根据自身状态和外界环境进行自动调整,这是一个典型的根据外部事件进行响应的场景。比较4个候选项,隐式调用比较适合根据外部事件进行处理和动作的情景。
特定领域软件架构(DSSA)是在一个特定应用领域为一组应用提供组织结构参考的标准软件架构。实施DSSA的过程中包括一系列基本的活动,其中(/)活动的主要目的是为了获得DSSA。该活动参加人员中,( )的主要任务是提供关于领域中系统的需求规约和实现的知识。
A. 领域专家
B. 领域分析者
C. 领域设计者
D. 领域实现者
解析:领域专家的主要任务是提供关于领域中系统的需求规约和实现的知识。
随着业务的增长,信息系统的访问量和数据流量快速增加,采用负载均衡(Load Balance)方法可避免由此导致的系统性能下降甚至崩溃。以下关于负载均衡的叙述中, 错误的是( )。
A. 负载均衡通常由服务器端安装的附加软件来实现
B. 负载均衡并不会增加系统的吞吐量
C. 负载均衡可在不同地理位置、不同网络结构的服务器群之间进行
D. 负载均衡可使用户只通过一个IP地址或域名就能访问相应的服务器
架构权衡分析方法(ATAM)是一种常用的软件架构评估方法,下列关于该方法的叙述中,正确的是( )。
A. ATAM需要对代码的质量进行评估
B. ATAM需要对软件系统需求的正确性进行评价
C. ATAM需要对软件系统进行集成测试
D. ATAM需要对软件质量属性进行优先级排序
解析:ATAM是一种常用的软件架构评估方法,该方法强调对软件的质量属性进行分析、分类和优先级排序等工作,在此基础上构建质量属性效用树,并对风险点、非风险点、敏感点和权衡点进行识别和分析。
答案:D、A、B、D
识别风险点、非风险点、敏感点和权衡点是软件架构评估过程中的关键步骤。针对某系统所作的架构设计中,“系统需要支持的最大并发用户数量直接影响传输协议和数据格式”描述了系统架构设计中的一个( 敏感点):“由于系统的业务逻辑目前尚不清楚, 因此现有系统三层架构中的第二层可能会出现功能重复,这会影响系统的可修改性”描述了系统架构设计中的一个( )。
A. 敏感点
B. 风险点
C. 非风险点
D. 权衡点
ANSI/IEEE 1471-2000是对软件密集型系统的架构进行描述的标准。在该标准中, ( )这一概念主要用于描述软件架构模型。在此基础上,通常采用(/)描述某个利益相关人(Stakeholder)所关注架构模型的某一方面。()则是对所有利益相关人关注点的响应和回答。
A. 上下文
B. 架构风格
C. 组件
D. 视图A. 架构
B. 系统
C. 模型
D. 使命
解析:在ANSI/IEEE 1471-2000标准中,系统是为了达成利益相关人的某些使命在特定环境中构建的。每一个系统都有一个架构。架构是对所有利益相关人的关注点的响应和回答,通过架构描述来说明。架构描述本质上是多视图的。每一个视图是从一个特定的视角来表述架构的某一个独立的方面。试图用一个单一的视图来覆盖所有的关注点当然是最好的,但实际上这种表述方式将很难理解。视角的选择,基于要解决哪些利益相关人的哪些关注点。它决定了用来创建视图的语言、符号和模型等,以及任何与创建视图相关的建模方法或者分析技术。一个视图包括一个或者多个架构模型,一个模型也可能参与多个视图。模型较文本的表述的好处在于,可以更容易的可视化、检查、分析、管理和集成。
软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式。架构风格定义了一类架构所共有的特征,主要包括架构定义、架构词汇表和架构( )。
A. 描述
B. 组织
C. 约束
D. 接口
将系统需求模型转换为架构模型是软件系统需求分析阶段的一项重要工作,以下描述中,( )是在转换过程中需要关注的问题。
A. 如何通过多视图模型描述软件系统的架构
B. 如何确定架构模型中有哪些元素构成
C. 如何采用表格或用例映射保证转换的可追踪性
D. 如何通过模型转换技术,将高层架构模型逐步细化为细粒度架构模型
解析:从本质上看,需求和软件架构设计面临的是不同的对象:一个是问题空间;另一个是解空间。保持两者的可追踪性和转换,一直是软件工程领域追求的目标。从软件需求模型向SA模型的转换主要关注两个问题:①如何根据需求模型构建软件架构模型;②如何保证模型转换的可追踪性。本题答案中A选项和B选项是软件架构设计阶段需要考虑的问题,D选项是软件架构实现阶段中需要考虑的问题。
答案:B、D、A、C、C
在构件组装过程中需要检测并解决架构失配问题。其中( )失配主要包括由于系统对构件基础设施、控制模型和数据模型的假设存在冲突引起的失配。(/)失配包括由手系统对构件交互协议、构件连接时数据格式的假设存在冲突引起的失配。
A. 构件
B. 模型
C. 协议
D. 连接子
解析:失配是指在软件复用的过程中,由于待复用构件对最终系统的体系结构和环境的假设与实际状况不同而导致的冲突。在构件组装阶段失配问题主要包括:
体系结构权衡分析方法(ATAM)是一种常见的系统架构评估框架,该框架主要关注系统的( ),针对性能(/)安全性和可修改性,在系统开发之前进行分析、评价与折中。
A. 架构视图
B. 架构描述
C. 需求说明
D. 需求建模
解析:架构权衡分析方法是一种系统架构评估方法,主要在系统开发之前,针对性能、可用性、安全性和可修改性等质量属性进行评价和折中。ATAM可以分为4个主要的活动阶段,包括需求收集、架构视图描述、属性模型构造和分析、架构决策与折中,整个评估过程强调以属性作为架构评估的核心概念。
以下关于软件架构风格与系统性能的关系叙述中,错误的是( )。
A. 对于采用层次化架构风格的系统,划分的层次越多,系统的性能越差
B. 对于采用隐式调用架构风格的系统,可以通过处理函数的并发调用提高系统处理性能
C. 采用面向对象架构风格的系统,可以通过引入对象管理层提高系统性能
D. 对于采用解释器架构风格的系统,可以通过部分解释代码预先编译的方式提高系统性能
处理流程设计是系统设计的重要内容。以下关于处理流程设计工具的叙述中,不正确的是( )。
A. 程序流程图(PFD)用于描述系统中每个模块的输入,输出和数据加工
B. N-S图容易表示嵌套关系和层次关系,并具有强烈的结构化特征
C. IPO图的主体是处理过程说明,可以采用流程图、判定树/表等来进行描述
D. 问题分析图(PAD)包含5种基本控制结构,并允许递归使用
解析:在处理流程设计过程中,为了更清晰地表达过程规则说明,陆续出现了一些用于表示处理流程的工具,包括三类:图形工具、表格工具和语言工具。其中常见的图形工具包括程序流程图、IPO图、盒图、问题分析图、判定树,表格工具包括判定表,语言工具包括过程设计语言等。
程序流程图(PFD)用一些图框表示各种操作,它独立于任何一种程序设计语言,比较直观、清晰,易于学习掌握。
流程图中只能包括5种基本控制结构:顺序型、选择型、WHILE循环型(当型循环)、UNTIL循环型(直到型循环)和多分支选择型。
IPO图是由IBM公司发起并逐步完善的一种流程描述工具,其主体是处理过程说明,可以采用流程图、判定树、判定表、盒图、问题分析图或过程设计语言来进行描述。IPO图中的输入、输出与功能模块、文件及系统外部项都需要通过数据字典来描述,同时需要为其中的某些元素添加注释。
N-S图与PFD类似,也包括5种控制结构,分别是顺序型、选择型、WHILE循环型(当型循环)、UNTIL循环型(直到型循环)和多分支选择型,任何一个N-S图都是这5种基本控制结构相互组合与嵌套的结果。在N-S图中,过程的作用域明确;它没有箭头,不能随意转移控制;而且容易表示嵌套关系和层次关系;并具有强烈的结构化特征。但是当问题很复杂时,N-S图可能很大。
问题分析图(PAD)是继PFD和N-S图之后,又一种描述详细设计的工具。PAD也包含5种基本控制结构,并允许递归使用。 过程设计语言(PDL)也称为结构化语言或伪代码,它是一种混合语言,采用自然语言的词汇和结构化程序设计语言的语法,用于描述处理过程怎么做,类似于编程语言。过程设计语言用于描述模块中算法和加工逻辑的具体细节,以便在开发人员之间比较精确地进行交流。
对于具有多个互相联系的条件和可能产生多种结果的问题,用结构化语言描述则显得不够直观和紧凑,这时可以用以清楚、简明为特征的判定表来描述。判定表采用表格形式来表达逻辑判断问题,表格分成4个部分,左上部分为条件说明,左下部分为行动说明,右上部分为各种条件的组合说明,右下部分为各条件组合下相应的行动。 判定树也是用来表示逻辑判断问题的一种常用的图形工具,它用树来表达不同条件下的不同处理流程,比语言、表格的方式更为直观。判定树的左侧(称为树根)为加工名,中间是各种条件,所有的行动都列于最右侧。
架构描述语言(ADL)是一种为明确说明软件系统的概念架构和对这些概念架构建模提供功能的语言。ADL主要包括以下组成部分:组件、组件接口、( )和架构配置。
A. 架构风格
B. 架构实现
C. 连接件
D. 组件约束
答案:A、C、C、A、C
架构权衡分析方法(ATAM)是在基于场景的架构分析方法( SAAM)基础之上发展起来的,主要包括场景和需求收集、( ),属性模型构造和分析,属性模型折中等四个阶段。ATAM方法要求在系统开发之前,首先对这些质量属性进行(/)和折中。
A. 架构视图和场景实现
B. 架构风格和场景分析
C. 架构设计和目标分析
D. 架构描述和需求评估
解析:ATAM是在基于场景的架构分析方法(SAAM)基础之上发展起来的,主要包括场景和需求收集、架构视图和场景实现、属性模型构造和分析、属性模型折中等4个阶段。ATAM方法要求在系统开发之前,首先对这些质量属性进行评价和折中。
面向构件的编程(Component Oriented Programming,COP)关注于如何支持建立面向构件的解决方案。面向构件的编程所需要的基本支持包括( )。
A. 继承性、构件管理和绑定、构件标识、访问控制
B. 封装性、信息隐藏、独立部署、模块安全性
C. 多态性、模块封装性、后期绑定和装载、安全性
D. 构件抽象、可替代性、类型安全性、事务管理
CORBA构件模型中,( )的作用是在底层传输平台与接收调用并返回结果的对象实现之间进行协调,(/)是最终完成客户请求的服务对象实现。
A. 伺服对象激活器
B. 适配器激活器
C. 伺服对象定位器
D. 可移植对象适配器POACORBA服务端构件模型中,( )是CORBA对象的真正实现,负责完成客户端请求。
A. 伺服对象(Servant)
B. 对象适配器(Object Adapter)
C. 对象请求代理(Object Request Broker)
D. 适配器激活器(Adapter Activator)
关于构件的描述,正确的是( )。
A. 构件包含了一组需要同时部署的原子构件
B. 构件可以单独部署,原子构件不能被单独部署
C. 一个原子构件可以同时在多个构件家族中共享
D. 一个模块可以看作带有单独资源的原子构件
解析:软件构件是部署、版本控制和替换的基本单位。构件是一组通常需要同时部署的原子构件。原子构件通常成组地部署,但是它也能够被单独部署。构件与原子构件的区别在于,大多数原子构件永远都不会被单独部署,尽管它们可以被单独部署。大多数原子构件都属于一个构件家族,一次部署往往涉及整个家族。一个模块是不带单独资源的原子构件。
面向服务系统构建过程中,( )用于实现Web服务的远程调用,(/)用来将分散的、功能单一的Web服务组织成一个复杂的有机应用。
A. UDDI(Universal Description,Discovery and Integration)
B. WSDL(Web Service Description Language)
C. SOAP(Simple Object Access Protocol)
D. BPEL(Business Process Execution Language)
解析:
UDDI用于Web服务注册和服务查找;
WSDL用于描述Web服务的接口和操作功能;
SOAP为建立Web服务和服务请求之间的通信提供支持。
答案:A、C、D、A、A、C
基于JavaEE平台的基础功能服务构建应用系统时,( )可用来集成遗产系统。
A. JDBC、JCA和 Java IDL
B. JDBC、 JCA和 JMS
C. JDBC、JMS和 Java IDL
D. JCA、JMS和Java IDLJ2EE应用系统支持五种不同类型的构件模型,包括( )。
A. Applet、JFC、JSP、Servlet、EJB
B. JNDI、IIOP、RMI、EJB、JSP/Servlet
C. JDBC、EJB、JSP、Servlet、JCA
D. Applet、Servlet、JSP、EJB、Application Client
解析:在构建应用系统时,需要与不同时期采用不同技术开发的既有系统进行集成。JavaEE(J2EE)平台提供了对于不同类型遗产系统的集成支持。
构件组装成软件系统的过程可以分为三个不同的层次:( )。
A. 初始化、互连和集成
B. 连接、集成和演化
C. 定制、集成和扩展
D. 集成、扩展和演化
答案:A、D、C