




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软软 件件 体体 系系 结结 构构付付 燕燕课课 程程 内内 容容 软件重用与构件技术软件重用与构件技术 软件体系结构概论软件体系结构概论 软件体系结构的风格软件体系结构的风格 软件体系结构描述软件体系结构描述 软件体系结构设计软件体系结构设计 基于体系结构的软件开发过程基于体系结构的软件开发过程 软件体系结构评估软件体系结构评估 WebWeb服务体系结构服务体系结构 特定领域的软件体系结构特定领域的软件体系结构 软件体系结构集成开发环境软件体系结构集成开发环境 2.1 2.1 软件体系结构的定义软件体系结构的定义 2.2 2.2 软件体系结构的研究意义软件体系结构的研究意义 2.3 2.3
2、软件体系结构的发展历程软件体系结构的发展历程 2.4 2.4 软件体系结构的研究现状及发展方向软件体系结构的研究现状及发展方向 2.5 2.5 本章小结本章小结第第2 2章章 软件体系结构概论软件体系结构概论第第2 2章章 软件体系结构概论软件体系结构概论2.1 2.1 软件体系结构的定义软件体系结构的定义定义定义1 IEEE610.12-19901 IEEE610.12-1990软件工程标准词汇中的定义软件工程标准词汇中的定义体系结构是以构件、构件之间的关系、构件与环境体系结构是以构件、构件之间的关系、构件与环境之间的关系为内容的某一系统的基本组织以及指导之间的关系为内容的某一系统的基本组织
3、以及指导上述内容设计与演化的原理。即:上述内容设计与演化的原理。即:软件体系结构软件体系结构=构件,连接件,环境,原理构件,连接件,环境,原理 。 第第2 2章章 软件体系结构概论软件体系结构概论2.1 2.1 软件体系结构的定义软件体系结构的定义定义定义2 Booch & Rumbaugh & Jacobson2 Booch & Rumbaugh & Jacobson的定义的定义体系结构是一系列重要决策的集合,这些决策与以体系结构是一系列重要决策的集合,这些决策与以下内容相关:软件的组织、构成系统的结构元素及下内容相关:软件的组织、构成系统的结构元素及其接口的
4、选择,这些元素在相互协作中明确表现出其接口的选择,这些元素在相互协作中明确表现出的行为、这些结构元素和行为元素进一步组合构成的行为、这些结构元素和行为元素进一步组合构成的更大规模的子系统,和引导这一组织(包括这些的更大规模的子系统,和引导这一组织(包括这些元素及其接口、它们的协作、它们的组合)的体系元素及其接口、它们的协作、它们的组合)的体系结构风格。即结构风格。即软件体系结构软件体系结构=组织,元素,子系统,风格组织,元素,子系统,风格 。 第第2 2章章 软件体系结构概论软件体系结构概论2.1 2.1 软件体系结构的定义软件体系结构的定义定义定义3 Bass3 Bass的定义的定义程序或计
5、算系统的软件体系结构是系统的一个或多个程序或计算系统的软件体系结构是系统的一个或多个结构,包括软件构件、构件的外部可视属性和构件之结构,包括软件构件、构件的外部可视属性和构件之间的关系。间的关系。首先,体系结构定义了构件,描述了构件间如何交互,首先,体系结构定义了构件,描述了构件间如何交互,这意味着体系结构略去了那些仅与某构件自身有关的这意味着体系结构略去了那些仅与某构件自身有关的信息。同时,这个定义明确指出系统可以包含多个结信息。同时,这个定义明确指出系统可以包含多个结构。这个定义还意味着每一个软件系统都有一个体系构。这个定义还意味着每一个软件系统都有一个体系结构,因为每个软件系统都是由若干
6、构件及其之间的结构,因为每个软件系统都是由若干构件及其之间的关系构成的。只要一个构件的行为可以被其它构件观关系构成的。只要一个构件的行为可以被其它构件观察或辨明,这个构件就是体系结构的一部分。察或辨明,这个构件就是体系结构的一部分。 第第2 2章章 软件体系结构概论软件体系结构概论2.1 2.1 软件体系结构的定义软件体系结构的定义定义定义4 Shaw4 Shaw的定义的定义 ShawShaw对当时的各种软件体系结构观点做了如下的分类。对当时的各种软件体系结构观点做了如下的分类。(1 1)结构模型:结构模型认为,软件体系结构由构)结构模型:结构模型认为,软件体系结构由构件、构件之间的连接和一些
7、其它方面组成。这些方面件、构件之间的连接和一些其它方面组成。这些方面包括如下几类。包括如下几类。 配置,风格。配置,风格。 约束,语义。约束,语义。 分析,属性。分析,属性。 原理,需求。原理,需求。第第2 2章章 软件体系结构概论软件体系结构概论2.1 2.1 软件体系结构的定义软件体系结构的定义(2 2)框架模型:框架模型的观点与结构模型相似,)框架模型:框架模型的观点与结构模型相似,但其重点在于整个系统的连贯结构(这种结构通常但其重点在于整个系统的连贯结构(这种结构通常是唯一的),这与重视其组成恰好相反。框架模型是唯一的),这与重视其组成恰好相反。框架模型常以某种特定领域或某类问题为目标
8、。常以某种特定领域或某类问题为目标。(3 3)动态模型:动态模型强调系统的行为质量。)动态模型:动态模型强调系统的行为质量。“动态动态”可以有多种含义。它可以是指整个系统配可以有多种含义。它可以是指整个系统配置的变化,也可以是指禁止预先激活了的通信或交置的变化,也可以是指禁止预先激活了的通信或交互,还可以是指计算中表现出的动态特性,如改变互,还可以是指计算中表现出的动态特性,如改变数据的值。数据的值。(4 4)过程模型:过程模型关注系统结构的构建及其)过程模型:过程模型关注系统结构的构建及其步骤和过程。在这一观点下,体系结构是所进行的步骤和过程。在这一观点下,体系结构是所进行的一系列过程的结果
9、。一系列过程的结果。 第第2 2章章 软件体系结构概论软件体系结构概论2.1 2.1 软件体系结构的定义软件体系结构的定义定义定义5 Garlan&Shaw5 Garlan&Shaw的模型的模型软件体系结构软件体系结构=构件,连接件,约束构件,连接件,约束 。(1 1)构件()构件(componentcomponent)可以是一组代码,如程序)可以是一组代码,如程序的模块,也可以是一个独立的程序,如数据库服务的模块,也可以是一个独立的程序,如数据库服务器。构件是相关对象的集合,运行后实现某计算逻器。构件是相关对象的集合,运行后实现某计算逻辑。它们或是结构相关或是逻辑相关。构件相
10、对独辑。它们或是结构相关或是逻辑相关。构件相对独立,仅通过接口与外部相互作用,可作为独立单元立,仅通过接口与外部相互作用,可作为独立单元嵌入到不同应用系统中。构件的定制和规范化对于嵌入到不同应用系统中。构件的定制和规范化对于实现构件的重用有重要意义。实现构件的重用有重要意义。第第2 2章章 软件体系结构概论软件体系结构概论2.1 2.1 软件体系结构的定义软件体系结构的定义(2 2)连接件()连接件(connectorconnector)可以是过程调用、管道、)可以是过程调用、管道、远程过程调用等,用于表示构件之间的相互作用,远程过程调用等,用于表示构件之间的相互作用,它把不同的构件连接起来构
11、成体系结构的一部分。它把不同的构件连接起来构成体系结构的一部分。连接件也是一组对象。它一般表现为框架式对象或连接件也是一组对象。它一般表现为框架式对象或转换式对象(调用远程构件资源),例如转换式对象(调用远程构件资源),例如“桩桩”、“代理代理”对象等。对象等。(3 3)约束()约束(constrainconstrain)一般为对象连接时的规则,)一般为对象连接时的规则,或指明构件连接的姿态和条件。例如,上层构件可或指明构件连接的姿态和条件。例如,上层构件可要求下层构件的服务,反之不行;两个对象不得以要求下层构件的服务,反之不行;两个对象不得以递归方式发送消息;代码复制迁移的一致性约束;递归方
12、式发送消息;代码复制迁移的一致性约束;在什么条件下此种连接无效等。在什么条件下此种连接无效等。 第第2 2章章 软件体系结构概论软件体系结构概论2.1 2.1 软件体系结构的定义软件体系结构的定义定义定义6 Perry&Wolf6 Perry&Wolf的模型的模型软件体系结构是一组具有特定形式的体系结构元素软件体系结构是一组具有特定形式的体系结构元素(elementselements)。这组元素分为)。这组元素分为3 3类:负责完成数据加类:负责完成数据加工的处理元素(工的处理元素(processing elementsprocessing elements)、被加工的)、被加
13、工的数据元素(数据元素(data elementsdata elements)和用于把体系结构的不)和用于把体系结构的不同部分组合连接到一起的连接元素(同部分组合连接到一起的连接元素(connecting connecting elementselements)。软件体系结构形式由专有特性和关系)。软件体系结构形式由专有特性和关系组成。专有特性用于限制软件体系结构元素的选择,组成。专有特性用于限制软件体系结构元素的选择,关系用于限制软件体系结构元素组合的拓扑结构。关系用于限制软件体系结构元素组合的拓扑结构。在多个体系结构方案中选择合适的体系结构方案往在多个体系结构方案中选择合适的体系结构方案往
14、往基于一组准则。即往基于一组准则。即软件体系结构软件体系结构=元素,形式,准则元素,形式,准则 。 第第2 2章章 软件体系结构概论软件体系结构概论2.1 2.1 软件体系结构的定义软件体系结构的定义定义定义7 Garlan & Perry7 Garlan & Perry的定义的定义19951995年,年,David GarlanDavid Garlan和和Dewne PerryDewne Perry在在IEEEIEEE软件工软件工程学报上所做的特约评论中提出:软件体系结构是程学报上所做的特约评论中提出:软件体系结构是一个程序或系统各构件的结构、它们的相互关系,一个程序或系统各
15、构件的结构、它们的相互关系,以及进行设计的原则和指导方针,这些原则和方针以及进行设计的原则和指导方针,这些原则和方针随时间变化而变化。随时间变化而变化。 第第2 2章章 软件体系结构概论软件体系结构概论2.1 2.1 软件体系结构的定义软件体系结构的定义定义定义8 Boehm8 Boehm的模型的模型软件体系结构包括系统构件、连接件、约束的集合,软件体系结构包括系统构件、连接件、约束的集合,反映不同人员需求的集合,以及准则的集合。其中,反映不同人员需求的集合,以及准则的集合。其中,这些准则能够说明由构件、连接件和约束所定义的这些准则能够说明由构件、连接件和约束所定义的系统在实现时是如何满足系统
16、不同人员需求的。即系统在实现时是如何满足系统不同人员需求的。即软件体系结构软件体系结构=构件,连接件,约束,不同人员的构件,连接件,约束,不同人员的需求,准则需求,准则 。 第第2 2章章 软件体系结构概论软件体系结构概论2.1 2.1 软件体系结构的定义软件体系结构的定义根据国内普遍认可的看法,可以将体系结构定义为根据国内普遍认可的看法,可以将体系结构定义为构件、连接件和约束。软件体系结构,指可预制和构件、连接件和约束。软件体系结构,指可预制和可重构的软件框架结构。构件是可预制和可重用的可重构的软件框架结构。构件是可预制和可重用的软件部件,是组成体系结构的基本计算单元或数据软件部件,是组成体
17、系结构的基本计算单元或数据存储单元;连接件也是可预制和可重用的构件部件,存储单元;连接件也是可预制和可重用的构件部件,是构件之间的连接单元;构件和连接件之间的关系是构件之间的连接单元;构件和连接件之间的关系用约束来描述。这样就可以把软件体系结构写成:用约束来描述。这样就可以把软件体系结构写成:体系结构(体系结构(architecturearchitecture)= =构件(构件(componentscomponents)+ +连接件(连接件(connectorsconnectors)+ +约束(约束(constraintsconstraints) 第第2 2章章 软件体系结构概论软件体系结构概
18、论2.1 2.1 软件体系结构的定义软件体系结构的定义除了构件、连接件和约束除了构件、连接件和约束3 3个最基本的组成元素,软个最基本的组成元素,软件体系结构还包括端口(件体系结构还包括端口(portport)和角色()和角色(rolerole)两)两种元素。构件作为一个封装的实体,仅通过其接口种元素。构件作为一个封装的实体,仅通过其接口与外部环境交互,而构件的接口由一组端口组成,与外部环境交互,而构件的接口由一组端口组成,每个端口表示了构件和外部环境的交互点。连接件每个端口表示了构件和外部环境的交互点。连接件作为建模软件体系结构的主要实体,同样也有接口。作为建模软件体系结构的主要实体,同样也
19、有接口。连接件的接口由一组角色组成,连接的每个角色定连接件的接口由一组角色组成,连接的每个角色定义了该连接表示的交互的参与者。图义了该连接表示的交互的参与者。图2-12-1形式化地描形式化地描述了软件体系结构的基本概念。述了软件体系结构的基本概念。 第第2 2章章 软件体系结构概论软件体系结构概论2.1 2.1 软件体系结构的定义软件体系结构的定义软件体系结构构件连接件约束端口角色通用风格管道-过滤器层次系统解释器1* 1* 1 *图2-1 软件体系结构的基本概念第第2 2章章 软件体系结构概论软件体系结构概论2.1 2.1 软件体系结构的定义软件体系结构的定义其中:其中:软件体系结构软件体系
20、结构= = 软件体系模型软件体系模型 | | 软件体系风格软件体系风格软件体系模型软件体系模型= = 构件,连接件,约束构件,连接件,约束 构件构件= = 端口端口1 1,端口,端口2 2,端口,端口 连接件连接件 角色,角色,角色,角色,角色,角色m m 约束约束= (= (端口端口i i,角色,角色j)j), 体系结构风格体系结构风格= = 管道管道- -过滤器,层次系统,客户过滤器,层次系统,客户/ /服务器,服务器,解释器,解释器 第第2 2章章 软件体系结构概论软件体系结构概论2.1 2.1 软件体系结构的定义软件体系结构的定义1 1、构件、构件 在体系结构中,构件可以有不同的粒度。
21、一个构件在体系结构中,构件可以有不同的粒度。一个构件可以小到只有一个过程,也可以大到包含一个应用可以小到只有一个过程,也可以大到包含一个应用程序。它可以包括函数、例程、对象、二进制对象、程序。它可以包括函数、例程、对象、二进制对象、类库、数据包等。类库、数据包等。构件内部包含了多种属性,如端口、类型、语义、构件内部包含了多种属性,如端口、类型、语义、约束、演化、非功能属性等。端口是构件与外部世约束、演化、非功能属性等。端口是构件与外部世界交互的一组接口。构件端口说明了构件提供哪些界交互的一组接口。构件端口说明了构件提供哪些服务(消息、操作、变量)。服务(消息、操作、变量)。 第第2 2章章 软
22、件体系结构概论软件体系结构概论2.1 2.1 软件体系结构的定义软件体系结构的定义2 2、连接件、连接件连接件是用来建立构件间的交互的体系结构构造模连接件是用来建立构件间的交互的体系结构构造模块。构件之间的交互包括消息或信号量的传递,功块。构件之间的交互包括消息或信号量的传递,功能或方法调用,数据的传送和转换,构件之间的同能或方法调用,数据的传送和转换,构件之间的同步关系、依赖关系等。在最简单的情况下,构件之步关系、依赖关系等。在最简单的情况下,构件之间可以直接完成交互,这时体系结构中的连接件就间可以直接完成交互,这时体系结构中的连接件就退化为直接连接。在比较复杂的情况下,构件间交退化为直接连
23、接。在比较复杂的情况下,构件间交互的处理和维持都需要连接件来实现。常见的连接互的处理和维持都需要连接件来实现。常见的连接件有管道(在管道件有管道(在管道- -过滤器结构中)、通信协议或通过滤器结构中)、通信协议或通信机制(在客户信机制(在客户/ /服务器结构中)等。服务器结构中)等。 第第2 2章章 软件体系结构概论软件体系结构概论2.1 2.1 软件体系结构的定义软件体系结构的定义连接件的接口由它与所连接构件之间的一组交互点连接件的接口由它与所连接构件之间的一组交互点构成,这些交互点称作角色。角色代表了所连接构构成,这些交互点称作角色。角色代表了所连接构件的作用和地位,并体现了连接所具有的方
24、向性。件的作用和地位,并体现了连接所具有的方向性。因此,角色存在主动和被动、请求和响应之分。因此,角色存在主动和被动、请求和响应之分。对于构件而言,连接件是构件的黏合剂,是构件交对于构件而言,连接件是构件的黏合剂,是构件交互的实现。连接件和构件的区别主要在于它们在体互的实现。连接件和构件的区别主要在于它们在体系结构中承担着不同的作用。连接件也是一组对象,系结构中承担着不同的作用。连接件也是一组对象,它把不同的构件连接起来,形成体系结构的一部分。它把不同的构件连接起来,形成体系结构的一部分。 第第2 2章章 软件体系结构概论软件体系结构概论2.1 2.1 软件体系结构的定义软件体系结构的定义3
25、3、约束(配置)、约束(配置)体系结构的约束描述了体系结构配置和拓扑的要求,体系结构的约束描述了体系结构配置和拓扑的要求,确定了体系结构的构件与连接件的连接关系。它是确定了体系结构的构件与连接件的连接关系。它是基于规则和参数配置的。体系结构约束提供限制以基于规则和参数配置的。体系结构约束提供限制以确定构件是否正确连接、接口是否匹配、连接件构确定构件是否正确连接、接口是否匹配、连接件构成的通信是否正确,并说明实现所要求行为的组合成的通信是否正确,并说明实现所要求行为的组合语义。语义。第第2 2章章 软件体系结构概论软件体系结构概论2.2 2.2 软件体系结构的研究意义软件体系结构的研究意义软件体
26、系结构是软件系统的高级抽象,体现了系统开软件体系结构是软件系统的高级抽象,体现了系统开发中最早做出的决策。它体现了根本性的系统设计思发中最早做出的决策。它体现了根本性的系统设计思路,对系统起着最为深远的影响。体系结构在明确了路,对系统起着最为深远的影响。体系结构在明确了系统的各个组成部分的同时,也限定了各部分间的交系统的各个组成部分的同时,也限定了各部分间的交互方式。这将进一步互方式。这将进一步影响到开发资源的配置和开发团影响到开发资源的配置和开发团队的组织等其它方方面面的开发活动,并影响着最终队的组织等其它方方面面的开发活动,并影响着最终的软件产品质量的软件产品质量。在大型软件系统中,软件体
27、系结构。在大型软件系统中,软件体系结构是决定系统能否顺利实现的关键因素之一,不当的体是决定系统能否顺利实现的关键因素之一,不当的体系结构会给整个系统带来灾难性的后果。系结构会给整个系统带来灾难性的后果。良好的体系结构对于软件系统的重要意义在软件生命良好的体系结构对于软件系统的重要意义在软件生命周期中的各个阶段都有体现,这主要有如下周期中的各个阶段都有体现,这主要有如下4 4个方面。个方面。 第第2 2章章 软件体系结构概论软件体系结构概论2.2 2.2 软件体系结构的研究意义软件体系结构的研究意义1 1、对系统分析的意义、对系统分析的意义一方面,借助于软件体系结构进行描述,可以使问题一方面,借
28、助于软件体系结构进行描述,可以使问题得以进一步抽象,使整个系统更易于被系统分析设计得以进一步抽象,使整个系统更易于被系统分析设计人员把握,更清晰地认识系统,完善对系统的理解。人员把握,更清晰地认识系统,完善对系统的理解。 另一方面,它能够帮助软件系统的各有关权益方(客另一方面,它能够帮助软件系统的各有关权益方(客户、用户、项目管理人员、设计开发人员以及测试人户、用户、项目管理人员、设计开发人员以及测试人员等)形成统一认识,互相交流。体系结构代表了系员等)形成统一认识,互相交流。体系结构代表了系统的公共的高层次的抽象,是大家都关心的一个重要统的公共的高层次的抽象,是大家都关心的一个重要因素。它作
29、为项目参与人员共同使用的语言,具有很因素。它作为项目参与人员共同使用的语言,具有很强的描述能力,起到了难以替代的沟通作用。强的描述能力,起到了难以替代的沟通作用。 第第2 2章章 软件体系结构概论软件体系结构概论2.2 2.2 软件体系结构的研究意义软件体系结构的研究意义2 2、对软件开发的意义、对软件开发的意义软件体系结构代表了系统早期的设计决策。与开发、软件体系结构代表了系统早期的设计决策。与开发、设计、编码或运行服务及维护阶段相比,早期设计设计、编码或运行服务及维护阶段相比,早期设计决策的处理难度最大,对系统的生命期的影响也最决策的处理难度最大,对系统的生命期的影响也最大。同时,软件体系
30、结构也难于改变,会对整个系大。同时,软件体系结构也难于改变,会对整个系统开发活动造成深远影响。系统的后继开发工作要统开发活动造成深远影响。系统的后继开发工作要遵循体系结构所描述的设计决策,也会反映到开发遵循体系结构所描述的设计决策,也会反映到开发工作的分解,以及项目的人员组织。工作的分解,以及项目的人员组织。 第第2 2章章 软件体系结构概论软件体系结构概论2.2 2.2 软件体系结构的研究意义软件体系结构的研究意义3 3、对软件重用的意义、对软件重用的意义体系结构技术的研究,使软件重用从代码重用发展体系结构技术的研究,使软件重用从代码重用发展到设计重用和过程重用,实现多层次的软件重用。到设计
31、重用和过程重用,实现多层次的软件重用。面向体系结构的开发方法常常注意构件的组合与装面向体系结构的开发方法常常注意构件的组合与装配,而不一定把编程作为主要活动。有效地利用标配,而不一定把编程作为主要活动。有效地利用标准构件,或是识别并重用系统内部的构件,或是购准构件,或是识别并重用系统内部的构件,或是购买第三方构件,只要这些构件与当前体系结构相容,买第三方构件,只要这些构件与当前体系结构相容,都能减少开发中的重复劳动和系统中的重复代码。都能减少开发中的重复劳动和系统中的重复代码。体系结构起了组织产品的构件、接口及运行的作用。体系结构起了组织产品的构件、接口及运行的作用。 第第2 2章章 软件体系
32、结构概论软件体系结构概论2.2 2.2 软件体系结构的研究意义软件体系结构的研究意义体系结构良好的软件系统中,不仅构件库能够重用,体系结构良好的软件系统中,不仅构件库能够重用,还可以在更高层次上实现软件子系统乃至软件系统还可以在更高层次上实现软件子系统乃至软件系统框架的重用。软件体系结构级的重用意味着体系结框架的重用。软件体系结构级的重用意味着体系结构的决策能在具有相似需求的多个系统中发生影响,构的决策能在具有相似需求的多个系统中发生影响,这比代码级的重用要有更大的好处。通过对体系结这比代码级的重用要有更大的好处。通过对体系结构的抽象可以使设计者能够对一些实践证明有效的构的抽象可以使设计者能够
33、对一些实践证明有效的体系结构构件进行重用,从而提高设计效率和可靠体系结构构件进行重用,从而提高设计效率和可靠性。性。 第第2 2章章 软件体系结构概论软件体系结构概论2.2 2.2 软件体系结构的研究意义软件体系结构的研究意义4 4、对系统演化的意义、对系统演化的意义对软件系统的演化过程中,维护人员需要不断地进对软件系统的演化过程中,维护人员需要不断地进行调整、修改、增加新的功能或构件等工作。解决行调整、修改、增加新的功能或构件等工作。解决好系统演化阶段的开发问题具有重要意义。好系统演化阶段的开发问题具有重要意义。软件体系结构决定着系统构件的划分和交互方式。软件体系结构决定着系统构件的划分和交
34、互方式。一方面,在设计系统的体系结构之初,就应当充分一方面,在设计系统的体系结构之初,就应当充分考虑到将来可能的系统演化;另一方面,在进行系考虑到将来可能的系统演化;另一方面,在进行系统演化阶段的开发时,由于体系结构充分地刻画了统演化阶段的开发时,由于体系结构充分地刻画了当前系统,清晰地描述了构件及其相互关系和整个当前系统,清晰地描述了构件及其相互关系和整个系统的框架,所以应当充分利用。系统的框架,所以应当充分利用。 第第2 2章章 软件体系结构概论软件体系结构概论2.2 2.2 软件体系结构的研究意义软件体系结构的研究意义以现有体系结构为基础,把握需要进行的系统变动,以现有体系结构为基础,把
35、握需要进行的系统变动,在系统范围内综合考虑,有助于确定系统维护的最在系统范围内综合考虑,有助于确定系统维护的最优方案,更好地控制软件质量和维护成本。优方案,更好地控制软件质量和维护成本。 软件体系结构可以把可能发生的变动分为软件体系结构可以把可能发生的变动分为3 3类:局部类:局部的、非局部的和体系结构级的。局部的是指只要修的、非局部的和体系结构级的。局部的是指只要修改单个构件本身。非局部的是指要修改几个构件,改单个构件本身。非局部的是指要修改几个构件,但不影响基础体系结构的变动。而体系结构级是指但不影响基础体系结构的变动。而体系结构级是指会影响各部分的相互关系,甚至要改动整个系统。会影响各部
36、分的相互关系,甚至要改动整个系统。 第第2 2章章 软件体系结构概论软件体系结构概论2.3 2.3 软件体系结构的发展历程软件体系结构的发展历程软件工程作为一门独立的学科,其发展已逾软件工程作为一门独立的学科,其发展已逾4040年。年。无论从应用规模看还是从技术水平看,计算机软件无论从应用规模看还是从技术水平看,计算机软件产业所经历的发展都是迅猛的。这体现在诸多方面。产业所经历的发展都是迅猛的。这体现在诸多方面。首先,软件系统的应用领域从实验室渗透到了人类首先,软件系统的应用领域从实验室渗透到了人类社会的各个角落。其次,软件系统的规模也迅速增社会的各个角落。其次,软件系统的规模也迅速增长。长。
37、 在软件应用规模和应用领域迅速扩大的同时,软件在软件应用规模和应用领域迅速扩大的同时,软件开发技术也在发生着根本性的变革。软件体系结构开发技术也在发生着根本性的变革。软件体系结构也经历了与之相对应的一系列变革,由最初的模糊也经历了与之相对应的一系列变革,由最初的模糊概念发展成为一门日益成熟的技术。概念发展成为一门日益成熟的技术。 软件体系结构的软件体系结构的发展史发展史 第第1 1章章 软件体系结构概论软件体系结构概论“无体系结构无体系结构”设计阶段设计阶段萌芽阶段萌芽阶段以汇编语言进行小规模应用程序开以汇编语言进行小规模应用程序开发为特征发为特征以描述系统的高层抽象结构为中心,以描述系统的高
38、层抽象结构为中心,不关心具体的建模细节,划分了体系不关心具体的建模细节,划分了体系结构模型与传统软件结构的界限,该结构模型与传统软件结构的界限,该阶段以阶段以KruchtenKruchten提出的提出的“4+1”4+1”模型为模型为标志标志出现了从不同侧面描述系统的结构模出现了从不同侧面描述系统的结构模型,以型,以UMLUML为典型代表。为典型代表。出现了程序结构设计主题,以控制流出现了程序结构设计主题,以控制流图和数据流图构成软件结构为特征图和数据流图构成软件结构为特征高级阶段高级阶段初期阶段初期阶段2.3 2.3 软件体系结构的发展历程软件体系结构的发展历程第第2 2章章 软件体系结构概论
39、软件体系结构概论2.4 2.4 研究现状和发展方向研究现状和发展方向软件体系结构研究现状软件体系结构研究现状软件体系结构作为软件工程研究领域的一部分,已软件体系结构作为软件工程研究领域的一部分,已经取得了长足的发展,受到大多数软件系统设计和经取得了长足的发展,受到大多数软件系统设计和研究人员的重视。但当前,体系结构仍是一个处在研究人员的重视。但当前,体系结构仍是一个处在不断发展中的新研究领域,许多定义还不够统一,不断发展中的新研究领域,许多定义还不够统一,归纳现有体系结构的研究活动,主要的讨论和研究归纳现有体系结构的研究活动,主要的讨论和研究大致集中在以下几个方面。大致集中在以下几个方面。 第
40、第2 2章章 软件体系结构概论软件体系结构概论2.4 2.4 研究现状和发展方向研究现状和发展方向1 1、软件体系结构描述研究、软件体系结构描述研究构建软件体系结构的目的之一就是建立一个可供各构建软件体系结构的目的之一就是建立一个可供各种人员交流的平台,并且要具备系统架构级的可重种人员交流的平台,并且要具备系统架构级的可重用性。因此用性。因此如何恰当、准确地对软件体系结构进行如何恰当、准确地对软件体系结构进行描述是至关重要的描述是至关重要的。这种描述应当能够为各种人员。这种描述应当能够为各种人员提供不同的视图以满足其不同的要求;同时,当要提供不同的视图以满足其不同的要求;同时,当要构建新的应用
41、或对应用进行系统级更改时,这种描构建新的应用或对应用进行系统级更改时,这种描述应该能够快速提供可重用的系统架构视图或系统述应该能够快速提供可重用的系统架构视图或系统模块视图。这方面的研究包括软件体系结构描述语模块视图。这方面的研究包括软件体系结构描述语言、使用言、使用“4+1” 4+1” 模型描述软件体系结构、使用模型描述软件体系结构、使用UMLUML描述软件体系结构等方面的研究。描述软件体系结构等方面的研究。 第第2 2章章 软件体系结构概论软件体系结构概论2.4 2.4 研究现状和发展方向研究现状和发展方向(1 1)软件体系结构描述语言)软件体系结构描述语言现有的一些软件体系结构描述方法采
42、用非形式化的现有的一些软件体系结构描述方法采用非形式化的方法,难以对体系结构进行形式化分析和模拟,缺方法,难以对体系结构进行形式化分析和模拟,缺乏相应的支持工具帮助设计师完成设计工作。为了乏相应的支持工具帮助设计师完成设计工作。为了解决这个问题,用于描述和推理的形式化语言得以解决这个问题,用于描述和推理的形式化语言得以发展,这些语言就叫做体系结构描述语言(发展,这些语言就叫做体系结构描述语言(ADLADL)。)。ADLADL寻求增加软件体系结构设计的可理解性和重用性。寻求增加软件体系结构设计的可理解性和重用性。系统设计师可以利用系统设计师可以利用ADLADL所提供的特性进行软件系统所提供的特性
43、进行软件系统概念体系结构建模。概念体系结构建模。ADLADL提供了具体的语法与刻画体提供了具体的语法与刻画体系结构的概念框架系结构的概念框架。它使得系统开发者能够很好地。它使得系统开发者能够很好地描述他们设计的体系结构,以便与他人交流,能够描述他们设计的体系结构,以便与他人交流,能够用提供的工具对许多实例进行分析。用提供的工具对许多实例进行分析。 第第2 2章章 软件体系结构概论软件体系结构概论2.4 2.4 研究现状和发展方向研究现状和发展方向研究人员已经设计出了若干种研究人员已经设计出了若干种ADLADL,典型的有,典型的有AesopAesop、MetaHMetaH、C2C2、Rapide
44、Rapide、SADLSADL、UniConUniCon和和WrightWright等,等,尽管它们都描述软件体系结构,却有不同的特点:尽管它们都描述软件体系结构,却有不同的特点:AesopAesop支持体系结构风格的应用;支持体系结构风格的应用;MetaHMetaH为设计者提为设计者提供了关于实时电子控制软件系统的设计指导;供了关于实时电子控制软件系统的设计指导;C2C2支支持基于消息传递风格的用户界面系统的描述;持基于消息传递风格的用户界面系统的描述;RapideRapide支持体系结构设计的模拟并提供了分析模拟支持体系结构设计的模拟并提供了分析模拟结果的工具;结果的工具;SADLSADL
45、提供了关于体系结构加细的形式提供了关于体系结构加细的形式化基础;化基础;UniConUniCon支持异构的构件和连接件类型并提支持异构的构件和连接件类型并提供了关于体系结构的高层编译器;供了关于体系结构的高层编译器;WrightWright支持体系支持体系结构构件之间交互的说明和分析。结构构件之间交互的说明和分析。 第第2 2章章 软件体系结构概论软件体系结构概论2.4 2.4 研究现状和发展方向研究现状和发展方向这些这些ADLADL及它们的支持工具、描述方法和形式各不相及它们的支持工具、描述方法和形式各不相同,强调了体系结构不同的侧面,对体系结构的研同,强调了体系结构不同的侧面,对体系结构的
46、研究和应用起到了重要的作用,但也有负面的影响。究和应用起到了重要的作用,但也有负面的影响。每一种每一种ADLADL都以独立的形式存在,描述语法不同且互都以独立的形式存在,描述语法不同且互不兼容。同时又有许多共同的特征,这使设计人员不兼容。同时又有许多共同的特征,这使设计人员很难选择一种合适的很难选择一种合适的ADLADL;大部分;大部分ADLADL都是领域相关都是领域相关的,不利于对不同领域的体系结构进行分析;一些的,不利于对不同领域的体系结构进行分析;一些ADLADL在某些方面大同小异,有很多冗余的部分。在某些方面大同小异,有很多冗余的部分。 第第2 2章章 软件体系结构概论软件体系结构概论
47、2.4 2.4 研究现状和发展方向研究现状和发展方向针对这些不足,已出现一些交换语言,其目标是提针对这些不足,已出现一些交换语言,其目标是提供一个公共形式把各种语言综合起来,以此来综合供一个公共形式把各种语言综合起来,以此来综合不同的体系结构描述。不同的体系结构描述。ACMEACME就是其中较有影响的一就是其中较有影响的一个。另外一个研究热点是开发基于个。另外一个研究热点是开发基于XMLXML的体系结构描的体系结构描述语言。述语言。XMLXML是可扩展标记语言,它简单并易于实现,是可扩展标记语言,它简单并易于实现,因此被工业界广泛使用。若能用因此被工业界广泛使用。若能用XMLXML来表示软件体
48、系来表示软件体系结构,必能极大推动软件体系结构领域的研究成果结构,必能极大推动软件体系结构领域的研究成果在软件产业界的应用。由于在软件产业界的应用。由于XMLXML在体系结构描述上的在体系结构描述上的许多优点,研究者们已经开发出了不同的基于许多优点,研究者们已经开发出了不同的基于XMLXML的的体系结构描述语言,如体系结构描述语言,如XADL2.0XADL2.0、XBAXBA、XCOBAXCOBA等。等。第第2 2章章 软件体系结构概论软件体系结构概论2.4 2.4 研究现状和发展方向研究现状和发展方向(2 2)使用)使用“4+1” 4+1” 模型描述软件体系结构模型描述软件体系结构Kruch
49、tenKruchten提出的提出的“4+1”4+1”模型是当前软件体系结构模型是当前软件体系结构描述的一个经典范例,该模型由逻辑视图、开发视描述的一个经典范例,该模型由逻辑视图、开发视图、过程视图和物理视图组成,并通过场景将这图、过程视图和物理视图组成,并通过场景将这4 4个个视图有机地结合起来,比较细致地描述了需求和体视图有机地结合起来,比较细致地描述了需求和体系结构之间的关系。系结构之间的关系。“4+1”4+1”模型实际上使得有不同需求的人员能够得到模型实际上使得有不同需求的人员能够得到他们对于软件体系结构想要了解的东西。系统工程他们对于软件体系结构想要了解的东西。系统工程师先从物理视图,
50、然后从过程视图靠近体系结构。师先从物理视图,然后从过程视图靠近体系结构。最终使用者、客户、数据专家从逻辑视图看体系结最终使用者、客户、数据专家从逻辑视图看体系结构;项目经理、软件配置人员从开发视图看体系结构;项目经理、软件配置人员从开发视图看体系结构。构。 第第2 2章章 软件体系结构概论软件体系结构概论2.4 2.4 研究现状和发展方向研究现状和发展方向(3 3)使用)使用UMLUML描述软件体系结构描述软件体系结构MedividovicMedividovic总结了用总结了用UMLUML描述体系结构的三种途径:描述体系结构的三种途径:不改变不改变UMLUML用法而直接对体系结构建模;利用用法
51、而直接对体系结构建模;利用UMLUML支支持的扩充机制扩展持的扩充机制扩展UMLUML的元模型对体系结构建模概念的元模型对体系结构建模概念的支持;对的支持;对UMLUML进行扩充,增加体系结构建模元素。进行扩充,增加体系结构建模元素。本书第本书第4 4章介绍了不改变章介绍了不改变UMLUML用法而直接对体系结构用法而直接对体系结构建模的方法。建模的方法。UMLUML的静态建模机制包括用例图、类图、的静态建模机制包括用例图、类图、对象图、包、构件图和部署图。对象图、包、构件图和部署图。UMLUML的动态建模机制的动态建模机制包括顺序图、协作图、状态图、活动图。分别可以包括顺序图、协作图、状态图、
52、活动图。分别可以使用使用UMLUML对构件交互模式进行静态建模和动态建模。对构件交互模式进行静态建模和动态建模。 第第2 2章章 软件体系结构概论软件体系结构概论2.4 2.4 研究现状和发展方向研究现状和发展方向2 2、软件体系结构设计研究、软件体系结构设计研究这方面的研究包括体系结构风格研究、体系结构设这方面的研究包括体系结构风格研究、体系结构设计原理、设计模式和设计方法研究。计原理、设计模式和设计方法研究。(1 1)体系结构风格研究)体系结构风格研究体系结构设计研究的重点内容之一就是体系结构风体系结构设计研究的重点内容之一就是体系结构风格的研究。人们在开发不同系统时,会逐渐发现一格的研究
53、。人们在开发不同系统时,会逐渐发现一类系统的体系结构上有许多共性,于是抽取出这些类系统的体系结构上有许多共性,于是抽取出这些共性构成一些富有代表性和被广泛接受的体系结构共性构成一些富有代表性和被广泛接受的体系结构风格。所以说体系结构风格是用来刻画具有相似结风格。所以说体系结构风格是用来刻画具有相似结构和语义性质的一类系统族的。它定义一组构件、构和语义性质的一类系统族的。它定义一组构件、连接件的类型以及它们之间应该如何连接的约束。连接件的类型以及它们之间应该如何连接的约束。 第第2 2章章 软件体系结构概论软件体系结构概论2.4 2.4 研究现状和发展方向研究现状和发展方向一个系统不一定只具有一
54、种风格,在不同层次或抽一个系统不一定只具有一种风格,在不同层次或抽象级别上,可具有多种风格。虽然系统组织方式可象级别上,可具有多种风格。虽然系统组织方式可以是无穷的,但如果能用少量的风格类型表达出较以是无穷的,但如果能用少量的风格类型表达出较多的系统组织方式,不仅可以缩短系统分析设计的多的系统组织方式,不仅可以缩短系统分析设计的时间,还能大大提高大规模软件重用的机会。时间,还能大大提高大规模软件重用的机会。GarlanGarlan和和ShawShaw给出了对通用体系结构风格的分类:给出了对通用体系结构风格的分类:(1 1)数据流风格;()数据流风格;(2 2)调用)调用/ /返回风格;(返回风
55、格;(3 3)独)独立构件风格;(立构件风格;(4 4)虚拟机风格;()虚拟机风格;(5 5)仓库风格。)仓库风格。第第2 2章章 软件体系结构概论软件体系结构概论2.4 2.4 研究现状和发展方向研究现状和发展方向(3 3)体系结构设计模式)体系结构设计模式设计模式的概念最早是由美国的一位叫做设计模式的概念最早是由美国的一位叫做Christopher AlexanderChristopher Alexander的建筑理论家提出来的,的建筑理论家提出来的,他试图找到一种结构化、可重用的方法,以在图纸他试图找到一种结构化、可重用的方法,以在图纸上捕捉到建筑物的基本要素。后来被作为总结软件上捕捉到
56、建筑物的基本要素。后来被作为总结软件设计,特别是面向对象设计的实践和经验而提出。设计,特别是面向对象设计的实践和经验而提出。在几十年的软件设计研究和实践中,设计人员和程在几十年的软件设计研究和实践中,设计人员和程序员积累了大量的实际经验,发现并提出了大量在序员积累了大量的实际经验,发现并提出了大量在众多应用中普遍存在的软件结构和结构关系,模式众多应用中普遍存在的软件结构和结构关系,模式被用于软件体系结构设计中。利用设计模式可以方被用于软件体系结构设计中。利用设计模式可以方便地重用成功的设计和结构。设计模式帮助设计师便地重用成功的设计和结构。设计模式帮助设计师选择可使系统重用的设计方案,避免选择
57、危害到可选择可使系统重用的设计方案,避免选择危害到可重用性的方案。重用性的方案。 第第2 2章章 软件体系结构概论软件体系结构概论2.4 2.4 研究现状和发展方向研究现状和发展方向(4 4)体系结构设计方法)体系结构设计方法生成一个满足软件需求的体系结构的过程即为体系生成一个满足软件需求的体系结构的过程即为体系结构设计。体系结构设计过程的本质在于:将系统结构设计。体系结构设计过程的本质在于:将系统分解成相应的组成成分(如构件、连接件),并将分解成相应的组成成分(如构件、连接件),并将这些成分重新组装成一个系统。常用的体系结构设这些成分重新组装成一个系统。常用的体系结构设计方法有计方法有4 4
58、类,分别为制品驱动(类,分别为制品驱动(artifact-drivenartifact-driven)的方法,用例驱动(的方法,用例驱动(use-case-drivenuse-case-driven)的方法,)的方法,模式驱动(模式驱动(pattern-drivenpattern-driven)的方法和领域驱动)的方法和领域驱动(domain-drivendomain-driven)的方法。每种方法在过程的顺)的方法。每种方法在过程的顺序上、在概念的特定内容上有所不同,但最后都生序上、在概念的特定内容上有所不同,但最后都生成对体系结构的描述。成对体系结构的描述。 第第2 2章章 软件体系结构概
59、论软件体系结构概论2.4 2.4 研究现状和发展方向研究现状和发展方向3 3、基于体系结构的软件开发方法、基于体系结构的软件开发方法在引入了体系结构的软件开发中,应用系统的构造在引入了体系结构的软件开发中,应用系统的构造过程变为过程变为“问题定义问题定义软件需求软件需求软件体系结构软件体系结构软件设计软件设计软件实现软件实现”,可以认为软件体系结构架,可以认为软件体系结构架起了软件需求与软件设计之间的一座桥梁。而在由起了软件需求与软件设计之间的一座桥梁。而在由软件体系结构到实现的过程中,借助一定的中间件软件体系结构到实现的过程中,借助一定的中间件技术与软件总线技术,软件体系结构易于映射成相技术
60、与软件总线技术,软件体系结构易于映射成相应的实现。应的实现。BassBass等人提出了一种基于体系结构的软等人提出了一种基于体系结构的软件开发过程,该过程包括件开发过程,该过程包括6 6个步骤:导出体系结构需个步骤:导出体系结构需求;设计体系结构;文档化体系结构;分析体系结求;设计体系结构;文档化体系结构;分析体系结构;实现体系结构;维护体系结构。在本书第构;实现体系结构;维护体系结构。在本书第6 6章中章中会进行介绍。会进行介绍。 第第2 2章章 软件体系结构概论软件体系结构概论2.4 2.4 研究现状和发展方向研究现状和发展方向4 4、软件体系结构评估、软件体系结构评估软件体系结构的设计是整个软件开发过程中关键的软件体系结构的设计是整个软件开发过程中关键的一步
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度股权无偿转让与公司财务重组及债务清偿协议
- 2025年度新能源汽车按揭贷款合同样本
- 二零二五年度客运合同中承运人旅客行李损坏赔偿与赔偿责任承诺
- 绿茶茶园承包协议(2025年度)含茶叶品质认证与评估服务
- 二零二五年度特色甜品餐饮店员工劳动聘请协议
- 现代商业中心的环保建材与智能设计研究
- 水资源保护在商业地产中的实践应用
- 2025至2030年中国电信设备装置用通信电缆数据监测研究报告
- 2025至2030年中国甘氨酸钠数据监测研究报告
- 知识产权流程优化从申请到维护的全方位管理
- 文言文多文本阅读:叔向见韩宣子(附答案解析与译文)
- 工程招投标模拟实训报告范文2024年
- 系统脱敏治疗的长期疗效跟踪评估
- 二手仪器收购协议书范本
- 香港(2024年-2025年小学二年级语文)人教版期末考试试卷(含答案)
- DB13(J)T 8406-2021 装配式混凝土结构工程施工与质量验收规程(京津冀)
- 浙江省台州市2024年中考语文模拟试题及答案6
- 山水情怀 课件-2024-2025学年高中美术人教版 (2019) 选择性必修2 中国书画
- GA 2139-2024警用防暴臂盾
- 办公软件题库(173道)
- 2024数字化风电场智慧运营
评论
0/150
提交评论