1、软件体系结构试题一 、选择题1、设计模式一般用来解决什么样的问题( a) A.同一问题的不同表相 B 不同问题的同一表相 C.不同问题的不同表相 D.以上都不是 2、下列属于面向对象基本原则的是( c ) A.继承 B.封装 C.里氏代换 D 都不是 3、要依赖于抽象,不要依赖于具体。即针对接口编程,不要针对实现编程,是( d )的表述 A.开-闭原则 B.接口隔离原则 C.里氏代换原则 D.依赖倒转原则 4、依据设计模式思想,程序开发中应优先使用的是( a )关系实现复用。 A, 委派 B.继承 C 创建 D.以上都不对 复用方式:继承和组合聚合(组合委派) 5、下列模式中,属于行为模式的是
2、( b ) A.工厂模式 B 观察者 C 适配器 以上都是 象尽可能少的了解 6、构造者的的退化模式是通过合并( c )角色完成退化的。 A.抽象产品 B 产品 C 创建者 D 使用者 7、对象适配器模式是( a )原则的典型应用。 A.合成聚合复用原则 B.里式代换原则 C.依赖倒转原则 D.迪米特法则 8、静态工厂的核心角色是(a) A.抽象产品 B.具体产品 C.静态工厂 D.消费者 9、下列关于静态工厂与工厂方法表述错误的是:( a ) A.两者都满足开闭原则:静态工厂以 if else方式创建对象,增加需求的时候会修改源代码 B.静态工厂对具体产品的创建类别和创建时机的判断是混和在一
3、起的,这点在工厂方法中 C.不能形成静态工厂的继承结构 D.在工厂方法模式中,对于存在继承等级结构的产品树,产品的创建是通过相应等级结构的工厂创建的。 10.对象组合的有点表述不当的是( d ) A. 容器类仅能通过被包含对象的接口来对其进行访问。 B. “黑盒”复用,封装性好,因为被包含对象的内部细节对外是不可见。 C. 通过获取指向其它的具有相同类型的对象引用,可以在运行期间动态地定义(对象的)组合 D.造成极其严重的依赖关系。 11.对于依赖倒转的表述错误的是( e ) A.依赖于抽象而不依赖于具体,也就是针对接口编程。 B.依赖倒转的接口并非语法意义上的接口,而是,一个类对其他对象进行
4、调用时,所知道的方法集合。 C.从选项 B的角度论述,一个对象可以有多个接口。 D.实现了同一接口的对象,可以在运行期间,顺利地进行替换。而且不必知道所示用的对象是那个实现类的实例。 E.此题没有正确答案。 12、软件危机的原因不包括(D):A、 用户需求不明确 B、缺乏正确的理论指导C、软件规模越来越大 D、软件复杂度越来越低 13、下列选项中,哪个不是重用组织框构中的主要组成成员: (C) A 协调组 B 构件应用组 C 构件需求组 D 构件开发组 14、常用的软件体系结构评估的方法不包括:(C) A 体系结构权衡分析法 B.软件体系结构分析法 C 系统体系结构分析法 D 中间设计的积极评
5、审 15、下列选项中,不是软件危机的原因的是:(C ) A、 用户需求不明确 B、 缺乏正确的理论指导 C、 软件规模越来越小 D、 软件的复杂度越来越高 16、不属于软件体系结构的核心模型的最基本的元素是 (D) A 构件 B 连接件 C 配置 D 角色 17、选项中部不属于“4+1”试图模型的是:(C) A 逻辑视图 B 物理视图 C 连接视图 D 开发视图 18、 Kruchten 在 1995 提出了“4+1”模型,从 5 个不同的视角来描述软件体系结构,其中“4”不包括的视图是(D) A 逻辑视图 B 开发视图 C 物理视图 D 场景视图 19、下列哪个不是黑板系统的组成部分?(D)
6、 A.知识源 B.黑板数据结构 C.控制 D.内存 20、对动态软件体系结构的形式化描述通常可以采用的方法?(D) A、图形化方法 B、代数进程方法 C、逻辑方法 D、以上皆是 21、Rapide 是一种可执行 ADL,其目的在于通过定义并模拟基于事件的行为对分布式并发系统建模。Rapide 是由 5种子语言构成。以下选项中的语言均为 Rapide语言的是(A) A 类型语言、模式语言、约束语言、可执行语言 B 状态语言、模式语言、约束语言、体系结构语言C 类型语言、结构语言、约束语言、可执行语言 D 状态语言、结构语言、约束语言、体系结构语言 22、Unicon 提供了一组预先定义的构件和连
7、接件类型,体系结构的开发者可以从中选择合适的构件或连接件,这是为了达到(A) A 提供对大量构件和连接件的统一访问 B 区分不同类型的构件和连接件,以便对体系结构配置进行检查 C 支持不同表达方式和不同开发人员的分析工具 D 支持现有构件的使用 23、下列选项中关于 ADL与其他语言的比较说法中错误的是(B) A ADL 与需求语言的区别在于后者描述的问题空哦关键,而前者则扎根于解空间中 B ADL 与建模语言的区别在于后者对部分的关注要大于对整体的关注 C ADL 与传统的程序设计语言的构成元素由许多相同和相似之处,有各自有着很大的不同 D ADL 集中在构件的表示上。 24、下列选项中,哪
8、个不是重用组织框构中的主要组成成员:(C) A 协调组 B 构件应用组 C 构件需求组 D 构件开发组 25、下面哪个不属于设计模式方法分类(D) A Coad的面向对象模式 B 代码模式 C 框架应用模式 D 遗传算法 26、下列选项中,不是软件危机的原因的是:(C) A、 用户需求不明确 B、 缺乏正确的理论指导 C、 软件规模越来越小 D、 软件的复杂度越来越高 27、一般来说,模式有以下四个基本成分: ( A ) 、问题、解决方案、效果 。 A模式名称 B. 时间 C. 地点 D. 思想 28、以下不属于传统的软件测试和基于体系结构的软件测试都需要研究的对象是?(D ) A、测试内容
9、B、测试准则 C、测试用例 D、测试语言 29、下列哪个不是黑板系统的组成部分?(D) A.知识源 B.黑板数据结构 C.控制 D.内存 30、对动态软件体系结构的形式化描述通常可以采用的方法?(D) A、图形化方法 B、代数进程方法 C、逻辑方法 D、以上皆是 31、Rapide 是一种可执行 ADL,其目的在于通过定义并模拟基于事件的行为对分布式并发系统建模。Rapide 是由 5种子语言构成。以下选项中的语言均为 Rapide语言的是(A) A 类型语言、模式语言、约束语言、可执行语言 B 状态语言、模式语言、约束语言、体系结构语言C 类型语言、结构语言、约束语言、可执行语言 D 状态语
10、言、结构语言、约束语言、体系结构语言 二、填空题填空题: 1软件体系结构是指一个系统的有目的的设计和规划,这个设计规划既不描述 活动 ,也不描述 系统怎样开发 ,它只描述系统的 组成元素及其相互的 交互协作 。 2一个 UML模型只描述了一个系统 要做什么,它并没告诉我们系统是怎么做。 3当一个类的对象可以充当多种角色时, 自身 关联就可能发生。 4最通常的依赖关系是一个类操作的 形构 中用到了另一个类的定义。 5组成是 强类型 的聚集,因为聚集中的每个部分体只能属于一个整体。 6实现的符号和继承的符号有相似之处,两者的唯一差别是实现关系用虚线 表示,继承关系用(实线)表示。 7UML 背后的
11、两个重量级概念是 用例 和 面向对象。8状态图和类图、顺序图不同之处在于,后两种图能够对 多个对象 建立模型,而状态图只是对 1个对象建立模型。 9当逻辑发生分支时,在顺序图中用生命线发生的分支表示,在协作图中用 嵌套的序号 表示。 10顺序图强调的是交互的 时间顺序 ,协作图强调的是交互的 空间关系 和参与交互的对象的上下文环境。 11、SAAM 评估方法可以对许多_质量属性_以及_系统功能_进行快速评估。 12、软件重用是为了解决 _软件危机_ 13、_软件体系结构_的开发是大型软件系统开发的关键环节。14、计的主要目的是满足对软件的_质量需求_。15、每一个设计模式都集中于一个特定的 设
12、计问题 ,描述了 相互通信的对象或者类 以及 解决方案 和 解决效果 。 16、面向对象系统中功能复用的两种最常用技术是 对象组合 和 类继承 。 17、设计模式中应优先使用 对象组合 而不是 类继承 。18、软件元素包括 程序代码 、 测试用例 、 设计文档 、 设计过程 、 需求分析文档 甚至领域知识。19软件工程包括 3个要素: 方法 、 工具 和 过程 。20、采用层次式软件体系结构,将产品的系统构件模型定义为 4个层次,分别为: 系统结构层 、 通用类构件层 、 业务构件层 、 表现层 。21、软件重用过程中需要重用的开发组织结构予以支持,它包括:_构件开发组_、构件应用组、协调组
13、三组成员组成。 22、软件体系结构应建立于传统的软件开发过程的需求分析和_软件设计_阶段之间。 23、C/S 体系结构服务器主要负责有效的管理系统的资源主要负责数据库安全性的要求、数据库访问并发性的控制、数据库前端的客户应用程序的全局数据完整性规则和_数据库的备份与恢复_。 24、软件体系结构的描述方法主要有图形表达工具、模块内连接语言、基于软构件的系统描述语言和 软件体系结构描述语言 。 25、ADL 是一种在底层语义模拟支持下的形式化语言。基于底层语义的工具为体系结构的表示、分析、 演化 、细化、设计过程等提供支持。 26、典型的 ADL在充分继承和吸收传统程序设计语言的 精确性 和严格性
14、特点的同时,还应该具有构造、抽象、重用、组合、异构和分析推理等多种能力和特性。 组合 能力指的是 ADL使得其描述的每一个系统元素都有其自己的局部结构。 27、体系结构的动态性主要分为几类:交互式动态性,结构化动态性、_ 体系结构化动态性_。 28、一个完整的 Web服务包括 3种逻辑构件:服务提供、服务代理、_服务请求 _。 29、Web 服务开发生命周期分为:构建、部署、运行、_管理_四个阶段。 30、设计模式的基本成分包括_模式名称_、问题、解决方案、效果。 31、_软件体系结构_的开发是大型软件系统开发的关键环节。 三、判断题1、软件重用是指重复使用已有的软件产品用于开发新的软件系统,
15、以达到提高软件系统的开发质量与效率,降低开发成本的目的。 ()2、可重用技术对构件库组织方法要求不仅要支持精确匹配,还要支持相似构件的查找。( )3、超文本组织方法与基于数据库系统的构件库组织方法不同,它基于全文检索技术。() 4、软件体系结构充当一个理解系统构件和它们之间关系的框架,特别是那些始终跨越时间和实现的属性。 ()5、构件可以由其他复合构建和原子构件通过连接而成。 ()6、体系的核心模型由 5 种元素组成:构建、连接体、配置、端口和角色( )7、软件体系结构的核心由 5 种元素组成:构件、连接件、配置端口和角色。其中,构件、连接件和配置是最基本的元素() 8、开发视图主要支持系统的
16、功能需求,即系统提供给最终用户的服务 (X)9、HMB 风格不支持系统系统自顶向下的层次化分解,因为它的构件比较简单。 (X) 10、正交软件体系结构由组织层和线索的构件构成。 () 11、层次系统中支持抽象程度递增的系统设计是设计师可以把一个复杂系统按照递增的步骤进行分解,同时支持功能增强,但是不支持重用。 (X)12、ATAM 评估方法主要通过理解体系结构方法来分析体系结构,在这一步,由设计师确定体系结构方法,由分析小组捕获并进行分析。 (X )13、评估方法质量属性中安全性不包括完整性。 (X)五、简答题1、如何理解基于体系结构的软件测试的?软件体系结构测试与程序测试不同,它是检查软件设
17、计的适用性,这种测试不考虑软件的实现代码。与传统的软件测试一样,基于体系的软件测试也需要研究测试内容、测试准则、测试用例、测试充分性及测试方法。在传统测试方法中,测试准则是基于实现和规约得到的,基于实现的测试准则是结构化的,它是利用软件的内部结构来定义测试数据以覆盖系统。实现完整测试的典型方法是利用测试准则定义测试需求,进而生成测试用例。2、系统的可靠性可以通过哪些步骤来模型化?通过系统的详细说明书,确定系统所采用的体系结构风格。把每一个体系结构风格转换成状态图,并计算状态视图中每一个状态的可靠性及其相应的迁移概率。通过整个系统的体系结构视图,把所有的状态视图集成为一个整体状态视图。通过整体状
18、态视图构造系统的迁移矩阵,并计算系统的可靠性。3、所有评估方法关注的质量属性有哪几个?1.性能 2.可靠性(容错,健壮性) 3.可用性 4.安全性 5.可修改性 6.功能性 7.可变性 8.集成性 9.互操作性4、ATAM 评估方法的基本步骤是什么?(1)描述 ATAM方法 (2)描述业务动机(3)描述体系结构(4)确定体系结构方法(5)生成质量属性效用树(6)分析体系结构方法(7)讨论和分级场景(8)分析体系结构方法(9)描述评估结果5、软件体系结构评估对主要方式有哪些?1.基于调查问卷或检查表的评估方式:调查问卷是一系列可以应用到各种体系结构评估对相关问题,这些问题可能涉及体系结构对设计决
19、策,文档,描述本身对细节问题等质量属性。这一评估方法比较灵活自由,可评估多种质量属性,也可以在软件体系结构设计的多个阶段进行。尽管此方式相对比较主观,但他仍然是进行软件体系结构评估对重要途径之一。2.基于场景的评估方式:场景是一系列有序使用或修改系统的步骤。这种软件体系评估方式分析软件体系结构对场景也就是对系统对使用或修改活动的支持程度,从而判断该体系结构对这一场景所代表对质量需求对满足程度。3.基于度量的评估方式:度量是指为软件产品对某一属性所赋予对数值。此评估技术涉及 3个基本活动:首先需要建立属性和质量之间的映射关系,然后从软件体系结构文档中获取度量信息,最后根据映射原则分析推导出系统对
20、某些质量属性。4.比较:从通用性,评估者对体系结构对了解程度,评估实施阶段,评估方式的客观程度等方面对三类方式进行简单的比较。 6、简述双生命周期中的领域工程 阶段的主要任务及内容。答:(1)领域分析。利用现有的系统设计、体系结构和需求建立领域模型。(2 )领域设计。用领域模型确定领域/产品线的共性和可变性,为产品线设计体系结构。(3 ) 领域实现。基于领域体系结构开发领域可重用资源(构件、文档、代码生成器) 。7、框架技术的基本特征有哪些?答案:1、反向控制 2、可重用性 3、扩展性1、 模块化或结构化:框架有固定的、稳定的接口和封装的热点8、软件产品线的划分依据有?1、该组织是用演化方式还
21、是革命方式引入产品线开发过程的。2、是基于现有产品还是开发全新的产品线。9、软件产品线的过程模型有哪些?答案:1、双周期模型 2、SEI 模型 3、三生命周期模型10、试说明软件体系结构的风险分析方法主要步骤?1.采用体系结构描述语言对体系结构进行建模; 2.通过模拟方法进行复杂性分析;3.通过 FMEA 和模拟运行进行严重性分析;4.为构建和连接件开发其启发式风险因子;5.建立用于风险评估的 CDG ;6.通过图论中的算法进行风险评估和分析;11、什么是设计模式?它与风格、框架有什么区别与联系?设计模式是对通用设计问题的重复解决方案。软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用
22、模式。软件框架是整个或部分系统的可重用设计。区别:模式比框架更加抽象;框架是模式的特例化;联系:设计模式被实现成为框架后,可以极大的减轻从设计到实现的鸿沟;利用了模式的框架比没有利用模式的框架更容易理解、更能被设计与实现重用;通常成熟的框架包含了多种设计模式;一个框架不仅可以具体实现一个模式,还可以具体的实现多个模式;设计模式与风格两者为近义词,通常情况下可以互相通用;风格主要是指大的,宏观的设计。模式既可宏观,又可微观。12、什么是软件危机,软件危机的具体表现有哪些?软件危机:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。软件危机的表现:软件成本日益增长 ;开发进度难以控制;软件质量差;软件维护困难