软件体系结构描述语言ADL综述_bycs

软件体系结构描述语言ADL综述_bycs
软件体系结构描述语言ADL综述_bycs

软件体系结构描述语言ADL综述

Advancement of Architecture Description Language (ADL) 引言

60年代的软件危机使得人们重新开始重视软件工程的研究。最初人们选择了“算法+数据结构=程序”的设计模式。但随着软件系统的规模和复杂性越来越大,传统的设计模式已经不能适应要求。同时为了保证软件质量,提高软件的可靠性、可重用行和可维护性,软件设计的核心逐渐转向对系统的总体结构即软件体系结构(Software Architecture)的设计和规范。这类方法主要着眼于软件系统的全局组织形式,在更高层次上把握系统各组件之间的内在联系。并从全局的,整体的角度去理解和分析整个系统的行为和特性,有助于解决当前开发复杂的大型软件所存在的困难。

研究软件体系结构的首要问题是如何描述软件体系结构。目前已有很多表现形式和方法表法、模块连接语言、软构件描述法和体系结构描述语言ADL等。而其中ADL作为形式化的表示软件体系结构的工具呈现出强大的生命力。它提供了规范化的体系结构描述,同时是对软件体系结构进行求精、验证、演化和分析的前提与基础。目前已经成为软件体系结构方向的研究热点。实践工作者将这些ADL应用于实践中,获得了成功。同时,我们应注意到不同的ADL所支持的抽象能力及其提供的分析能力变化很大,学术领域目前对ADL的定义尚未取得一致。

一、软件体系结构的概述

由于对软件体系结构的研究和应用刚刚兴起,许多专家学者从不同的角度和侧面对软件体系结构进行刻画,因此,目前软件体系结构还没有一个标准定义。这里给出一个目前学术领域广泛接受的定义。(D.Garlan&M Shaw,1993)软件体系结构是软件设计过程中的一个层次,在计算过程中的算法设计和数据结构之上,处理总体系统结构设计和描述方面的一些问题。包括总体组织与全局控制结构、通讯协议、同步、数据存取、设计元素的功能分配,物理分布,设计元素的复台,设计方案的选择、评估和实现等。

二、软件体系结构描述语言ADL的概述

2.1对ADL的不同理解

当前在学术界对ADL 的定义尚未取得一致下面的定义大多来源于自身对某种ADL语言的开发所得到的体会。尽管它们不免有以偏概全之赚,但还是为我们了解ADL提供了有价值的信息。

(1)在文[1]中,Tracz定义一个ADL包含4“C”:组件(components) ,

连接子(connectors),配置(configurations),约束(constraint s)。

(2)根据其UniCon的经历,Shaw 与同事列出了ADI 应该展示的属

性如下:1)组件建模的能力,带属性断言、接口、实现;2)连接子建模的能力,带协议、属性断言与实现;3)抽象与封装;4)类型与类型检查;

5)适应分析工具的能力

(3)在文[2]中,将ADL划分为4个组成部分:组件,连接子,配置、

支持工具。其中,组件、连接子、配置构成了ADL的体系结构描述特性。

而支持工具则为软件体系结构设计者提供必要的帮助。

(4)在文[3]中,Luckham 与Vera在研究Rapide的基础上提出.ADL

应该满足以下要求:1)组件抽象;2)通信抽象;3)通信完整性,要求在结果实现中,只有在一个体系结构中相联结的组件可以通信;4)动态体系结构建模的能力 5)分层复合;6)相关性.或者是行为与体系结构间关联(映射)的能力;7)组件建模的能力,带属性断言、接口、实现;8)连接子建模的能力,带协议、属性断言与实现;9)抽象与封装; 10)类型与类型检

查;11)适应分析工具的能力。

2.2ADL的定义

从上述一小节我们可以看出,学术领域对ADL的理解还存在着分歧。我们认为:ADL是这样一种形式化语言,它在底层语义模型的支持下,为软件系统的概念体系结构建模提供了.具体语法与概念框架。基于底层语义的工具为体系结构的表示、分析、进化、细化、设计过程等提供支持。其三个基本构成元素是:1)组件——计算或数据存储单元;2)连接子——用于组件问交互建模的体系结构构造块及其支配这些交互的规则{3)体系结构配置——描述体系结构的组件与连接于的连接图。

2.3 ADL应具备的特点

2.3.1为了精确描述软件体系结构,ADL首先应有一个形式化理论基础,如Pet“网、状态图、z、 CSP”等。有了形式化理论基础,才能对所描述的系统进行分析和验证。如Wright用CSP进行描述、Rapide采用偏序事件集合等。

2.3.2作为一种描述语言,ADL应具有严谨的语法和语义。描述能力应足够强,至少应能描述的基本构件如组件、连接件及有关配置规范。同时,为了更好的应用,一种ADL,应有相应的支持工具,支持工具的能力直接反映了该ADL的可使用程度和范围。

2.3.3 描述软件体系结构的一个很重要的目的是为了便于软件开发者的理解和交流,因此,ADL描述应简单易懂,最好有图表辅助理解。对于同一个体系结构,不同的软件开发者需要从不同的抽象层次上理解,这就要求

ADL能描述不同抽象程度的软件体系结构。

2.3.4分析作为软件体系结构求精、验证的基础,是一般ADL不可缺少的一种功能分析有静态分析和动态分析,如Wright基于CSP能对单个组件或连接件进行静态死锁分析、Rapide 基于偏序事件集合(partially ordered event sets)可进行动态分析。

2.3.5其他有关设计ADL应注意的问题,还有可扩展性、演化和重用等。

三、常见ADL的介绍与比较

3.1常见ADL的介绍

ADL是当前软件开发和设计方法学中一种发展很快的软件体系结构描述方法,目前,已经有几十种常见的AD L。其中已经开发和使用的常见ADL有Wright、Unieon、C2、Aesop、Rapide、Darwin、SADL等。这里我们对Unicon、C2 SADL、ACME、XADL四种给出介绍和比较。

3.1.1 Unicon

UniCon简介

UniCon是由CMU和SEI设计的一个体系结构描述语言.该语言关注软件体系结构的结构化特性,将系统(本身也是一个复合构件)描述为构件和连接子的配置,其中构件表示计算或者数据,而连接子表示构件之间的交互.每个构件的接口都对外提供一些演员(player).构件通过这些演员与外界发生交互.与构件类似,一个连接子的协议对外提供一些角色(role),连接子通过这些角色来调解构件之间的交互.在UniCon建立连接

通过演员与角色的关联,最终就可以建立整个系统各个部分之间的配置.最新版本的UniCon不仅支持类似于上例的管道-过滤器系统,还支持使用过程调用和共享数据的模块交互系统,基于RPC调用的分布式系统,根据各种实时要求共享处理器的进程以及基于SQL命令的数据库访问.

UniCon的提出是为了达到如下目的:

1.解决系统描述和组装的实际问题,为实际工具提供一个原型;

2.为各种连接机制提供一个一致的访问方式;

3.帮助软件设计师区分不同的构件类型和连接子类型并验证构件和连接子配置的正确性;

4.支持图形化和文本化符号以及二者之间的互换;

5.兼容现存的用常见的编程语言编写的构件(这些构件并不需要特定于UniCon);

6.尽可能的将运行时开销降到最低;

以下将具体介绍UniCon中构件和连接子的定义.

UniCon中的构件

UniCon中的构件定义包括规约部分和实现部分.

构件的规约称为构件的接口(interface).接口定义了构件所能进行的计算以及使用构件必须遵循的约束.构件的接口包含三类信息:

1.构件类型:构件类型表示构件提供的功能的类型,它限制了该构件所能定义的演员的数量,类型和规约.

2.特性:由属性和值组成的二元组,用于指定与构件整体相关的附加信息,例如断言,约束等.

3.演员:从构件外部可见的语义单元,构件通过演员与其它构件发生交互. 构件的实现有两种形式:

1.原子(primitive)实现:原子实现是一个指向存在于UniCon语言外部的文档链接,该文档包含了相应的构件实现.它可能是某种编程语言的源代码(目前UniCon工具集仅仅支持C语言的源代码),也可以是目标码,或者是包含目标码的Unix档案库文件,或者是二进制可执行文件,shell脚本,数据文件,C 语言的include文件等

2.复合(composite)实现:某个UniCon构件的复合实现是对其它已定义的构件和连接子的配置的描述,该实现包含三类信息:

1.片段(piece):用于构造某个配置的构件和连接子实例

2.配置信息:描述构件和连接子的关联

3.抽象信息:描述该构件的接口如何由其复合实现中的构件接口实现.

构件实现的语法如下:

UniCon中的连接子

连接子的定义也包含规约和实现两个部分,其中规约部分通过协议(protocol)进行描述.连接子的协议定义了构件之间允许产生的交互,并确保这些交互能够顺利进行.连接子的协议包含三类信息:

1.连接子类型:连接子类型表示连接子所能调解的构件之间的交互类型,它限制了连接子的角色的数量,类型和规约.

2.特性:由属性和值组成的二元组,用于指定和连接子整体相关的附加信息,例如断言,约束等(例如和时间和顺序相关的规则)

3.角色:从连接子外部可见的语义单元,通过角色连接子对构件的交互进行调解.角色通过与演员发生关联,从而形成系统的连接,它定义了参与连接的演员的需求与责任.

连接子的实现是UniCon内置的,即UniCon只支持连接子的原子实现,它本身不提供用户自定义连接子实现的机制.

连接子的定义的语法如下(从中也可以看出UniCon目前支持的连接子实现的类型):

UniCon是最早的体系结构描述语言之一.从上述介绍可以看出,UniCon强调将系统划分为构件后,用适当的连接子将其组装起来构成一个完整的系统.构件和连接子之间是松耦合关系.UniCon备受诟病的一点是它只支持预定义的连接子,并且不支持复合连接子.为了解决这个问题,相关研究人员在UniCon的基础上对其进行了增强.增强后的UniCon称为UniCon-2.UniCon-2提供了一个比较灵活的类型系统,并且引入了责任(duty)这个概念用于描述演员,角色等与属性的关系.某个系统配置的责任还可以用于描述体系结构风格.由于UniCon-2允许用户引入新类型,为了便于对与新类型相关的约束进行检查,UniCon-2采用了一种开放的编译器结构以便于增加相应的检测方法.

3.1.2 C2 SADL

C2 SADL是UCI设计的一种基于消息传递的体系结构描述语言,主要用于描述符合C2风格的软件系统的体系结构.

C2风格

C2风格是一种基于构件和消息的体系结构风格,主要是应用于带有图形用户接口(GUI)的应用系统,但也能用于其它类型的应用.这种风格要求构件之间通过消息交换进行通信.因此每个C2构件和C2连接子都有一个top接口和一个bottom接口,其中top接口定义了该构件所能接收的应答消息和向上发出的请求消息,而bottom接口定义了该构件能够进行应答的请求消息及其向下发出的应答.所有消息都以连接子为桥梁在构件之间进行传递.这种风格的体系结构将系统中的构件用连接子划分为不同层次,.

C2风格的体系结构:可视化堆栈(Stack)

C2风格的核心在于构件之间的"有限可见性",即处于系统中某个层次的构件只能"看到"上层的构件,而不清楚下层到底是什么构件在与之进行通信.具体表现在如下所述的构件之间的通信规则(即系统的组装规则):

1.构件的top接口只可能与某一个连接子的bottom接口相连

2.构件的bottom接口只可能与某一个连接子的top接口相连

3.与连接子相连的构件或者连接子没有数量限制

4.两个连接子相连时,只能是其中一个的bottom接口与另一个的top接口相连

C2 SADL

C2 SADL目前还只是一个原型语言,其相应的支撑工具还在开发中.该语言包含三个部分:

接口定义符号(IDN, interface definition notation):是C2中的构件接口的规约.如下所示是一个堆栈(Stack)构件的C2 IDN.

体系结构描述符号(ADN,architecture description notation):是C2体系结构的声明性规约.

体系结构构造符号(ACN,architecture construction notation):主要用于表达体系结构的动态变化,例如如果要在运行时删除堆栈的一种可视化表示方式,可以用ACN进行如下描述:

C2 SADL中的连接子本质上是一种消息总线,复合这种结构的应用系统往往具有比较良好的灵活性和可扩展性.不过由于C2 SADL还没有针对大型实际系统进行建模和使用,因此对使用该结构所可能导致的性能问题还不是很明确.

3.1.3基于XML消息的体系结构描述语言XADL

体系结构描述语言XADL的基础是一种基于消息的体系结构模型, 即构件通过端口接收请求消息和发送响应消息构件之间通过端口的连接进行消息交换, 从而组合为复合构件或应用系统因此, 中包含了对构件接口的描述和对系统组合的描述,第1.1节和1.2节分别介绍了这两部分内容, 第1.3节给出了完整的例子.

3.1.3.1构件借口描述

在XADL中构件通过端口接收和发送消息,端口,分为输入端口和输出端口,分别用来接收请求消息和发送响应消息。我们用关键字inports和ouports定义端口。在构件组合过程中只有在不同输入、输出方向的端口之间才能进行连接。

端口除了具有方向之外,还必须指明其所允许的消息类型一个端口上可以允许多个不同的消息类型。为了使系统具有良好的可扩展性,采用XML来描述消息, 因此在接口描述中,我们采用文档类型定义(DTD)表示消息类型,并把DTD作为定义消息类型的关键字。

实际上,端口及其所允许的消息类型定义了接口的基调, 描述了构件与外界所能交换的消息的类型和方向。我们把某个端口上某个消息的出现称为一个事件, 而把由端口和其所允许的消息类型所组成的二元组定义为事件类型:事件:e=

事件类型示:E=

换句话说,事件类型的集合定义了接口的基调,与传统的IDL不同的是,在XML 的接口描述中, 除了定义接口基调外, 还将对事件之间的次序约束关系进行描

述。我们采用有限状态自动机来进行次序约束关系的刻画。有限状态自动机由一组状态和一组迁移构成。自动机在某个状态下会响应某个类型的事件,并转移到另外的状态:

:->

自动机的定义由关键字Constraints引导, 包含状态的定义和迁移的定义, 分别以states和Transitions为关键字,在自动机的状态中,有一个起始状态和一个或多个终结状态,分别用init和final来标注。

3.1.3.2系统组合描述

在XADL中, 不仅支持对构件接口的描述,还支持对构件组合关系的描述。构件之间通过端口的连接进行系统组合,只有方向相反和消息类型相同的端口才能进行连接。在参与某个连接的端口中, 不允许存在属于同一个构件的两个端口支持一对多的连接,对于输出端口来说,其上的消息将被同时输出到所有与其相连的输入端口上;而对于输入端口来说, 同一时刻最多只能有一个与其相连的输出端口上的消息被输入到该端口上。对于具有连接关系的输入端口A和输出端口B 来说, 以下的约束成立:事件和事件为同时发生,其中X是满足两个端口上的消息类型的XML消息。我们称这种约束为连接约束。

构件接口描述定义了构件的类型,而在系统组合描述中,我们首先要定义构件实例构件实例的定义以Instances为关键字,一个系统中可以包含同一构件类型的多个实例。构件端口之间的链接关系用关键字to表示,具有一下的形式:C1.p1 to C2.p4 或 C1.p1 to C2.p3,C3.p4.

其中C1,C2和C3分别为构件实例,而p1,p3和p4分别为各个构件的端口。

3.1.4 Acme

Acme是一种体系结构互换语言,支持体系结构的规格说明在不同的ADL之间转换。Acme可作为体系结构设计工具的通用交换格式,也可以作为开发闲的体系结构设计和分析工具的基础。

Acme有如下主要特点:

1.用7种基本的设计元素来表示软件体系结构:

2.提供了一种灵活的注释机制,支持把体系结构和用子语言表示的非结构化信息结合起来,这些子语言是外部定义的;

3.提供了一种类型机制,用于抽象出共同的、可重用的体系结构用法和风格;

4.提供了一个开放的语义框架,用于体系结构的描述的推理。

Acme语言和Acme工具开发库有以下三种基本功能:

1.体系结构的相互交互。

通过提供一种体系结构设计的交换格式,ACME允许各种开发工具与其它补

充工具协同工作。这样,使用ACME的设计师与使用其它ADL设计师相比,就多了很多可供选择的开发工具。

2.为新的体系结构设计和分析工具提供了可扩展的基础。

许多体系结构设计和分析工具需要一个用于描述、存储、操纵体系结构设计的表示法。但开发好的表示法往往需要很高的时间和经济成本。使用ACME可以有效减少这方面的成本,因为可以用它提供的语言和用于工具开发的函数库作为基础。使用ACME还使得所开发的工具能够有更好的通用性,因为它可以与其它使用ACME格式的工具交流设计,协作开发。

3.体系结构描述。

ACME本身是一个很好的开发语言。尽管不是适合于所有的应用系统,ACME 体系结构描述语言能够让开发者很好地认识体系结构建模,提供了一个相对容易的对简单软件系统的描述方法。

Acme体系结构设计元素类型:

ACME的核心概念以7种类型的实体为基础:构件、连接件、系统、端口、角色、表述和表述图(rep-maps, representation map的缩写)。在这7个类型里,最基本的体系结构描述元素是构件、连接件和系统。(图1)

图1 一个Acme描述元素

1.构件——代表系统中基本的计算元素和数据存储。

直观上看,在用方框和连线表示的体系结构图中,它们对应的就是方框。典型的构件有客户、服务器、过滤器、对象、黑板、数据库等。

2.连接件——代表构件之间的交互。

它是构件之间通信和交互活动的媒介,像“胶水”一样把构件联系成为一个体系结构。直观上看,它们对应方框—连线图中的连线。连接件的例子包括简单的交互形式,如管道、过程调用、事件广播等。但连接件也可以表示更复杂的交互,如客户/服务器协议或数据库和应用程序之间的SQL连接。

3.系统——代表构件和连接件的配置。

4.构件的接口定义为端口(Port)的集合。

每个端口表示构件与它外部环境的一个交互点。通过使用不同类型的端口,一个构件能提供多个接口。一个端口可以表示很简单的接口,也可以表示复杂接口,如必须按某种指定顺序被调用的过程集合,或一个事件广播交互点。

5.连接件的接口可以用角色(Role)来定义。

连接件的每一个角色定义了连接件所代表的交互中的一个参与方。二重连接件有两个角色,如RPC连接件的Caller和Callee,或管道连接件的reading和writing,或消息发送连接件的sender和receiver角色。其他类型的连接件的角色可能多于两个。例如,事件广播连接件,可能有一个事件播报角色和任意数目的事件接收角色。

Acme的属性:

Acme并不明确定义属性的含义,但是它支持对属性含义的共享使用。其属性由名字、可选类型和值构成。对7种设计实体里的任何一种都可以添加注释。为了使不同的ADL都能够使用属性所表达的信息,这些ADL对于属性应该有共同的理解。当前已经有一些属性子语言被开发出来。其中之一是用来规定在使用图形化的体系结构描述编辑工具时的可视化属性,还有一个子语言用于描述体系结构上的临时约束。

Acme语言引入模板机制。

1.它是一种类型化、参数化的宏,用于对反复出现的模式做规格说明。

2.在应用或初始化这些模式时,只要给它们提供适当类型的参数就可以了。

3.模板定义了句法结构,可以被扩展到需要生成新的声明的位置。

4.它们非常灵活,可以像在构件和连接件中一样定义它们的联结。

Acme开放语义框架:

Acme主要考虑的是体系结构的构造,因此并不包含体系结构的计算语义,而是依靠一个开放的语义框架。这个框架提供了基本的结构语义,它用构建属性的方式,允许特定的ADL把体系结构和运行时的行为结合起来。这个框架还提供了从语言的结构外观到基于关系和约束的逻辑形式的直接映射。在这个框架里,ACME规格说明表示一个由此推导出的逻辑谓词,称为它的指示规则。

3.2常见ADL的比较

四、现有软件体系结构描述语言ADL的不足

4.1大部分ADL领域相关且互不兼容

目前提出的众多的ADL及它们的支持工具,都是独立的形式存在的,且描述语法互不兼容,同时又有许多共同的特征,这使设计人员很难选择一种合适的ADL,若设计特定领域的软件体系结构又需要从头开始描述,不利于对不同领域的体系结构进行分析。大部分ADL是领域相关的,不利于对不同领域的体系结构进行分析。一些ADL在某些方面大同小异,有很多冗余的部分。

4.2支持工具有效性和可用性差

现有的ADL伴生的支持工具有效性和可用性较差,在多视图、细化与回溯、跨体系结构层一致性检查等方面有很多不足的地方。甚至一些ADL还没有可用的支持工具。严重阻碍了这些ADL的广泛应用。

五、软件体系结构描述语言ADL的进一步研究方向

现有的ADL中,开发的焦点一般都集中在增强语言的分析能力与系统生

成上。体系结构毕竟只是达到目的手段,开发者能够推断目的系统的信息比仅仅为体系结构的提供信息要珍贵得多。能够快速开发出系统或管理最终产品质量才是ADL的真正目的。ADL经历了数量上的井喷期后,今后的研究工作重点将放在ADL共性研究与语言互换、与其它产品集成.提高支持工具的有效性等方面。

5.1 各种ADLS 之间的信息交换。

现有的ADLS 大多是与领域相关的,所以不利于对不同领域体系结构的说明。但这些针对不同领域的ADLS在某些方面又大同小异,造成资源的冗余。其实,大多数ADLS 具有一系列的共同概念。如何用一种公共形式把各种语言综合起来,使之能够交换体系结构描述信息,将是今后软件体系结构研究和实践的重点之一。

5.2ADL描述的信息与其它生命周期产品的集成

体系结构描述是整十软件生命周期的一十环节,ADL如伺能够承上启下将是十分重要的研究课题。一方面,要研究体系结构描述向其它文档转移,男一方面.要研究如何利用需求分析成果来直接生成系统的体系结构说明。

5.3加强对进化的研究

目前的ADL有些可以实现组件与连接子的进化,但这样的进化能力是有限的其一.是因为这样的进化大多是通过子类型来实现的。其二,系统级的进化能力才是最终目的。系统级的进化必然涉及到系统族问题,对连方面的研究也将促进领域工程的发展。

5.4提高支持工具的有效性

尽管现有的ADL都提供了支持工具集,但将这些ADL与工具应用于实际系统开发中的成功范例还很有限。支持工具的可用性与有效性较差。严重地阻碍了这些ADL的广泛应用。支持工具须在多视图、细化与回溯、跨体系结构层一致性检查等方面进一步加强。

参考文献

1. Wolf A L.succeddings of the Second International software Architecture Workshop(ISAW-2).ACM sigsoft Software Engineering Note.1997(Jan):42~56

2. Medvidovic N.A Classification and Comparison Framework for Software Architecttzre Description Languages February 1996

3.Luckham D C,Vera J An Event-Based Architecure Definition Language.IEEE Trans on SE 1995(sep.) 717~734

软件体系结构总结

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

软件体系结构综述

软件体系结构研究综述 班级:软件092 学号:17 姓名:陈世华摘要: 近年来,软件体系结构逐渐成为软件工程领域的研究热点以及大型软件系统与软件产品线开发中的关键技术之一.归纳了软件体系结构技术发展过程及其主要研究方向.在分析了典型的软件体系结构概念之后,给出了软件体系结构的定义.通过总结软件体系结构领域的若干研究活动,提出了软件体系结构研究的两大思路,并从7个方面介绍了软件体系结构研究进展.探讨了软件体系结构研究中的不足之处,并分析其原因.作为总结,给出了软件体系结构领域最有前途的发展趋势. 关键词: 软件体系结构;基于体系结构的软件开发;软件体系结构描述语言;软件体系结构描述方法;软件体系结构演化;软件体系结构发现;软件体系结构分析;软件体系结构验证;特定域软件体系结构(DSSA) Abstract: Software architecture (SA) is emerging as one of the primary research areas in software engineering recently and one of the key technologies to the development of large-scale software-intensive system and software product line system. The history and the major direction of SA are summarized, and the concept of SA is brought up based on analyzing and comparing the several classical definitions about SA. Based on summing up the activities about SA, two categories of study about SA are extracted out, and the advancements of researches on SA are subsequently introduced from seven aspects. Additionally, some disadvantages of study on SA are discussed, and the causes are explained at the same time. Finally, it is concluded with some significantly promising tendency about research on SA. Key words: software architecture; architecture-based development; architecture description language; architectural representation and description; architectural evolution and reuse; architectural discovery; architectural analysis; architectural verification and evaluation; domain-specific software architecture (DSSA)

框架结构的文献综述

【内容摘要】:框架结构是由梁和柱组成承重体系的结构。主梁、柱和基础构成平面框架,各平 面框架再由联系梁连接起来而形成框架体系。随着建筑业的发展,目前多层和高层建筑逐渐增多。 人们可以根据自己的喜好充分利用其使用空间,满足了使用者在使用上的不同要求。因此,框架结构房屋越来越多的受到人们的青睐。 【关键词】:框架结构、混凝土、应力、抗震、框架梁 一、引言 框架结构是指由梁和柱刚接而成承重体系的结构,即由梁和柱组成框架结构共同承受使用过程中 出现的水平荷载和竖向荷载。钢筋混凝土框架结构是由楼板、梁、柱及基础四种承重构件组成的。 由主梁、柱与基础构成平面框架,各平面框架再由 连续梁连接起来形成空间结构体系。 该结构形式,可形成较大的内部空间,能灵活的布置建筑平面,并具有传力明确、延性、抗震 性和整体性好的优点,因此,无论是在工业建筑还是民用建筑中,框架结构都是一种常用的结构 形式。 二、主题部分 1.框架结构的概念 框架结构是指由梁和柱以钢筋相连接而成,构成承重体系的结构,即由梁和柱组成框架共同抵抗使用 过程中出现的水平荷载和竖向荷载。框架结构的房屋墙体不承重,仅起到围护和分隔作用, 一般用预制的加气混凝土、膨胀珍珠岩、空心砖或多孔砖、浮石、蛭石、陶粒等轻质板材砌筑或 装配而成。 框架结构又称构架式结构。房屋的框架按跨数分有单跨、多跨;按层数分有单层、多层;按立面 构成分为对称、不对称;按所用材料分为钢框架、混凝土框架、胶合木结构框架或钢与钢筋混凝土混合 框架等。其中最常用的是混凝土框架(现浇整体式、装配式、装配整体式,也可根据需要 施加预应力,主要是对梁或板)、钢框架。装配式、装配整体式混凝土框架和钢框架适合大规模 工业化施工,效率较高,工程质量较好。 2.框架结构的优缺点 (1)框架结构的主要优点: 空间分隔灵活,自重轻,有利于抗震,节省材料;具有可以较灵活地配合建筑平面布置的优点, 利于安排需要较大空间的建筑结构;框架结构的梁、柱构件易于标准化、定型化,便于采用装配 整体式结构,以缩短施工工期;采用现浇混凝土框架时,结构的整体性、刚度较好,设计处理好 也能达到较好的抗震效果,而且可以把梁或柱浇注成各种需要的截面形状。 (2)框架结构的缺点为:

软件体系结构设计说明书

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

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

软件体系结构期末大题

软件体系结构-期末大题

————————————————————————————————作者:————————————————————————————————日期: ?

1.基于构件的软件开发的优势是什么? 基于构件的软件将软件开发的重点从程序编写转移到了基于已有构件的组装,更快地构造系统,减轻用来支持和升级大型系统所需要的维护负担,从而降低了软件开发的费用2.尝试用自己的语言介绍Kruchten的“4+1”模型。 Kruchten 提出了一个"4+1"视图模型,从5个不同的视角包括包括逻辑试图、进程视图、物理视图、开发视图、场景视图来描述软件体系结构。每一个视图只关心系统的一个侧面,5个试图结合在一起才能反映系统的软件体系结构的全部内容。

3.在希赛公司的一个财务管理系统,财务部要客户提供………… 4.不同的体系结构风格具有各自的特点、优劣和用途。试对管道-过滤器风格、事件驱动风格、分层系统、C2风格和基于消息总线的风格进行分析比较。P52-56 (1)管道和过滤器 特点: @使得软构件具有良好的隐蔽性和高内聚、低耦合的特点; @允许设计者将整个系统的输入输出行为看成是多个过滤器的行为的简单合成;

@支持软件重用。只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来; @系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉; @允许对一些如吞吐量、死锁等属性的分析; @支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行?缺点:①通常导致进程成为批处理的结构。 ②不适合处理交互的应用。 ③因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。 (2)

软件体系结构

课程名称:软件体系结构 课程编号:C304 课程学分:2 适用学科:计算机应用技术 软件体系结构 Software Architecture 教学大纲 一、课程性质 本课程是为计算机应用专业研究生开设选修课。软件体系结构是软件开发设计的高级课程,对培养计算机应用专业研究生今后从事大型软件开发工作有重大意义。 二、课程教学目的 学生通过本课程的学习后,在概念上建立从体系结构看待软件系统的观念,理解体系结构设计的优劣对软件系统质量的影响;掌握软件体系结构的建模、评价与检测的方法,能够应用上述方法评价软件体系结构的质量。 三、课程教学基本内容及基本要求 第一章绪论(2学时) 1、软件体系结构概述 2、研究内容与方法 第二章软件体系结构建模理论(2学时) 1、软件体系结构描述语言ADL简介 2、时序逻辑描述语言LOTOS简介 3、实例研究:流媒体信道调度模型及描述

第三章软件体系结构一致性检测(2学时) 1、软件体系结构一致性 2、软件体系结构一致性测试算法 3、实例研究1-三层C/S结构一致性检测 第四章软件体系结构评价(4学时) 1、软件体系结构评价模型 2、软件体系结构性能评价 3、软件体系结构可靠性评价 4、实例研究基于C/S结构的视频点播系统性能研究 第五章软件体系结构案例分析(16学时) 1、COBAR体系结构简介 2、P2P体系结构简介 3、网格体系结构简介 四、本课程与其它课程的联系与分工 本课程的先修课程为《面向对象程序》及《分布式数据库》,通过上述课程的学习,使学生能够体会大型软件开发的基本过程,体会到软件开发中体系结构的重要性。 五、实践环节教学内容的安排与要求 结合本研究室的研究课题,评价软件体系结构的性能。 六、本课程课外练习的要求 结合自己的研究课题,建立软件体系结构的性能模型和可靠性模型,以实际系统为被背景评价软件体系的性能。

软件体系结构考试要点

考试题型 一、填空(每题1分,共10分) 二、名词解释(每题2分,共20分) 1、B/S 2、C/S 3、HMB 4、DSSA 5、ADL 6、XML 7、ATAM 8、Web Service 9、MTTF10、SOAP 11、WSDL 12、UDDI 13、SAAM 14、MVC 15、Artifact-Driven 16、Use-Case-Driven 17、Domain-Driven 18、Pattern-Driven 19、构件20、连接件21.、MTBF 22、敏感点23、权衡点24、直接场景25、间接场景26、质量属性效用树27、XML Schema 三、问答题(40分) 1、构件描述模型有哪几种? 2、理解并比较构件分类的三种方法:关键字分类法、刻面分类法和超文本组织方法, 它们是如何组织的?如何在其中检索构件?每种方法各有什么优缺点? 3、了解软件体系结构的四个发展阶段。 4、根据软件体系结构的定义,你认为软件体系结构的模型应该由哪些部分组成? 5、至少掌握三种经典软件体系结构风格。 6、试分析和比较B/S,二层C/S和三层C/S,指出各自的优点和缺点。 7、请对MVC风格体系结构进行介绍,并说明该风格的优缺点。 8、在正交软件体系结构中,什么是完全正交结构?在实际使用时是不是必须严格遵 守结构正交?使用正交软件体系结构有什么优点? 9、层次系统结构和基于消息的层次系统结构有什么区别? 10、体系结构描述语言与程序设计语言有什么区别? 11、ACME中定义了哪七种体系结构实体?ACME中的表述和表述映射,类型和风格是什么含义?

12、了解基于XML的软件体系结构描述语言。 13、简要介绍Krutchten的“4+1”视图模型。 14、设计模式的基本成分有哪几个?请简单介绍其各个基本成分。 15、为什么要评估软件体系结构?从哪些方面评估软件体系结构? 16、软件体系结构评估的主要方法有哪三种?请简单解释每种方法。 17、SAAM和ATAM评估方法的基本步骤分别是什么? 18、Web服务有哪些核心技术,这些技术是如何在Web服务中发挥作用的。 四、看图答题(30分) 1、请根据P38图3-5介绍黑板系统的组成。 2、请根据P59图3-26解释HMB风格的构件模型。 3、请根据P60图3-27解释消息总线的属性和服务。 4、请根据P147图5-2介绍体系结构设计方法的元模型。 5、请根据P167图6-1简要介绍基于体系结构的软件开发过程的各个步骤。并说明各个步骤的必要性何在?或者说,它们在软件生命周期中都起到了什么作用? 6、请根据P207图8-1分析服务提供者、服务请求者和服务注册中心三者的作用,以及它们之间的工作流程。 7、请根据P229图8-11介绍UDDI的具体工作步骤。

软件架构设计文档模板

Software Architecture Document Version <1.0> Revision History Date Version Description Author < yyyy-mm-dd >

目录 1.文档简介4 1.1文档目的4 1.2文档范围4 1.3定义、缩写词和缩略语4 1.4参考资料4 2.架构描述方式4 2.1架构视图阅读指南4 2.2图表与模型阅读指南4 3.架构设计目标5 3.1关键功能5 3.2关键质量属性5 3.3业务需求和约束因素5 4.架构设计原则6 4.1架构设计原则6 4.2备选架构设计方案及被否原因6 4.3架构设计对后续工作的限制(详设,部署等)6 5.逻辑架构视图6 5.1职责划分与职责确定7 5.2接口设计与协作机制8 5.3重要设计包10 6.开发架构视图11 6.1Project划分11 6.2Project 1 11 6.2.1Project目录结构指导11 6.2.2程序单元组织12 6.2.3框架与应用之间的关系(可选)12 6.3Project 2 (13) 6.4Project n (13) 7.运行架构视图13 7.1控制流组织13 7.2控制流的创建、销毁、通信13 7.3加锁设计14 8.物理架构视图14 8.1物理拓扑14 8.2软件到硬件的映射15 8.3优化部署15

9.数据架构视图16 9.1持久化机制的选择16 9.2持久化存储方案16 9.3数据同步与复制策略16 10.关键质量属性的设计原理17

综合模块化航空电子系统软件体系结构综述

第30卷 第10期航 空 学 报 Vol 130No 110 2009年 10月ACTA A ERONAU TICA ET ASTRONAU TICA SIN ICA Oct. 2009 收稿日期:2008208228;修订日期:2008211218 基金项目:总装备部预研基金(9140A17020307JB3201);空军工程 大学工程学院优秀博士论文创新基金(BC07003) 通讯作者:褚文奎E 2mail :chuwenkui @1261com 文章编号:100026893(2009)1021912206 综合模块化航空电子系统软件体系结构综述 褚文奎,张凤鸣,樊晓光 (空军工程大学工程学院,陕西西安 710038) Overvie w on Soft w are Architecture of Integrated Modular Avionic Systems Chu Wenkui ,Zhang Fengming ,Fan Xiaoguang (Institute of Engineering ,Air Force Engineering University ,Xi ’an 710038,China ) 摘 要:作为降低系统生命周期费用(L CC )、控制软件复杂性、提高软件复用程度的重要手段之一,软件体系结构已成为航空计算领域的一个主要研究方向。阐述了综合模块化航空电子(IMA )的理念,分析了推动 IMA 产生和发展的主要因素。总结了ARINC 653,ASAAC ,GOA 以及F 222通用综合处理机(CIP )上的软件 体系结构研究成果,并讨论了IMA 软件体系结构需要解决的若干问题及其发展趋势。在此基础上,对中国综合航电软件体系结构研究提出了一些见解。 关键词:综合模块化航空电子;软件体系结构;开放式系统;软件工程;军事工程中图分类号:V247;TP31115 文献标识码:A Abstract :As an important means to decrease system life cycle cost (L CC ),control software complexity ,and improve the extent of software reuse ,software architecture has been a mainstream research direction in the aeronautical computer field.This article expatiates the concept of integrated modular avionics (IMA ).Three major factors are analyzed which promote the development of IMA architecture.IMA software architectures presented by ARINC specifications 653,ASAAC ,GOA ,and F 222common integrated processor (CIP )are summarized.Discussion about some problems to be solved and the development trend is made for IMA soft 2ware architecture.Finally ,some views are presented about IMA software architecture research in China.K ey w ords :integrated modular avionics (IMA );software architecture ;open systems ;software engineering ;military engineering 军用航空电子系统(以下简称:航电)是现代 战机的“中枢神经”,承载了战机的绝大部分任务,比如电子战、通信导航识别(CN I )系统等,是决定战机作战效能的重要因素。 F 222的航电综合了硬件资源,重新划分了任务功能,标志着战机的航电结构正式演变为综合式。在此基础上,F 235将航电硬件综合推进到传感器一级,并用统一航电网络取代F 222中的多种数据总线,航电综合化程度进一步提高[1]。 与此同时,航电软件化的概念逐渐凸现。F 222上由软件实现的航电功能高达80%,软件代码达到170万行,但在F 235中,这一数字刷新为800多万行。这表明,软件已经成为航电开发和实现现代化的重要手段[2] 。 航电综合化和软件化引申的一个重要问题是如何合理组织航电上的软件,使之既能够减少生 命周期费用(Life Cycle Co st ,L CC )和系统复杂度,同时又能在既定的约束条件下增强航电软件的复用性和经济可负担性。此即是航电软件体系结构研究的主要内容。 1 综合模块化航空电子 111 综合模块化航空电子理念 综合模块化航空电子(Integrated Modular Avi 2onics ,IMA )(注:该结构在国内一般称为综合航 电)是目前航电结构发展的最高层次,旨在降低飞机LCC 、提高航电功能和性能以及解决软件升级、硬件老化等问题。与联合式航电“各子系统软硬件专用、功能独立”的理念不同,IMA 本质上是一个高度开放的分布式实时计算系统,致力于支持不同关键级别的航电任务程序[3]。其理念概括如下: (1)系统综合化。IMA 最大限度地推进系 统综合,形成硬件核心处理平台、射频传感器共享;高度融合各种传感器信息,结果为多个应用程

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

壹 . 名词解释(参考斯佳分享的名词解释文档) 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.360docs.net/doc/427370472.html, (Module Interconnection Language) 模块内连接语言 贰 . 判断题 1、软件重用是指重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。答案:√ 依据页码:P4 2、软件体系结构充当一个理解系统构件和它们之间关系的框架,特别是那些始终跨越时间和实现的属性。 答案:√ 依据页码:P28 5、构件可以由其他复合构建和原子构件通过连接而成。() 答案:√ 依据页码:P37 6、体系的核心模型由5种元素组成:构件、连接体、配置、端口和角色() 答案:√ 依据页码:P37 7、软件体系结构的核心由5种元素组成:构件、连接件、配置端口和角色。其中,构件、连接件和配置是最基本的元素() 答案:√ 依据页码:P37 8、开发视图主要支持系统的功能需求,即系统提供给最终用户的服务() 答案:X 依据页码:P32、33 9、构件、连接件以及配置是体系结构的核心模型最基本的元素() 答案:√ 根据页码:P37

编写软件架构文档说明,第1部分什么是软件架构,为什

编写软件架构文档说明,第 1 部分: 什么是软件架构,为什么为软件架构编写文档说明非常重要 2008 年 10 月 16 日Tilak Mitra 认证高级 IT 架构师 IBM Global Services 软件架构对于复杂实时系统的开发已日益变得更加重要。在这个新的系列中,了解为什么以及应该如何编写软件架构文档说明。您将了解为任何中大型软件开发项目编写文档说明的五个不同视图或方面。这是本系列中的第一篇文章,其中将介绍软件架构和文档说明的重要性。您还将概略了解将在后续文章中介绍的体系结构视图。 引言 软件架构是一门学科,开始于 20 世纪 70 年代。面对不断增加的复杂性和开发复杂实时系统的压力,作为主流系统工程和软件开发的基本构造,软件架构应运而生。 与任何其他久经考验的学科一样,软件架构在诞生之初也面临许多挑战。软件架构表示系统的结构和行为方面。在早期为软件架构编写文档说明时,所使用的文本和图解表达常常不足或者不够精确。所需的是某种一致并得到充分理解的伪(或元)语言,以便将对软件架构进行表示和编写文档说明的不同方式统一起来。在学术研究的推动下,在用于开发有效软件架构文档说明的最佳实践和指导原则方面,工程和计算机科学领域已取得了长足的发展。 在本系列中,您将了解如何编写软件架构文档说明。了解编写文档说明的不同方面:系统上下文、体系结构概述、功能体系结构、操作体系结构和体系结构决策。 在这第一篇文章中,了解软件架构是什么,以及为该学科的不同方面编写文档说明的重要性。软件架构 不同的研究人员已解释了软件架构是什么,并且他们对有关如何最好地表示软件系统的体系结构具有不同的观点。其中没有哪一种解释是错误的;每种解释都具有自己的价值。Bass L 等人抓住了软件架构的本质: “程序或计算系统的软件架构是该系统的结构,包括软件组件、那些组件的外部可见的 属性,以及那些组件之间的关系” 。 此定义重点关注由粗粒度的构造(软件组件)所构成的体系结构,可以将这些构造看作是体系结构的构建块。每个软件组件或体系结构构建块具有某些外部可见的属性,这是它向其他体系结构构建

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

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)来说明,从而形成了第五个视图。

软件架构

软件架构 软件架构 软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口_(计算机科学)来实现。 软件体系结构是构建计算机软件实践的基础。与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,一个软件架构师或者系统架构师陈述软件构架以作为满足不同客户需求的实际系统设计方案的基础。 软件构架是一个容易理解的概念,多数工程师(尤其是经验不多的工程师)会从直觉上来认识它,但要给出精确的定义很困难。特别是,很难明确地区分设计和构架:构架属于设计的一方面,它集中于某些具体的特征。 在"软件构架简介"中,David GArlan和Mary Shaw认为软件构架是有关如下问题的设计层次:"在计算的算法和数据结构之外,设计并确定系统整体结构成为了新的问题。结构问题包括总体组织结构和全局控制结构;通信、同步和数据访问的协议;设计元素的功能分配;物理分布;设计元素的组成;定标与性能;备选设计的选择。"[GS93] 但构架不仅是结构;IEEE Working Group on Architecture把其定义为"系统在其环境中的最高层概念"[IEEE98]。构架还包括"符合"系统完整性、经济约束条件、审美需求和样式。它并不仅注重对内部的考虑,而且还在系统的用户环境和开发环境中对系统进行整体考虑,即同时注重对外部的考虑。 在Rational Unified ProcESs中,软件系统的构架(在某一给定点)是指系统重要构件的组织或结构,这些重要构件通过接口与不断减小的构件与接口所组成的构件进行交互。

软件体系结构(考试习题集含答案)

1.面向对象的方法优势体现在(ABD ) A.简化软件开发过程 B.支持软件复用 C.提高软件运行效率 D.改善软件结构 2.用户界面设计中的三条“黄金规则”是(ABC ) A.使系统处于用户控制之中 B.减少用户的记忆负担 C.保持界面的一致性 D.保证用户的易学性 3.用户界面的分析和设计过程是迭代的,其中包括的活动是 (ABCD ) A.用户、任务以及环境的分析和建模 B.界面设计 C.界面实现 D.界面确认 4.界面确认需要注意三个方面(ABC ) A.界面正确完成了用户的任务,适应用户的任务变化 B.易学性和易用程度 C.用户的接受程度 D.用户的习惯 5.用户界面分析时通常采用的信息获取方式包括(ABCD ) A.用户会谈 B.销售人员信息采集 C.市场分析 D.用户支持人员信息收集 6.(C )把完成一个特定功能的动作序列抽象为一个过程名和参数表 A.数据抽象 B.动作抽象 C.过程抽象 D.类型抽象 7.(A)把一个数据对象的定义抽象为一个数据类型名 A.数据抽象 B.动作抽象 C.过程抽象 D.类型抽象 8.软件体系结构设计需要考虑以下(ABCD )

A.适用性 B.结构稳定性 C.可扩展性 D.可复用性 9.模块设计时应该考虑(AB ) A.模块功能独立 B.模块信息的隐藏 C.模块接口的简单 D.模块实现简单 10.一个完整的软件设计的主要活动包括有(ABCD ) A.体系结构设计 B.界面设计 C.模块/子系统设计、 D.数据模型、过程/算法设计等 11.模块化是指把一个复杂的问题分割成若干个可管理的小问题后,更易 于理解,模块化正是以此为依据的,在划分模块的过程中应该考虑到(ABC ) A.模块的可分解性、可组装型 B.模块的可理解性、连续性、 C.模块保护 D.尽可能低分割模块,使得问题的难度降到最 1.什么是软件工程?构成软件工程的要素是什么? 软件工程是将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,对所选方法的研究。软件工程的要素由方法、工具和过程组成。方法支撑过程和工具,而过程和工具促进方法学的研究。 2.什么是软件生存周期?软件开发过程模型与软件生存周期之间是何关 系? 软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程叫软件生存周期。软件开发过程模型表示软件开发中各个活动的安排方式,出来软件开发各个活动之间关系,是软件开发过程的概括,是软件工程的重要内容,其为软件管理提供里程碑和进度表,为

软件体系结构描述语言ADL综述_bycs

软件体系结构描述语言ADL综述 Advancement of Architecture Description Language (ADL) 引言 60年代的软件危机使得人们重新开始重视软件工程的研究。最初人们选择了“算法+数据结构=程序”的设计模式。但随着软件系统的规模和复杂性越来越大,传统的设计模式已经不能适应要求。同时为了保证软件质量,提高软件的可靠性、可重用行和可维护性,软件设计的核心逐渐转向对系统的总体结构即软件体系结构(Software Architecture)的设计和规范。这类方法主要着眼于软件系统的全局组织形式,在更高层次上把握系统各组件之间的内在联系。并从全局的,整体的角度去理解和分析整个系统的行为和特性,有助于解决当前开发复杂的大型软件所存在的困难。 研究软件体系结构的首要问题是如何描述软件体系结构。目前已有很多表现形式和方法表法、模块连接语言、软构件描述法和体系结构描述语言ADL等。而其中ADL作为形式化的表示软件体系结构的工具呈现出强大的生命力。它提供了规范化的体系结构描述,同时是对软件体系结构进行求精、验证、演化和分析的前提与基础。目前已经成为软件体系结构方向的研究热点。实践工作者将这些ADL应用于实践中,获得了成功。同时,我们应注意到不同的ADL所支持的抽象能力及其提供的分析能力变化很大,学术领域目前对ADL的定义尚未取得一致。 一、软件体系结构的概述 由于对软件体系结构的研究和应用刚刚兴起,许多专家学者从不同的角度和侧面对软件体系结构进行刻画,因此,目前软件体系结构还没有一个标准定义。这里给出一个目前学术领域广泛接受的定义。(D.Garlan&M Shaw,1993)软件体系结构是软件设计过程中的一个层次,在计算过程中的算法设计和数据结构之上,处理总体系统结构设计和描述方面的一些问题。包括总体组织与全局控制结构、通讯协议、同步、数据存取、设计元素的功能分配,物理分布,设计元素的复台,设计方案的选择、评估和实现等。 二、软件体系结构描述语言ADL的概述 2.1对ADL的不同理解 当前在学术界对ADL 的定义尚未取得一致下面的定义大多来源于自身对某种ADL语言的开发所得到的体会。尽管它们不免有以偏概全之赚,但还是为我们了解ADL提供了有价值的信息。 (1)在文[1]中,Tracz定义一个ADL包含4“C”:组件(components) , 连接子(connectors),配置(configurations),约束(constraint s)。 (2)根据其UniCon的经历,Shaw 与同事列出了ADI 应该展示的属

冯诺依曼体系结构发展综述

冯·诺依曼体系结构发展综述 摘要:本文介绍了冯·诺依曼体系结构的诞生和发展,探讨了制约现代计算机进一步发展的主要因素。指出基础硬件IC生产技术的极限和冯·诺依曼体系结构的缺陷将成为计算机发展的两大瓶颈。调查了现在为了突破冯·诺依曼体系瓶颈各国科学家做出的努力,总结了现在正在研究发展中的几种非冯·诺依曼体系结构计算机。 关键词:冯·诺依曼体系结构;计算机;局限;发展 1冯·诺依曼体系的诞生和发展 1.1冯·诺依曼体系结构概述 众所周知,第一台计算机是诞生于1946年的ENIAC。作为第一台计算机的研制者,数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),这套理论被称为冯·诺依曼体系结构。该体系结构在创立70年后的今天仍然指导着计算机的制造,冯·诺依曼由此被称为“计算机之父”。对冯体系结构的传承与突破也记载着计算机的发展进程。[1] 1.2冯·诺依曼提下的发展动向 作为经久不哀的经典理论,冯·诺依曼系结构的优点是逻辑清晰、结构简单、实现成本低,缺点是存储的指令和数据共享一条总线,信息流的传输成为限制计算机性能的瓶颈,串行执行指令的方式影响了指令的执行速度。基于该理论的特点,对冯·诺依曼体系结构的三原则的演变角度分析计算机的发展动向。[2] 1.2.1二进制逻辑的演变 计算机诞生前,人类对计算机的逻辑并无清晰的概念,计算机采用什么进制一度成为科学家争论的焦点。基于人类的习惯,计算机采用十进制似乎更符合人类规范,能更好地为人类服务。但是,冯·诺依曼以电子设备存在二种稳态为依据提出了以二进制逻辑作为计算机逻辑基础,沿用至今。取决进制使用的关键在于基本稳态数量,人类普遍有十根手指,十种基本稳态造成了人类使用十进制这一现象。计算机的制造元器件如二极管等,普遍具有通断、高电平低电平、充放电等二种稳态,故而计算机内采用二进制。目前,科学家研究的新型计算机如生物计算机、量子计算机等,其制造元件使用生物分子和量子等,具备的基本稳态数量很多,其内部采用的进制也必然不同。在生物、量子等前沿科技的推动下,未来将很有可能制造出采用十进制的计算机。

软件体系结构期末复习题

软件体系结构期末 复习题

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

计算机体系结构综述

体系结构高性能的追求 计算机体系结构是选择并相互连接硬件组件的一门科学和艺术,在人们不断探索研究的过程中,一直在追求计算机的功能、性能、功率以及花费的高度协调,以期达到各方面的最佳状态,在花费、能量、可用性的抑制下,实现计算机的多功能、高性能、低功率、少花费的一个新时代。 根据当前体系结构的发展现状,要实现以上全部要求的一台计算机,还存在着诸多的限制条件,包括逻辑上的以及硬件上的。本篇综述针对2008年的ISCA会议上的几篇论文,经过仔细研读,深刻剖析,这些文章将现在计算机体系结构发展遇到的各种瓶颈列出,并给出了相关的意见及可行的解决方案。 计算机的体系结构范围很广,定义也很宽泛,它包含了指令集的设计、组织、硬件与软件的边界问题等等,同时涉及了应用程序、技术、并行性、编程语言、接口、编译、操作系统等很多方面。作为各项技术发展的中心,体系结构一直在不断地朝前发展。 纵观计算机体系结构一路发展的历史,从60年代中期以前,最早的体系结构发展的早期时代,计算机系统的硬件发展很快,通用硬件已经很普遍,但是软件的发展却很滞后,刚刚起步,还没有通用软件的概念。从60年代中期到70年代中期,体系结构有了很大进步。多道程序、多用户系统引入了人机交互的新概念,开创了计算机应用的新境界,使硬件和软件的配合上了一个新的层次,但是此时的软件由于个体化特性很难维护,出现了“软件危机”。从20世纪70年代中期开始,分布式系统开始出现并流行,极大地增加了系统的复杂性,出现了微处理器并获得了广泛应用。如今计算机的体系结构发展已经进入了第四代,硬件和软件得到了极大的综合利用,迅速地从集中的主机环境转变成分布的客户机/服务器(或浏览器/服务器)环境,新的技术不断涌现出来。尽管如此,计算机在总体上、功能上需要解决的问题仍然存在。随着RISC技术、Cache等创新技术的发展,不仅仅在专业领域,越来越多的PC机也在向此靠拢。在每一次进步与创新的同时使组件的成本降到最低成为最需要考虑的问题。 此次会议上发表的几篇论文,分别从以下几个方面对计算机体系结构的发展与改进进行了探究。 一、新一代服务器的发展 在《Understanding and Designing New Server Architectures for Emerging Warehouse-Computing Environments》一文中,提出了一个改善服务器性能的方案。这篇论文旨在试图理解和为新兴的“仓库计算”环境设计下一代服务器。文中有两个主要的

相关文档
最新文档