文档库 最新最全的文档下载
当前位置:文档库 › 软件体系结构

软件体系结构

软件体系结构
软件体系结构

软件体系结构试题

一、选择题

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、下列模式中,属于行为模式的是( 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.静态工厂对具体产品的创建类别和创建时机的判断是混和在一起的,这点

在工厂方法中

C.不能形成静态工厂的继承结构

D.在工厂方法模式中,对于存在继承等级结构的产品树,产品的创建是通过

相应等级结构的工厂创建的。

10.对象组合的有点表述不当的是( d )

A. 容器类仅能通过被包含对象的接口来对其进行访问。

B. “黑盒”复用,封装性好,因为被包含对象的内部细节对外是不可见。

C. 通过获取指向其它的具有相同类型的对象引用,可以在运行期间动态地定义(对象的)组合

D.造成极其严重的依赖关系。

11.对于依赖倒转的表述错误的是( e )

A.依赖于抽象而不依赖于具体,也就是针对接口编程。

B.依赖倒转的接口并非语法意义上的接口,而是,一个类对其他对象进行调

用时,所知道的方法集合。

C.从选项B的角度论述,一个对象可以有多个接口。

D.实现了同一接口的对象,可以在运行期间,顺利地进行替换。而且不必知

道所示用的对象是那个实现类的实例。

E.此题没有正确答案。

12、软件危机的原因不包括(D):

A、用户需求不明确

B、缺乏正确的理论指导

C、软件规模越来越大

D、软件复杂度越来越低

13、下列选项中,哪个不是重用组织框构中的主要组成成员:(C)

A.协调组B.构件应用组C.构件需求组D.构件开发组

14、常用的软件体系结构评估的方法不包括:(C)

A体系结构权衡分析法 B.软件体系结构分析法

C系统体系结构分析法D中间设计的积极评审

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)

A.知识源

B.黑板数据结构

C.控制

D.内存

20、对动态软件体系结构的形式化描述通常可以采用的方法?(D)

A、图形化方法

B、代数进程方法

C、逻辑方法

D、以上皆是

21、Rapide 是一种可执行ADL,其目的在于通过定义并模拟基于事件的行为对分布式并发系统建模。Rapide是由5种子语言构成。以下选项中的语言均为Rapide语言的是(A)A.类型语言、模式语言、约束语言、可执行语言

B.状态语言、模式语言、约束语言、体系结构语言

C.类型语言、结构语言、约束语言、可执行语言

D.状态语言、结构语言、约束语言、体系结构语言

22、Unicon提供了一组预先定义的构件和连接件类型,体系结构的开发者可以从中选择合适的构件或连接件,这是为了达到(A)

A.提供对大量构件和连接件的统一访问

B.区分不同类型的构件和连接件,以便对体系结构配置进行检查

C.支持不同表达方式和不同开发人员的分析工具

D.支持现有构件的使用

23、下列选项中关于ADL与其他语言的比较说法中错误的是(B)

A.ADL与需求语言的区别在于后者描述的问题空哦关键,而前者则扎根于解空间中B.ADL与建模语言的区别在于后者对部分的关注要大于对整体的关注

C.ADL与传统的程序设计语言的构成元素由许多相同和相似之处,有各自有着很大的不同D.ADL集中在构件的表示上。

24、下列选项中,哪个不是重用组织框构中的主要组成成员:(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、测试内容

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.状态语言、结构语言、约束语言、体系结构语言

二、填空题

填空题:

1.软件体系结构是指一个系统的有目的的设计和规划,这个设计规划既不描述活动,也不描述系统怎样开发,它只描述系统的组成元素及其相互的交互协作。2.一个UML模型只描述了一个系统要做什么,它并没告诉我们系统是怎么做。

3.当一个类的对象可以充当多种角色时,自身关联就可能发生。

4.最通常的依赖关系是一个类操作的形构中用到了另一个类的定义。

5.组成是强类型的聚集,因为聚集中的每个部分体只能属于一个整体。

6.实现的符号和继承的符号有相似之处,两者的唯一差别是实现关系用虚线表示,继承关系用(实线)表示。

7.UML背后的两个重量级概念是用例和面向对象。

8.状态图和类图、顺序图不同之处在于,后两种图能够对多个对象

建立模型,而状态图只是对1个对象建立模型。

9.当逻辑发生分支时,在顺序图中用生命线发生的分支表示,在协作图中用嵌套的序号表示。

10.顺序图强调的是交互的时间顺序 ,协作图强调的是交互的空间关系和参与交互的对象的上下文环境。

11、SAAM评估方法可以对许多_质量属性____以及_系统功能_____进行快速评估。

12、软件重用是为了解决_软件危机____

13、__软件体系结构______的开发是大型软件系统开发的关键环节。

14、计的主要目的是满足对软件的__质量需求___。

15、每一个设计模式都集中于一个特定的设计问题,描述了相互通信的对象或者

类以及解决方案和解决效果。

16、面向对象系统中功能复用的两种最常用技术是对象组合和类继承。

17、设计模式中应优先使用对象组合而不是类继承。

18、软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域知识。

19软件工程包括3个要素:方法、工具和过程。

20、采用层次式软件体系结构,将产品的系统构件模型定义为4个层次,分别为:系统结构层、通用类构件层、业务构件层、表现层。

21、软件重用过程中需要重用的开发组织结构予以支持,它包括:_构件开发组_____、构件应用组、协调组三组成员组成。

22、软件体系结构应建立于传统的软件开发过程的需求分析和__软件设计___阶段之间。

23、C/S体系结构服务器主要负责有效的管理系统的资源主要负责数据库安全性的要求、数据库访问并发性的控制、数据库前端的客户应用程序的全局数据完整性规则和__数据库的备份与恢复____。

24、软件体系结构的描述方法主要有图形表达工具、模块内连接语言、基于软构件的系统描述语言和软件体系结构描述语言。

25、ADL是一种在底层语义模拟支持下的形式化语言。基于底层语义的工具为体系结构

的表示、分析、演化、细化、设计过程等提供支持。

26、典型的ADL在充分继承和吸收传统程序设计语言的精确性和严格性特点的同时,还应该具有构造、抽象、重用、组合、异构和分析推理等多种能力和特性。组合能力

指的是ADL使得其描述的每一个系统元素都有其自己的局部结构。

27、体系结构的动态性主要分为几类:交互式动态性,结构化动态性、_体系结构化动态性_。

28、一个完整的Web服务包括3种逻辑构件:服务提供、服务代理、_服务请求 _。

29、Web服务开发生命周期分为:构建、部署、运行、__管理______四个阶段。

30、设计模式的基本成分包括_模式名称____、问题、解决方案、效果。

31、_软件体系结构___的开发是大型软件系统开发的关键环节。

三、判断题

1、软件重用是指重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。(√)

2、可重用技术对构件库组织方法要求不仅要支持精确匹配,还要支持相似构件的查找。

(√)

3、超文本组织方法与基于数据库系统的构件库组织方法不同,它基于全文检索技术。(√)

4、软件体系结构充当一个理解系统构件和它们之间关系的框架,特别是那些始终跨越时间和实现的属性。(√)

5、构件可以由其他复合构建和原子构件通过连接而成。(√)

6、体系的核心模型由5种元素组成:构建、连接体、配置、端口和角色(√)

7、软件体系结构的核心由5种元素组成:构件、连接件、配置端口和角色。其中,构件、连接件和配置是最基本的元素(√)

8、开发视图主要支持系统的功能需求,即系统提供给最终用户的服务(X)

9、HMB风格不支持系统系统自顶向下的层次化分解,因为它的构件比较简单。(X)

10、正交软件体系结构由组织层和线索的构件构成。(√)

11、层次系统中支持抽象程度递增的系统设计是设计师可以把一个复杂系统按照递增的步骤进行分解,同时支持功能增强,但是不支持重用。(X)

12、ATAM评估方法主要通过理解体系结构方法来分析体系结构,在这一步,由设计师确定体系结构方法,由分析小组捕获并进行分析。(X)

13、评估方法质量属性中安全性不包括完整性。(X)

五、简答题

1、如何理解基于体系结构的软件测试的?

软件体系结构测试与程序测试不同,它是检查软件设计的适用性,这种测试不考虑软件的实现代码。与传统的软件测试一样,基于体系的软件测试也需要研究测试内容、测试准则、测试用例、测试充分性及测试方法。在传统测试方法中,测试准则是基于实现和规约得到的,基于实现的测试准则是结构化的,它是利用软件的内部结构来定义测试数据以覆盖系统。实现完整测试的典型方法是利用测试准则定义测试需求,进而生成测试用例。

2、系统的可靠性可以通过哪些步骤来模型化?

①通过系统的详细说明书,确定系统所采用的体系结构风格。

②把每一个体系结构风格转换成状态图,并计算状态视图中每一个状态的可靠性及其相应的迁移概率。③通过整个系统的体系结构视图,把所有的状态视图集成为一个整体状态视图。

④通过整体状态视图构造系统的迁移矩阵,并计算系统的可靠性。

3、所有评估方法关注的质量属性有哪几个?

1.性能

2.可靠性(容错,健壮性)

3.可用性

4.安全性

5.可修改性

6.功能性

7.可变性

8.集成性

9.互操作性

4、ATAM评估方法的基本步骤是什么?

(1)描述ATAM方法(2)描述业务动机(3)描述体系结构(4)确定体系结构方法(5)生成质量属性效用树(6)分析体系结构方法(7)讨论和分级场景

(8)分析体系结构方法(9)描述评估结果

5、软件体系结构评估对主要方式有哪些?

1.基于调查问卷或检查表的评估方式:调查问卷是一系列可以应用到各种体系结构评估对相关问题,这些问题可能涉及体系结构对设计决策,文档,描述本身对细节问题等质量属性。这一评估方法比较灵活自由,可评估多种质量属性,也可以在软件体系结构设计的多个阶段进行。尽管此方式相对比较主观,但他仍然是进行软件体系结构评估对重要途径之一。

2.基于场景的评估方式:场景是一系列有序使用或修改系统的步骤。这种软件体系评估方式分析软件体系结构对场景也就是对系统对使用或修改活动的支持程度,从而判断该体系结构对这一场景所代表对质量需求对满足程度。

3.基于度量的评估方式:度量是指为软件产品对某一属性所赋予对数值。此评估技术涉及3个基本活动:首先需要建立属性和质量之间的映射关系,然后从软件体系结构文档中获取度量信息,最后根据映射原则分析推导出系统对某些质量属性。

4.比较:从通用性,评估者对体系结构对了解程度,评估实施阶段,评估方式的客观程度等方面对三类方式进行简单的比较。

6、简述双生命周期中的领域工程阶段的主要任务及内容。

答:(1)领域分析。利用现有的系统设计、体系结构和需求建立领域模型。

(2)领域设计。用领域模型确定领域/产品线的共性和可变性,为产品线设计体系结构。(3)领域实现。基于领域体系结构开发领域可重用资源(构件、文档、代码生成器)。

7、框架技术的基本特征有哪些?

答案:1、反向控制2、可重用性3、扩展性

1、模块化或结构化:框架有固定的、稳定的接口和封装的热点

8、软件产品线的划分依据有?

1、该组织是用演化方式还是革命方式引入产品线开发过程的。

2、是基于现有产品还是开发全新的产品线。

9、软件产品线的过程模型有哪些?

答案:1、双周期模型 2、SEI模型 3、三生命周期模型

10、试说明软件体系结构的风险分析方法主要步骤?

1.采用体系结构描述语言对体系结构进行建模;

2.通过模拟方法进行复杂性分析;

3.通过FMEA 和模拟运行进行严重性分析;

4.为构建和连接件开发其启发式风险因子;

5.建立用于风险评估的CDG ;

6.通过图论中的算法进行风险评估和分析;

11、什么是设计模式?它与风格、框架有什么区别与联系?

设计模式是对通用设计问题的重复解决方案。软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。软件框架是整个或部分系统的可重用设计。

区别:模式比框架更加抽象;框架是模式的特例化;

联系:设计模式被实现成为框架后,可以极大的减轻从设计到实现的鸿沟;利用了模式的框架比没有利用模式的框架更容易理解、更能被设计与实现重用;通常成熟的框架包含了多种设计模式;一个框架不仅可以具体实现一个模式,还可以具体的实现多个模式;

设计模式与风格两者为近义词,通常情况下可以互相通用;风格主要是指大的,宏观的设计。模式既可宏观,又可微观。

12、什么是软件危机,软件危机的具体表现有哪些?

软件危机:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。

软件危机的表现:软件成本日益增长;开发进度难以控制;软件质量差;软件维护困难

软件体系结构总结

第一章:1、软件体系结构的定义 国内普遍看法: 体系结构=构件+连接件+约束 2、软件体系结构涉及哪几种结构: 1、模块结构(Module) 系统如何被构造为一组代码或数据单元的决策 2、构件和连接件结构(Component-And-Connector,C&C) 系统如何被设计为一组具有运行时行为(构件)和交互(连接件)的元素 3、分配结构(Allocation) 展示如何将来自于模块结构或C&C结构的单元映射到非软件结构(硬件、开发组和文件系统) 3、视图视点模型 视点(View point) ISO/IEC 42010:2007 (IEEE-Std-1471-2000)中规定:视点是一个有关单个视图的规格说明。 视图是基于某一视点对整个系统的一种表达。一个视图可由一个或多个架构模型组成 架构模型 架构意义上的图及其文字描述(如软件架构结构图) 视图模型 一个视图是关于整个系统某一方面的表达,一个视图模型则是指一组用来构建 4、软件体系结构核心原模型 1、构件是具有某种功能的可复用的软件结构单元,表示了系统中主要的计算元素和数据存储。 2.连接件(Connector):表示构件之间的交互并实现构件

之间的连接 特性:1)方向性2)角色3)激发性4)响应特征 第二章 1、软件功能需求、质量属性需求、约束分别对软件架构产生的影响 功能性需求:系统必须实现的功能,以及系统在运行时接收外部激励时所做出的行为或响应。 质量属性需求:这些需求对功能或整个产品的质量描述。 约束:一种零度自由的设计决策,如使用特定的编程语言。 质量原意是指好的程度,与目标吻合的程度,在软件工程领域,目标自然就是需求。 对任何系统而言,能按照功能需求正确执行应是对其最基本的要求。 正确性是指软件按照需求正确执行任务的能力,这无疑是第一重要的软件质量属性。质量属性的优劣程度反映了设计是否成功以及软件系统的整体质量。 系统或软件架构的相关视图的集合,这样一组从不同视角表达系统的视图组合在一起构成对系统比较完整的表达

软件体系结构设计说明书

软件体系结构设计说明书 1.文档简介 [本节主要是描述软件体系结构设计说明书的目的、范围、相关术语、参考资料和本文档的摘要性介绍。软件体系结构设计属于高层设计文档,是符合现代软件工程要求的概要设计。] 1.1 目的 [软件体系结构设计说明书,将从设计的角度对系统进行综合的描述,使用不同的视图来描述其不同方面。在本小节中,将对该文档的结构进行简要的说明,明确该文档针对的读者群,指导他们正确的地使用该文档。] 1.2 范围 [说明该文档所涉及的内容范围,以及将影响的内容。] 1.3 定义、首字母缩写词和缩略语 [与其它文档一样,该文档也需要将本文档中所涉及的所有术语、缩略语进行详细的定义。还有一种可简明的做法,就是维护在一个项目词汇表中,这样就可以避免在每个文档中都重复很多内容。] 1.4参考资料 [在这一小节中,应完整地列出该文档引用的所有文档。对于每个引用的文档都应该给出标题、标识号、日期以及来源,为阅读者查找这些文档提供足够详细的信息。] 1.5 概述 [在本小节中,主要是说明软件体系结构设计说明书各个部分所包含的主要内容,就像一个文章摘要一样。同时也应该对文档的组织方式进行解释。]

2. 体系结构表示方式 [本节说明软件体系结构在当前系统中的作用及其表示方式。它将列举其所必需的用例视图、逻辑视图、进程视图、部署视图或实施视图,并分别说明这些视图包含哪些类型的模型元素。] 3. 软件体系结构的目标和约束 [本节说明对软件体系结构具有某种重要影响的软件需求和用户目标,例如,系统安全性、保密性、第三方组件的使用、可移植性、发布和重新使用。它还要记录可能适用的特殊约束:设计与实施策略、开发工具、团队结构、时间表、遗留系统等。] 4.用例视图 [本节使用用例分析技术所生成的系统用例模型,描述其中的一些用例或场景。在该模型中纳入用例或场景,应该是系统中最重要、最核心的功能部分。] [另外,在本节中还应该选择一个主要的用例,对其进行描述与解释,以帮助读者了解软件的实际工作方式,解释不同的设计模型元素如何帮助系统实现。] 5. 逻辑视图 [逻辑视图主要是反映系统本质的问题领域类模型,在逻辑视图中将列出组成系统的子系统、包。而对每个子系统、包分解成为一个个类,并说明这些关键的实体类的职责、关系、操作、属性。这也是OO思想的体现,以类、类与类之间的协作、包、包与包之间的协作模型来表达系统的逻辑组织结构。]

软件体系结构KWIC实验

《软件体系结构》 实验:软件体系结构风格之应用

一、实验目的 通过KWIC 实例分析,理解和掌握软件体系结构风格设计与实现。 二、实验内容 多种软件风格设计与实现之KWIC 实例: 1.采用主/子程序体系结构风格实现KWIC 关键词索引系统 2.采用面向对象体系架构风格实现KWIC 关键词索引系统 3.采用管道过滤 体系架构风格实现KWIC 关键词索引系统 4.采用事件过程调用体系架构风格实现KWIC 关键词索引系统 三、实验要求与实验环境 熟练掌握基于主/子程序体系结构风格的KWIC 关键词索引系统,在此基础上,完成基于面向对象体系架构风格的KWIC 关键词索引系统设计与实现。选做基于管道过滤体系架构风格的KWIC 关键词索引系统;选做基于事件过程调用体系架构 风格的KWIC 关键词索引系统。 实验课前完成实验报告的实验目的、实验环境、实验内容、实验操作过程等 内容;实验课中独立/团队操作完成实验报告的实验操作、实验结果及结论等内容;每人一台PC 机,所需软件Win2003/XP 、UML 工具(EclipseUML/ Rose/Visio/StartUML/)、Eclipse/MyEclipse、JDK6.0 等。 四、实验操作 1、采用主/子程序体系结构风格实现KWIC 关键词索引系统 主程序/子程序风格(Main Program/Subroutine Style)将系统组织成层次结构,包括一个主程序和一系列子程序。主程序是系统的控制器,负责调度各子程 序的执行。各子程序又是一个局部的控制器,调度其子程序的执行。设计词汇表:主程序main(), 子程序shift(), sort() 方法,方法的调用,返回构件和连接件类型:

软件体系结构课后作业及答案

1、就项目管理方面而言,软件重用项目与非重用项目有哪些不同之处。 答:使用软件重用技术可减少重复工作,提高软件生产率, 缩短开发周期。同时,由于软构建大多经过严格的质量认证,因此有助于改善软件质量,大量使用构建,软件的灵活性和标准化程度可得到提高。 2、实际参与/组织一个软件重用项目的开发,然后总结你是如何组织该项目的开发的 答:参加了一个网页管理系统的开发,该项目重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。在过程中使用了代码的复用、设计结果的复用、分析结果的复用、测试信息的复用等。 3、为什么要研究软件体系结构? 答:1.软件体系结构是系统开发中不同参与者进行交流和信息传播的媒介。 2.软件体系结构代表了早期的设计决策成果。 3.软件体系结构可以作为一种可变换的模型。 4、根据软件体系结构的定义,你认为软件体系结构的模型应该由哪些部分组成? 答:构件(component)可以是一组代码,如程序的模块;也可以是一个独立的程序(如数据库的SQL服务器); 连接件(connector)是关系的抽象,用以表示构件之间的相互作用。如过程调用、管道、远程过程调用等; 限制(constrain):用于对构件和连接件的语义说明。 5、在软件体系结构的研究和应用中,你认为还有哪些不足之处? 答:(1)缺乏同意的软件体系结构的概念,导致体系结构的研究范畴模糊。 (2)ADL繁多,缺乏同意的ADL的支持。 (3)软件体系结构研究缺乏统一的理论模型支持。 (4)在体系结构描述方便,尽管出现了多种标准规范或建议标准,但仍很难操作。 (5)有关软件体系结构性质的研究尚不充分,不能明确给出一个良体系结构的属性或判定标准,没有给出良体系结构的设计指导原则,因而对于软件开发实践缺乏有力的促进作用。 (6)缺乏有效的支持环境软件体系结构理论研究与环境支持不同步,缺乏有效的体系结构分析、设计、方针和验证工具支持,导致体系结构应用上的困难。 (7)缺乏有效的体系结构复用方案。 (8)体系结构发现方法研究相对欠缺。 1、选择一个规模合适的系统,为其建立“4+1”模型。 逻辑视图(Logical View),设计的对象模型(使用面向对象的设计方法时)。 过程视图(Process View),捕捉设计的并发和同步特征。 物理视图(Physical View),描述了软件到硬件的映射,反映了分布式特性。 开发视图(Development View),描述了在开发环境中软件的静态组织结构。 架构的描述,即所做的各种决定,可以围绕着这四个视图来组织,然后由一些用例(use cases)或场景(scenarios)来说明,从而形成了第五个视图。

软件体系结构分层知识

软件体系结构--RPG游戏制作软件 1)分层 2)写出每层的功能 3)向上提供接口 1.分层 层次系统风格将软件结构组织成一个层次结构,一个分层系统是分层次组织的,每层对上层提供服务,同时对下层来讲也是一个服务的对象。在一些分层系统中,内部的层只对相邻的层可见。除了相邻的外层或经过挑选用于输出的特定函数以外,内层都被隐藏起来。这种风格支持基于可增加抽象层的设计。由于每~层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件重用提供了强大的支持。 分层系统体系结构有以下优点: 第一,支持基于抽象程度递增的系统设计。这允许设计者可以将一个复杂系统设计按递增的步骤进行分解。 第二,支持扩充。因为每层至多和与之相邻的上层和下层交互,所以,改变某层的功能最多只会影响与之相邻的其它两层。 第三,支持重用。与抽象数据类型一样,只要对相邻层提供同样的接口,每层可以有很多不同的可相互替代的实现方法。因此,可能出现对于标准的层接口的定义可以有不同的实现方法。 但是分层系统体系结构也有存在缺点: 首先,并不是每个系统都可以很容易地划分为分层的模式。甚至即使一个系统可在逻辑上进行分层,但可能出于性能的考虑需要在逻辑上与处于高层的函数和处于低层的实现之间建立紧密的联系。 其次,很难找到一个合适的、正确的层次抽象方法。分层设计作为一个设计的理念方法,在软件设计中得到越来越广泛的应用,特别是在复杂大型软件的研制开发项目中。即使是在中小型软件的开发过程中,也要合理的把系统划分为几个层次,把服务接口一步步地建立起来。系统在进行软件层次设计时应遵循如下三个基本原则: (1)实现和接口分离原则,这是对所有模块接口的一个通用原则。不同的层次实际上是不同的模块,只不过这些模块在逻辑关系上有上下的依赖关系。在这个分离原则之下,层次之间的互换性就可以得到保证。对于一般的软件设计来说,最常见的是抽象层,即把应用部分与一些具体的实现分离开来。 (2)单向性原则,软件的分层应该是单向的,即只能上层调用下层,反过来通常是不行的。因为上层调用下层,结果是上层离不开下层,但下层可以独立地存在:如果下层同时调用上层,上下层就紧密地耦合在一起,谁也离不开谁,形成了软件中的共生现象,导致模块的互换性和可重用性就得不到保证。 (3)服务接VI的粒度提升原则,每层的存在应该是为了完成一定的使用,从软件设计和程序编写的角度来讲,应该向上一层提供更加方便快捷的服务接口。简单重复下一层功能的层是没有意义的,一般越往上层服务接口的粒度越大。对很多应用软件来说,在与数据库直接打交道的地方有数据抽象层。该层把上层的应用同具体的数据库引擎分离开来。在此之上,建立业务对象层(business object),把具体的业务逻辑反映到该层次上。再往上是交互的用户界面等。 多层结构系统具有良好的可拓展性、可维护性和稳定的系统质量,同时,可以提高软件的可重用性,节省项目的开发时间。在开发中,具体采取几层构架,可根据系统的业务繁简程度灵活运用

软件体系结构风格研究分析

软件体系结构风格研究分析 软件体系结构风格研究,分析了各种风格的特点、优缺点,最后重点介绍了三层C/S软件体系结构。 20世纪60年代中期的软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重点放在数据结构和算法的选择上。随着软件系统规模越来越大、越来越复杂,整个系统的结构显得越来越重要。 软件体系结构风格分析 最初的软件体系结构是Mainframe结构——客户、数据和程序都被集中在主机上,通常只有少量的GUI界面,对远程数据库的访问比较困难。随着PC的广泛应用,该结构逐渐被淘汰。在20世纪80年代中期出现了Client/Server分布式计算结构,应用程序的处理在客户机和服务器之间分担。随着大型软件系统的开发,这种结构在系统的部署和扩展性方面暴漏出不足。随着Inter的发展,一个更灵活的体系结构“三层/多层计算”体系结构应运而生。 Garlan和Shaw将通用软件体系结构风格总结为以下几类:

1.数据流风格:批处理序列;管道/过滤器。 2.调用/返回风格:主程序/子程序;面向对象风格;层次结构。 3.独立构件风格:进程通讯;事件系统。 4.虚拟机风格:解释器;基于规则的系统。 5.仓库风格:数据库系统;超文本系统;黑板系统。C2风格是最常用的一种软件体系结构风格。从C2风格的组织规则和结构图中,我们可以得出,C2风格具有以下特点: (1)系统中的构件可实现应用需求,并能将任意复杂度的功能封装在一起;(2)所有构件之间的通讯是通过以连接件为中介的异步消 息交换机制来实现的;(3)构件相对独立,构件之间依赖性较少。系统中不存在某些构件将在同一地址空间内执行,或某些构件共享特定控制线程之类的相关性假设。 2.数据抽象和面向对象风格。目前软件界已普遍转向使用面向对象系统,抽象数据类型概念对软件系统有着重要作用。这种风格的构件是对象,或者说是抽象数据类型的实例。对象是一种被称作管理者的构件,因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。图2是数据抽象和面向对象风格的示意图。面向对象的系统有许多的优点: (1)因为对象对其他对象隐藏它的表示,所以可以改变一个对象的表示,而不影响其他的对象。(2)设计者可将一些数据存取操作的

软件体系结构设计说明书

软件体系结构设计说明书 编者说明: 随着OO方法论地日臻成熟,其思想也从编程(OOP)到了设计(OOD)和分析(OOA),而软件体系结构则是从设计的最高层进行设计与规划的技术,本文档模板就是用来帮助你从用例视图、逻辑视图、进程视图、部署视图等方面对系统进行总体描述。 1.文档简介 [本节主要是描述软件体系结构设计说明书的目的、范围、相关术语、参考资料和本文档的摘要性介绍。软件体系结构设计属于高层设计文档,是符合现代软件工程要求的概要设计。] 1.1 目的 [软件体系结构设计说明书,将从设计的角度对系统进行综合的描述,使用不同的视图来描述其不同方面。在本小节中,将对该文档的结构进行简要的说明,明确该文档针对的读者群,指导他们正确的地使用该文档。] 1.2 范围 [说明该文档所涉及的内容范围,以及将影响的内容。] 1.3 定义、首字母缩写词和缩略语 [与其它文档一样,该文档也需要将本文档中所涉及的所有术语、缩略语进行详细的定义。还有一种可简明的做法,就是维护在一个项目词汇表中,这样就可以避免在每个文档中都重复很多内容。] 1.4参考资料 [在这一小节中,应完整地列出该文档引用的所有文档。对于每个引用的文档都应该给出标题、标识号、日期以及来源,为阅读者查找这些文档提供足够详细的信息。] 1.5 概述 [在本小节中,主要是说明软件体系结构设计说明书各个部分所包含的主要内容,就像一个文章摘要一样。同时也应该对文档的组织方式进行解释。]

2. 体系结构表示方式 [本节说明软件体系结构在当前系统中的作用及其表示方式。它将列举其所必需的用例视图、逻辑视图、进程视图、部署视图或实施视图,并分别说明这些视图包含哪些类型的模型元素。] 3. 软件体系结构的目标和约束 [本节说明对软件体系结构具有某种重要影响的软件需求和用户目标,例如,系统安全性、保密性、第三方组件的使用、可移植性、发布和重新使用。它还要记录可能适用的特殊约束:设计与实施策略、开发工具、团队结构、时间表、遗留系统等。]

软件体系结构考试参考试题

壹 . 名词解释(参考斯佳分享的名词解释文档) 1.ADL(Architecture Description Language) 体系结构描述语言 2. SOA(Service-Oriented Architecture) 面向服务架构 3. DSSA (Domain Specific Software Architecture) 特定领域软件体系结构 4.CORBA(Common Object Request Broker Architecture) 公共对象请求代理体系结构 5. UML(Unified Modeling Language) 统一建模语言 6.XML(Extensible Markup Language ) 可扩展标记语言 7.B/S(Browser/Server) 浏览器/服务器C/S(Client/Server) 客户端/服务器 8.HMB(Hierarchical [?ha??'rɑ:k?kl] message bus) 层次消息总线 9.SA (Software Architecture) 软件体系结构 10.OMG(Object Management Group) 对象管理组织 11.SOAP(Simple Object Access Protocol) 简单对象访问协议 12.WSDL(Web Services Description Language) web服务描述语言 13.SOAD(Service Oriented Analysis And Design) 面向服务的分析与设计 14.DCOM(Distributed Component Object Model) 分布式对象组件模型 https://www.wendangku.net/doc/004493600.html, (Module Interconnection Language) 模块内连接语言 贰 . 判断题 1、软件重用是指重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。答案:√ 依据页码:P4 2、软件体系结构充当一个理解系统构件和它们之间关系的框架,特别是那些始终跨越时间和实现的属性。 答案:√ 依据页码:P28 5、构件可以由其他复合构建和原子构件通过连接而成。() 答案:√ 依据页码:P37 6、体系的核心模型由5种元素组成:构件、连接体、配置、端口和角色() 答案:√ 依据页码:P37 7、软件体系结构的核心由5种元素组成:构件、连接件、配置端口和角色。其中,构件、连接件和配置是最基本的元素() 答案:√ 依据页码:P37 8、开发视图主要支持系统的功能需求,即系统提供给最终用户的服务() 答案:X 依据页码:P32、33 9、构件、连接件以及配置是体系结构的核心模型最基本的元素() 答案:√ 根据页码:P37

软件体系结构设计说明书

软件体系结构设计说明书 Revised by BLUE on the afternoon of December 12,2020.

软件体系结构设计说明书 1.文档简介 [本节主要是描述软件体系结构设计说明书的目的、范围、相关术语、参考资料和本文档的摘要性介绍。软件体系结构设计属于高层设计文档,是符合现代软件工程要求的概要设计。] 目的 [软件体系结构设计说明书,将从设计的角度对系统进行综合的描述,使用不同的视图来描述其不同方面。在本小节中,将对该文档的结构进行简要的说明,明确该文档针对的读者群,指导他们正确的地使用该文档。] 范围 [说明该文档所涉及的内容范围,以及将影响的内容。] 定义、首字母缩写词和缩略语 [与其它文档一样,该文档也需要将本文档中所涉及的所有术语、缩略语进行详细的定义。还有一种可简明的做法,就是维护在一个项目词汇表中,这样就可以避免在每个文档中都重复很多内容。] 参考资料 [在这一小节中,应完整地列出该文档引用的所有文档。对于每个引用的文档都应该给出标题、标识号、日期以及来源,为阅读者查找这些文档提供足够详细的信息。] 概述 [在本小节中,主要是说明软件体系结构设计说明书各个部分所包含的主要内容,就像一个文章摘要一样。同时也应该对文档的组织方式进行解释。] 2. 体系结构表示方式 [本节说明软件体系结构在当前系统中的作用及其表示方式。它将列举其所必需的用例视图、逻辑视图、进程视图、部署视图或实施视图,并分别说明这些视图包含哪些类型的模型元素。]

3. 软件体系结构的目标和约束 [本节说明对软件体系结构具有某种重要影响的软件需求和用户目标,例如,系统安全性、保密性、第三方组件的使用、可移植性、发布和重新使用。它还要记录可能适用的特殊约束:设计与实施策略、开发工具、团队结构、时间表、遗留系统等。] 4.用例视图 [本节使用用例分析技术所生成的系统用例模型,描述其中的一些用例或场景。在该模型中纳入用例或场景,应该是系统中最重要、最核心的功能部分。] [另外,在本节中还应该选择一个主要的用例,对其进行描述与解释,以帮助读者了解软件的实际工作方式,解释不同的设计模型元素如何帮助系统实现。] 5. 逻辑视图 [逻辑视图主要是反映系统本质的问题领域类模型,在逻辑视图中将列出组成系统的子系统、包。而对每个子系统、包分解成为一个个类,并说明这些关键的实体类的职责、关系、操作、属性。这也是OO思想的体现,以类、类与类之间的协作、包、包与包之间的协作模型来表达系统的逻辑组织结构。] 概述 [在本小节中,列出逻辑视图的顶层图,该图将反映系统由哪些包组成,每个包之间的关系与协作,以及包的层次结构。使得读者对整个软件体系结构有一个整体的了解。] 影响软件体系结构的重要设计包 [在本小节中,将从逻辑视图中选择有重要意义的设计包,每个设计包有一个小节来描述,说明这些包的名称、简要的说明、该包中的主要类和相关的类图。对于包中的重要的类,还应该说明其名称、简要说明、主要职责、操作、属性等。] 6. 进程视图 [本节主要描述该软件体系结构下,系统运行态的情况。描述系统在执行时,包括哪些进程(包括线程、进程、进程组),以及它们之间是如何进行通信的、如何进行消息传递、接口如何。并且来说明如何进行组织。]

软件体系结构_陈长清_《软件体系结构》课程教学大纲

《软件体系结构》课程教学大纲 一、课程名称:软件体系结构 Software Architecture 二、课程编码:0810711 三、学时与学分:48/3 其中课堂教学32学时,实践教学16学时。 四、先修课程:软件工程 五、课程教学目标 1.帮助学生了解软件体系结构的基本概念,初步掌握中大型软件体系结构的分析与设计方法; 2.使学生了解构建系统的目的是为了满足组织的需求,认识软件行业和开发组织在系统设计及其最终成败所起的作用,提高软件设计的基本素养; 3.引导学生认识系统的性能、可用性、安全性等质量属性都是受软件构架制约的,或者说这些属性的实现影响着设计师的设计选择。 六、适用学科专业 软件工程 七、基本教学内容与学时安排 ●构架商业周期(2学时) 构架的产生 软件过程和构架商业周期 什么样的构架才算好 ●什么是软件构架(2学时) 软件构架概念的澄清 软件构架的其他观点 构架模式、参考模型和参考构架

软件构架的重要性 ●A-7E案例分析(2学时)与构架商业周期的关系 需求与质量 A-7E航空电子系统的构架●理解质量属性(6学时)功能性和构架 构架和质量属性 系统的质量属性 质量属性场景 其他系统质量属性 商业质量属性 构架的质量属性 ●实现质量属性(6学时)战术介绍 可用性战术 可修改性战术 性能战术 安全性战术 可测试性战术 易用性战术 战术与构架模式的关系 构架模式和样式 ●设计构架(6学时) 生命期中的构架 设计构架 形成团队结构

创建骨架系统 ●飞行模拟:构架可集成性案例分析(2学时) 与构架商业周期的关系 需求与质量 构架解决方案 ●构架编档(2学时) 构架编档的使用 视图 选择相关视图 视图编档 跨视图文档 统一建模语言 ●ATAM:一种进行构架评估的综合方法(4学时) ATAM的参与人员 ATAM的结果 ATAM的阶段 Nightingale系统:应用ATAM的案例分析 八、实践教学(16学时) ●上机操作内容及要求: 从网上选课系统、文本编辑系统、票务查询系统或正文关键字索引系统这四个系统中任选一个,根据不同的质量属性驱动,运用ADD方法设计两个或多个构架方案,再用ATAM 方法进行评价,然后选择最优方案加以实现,编程语言自选。 ●上机操作考核办法 提供构架文档等各类文档。 源程序和可执行文件。 进行课堂演示。 九、教材及参考书

软件体系结构期末复习题

软件体系结构期末 复习题

《软件体系结构》期末复习题 简答题: 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体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。

软件体系结构作业完整版

第一章: 1.根据自己的经验,谈谈对软件危机的看法。 软件危机是指软件生产方式无法满足迅速增长的计算机需求,开发和维护过程出现的一系列问题。 以下几个原因导致:(1)软件自身特点 (2)开发人员的弱点 (3)用户需求不明 (4)缺乏正确理论指导 (5)开发规模越来越大 (6)开发复杂度越来越高 可以通过软件生命周期的模型和软件工具的使用来缓解危机,通过程序自动化和软件工业化生产的方法实现软件标准化的目标,进一步缓解软件危机带来的影响。 软件危机有利有弊,除了带来许多麻烦,也给我们带来许多挑战,克服危机的过程,我们在技术上和创新上都有了一个提升,也算是间接为软件产业的发展做了贡献。 2.什么是软件重用,软件重用的层次可以分为哪几个级别? 软件重用:是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。可以分为三个层次: (1)代码重用(2)设计结果重用(3)分析结果重用 3.什么是可重用构件?相对于普通的软件产品,对可重用构件有何特殊要求? 可充用构件表示软件重用过程中,可重用的软件构件元素。 可重用构件的特殊要求: (1)可重用构件应该具有功能上的独立性与完整性; (2)可重用构件应该具有较高的通用性; (3)可重用构件应该具有较高的灵活; (4)可重用构件应该具有严格的质量保证; (5)可重用构件应该具有较高的标准化程。 4.基于构件的软件开发的优势是什么?基于构件的软件开发面临哪些挑战和困难? 优势:基于构件的软件将软件开发的重点从程序编写转移到了基于已有构件的组装,更快地构造系统,减轻用来支持和升级大型系统所需要的维护负担,从而降低了软件开发的费用困难和挑战:没有可依据的参考,可用资源和环境缺乏,开发难度高,而各方面需求增长速度与日剧增,更新和升级的跟进是一个不小的挑战.此外,在同一系统采用多个开发商提供的构件,它 们之间的兼容性可能是开发过程中所要面对的一个严峻的问题 挑战和困难: (1)在同一系统采用多个开发商提供的构件,它们之间的兼容性可能是开发过程中所要面对的一个严峻的问题; (2)采用随处可以购买到的构件可能会使开发出来的软件产品丧失技术上的独创性和市场上的竞争力; (3)第三方的构件开发商可能歇业,这会使购买的构件失去维护服务。这些都是在购买第三方构件进行软件开发时无法回避的问题,因此需要对这些风险进行充分的估计。 5.简述3种应用最为广泛的构件技术规范COM、CORBA和EJB的各自特点。 CORBA的特点: (1)实现客户与服务对象的完全分开,客户不需要了解服务对象的实现过程以及具体位置。 (2)应用程序间的统一接口。

软件体系结构教学大纲

《软件体系结构》教学大纲 一、课程概述 《软件体系结构》是根植于软件工程发展起来的一门新兴学科,目前已经成为软件工程研究和实践的主要领域。体系结构在软件开发中为不同的人员提供了共同交流的语言,体现并尝试了系统早期的设计决策,并作为相同设计的抽象,为实现框架和构件的重用、基于体系结构的软件开发提供了有力的支持。 作为计算机科学与技术专业软件工程方向的重要专业课程,本课程主要系统地介绍软件体系结构的基本原理、方法和实践,全面反映软件体系结构研究和应用的最新进展。既讨论软件体系结构的基本理论知识,又介绍软件体系结构的设计和工业界应用实例,强调理论与实践相结合。 本课程的先修课程为“软件工程”。 二、课程目标 1.知道《软件体系结构》这门学科的性质、地位、研究范围、学科进展和未来方向等。2.理解该门学科的主要概念、基本原理和策略等。 3.掌握软件体系结构的建模方法、描述方法,通过对不同软件体系结构风格的掌握,能够采用正确的基于体系结构的软件开发。 4.能够把所学的原理应用到具体的实践中去,培养学生发现、分析和解决问题的能力等。 三、课程内容与教学要求 这门学科的知识与技能要求分为知道、理解、掌握、学会四个层次。这四个层次的一般涵义表述如下: 知道———是指对这门学科和教学现象的认知。 理解———是指对这门学科涉及到的概念、原理、策略与技术的说明和解释,能提示所涉及到的教学现象演变过程的特征、形成原因以及教学要素之间的相互关系。 掌握———是指运用已理解的教学概念和原理说明、解释、类推同类教学事件和现象。 学会———是指能模仿或在教师指导下独立地完成某些教学知识和技能的操作任务,或能识别操作中的一般差错。 教学内容和要求表中的“√”号表示教学知识和技能的教学要求层次。

软件体系结构风格的研究

软件体系结构风格的研究 [摘要] 本文对几种经典的软件体系结构风格进行了具体的阐述,分析了各种风格的特点、优缺点,最后重点介绍了三层C/S软件体系结构。 [关键词] 软件体系结构软件体系结构风格三层C/S软件体系结构 20世纪60年代中期的软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重点放在数据结构和算法的选择上。随着软件系统规模越来越大、越来越复杂,整个系统的结构显得越来越重要。 一、软件体系结构风格分析 最初的软件体系结构是Mainframe结构——客户、数据和程序都被集中在主机上,通常只有少量的GUI界面,对远程数据库的访问比较困难。随着PC的广泛应用,该结构逐渐被淘汰。在20世纪80年代中期出现了Client/Server分布式计算结构,应用程序的处理在客户机和服务器之间分担。随着大型软件系统的开发,这种结构在系统的部署和扩展性方面暴漏出不足。随着Internet的发展,一个更灵活的体系结构“三层/多层计算”体系结构应运而生。 Garlan和Shaw将通用软件体系结构风格总结为以下几类: 下面将介绍几种主要和经典的体系结构风格和它们的优缺点。 C2风格是最常用的一种软件体系结构风格。从C2风格的组织规则和结构图中,我们可以得出,C2风格具有以下特点: 2.数据抽象和面向对象风格。

目前软件界已普遍转向使用面向对象系统,抽象数据类型概念对软件系统有着重要作用。这种风格的构件是对象,或者说是抽象数据类型的实例。对象是一种被称作管理者的构件,因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。图2是数据抽象和面向对象风格的示意图。 面向对象的系统有许多的优点: 3.基于事件的隐式调用风格。基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其他构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。基于事件的隐式调用风格的主要特点是事件的触发者并不知道哪些构件会被这些事件影响。这样不能假定构件的处理顺序,甚至不知道哪些过程会被调用。隐式调用系统的主要优点有:(1)为软件重用提供了强大的支持。当需要将一个构件加入现存系统中时,只需将它注册到系统的事件中。(2)为改进系统带来了方便。当用一个构件代替另一个构件时,不会影响到其他构件的接口。隐式调用系统的主要缺点有:①构件放弃了对系统计算的控制。一个构件触发一个事件时,不能确定其他构件是否会响应它。而且即使它知道事件注册了哪些构件的构成,它也不能保证这些过程被调用的顺序。②数据交换的问题。有时数据可被一个事件传递,但另一些情况下,基于事件的系统必须依靠一个共享的仓库进行交互。在这些情况下,全局性能和资源管理便成了问题。③既然过程的语义必须依赖于被触发事件的上下文约束,关于

软件体系结构试题试题+答案

1、设计模式一般用来解决什么样的问题( a) A.同一问题的不同表相B不同问题的同一表相 C.不同问题的不同表相 D.以上都不是 2、下列属于面向对象基本原则的是( c ) A.继承 B.封装 C.里氏代换D都不是 3、Open-Close原则的含义是一个软件实体( a ) A.应当对扩展开放,对修改关闭. B.应当对修改开放,对扩展关闭 C.应当对继承开放,对修改关闭 D.以上都不对 4、当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用(a )模式。 A.创建型 B.结构型C行为型D.以上都可以 5、要依赖于抽象,不要依赖于具体。即针对接口编程,不要针对实现编程,是( d ) 的表述 A.开-闭原则 B.接口隔离原则 C.里氏代换原则 D.依赖倒转原则 6、依据设计模式思想,程序开发中应优先使用的是( a )关系实现复用。 A, 委派 B.继承C创建 D.以上都不对 复用方式:继承和组合聚合(组合委派) 7、设计模式的两大主题是( d ) A.系统的维护与开发 B 对象组合与类的继承 C.系统架构与系统开发 D.系统复用与系统扩展 8、单子模式中,两个基本要点( a b )和单子类自己提供单例 A .构造函数私有 B.唯一实例 C.静态工厂方法 D.以上都不对 9、下列模式中,属于行为模式的是( b ) A.工厂模式B观察者C适配器以上都是 10、“不要和陌生人说话”是( d )原则的通俗表述 A.接口隔离 B.里氏代换 C.依赖倒转 D.迪米特:一个对象应对其他对 象尽可能少的了解 11、构造者的的退化模式是通过合并(c )角色完成退化的。 A.抽象产品B产品C创建者D使用者 12、单子(单例,单态)模式类图结构如下: 下列论述中,关于”0..1”表述的不正确的是( d ) A.1表示,一个单例类中,最多可以有一个实例. B.”0..1”表示单例类中有不多于一个的实例 C.0表示单例类中可以没有任何实例 D.0表示单例类可以提供其他非自身的实例 13、对象适配器模式是(a )原则的典型应用。 A.合成聚合复用原则 B.里式代换原则 C.依赖倒转原则 D.迪米特法则

软件体系结构整理

1.软件体系结构建模的种类 ◎结构模型◎框架模型◎动态模型◎过程模型◎功能模型2.4+1模型 4+1视图模型从5个不同的视角包括逻辑视图、进程视图、物理视图、开发视图和场景视图来描述 软件体系结构。每一个视图只关心系统的一个侧面,5个视图结合在一起才能反映系统的软件体系结构的全部内容。 逻辑视图: 逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。在逻辑视图中,系统分解成一系列的功能抽象,这些抽象主要来自问题领域。这种分解不但可以用来进行功能分析,而且可用作标识在整个系统的各个不同部分的通用机制和设计元素。 在面向对象技术中,通过抽象、封装和继承,可以用对象模型来代表逻辑视图,用类图来描述逻辑视图。 要保持单一内聚的对象模型 开发视图 开发视图也称模块视图,主要侧重于软件模块的组织和管理。 开发视图要考虑软件内部的需求,如软件开发的容易性、软件的重用和软件的通用性,要充分考虑由于具体开发工具的不同而带来的局限性。 开发视图通过系统输入输出关系的模型图和子系统图来描述。 在开发视图中,最好采用4-6层子系统,而且每个子系统仅仅能与同层或更低层的子系统通讯,这样可以使每个层次的接口既完备又精练,避免了各个模块之间很复杂的依赖关系。 设计时要充分考虑,对于各个层次,层次越低,通用性越强,这样,可以保证应用程序的需求发生改变时,所做的改动最小。开发视图所用的风格通常是层次结构风格。 进程视图 进程视图侧重于系统的运行特性,主要关注一些非功能性的需求。 进程视图强调并发性、分布性、系统集成性和容错能力,以及从逻辑视图中的主要抽象如何适合进程结构。它也定义逻辑视图中的各个类的操作具体是在哪一个线程中被执行的。 进程视图可以描述成多层抽象,每个级别分别关注不同的方面。在最高层抽象中,进程结构可以看作是构成一个执行单元的一组任务。它可看成一系列独立的,通过逻辑网络相互通信的程序。它们是分布的,通过总线或局域网、广域网等硬件资源连接起来。 物理视图 物理视图主要考虑如何把软件映射到硬件上,它通常要考虑到系统性能、规模、可靠性等。解决系统拓扑结构、系统安装、通讯等问题。 当软件运行于不同的节点上时,各视图中的构件都直接或间接地对应于系统的不同节点上。因此,从软件到节点的映射要有较高的灵活性,当环境改变时,对系统其他视图的影响最小。场景 场景可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景是最重要的需求抽象。在开发体系结构时,它可以帮助设计者找到体系结构的构件和它们之间的作用关系。同时,也可以用场景来分析一个特定的视图,或描述不同视图构件间是如何相互作用的。 场景可以用文本表示,也可以用图形表示。

软件体系结构知识点完整

1、构件是核心和基础,重用是必需的手段。 2、软件重用是指在两次或多次不同的软件软件开发过程中重复使用相同或相近软件元素的过程。 3、软件元素包括程序代码、设计文档、设计过程、需求分析文档甚至领域知识。 4、把可重用的元素称作软构件,简称为软构件。 5、可重用软件元素越大,就说重用的粒度越大。 6、构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通信接口和代码实现的复合体。 7、面向对象技术达到类级重用,以类为封装的单位。 8、构件模型是对构件本质特征的抽象描述。三个主要流派,分别是OMG(对象管理组织)的CORBA(通用对象请求代理结构)、Sun的EJB和Microsoft的DOM(分布式构件对象模型)。 9、获取构件的四个途径:(1)从现有构件中获得符合要求的构件,直接使用或作适应性修改,得到可重用构件。(2)通过遗留工程,将具有潜在重用价值的构件提取出来,得到可重用构件。(3)从市场上购买现成的商业构件,即COTS构件。(4)开发符合要求的构件。 10、构件分类方法三大类:关键字分类、刻面分类法、超文本组织方法 11、构件检索方法:基于关键字的检索、刻面检索法、超文本检索法和其他检索方法。 12、减少构件修改的工作量,要求工作人员尽量使构件的功能、行为和接口设计更为抽象画、通用化和参数化。 13、构件组装技术:基于功能的组装技术、基于数据的组装技术和面向对象的组装技术。 14、软件体系结构的定义:软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。 软件体系结构的意义:(1)体系结构是风险承担者进行交流的手段;(2)体系结构是早期设计决策的体现--①软件体系结构明确了对系统实现的约束条件②软件体系结构决定了开发和维护组织的组织结构③软件体系结构制约着系统的质量属性④通过研究软件体系结构可能预测软件的质量⑤软件体系结构使推理和控制更改更简单⑥软件体系结构有助于循序渐进的原型设计⑦软件体系结构可以作为培训的基础;(3)软件体系结构是可传递和可重用的模型。 软件体系结构发展的四个阶段:(1)无体系结构设计阶段。以汇编语言进行小规模应用程序开发为特征。(2)萌芽阶段。出现了程序结构设计主题,以控制流图和数据流图构成软件结构为特征。(3)初期阶段。出现了从不同侧面描述系统的结构模型,以UML为典型代表。(4)高级阶段。以描述系统的高层抽象结构为中心,不关心具体的建模细节,划分了体系结构与传统软件结构的界限,该阶段以Kruchten提出的“4+1”模型为标志。 通用体系结构风格分类 数据流风格:批处理序列、管道与过滤器。 调用/返回风格:主程序与子程序、面向对象风格、层次结构。 独立构件风格:进程通信、事件系统。 虚拟机风格:解释器、基于规则的系统。 仓库风格:黑板系统、传统型数据库。 管道与过滤器 特点:(1)使得软构件具有良好的内聚、耦合的特点。 (2)允许设计师将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成。(3)支持软件重用。 (4)系统维护和增强系统性能简单。 (5)允许对一些如吞吐量、死锁等属性的分析。 (6)支持并行执行。

软件体系结构试题与解答

模拟试题 (一) 第一题:名词解释(每题5分,共20分) 1.软件体系结构(Software Architecture) 2.软件体系结构风格(Software Architecture Style) 3.软件质量属性 4.质量属性驱动的设计方法(ADD) 第二题:单项选择(每题4分,共20分) 1.下面哪种策略能够用来满足可测试性(Testability)的质量属性? A)心跳(Heartbeat)B)模块的抽象化(Generalize the module) C)记录/重放D)授权用户 2?“系统在提供服务给合法用户的同时抵制未授权使用的能力” 题? A)性能B)可测试性 C)可移植性D)安全性 这是哪种质量属性关心的问 3.下面哪种视图不属于软件体系结构中定义的 “ A)物理视图B)设计视图 C)场景视图D)开发视图 4+1 ”视图? 4.下面的图是什么图? LlUDiU Rikk Prk* Deal CaphJF* Du] ACCOuming A)序列图C)对象图B)组件图D)用例图 5.下面的图形描述了何种体系结构风格?

A) C/S B)有序批处理C)主程序/子程序D)面向对象 第三题简答(每题5分,共20分) 1?请描述管道-过滤器体系结构风格的特点并给出适合使用这种风格的一个应用场景。 2.请简要说明黑板风格的定义。 3.请简要说明体系结构权衡分析方法和该方法的特点。 4.什么是“ 4+1视图”,分别给出每个视图的名称和主要关注点。 软件体系结构分析:效用树(20分) 某公司要开发一个在线交易系统,该系统主要关注性能、可更改性、可用性和安全这五 个质量属性。负责开发的团队分析了各个质量属性,设计了一个参考的体系结构。该团队欲 采用效用树技术对体系结构进行评估,下面是相关的场景: 站点1断电后,能够在3秒内完成流量到站点2的迁移; 信用卡交易需要有99.999%的安全性; 用户的授权数据库需要在99.999%的情况下保证可用; 视频必须实时传输; 能够在4人-周内完成对Web用户界面的改变网络失效和恢复必须在 1.5分钟内完成; 减少对客户数据库访问的时间至200毫秒以内; 请根据以上描述,构建相应的效用树 2.软件体系结构构建(20分) https://www.wendangku.net/doc/004493600.html,是一家新兴的旅游服务提供商,能够在线为用户提供在线的实时旅游信息 服务,包括路线信息,景点介绍,公交线路查询等,其系统的基本的功能如下所示: 用户可以在网站上注册帐号和密码,成为该站点的客户; 客户可以使用浏览器访问网上的站点,搜索并返回感兴趣的景点信息;该公司需要集成来自旅游线路 提供商的数据库,提供旅游线路支持;需要集成来自景点的信息提供商的数据库,提供景点信息;需 要集成公交公司的应用系统,提供公交信息查询能力。 请首先给出一个基于Java EE平台的企业级分布式系统体系结构图,并根据描述给出各个需求应该分别在体系

相关文档
相关文档 最新文档