资源描述
《软件体系结构》期末复习题
简答题:
1、 软件体系结构建模的种类有:
结构模型、 框架模型、 动态模型、 过程模型、 功能模型。
2、 ”4+1”视图模型从5个不同的视角包括:
逻辑视图、 进程视图、 物理视图、 开发视图和场景视图来描述软件体系结构。
3、 构件: 是具有某种功能的可重用的软件模板单元, 表示了系统中主要的计算元素和数据存储。
连接件: 表示构件之间的交互。
配置: 表示构件和连接件的拓扑逻辑和约束。
端口: 表示构件和外部环境的交互点。
角色: 定义了该连接交互的参与者。
4、 画出”4+1”视图模型图, 分析各部分的原理和功能。
5、 软件体系结构风格:
是描述某一特定应用领域中系统组织方式的惯用模式。
6、 软件体系结构
( Software Architecture)
软件体系结构以组件和组件交互的方式定义系统, 说明需求与成品系统之间的对应关系, 描述系统级别的可伸缩性、 能力、 吞吐量、 一致性和兼容性等属性。 软件体系结构由组件、 连接件和属性组成。
7、 分层系统的优点有:
1) 支持基于抽象程度递增的系统设计, 使设计者能够把一个复杂系统按递增的步骤进行分解;
2) 支持功能增强, 因为每一层至多和相邻的上下层交互, 因此功能的改变最多影响相邻的上下层;
3) 支持重用。只要提供的服务接口定义不变, 同一层的不同实现能够交换使用。这样, 就能够定义一组标准的接口, 而允许各种不同的实现方法。
8、 分层系统的缺点有:
1) 并不是每个系统都能够很容易地划分为分层的模式, 甚至即使一个系统的逻辑结构是层次化的, 出于对系统性能的考虑, 系统设计师不得不把一些低级或高级的功能综合起来;
2) 很难找到一个合适的、 正确的层次抽象方法。
9、 B/S体系结构的优点有什么?
答: 1) 基于B/S体系结构的软件, 系统安装、 修改和维护全在服务器端解决。用户在使用系统时, 仅仅需要一个浏览器就可运行全部的模块, 真正达到了”零客户端”的功能, 很容易在运行时自动升级。
2) B/S体系结构还提供了异种机、 异种网、 异种应用服务的联机、 联网、 统一服务的最现实的开放性基础。
10、 B/S体系结构的缺点有什么?
答: 1) B/S体系结构缺乏对动态页面的支持能力, 没有集成有效的数据库处理功能。
2) B/S体系结构的系统扩展能力差, 安全性难以控制。
3) 采用B/S体系结构的应用系统, 在数据查询等响应速度上, 要远远地低于C/S体系结构。
4) B/S体系结构的数据提交一般以页面为单位, 数据的动态交互性不强, 不利于在线事务处理(OLTP)应用。
11、 DSSA
答案: DSSA就是在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构
11、 软件体系结构的动态性主要分为:
交互式动态性、 结构化动态性、 体系结构动态性等三类。
12、 请画出基于构件的动态系统结构模型画。
13、 软件产品线
产品线是一个产品集合, 这些产品共享一个公共的、 可管理的特征集, 这个特征集能满足选定的市场或任务领域的特定需求。这些系统遵循一个预描述的方式, 在公共的核心资源(core assets)基础上开发的
14、 SOA
即service-oriented architecture, 面向服务架构。它是一个组件模型, 它
将应用程序的不同功能单元(称为服务)经过这些服务之间定义良好的接
口和契约联系起来。接口是采用中立的方式进行定义的, 它应该独立于
实现服务的硬件平台、 操作系统和编程语言。这使得构建在各种这样的
系统中的服务能够以一种统一和通用的方式进行交互。
14、 RIA
15、 中间件
15、 设计模式
答: 一些设计面向对象的软件开发的经验总结, 就是系统的命名、 解释、 和评价某一个重要的面向对象的可重现的面向对象的设计方案。
15、 软件体系结构测试和传统软件测试区别
16、 UML中的交互图有两种, 分别是顺序图和协作图, 请分析一下两者之间的主要差别和各自的优缺点。掌握利用两种图进行的设计的方法。
答: 顺序图可视化地表示了对象之间随时间发生的交互, 它除了展示对象之间的关联, 还显示出对象之间的消息传递。与顺序图一样, 协作图也展示对象之间的交互关系。顺序图强调的是交互的时间顺序, 而协作图强调的是交互的语境和参与交互的对象的整体组织。顺序图按照时间顺序布图, 而协作图按照空间组织布图。顺序图能够清晰地表示消息之间的顺序和时间关系, 但需要较多的水平方向的空间。协作图在增加对象时比较容易, 而且分支也比较少, 但如果消息比较多时难以表示消息之间的顺序。
17. 管道过滤器风格结构特点
( 1) 使得软构件具有良好的隐蔽性和高内聚、 低耦合的特点;
( 2) 允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成; ( 3) 支持软件重用。
( 4) 系统维护和增强系统性能简单。
( 5) 允许对一些如吞吐量、 死锁等属性的分析;
( 6) 支持并行执行。
可是, 这样的系统也存在着若干不利因素。
( 1) 一般导致进程成为批处理的结构。这是因为虽然过滤器可增量式地处理数据, 但它们是独立的, 因此设计者必须将每个过滤器看成一个完整的从输入到输出的转换。
( 2) 不适合处理交互的应用。当需要增量地显示改变时, 这个问题尤为严重。
( 3) 因为在数据传输上没有通用的标准, 每个过滤器都增加了解析和合成数据的工作, 这样就导致了系统性能下降, 并增加了编写过滤器的复杂性。
18. 什么是设计模式? 它与风格、 框架有什么区别与联系?
设计模式是对通用设计问题的重复解决方案。
软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。
软件框架是整个或部分系统的可重用设计
模式比框架更加抽象
框架是模式的特例化
设计模式被实现成为框架后, 能够极大的减轻从设计到实现的鸿沟
利用了模式的框架比没有利用模式的框架更容易理解、 更能被设计与实现重用
一般成熟的框架包含了多种设计模式
一个框架不但能够具体实现一个模式, 还能够具体的实现多个模式
设计模式与风格两者为近义词, 一般情况下能够互相通用
风格主要是指大的, 宏观的设计。模式既可宏观, 又可微观。
19. 软件体系结构测试的内容与准则是什么?
内容: 构件端口行为与连接件约束是否一致、 兼容, 单元间的消息是否一致、 可达, 相关端口是否可连接, 体系结构风格是否可满足。
准则: 测试覆盖所有的构件及各个构件的接口。各个连接件的接口、 构件之间的直接连接、 构件之间的间接连接。
20、 请简述MVC, 介绍各自的作用和用途。
答案: MVC是三个单词的缩写,分别为: 模型(Model), 视图(View)和控制
Controller)。MVC模式的目的就是实现Web系统的职能分工。
Model是应用对象, 所有的操作都在这里实现, 它若需要取得视图中的对象或更新视图, 需经过控制器来进行处理。
View是模型在屏幕上的表示, 模型在进行操作后, 其结果是经过视图显示的。
Controller用于管理用户与视图发生的交互, 定义用户界面对用户输入的响应方式。一旦用户需要对模型进行处理, 不能直接执行模型, 而必须经过控制器间接实现的。
选择题
1、 设计模式一般用来解决什么样的问题( A )
A.同一问题的不同表相 B不同问题的同一表相
C.不同问题的不同表相 D.以上都不是
2、 下列属于面向对象基本原则的是( C )
A.继承 B.封装 C.里氏代换 D都不是
3、 Open-Close原则的含义是一个软件实体( A )
A.应当对扩展开放, 对修改关闭.
B.应当对修改开放, 对扩展关闭
C.应当对继承开放, 对修改关闭
D.以上都不对
5、 要依赖于抽象, 不要依赖于具体。即针对接口编程, 不要针对实现编程,是( D )的表述
A.开-闭原则
B.接口隔离原则
C.里氏代换原则
D.依赖倒转原则
7、 设计模式的两大主题是( D )
A.系统的维护与开发 B 对象组合与类的继承
C.系统架构与系统开发 D.系统复用与系统扩展
9、 下列模式中,属于行为模式的是( B )
A.工厂模式 B观察者 C适配器 D 以上都是
10、 常见的软件体系结构评估的方法不包括( C ) 。
A体系结构权衡分析法 B.软件体系结构分析法
C系统体系结构分析法 D.中间设计的积极评审
11、 不属于软件体系结构的核心模型的最基本的元素是 ( D )
A 构件 B 连接件 C 配置 D 角色
12、 选项中部属于”4+1”试图模型的是: ( C )
A 逻辑视图 B 物理视图 C 连接视图 D 开发视图
13、 下列说法错误的一项的是( D )
A: 逻辑视图主要支持系统的功能需求, 即系统提供给最终用户的服务
B: 开发视图也称模块视图, 主要侧重于软件模块的组织和管理
C: 进程视图侧重与系统的运行特性, 主要关注一些功能性需求, 例如系统的性能和可用性。
D: 物理视图主要考虑如何吧软件映射到硬件上, 它不需要要考虑到系统性能、 规模、 可靠性等。
14、 在三层C/S体系结构中, _________是最重要的构件。( A )
A 中间件 B 末尾件
C 功能层 D 数据层
15、 C/S系统中, 服务器的以下任务中哪一个是错的? ( A )
A 数据库一致性要求
B 数据库访问并发性控制
C 数据库前端的客户应用程序的全局数据完整性规则
D 数据库的备份与恢复
16、 与C/S体系结构相比, B/S体系结构也有许多不足之处一下说法正确的是( A )
A B/S体系结构缺乏对动态页面的支持能力, 没有集成有效的数据库处理能力
B B/S体系结构的系统扩展能力差, 可是安全性比较容易控制
C 采用B/S架构构的应用系统, 在数据查询等响应速度上, 要远远的高于C/S体系结构
D B/S体系结构的数据提交一般以页面为单位, 数据的动态交互性不强, 利于在线事务处理( Online Transaction Processing,OLTP) 应用。
17、 以下关于软件体系结构描述方法说法错误的是( B )
A图形表示工具在软件设计中占据主导地位。
B由于软件设计语言和模块内连接语言具有严格的语义基础, 因此它们能支持较小的软件单元进行描述。
C基于软构件的系统描述语言将软件系统描述成一种是由许多以特定形式相互作用的特殊软件实体构造组成的组织或系统。
D软件体系结构描述语言是参照传统程序设计语言的设计语言的设计和开发经验, 重新设计、 开发和使用针对软件体系结构描述语言。
18、 下列选项中关于ADL与其它语言的比较说法中错误的是( B )
ADL与需求语言的区别在于后者描述的问题空哦关键, 而前者则扎根于解空间中
ADL与建模语言的区别在于后者对部分的关注要大于对整体的关注
ADL与传统的程序设计语言的构成元素由许多相同和相似之处, 有各自有着很大的不同
ADL集中在构件的表示上。
19、 对动态软件体系结构的形式化描述一般能够采用的方法? ( D )
A、 图形化方法 B、 代数进程方法 C、 逻辑方法 D、 以上皆是
20、 以下哪些特征不属于动态体系结构特征( D ) ?
A 可构造性动态特征
B 适应性动态特征
C 智能性动态特征
D 安全性动态特征
21、 一般, 一个Web服务能够分为4个逻辑层, 分别为数据层( Data Layer) 、 数据访问层( Data Access Layer) 、
业务层( Business Layer) 和监听者( Listener) 。离客户端最近的是监听者, 离客户最远的是______: ( A )
A 数据层( Data Layer)
B 数据访问层( Data Access Layer)
C 业务层( Business Layer)
D 监听者( Listener)
22、 Web服务是采用___ B___格式的信息来定义和描述对外的公共接口和绑定。
A.URI B.XML
C.SOAP D.HTTP
23、 下面哪个不属于设计模式方法分类( D )
A Coad的面向对象模式 B 代码模式
C 框架应用模式 D 遗传算法
24、 一般来说, 模式有以下四个基本成分: ( A ) 、 问题、 解决方案、 效果 。
A.模式名称 B. 时间
C. 地点 D. 思想
25、 软件体系结构的文档要求与软件开发项目中的其它文档是相似的, 下列哪项属于体系结构文档化过程的主要输出结果( A )
A 体系结构需求规格说明 B 体系结构概要设计说明
C 体系结构详细设计说明 D 体系结构总体框架说明
26、 在设计模式目录下, 以下哪种设计模式是关于类的( A )
A. Factory Method B.Builder
C.Prototype D.Bridge
27、 下列选项中不是软件体系结构的严重性分级的一项是( C )
A.灾难性的 B.危急的
C.较大的 D.边际性的
28、 以下不属于传统的软件测试和基于体系结构的软件测试都需要研究的对象是? ( D )
A、 测试内容 B、 测试准则
C、 测试用例 D、 测试语言
29、 在体系结构中, 应用于当前环境中有多个构建同时运行的情况, 主要用来提高系统性能的结构风格是( B )
A、 顺序结构风格 B、 并行/管道—过滤器结构风格
C、 容错结构风格 D、 调用—返回结构风格
30、 下列哪一个测试过程是测试构件之间的接口以保证构件能够交互, 它将构件本身抽象为单元, 并关注与构件间的消息传递, 构件的交互行为能够经过形式化规约得到, 能够提前进行( C )
A、 单元测试 B、 模块测试
C、 集成测试 D、 系统测试
31、 评估方法质量属性中可修改性不包括( C) 。
A、 可维护性 B、 可扩展性
C.完整性 D.可移植性
32、 ( A ) 是场景中解释或描述风险承担者怎样金发与系统的交互部分。
A.刺激 B.环境
C.响应 D.互操作
33、 软件评估中关注大可修改性包含可维护性, 可扩展性, ( B ) 和结构重组4个方面。
A 。可用性 B 。可移植性
C 。可变性 D 。互操作性
34、 产品线就是由在系统的组成元素和功能方面具有共性和( B ) 相似的多个系统组成的系统族。
A、 异步性 B、 个性
C、 可变性 D、 继承性
35、 一下哪个不是领域工程阶段的主要任务( B ) 。
A、 领域设计 B、 需求分析
C、 领域分析 D、 领域实现
36、 软件危机的原因不包括( D ) :
A.用户需求不明确 B、 缺乏正确的理论指导
C、 软件规模越来越大 D、 软件复杂度越来越低
37、 常见的软件体系结构评估的方法不包括: ( C )
A。体系结构权衡分析法 B。软件体系结构分析法
C。系统体系结构分析法 D。中间设计的积极评审
38、 不属于软件体系结构的核心模型的最基本的元素是( D )
A 构件 B 连接件 C 配置 D 角色
39、 选项中部属于”4+1”试图模型的是: ( C )
A 逻辑视图 B 物理视图
C 连接视图 D 开发视图
40、 某公司欲对其内部的信息系统进行集成, 需要实现在系统之间快速传递可定制格式的数据包, 而且当有新的数据包到达时, 接收系统会自动得到通知。另外还要求支持数据重传, 以确保传输的成功。针对这些集成需求, 应该采用 ( D ) 的集成方式。
A. 远程过程调用 B. 共享数据库C. 文件传输 D. 消息传递
41、 在RUP中采用”4+1”视图模型来描述软件系统的体系结构。在该模型中, 最终用户侧重于 ( C) , 系统工程师侧重于 ( D) 。
A. 实现视图 B. 进程视图 C. 逻辑视图 D. 部署视图
42、 某银行系统采用Factory Method方法描述其不同账户之间的关系, 设计出的类图如下所示。其中与Factory Method中的”Creator”角色相对应的类是 ( A) ; 与”Product”角色相对应的类是( B) 。 )
A. Bank B. Account C. Checking D. Savings
43、 是一个独立可交付的功能单元, 外界经过接口访问其提供的服务。( C)
A. 面向对象系统中的对象( Object) B. 模块化程序设计中的子程序( Subroutine)
C. 基于构件开发中的构件( Component) D. 系统模型中的包( Package)
44、 软件的横向重用是指重用不同应用领域中的软件元素。 ( C) 是一种典型的、 原始的横向重用机制。( )
A. 对象 B. 构件 C. 标准函数库 D. 设计模式
45、 在基于构件的软件开发中, ( A ) 描述系统设计蓝图以保证系统提供适当的功能; ( B) 用来了解系统的性能、 吞吐率等非功能性属性。
A. 逻辑构件模型 B. 物理构件模型C. 组件接口模型 D. 系统交互模型
46.对象管理组织( OMG) 基于CORBA基础设施定义了四种构件标准。其中, ( D ) 的状态信息是由构件自身而不是由容器维护。
A. 实体构件 B. 加工构件C. 服务构件 D. 会话构件
47、 分布式系统开发中, 一般需要将任务分配到不同的逻辑计算层。业务数据的综合计算分析任务属于 ( B) 。A. 表示逻辑层 B. 应用逻辑层 C.数据处理层 D. 数据层
48、 在客户机/服务器系统开发中, 采用 ( D ) 时, 应将数据层和数据处理层放置于服务器, 应用逻辑层、 表示逻辑层和表示层放置于客户机。
A. 分布式表示结构 B. 分布式应用结构C. 分布式数据和应用结构 D. 分布式数据结构
49、 软件架构是降低成本、 改进质量、 按时和按需交付产品的关键因素。以下关于软件架构的描述, 错误的是 ( A ) 。
A. 根据用户需求, 能够确定一个最佳的软件架构, 指导整个软件的开发过程B. 软件架构设计需要满足系统的质量属性, 如性能、 安全性和可修改性等C. 软件架构设计需要确定组件之间的依赖关系, 支持项目计划和管理活动D. 软件架构能够指导设计人员和实现人员的工作
50、 某游戏公司欲开发一个大型多人即时战略游戏, 游戏设计的目标之一是能够支持玩家自行创立战役地图, 定义游戏对象的行为和之间的关系。针对该目标, 公司应该采用( D ) 架构风格最为合适。
A. 管道-过滤器 B. 隐式调用 C. 主程序-子程序 D. 解释器
51、 (A)将一个类的接口转换成客户希望的另外一个接口, 使得原本由于接口不兼容而不能一起工作的那些类能够一起工作。
A. Adapter( 适配器) 模式 B. Command( 命令) 模式
C. Singleton( 单例) 模式 D. Strategy( 策略) 模式
52、 UML提供了一系列的图支持面向对象的分析与设计, 其中____(1)___给出系统的静态设计视图; ___(2)____对系统的行为进行组织和建模是非常重要的; ____(3)___和____(4)___都是描述系统动态视图的交互图, 其中___(3)___描述了以时间顺序组织的对象之间的交互活动, ___(4)____强调收发消息的对象的组织结构。
A、 状态图 B、 用例图 C、 时序图 D、 配置图
E、 协作图 F、 类图
答: ( 1) F ( 2) B ( 3) C ( 4) E
设计题:
1、 设计一个简化的网上个人银行查询系统, 用户能够经过Internet查询自己帐户的收支明细、 余额和修改密码。
( 1) . 说明系统的若干质量属性, 并以场景图的形式分别描述一个可用性场景和一个安全性场景。
( 2) . 使用ADD方法说明系统的初步设计。
( 3.) 描述ATAM方法的步骤。
( 4) . 选取两个质量属性以表格形式生成质量属性效用树
参考答案:
分别描述两个质量属性的场景图。
下面场景表现了网上个人银行查询系统的性能。
500用户户
试图同时登陆系统
网上个人银行查询系统
平均响应
时间5秒
正常运行
请求被处理
下面场景表现了网上个人银行查询系统的修改性。
希望改变操作界面
代码
只修改界面代码或配置文件
维护时
用户
修改不产生副作用, 在2小时内完成
场景能够用文本表示, 也能够用图形表示。
2.请描述构架设计的ADD方法中对模块求精的5个步骤。
答题要点:
a. 从具体的质量场景和功能需求集合中选择构架驱动因素。
b. 选择满足构架驱动因素的构架模式。
c. 实例化模块并根据用例分配功能, 使用多个视图进行表示。
d. 定义子模块的接口。
e. 验证用例和质量场景并对其进行求精, 使它们成为子模块的限制。
3. 描述ATAM方法的步骤。)
ATAM方法的表述
商业动机的表述
构架的表述
对构架方法进行分类
生成质量属性效用树
分析构架方法
集体讨论并确定场景优先级
再次分析构架方法
结果的表述
4. 选取两个质量属性以表格形式生成质量属性效用树
效用树的表格形式如下表所示。
质量属性
属性求精
场景
场景用文字描述, 并要标明场景的优先级和实现的难易。
系统的质量属性有多种, 请列举其中六种:
可用性、 可修改性、 性能、 安全、 可测试性、 易用性、 可移植、 可重用、 可集成( 任选六个) 。
2、 画出下面场景的时序图:
1.收款员启动一次销售(makeNewSale())
2.收款员输入商品标识(enterItem(itemID,quantity))
3.销售结束, 系统计算并显示总金额( endSale( ) )
4.顾客付款, 系统处理支付。(makePayment(amount))
参考答案如下:
3、 在电话系统中假设有两个打电话的个案: 使用电话卡和对方付款, 其中Phone User是电话用户, 请画出其usecase diagram。
答: usecase diagram如下所示:
展开阅读全文