软件设计zhousu第6章体系结构的模式与结构.ppt
《软件设计zhousu第6章体系结构的模式与结构.ppt》由会员分享,可在线阅读,更多相关《软件设计zhousu第6章体系结构的模式与结构.ppt(141页珍藏版)》请在三一办公上搜索。
1、软件体系结构与设计,浙江大学城市学院周苏 教授QQ:81505050,第6章 体系结构的模式与结构,第6章 体系结构的模式与结构,软件工程中的设计设计过程关注点分离关于设计的概念设计模型,在工程领域中,基于模式和设计风格的开发方式使用得非常普遍。一个设计良好的通用模式是工程领域中技术成熟的标志之一。,第6章 体系结构的模式与结构,软件体系结构是有关软件系统如何组织的描述。系统的性质,比如性能、信息安全性和可用性,都受到所使用体系结构的影响。软件工程师可以在给定的体系结构类型中使用许多种不同的体系结构风格和模式,每个模式描述了一个系统类别,它包含:一组完成系统所需功能的构件;一组使构件间通信、协
2、调及合作的连接件;定义如何集成构件以构成系统的约束条件;使设计者能够理解系统整体特性的语义模型。,第6章 体系结构的模式与结构,6.1 体系结构视图,在单个体系结构模型中不可能提出所有与系统体系结构相关的信息,因为每一种模型只能显示系统的一种角度和视图。通常体系结构可能会从许多不同的视角和视图被文档化,我们需要提供系统体系结构的多重视图。,6.1 体系结构视图,4种基础的体系结构视图是:1)逻辑视图。显示了系统中对象和对象类的一些主要抽象。通过逻辑视图,可以将系统需求和实体关联起来。2)进程视图。显示了在运行时系统是如何组织为一组交互的进程。这种视图对非功能系统特征的判断非常有效,比如性能和可
3、用性。3)开发视图。显示了软件是如何为了开发而被分解的,即将软件分解成可以由单独的开发人员或开发团队实现的组件。这种视图主要用于软件的管理者和程序员。4)物理视图。显示了系统硬件和系统中软件组件是如何分布在处理器上的。这种视图对系统工程师规划系统部署非常有用。,6.1 体系结构视图,在使用类似视图的基础上还要添加概念视图。概念视图是系统的抽象视图,它可以作为把高层次需求分解为详细描述的基础,来帮助工程师在可复用的组件、表现产品线而不是单独的系统等方面做出决策。图6-1所描述的打包机器人的体系结构就是概念性系统视图的一个例子。该图显示了一个打包机器人系统体系结构的抽象模型,描述了所要开发的子系统
4、。,图6-1 打包机器人控制系统的体系结构,6.1 体系结构视图,这个机器人系统能够对不同类型的对象进行打包,它使用一个视觉子系统来拾取传送带上的对象,识别对象类型并选择正确的打包方式,然后从传送带上移下对象、打包,最后将其送到另一个传送带上。体系结构模型描述了这些组件以及它们之间的关联。,6.1 体系结构视图,实际上,在设计过程中通常都会形成概念视图,它对体系结构的决策很有帮助。概念视图给出系统的本质内容供不同的信息持有者之间交流。在设计过程中,当讨论系统的不同方面时也可能会形成一些其他的视图,但是包含各个角度的完全描述是没有必要的。关于软件体系结构是否应该使用UML来描述有不同的看法。设计
5、UML是为了描述面向对象系统,在体系结构设计阶段,我们常常要以更高层次的抽象化来描述系统。当需要详细地文档化一个体系结构或使用模型驱动开发的时候,UML是非常有价值的。,6.1 体系结构视图,还可以使用专门的体系结构描述语言(ADL)来描述系统体系结构。ADL语言的基本要素是组件和连接器,这类语言包含了形成规范化体系结构所应该使用的规则和指南。不过,由于它的专业性,领域和应用专家很难理解和使用ADL。ADL语言是为特定领域设计的(例如,汽车系统),或许可以作为模型驱动开发的基础。尽管如此,像UML这种非正式的模型和符号系统是文档化系统体系结构最普遍使用的方法。,6.1 体系结构视图,大多数系统
6、是不值得开发一个详细的体系结构描述的。应当开发出这种视图,它有益于沟通而不在乎体系结构文档是否完整。不过,例外的情况是,当正在开发关键性系统,当需要做一个详细的系统可依赖性分析时,或许需要使外部的管理者确定我们的系统符合他们的规则而且可能会需要完整的体系结构文档。,6.2 体系结构类型,尽管体系结构设计的基本原则适用于所有类型(也称为应用领域)的体系结构,但对于需要构建的结构,体系结构类型经常规定特定的体系结构方法。在体系结构设计环境中,“类型”隐含了在整个软件领域中的一个特定类别。在每种类别中,会有很多的子类别。例如,在建筑物类型中,会有房子、单元楼、公寓、办公楼、工厂厂房、仓库等一般风格。
7、在每种一般风格中,也会运用更多的具体风格,即结构。每种风格的结构可以用一组可预测模式进行描述。,6.2 体系结构类型,例如,可以有以下几种软件系统的体系结构类型:人工智能模拟或扩大人类认知、运动或其他有机体过程的系统。商业和非盈利的工商企业营运必要的系统。通信用于数据传输和数据管理、数据的用户连接或者数据展示的基础设施的系统。内容创作用来创建或管理文字或多媒体人造物品的系统。设备与物理世界交互的系统,可以为个人提供某种有意义的服务。娱乐与运动管理公众事件或者提供大众娱乐体验的系统。,6.2 体系结构类型,金融为转账和理财以及其他安全事务提供基础设施的系统。游戏为个人或群体提供娱乐体验的系统。行
8、政管理支持各级政治实体的管理和运作方式的系统。工业模拟或控制物理过程的系统。法律支持法律的系统。医疗诊断或治疗,或者有助于医学研究的系统。军事用于商议、通信、指挥、控制和信息的系统,也有用于进攻和防卫武器的系统。操作系统位于硬件之上提供基本软件服务的系统。平台位于操作系统之上提供高级服务的系统。,6.2 体系结构类型,科学用于科学研究和应用的系统。工具用来开发其他系统的系统。运输控制水上、地面、空中或者太空交通工具的系统。实用程序与其他软件交互作用的系统,可以提供某些有意义的服务。,6.2 体系结构类型,从体系结构设计的立场看,每一种类型表述了一个特有问题。考虑一个游戏系统的软件体系结构,游戏
9、系统有时被称作沉浸式交互应用(immersive interactive application),它需要密集型算法的计算方法、成熟的计算机图形图像技术、流媒体数据源、通过常规或非常规输入进行的实时的交互操作以及许多其他专业知识。,6.2 体系结构类型,例如,一种可应用于游戏环境的immersipresence软件体系结构描述如下:immersipresence软件体系结构(Software Architecture for Immersipresence,SAI)是一种新的体系结构模型,用于设计、分析和实现执行一般数据流的分布式、异步并行处理的应用系统。SAI的目标是为算法的分布式实施和容易
10、地将其集成到复杂系统提供通用框架底层可扩展数据模型和混合(共享存储和信息传递)分布式异步并行处理模型允许自然和有效地处理一般数据流,并可以使用已有的库或本地代码。类型模块化使得分布式代码开发、测试和重用以及快速系统设计与集成、维护和演化更加便利。,6.2 体系结构类型,可见,游戏系统类型可以用专门设计的强调游戏系统关注点的体系结构风格来描述。表6-1描述了MVC(模型-视图-控制器)模式。在许多基于Web的系统中,这种模式是交互管理的基础。这种格式化的模式描述包括模式的名字,一个简短的描述(伴有一个相关的图形模型),以及一个这种模式适用的系统类型的例子(可能也伴有一个图形模型)。此外,还应该包
11、括这种模式的应用时机和优缺点。,表6-1 MVC(模型-视图-控制器)模式,6.2 体系结构类型,图6-2和图6-3显示了与MVC模式相关的体系结构的图形模型,它们从不同的角度展现体系结构图6-2是概念视图,而图6-3则给出了当该模式用于基于Web系统交互管理时的一个可能的体系结构。,图6-2 MVC模式的组成,图6-3 采用MVC模式的Web应用体系结构,6.3 体系结构的风格与模式,作为一种表示、共享和复用软件系统知识的方法模式的思想,已经得到广泛的应用,例如面向对象设计模式、机构设计模式、可用性模式、交互模式、配置管理模式等。体系结构模式在20世纪90年代以“体系结构风格”的名字提出来。
12、,6.3.1 风格与模式,体系结构风格(Architecture styles)强调组织模式,是描述特定系统组织方式的惯用范例。组织模式即静态表述的样例,惯用范例则是反映众多系统共有的结构和语义。通常,体系结构风格独立于实际问题,强调了软件系统中通用的组织结构,比如管道线,分层系统,客户机-服务器等等,体系结构风格以这些组织结构定义了一类系统族。,6.3.1 风格与模式,体系结构模式是复用和通用系统体系结构知识的一种方法。可以把体系结构模式看作是对好的实践所做的格式化的抽象描述,它们已经在不同的系统和环境中多次尝试和测试过。所以,体系结构模式应当描述一种系统构成,这种构成在以往的系统中是很成功
13、的。体系结构模式还应该包括:这种模式什么时候适用,什么时候不适用,以及这种模式的优点和缺点等。,6.3.1 风格与模式,软件体系结构设计的特点之一,是使用系统组织惯用模式(idiomatic patterns)。随着系统设计人员对详细的组织原则和某类软件结构价值的认识不断加深,这些惯用模式(或称体系结构模式)被逐渐总结出来。通过熟悉一些体系结构风格,可以了解软件体系结构丰富的选择空间以及在这个基础上对风格选择的一些权衡。,6.3.1 风格与模式,体系结构的术语一般与特定的设计方法和符号相关,比如面向对象和数据流组织结构。某些体系结构模式和一些特殊类型的系统相关,比如编译器的传统组织结构,国际标
14、准化组织的公共系统连接参考模型和面向对象设计通用模式。,6.3.1 风格与模式,从更详细的层面上,为了分清不同模式间的差异,需要有一个公共的框架以便对这些模式进行比较。我们将采用的框架是把某个特定系统的体系结构看成计算构件集,或者简单地说,由构件再加上描述构件间交互的连接件组成。构件如客户机、服务器、过滤器、层、数据库等,连接件如过程调用、事件广播、数据库协议和管道等。,6.3.1 风格与模式,因此,一个体系结构风格根据结构组织模式定义了一个系统族。更明确地说,一个体系结构风格定义了构件和连接件类型的符号集,以及规定它们怎样组合起来的约束集合。对于很多风格来说,也可能存在一个或多个语义模型,其
15、中规定了怎样从系统的各部分属性来确定系统的总体属性。,6.3.1 风格与模式,利用这个框架,我们可以通过回答下面的问题以确定体系结构风格,即:设计符号集,即构件和连接件的类型是什么?被认可的结构模式是什么?根本的计算模型是什么?最基本的特点是什么?使用这种风格的通用例子有哪些?使用这种风格有什么优点和缺点?通用的规格说明是什么?,6.3.1 风格与模式,例如,当建筑师用“小高层”来描述某座房子时,大多数人将能够获得对房子的整体画面,对建筑主平面图可能像什么样子也会有所了解。建筑师使用体系结构风格作为描述手段,将该房子和其他风格(例如,公寓、别墅等)的房子区分开来。但更重要的是,体系结构风格也是
16、建筑的样板。必须进一步规定房子的细节,具体说明它的最终尺寸,进一步给出定制的特征,确定建筑材料等。实际上是建筑风格“小高层”指导了建筑师的工作。,6.3.1 风格与模式,为基于计算机的系统构造的软件也展示了众多体系结构风格中的一种。每种风格描述一种系统类别,包括:l)完成系统需要的某种功能的一组构件(例如,数据库、计算模块);2)能使构件间实现“通信、合作和协调”的一组连接件;3)定义构件如何集成为系统的约束;4)语义模型,能使设计者通过分析系统组成成分的已知属性来理解系统的整体性质。,6.3.1 风格与模式,一种体系结构风格就是施加在整个系统设计上的一种变换,目的是为系统的所有构件建立一个结
17、构。在对已有体系结构再工程时,一种体系结构风格的强制采用会导致软件结构的根本性改变,包括对构件功能的再分配。,6.3.1 风格与模式,与体系结构风格一样,体系结构模式也对体系结构设计施加一种变换。然而,体系结构模式与体系结构风格在许多基本方面存在不同:l)模式涉及的范围要小一些,它更多集中在体系结构的某一方面而不是体系结构的整体;2)模式在体系结构上施加规则,描述了软件是如何在基础设施层次(例如,并发)上处理某些功能性方面的问题。3)体系结构模式倾向于在体系结构环境中处理特定的行为问题(例如,实时应用系统如何处理同步和中断)。模式可以与体系结构风格结合起来建立整个系统结构的外形。,6.3.2
18、基本体系结构,本质上软件体系结构表示了一种结构,在该结构中,某个实体集(经常称作构件)通过一组已定义的关系(经常称作连接件)进行连接。无论是构件还是连接件,它们都与一组特性相关,这组特性使设计者能够区别所使用的构件和连接件的类型。,6.3.2 基本体系结构,5种典型的基本体系结构(构件、连接件和特性)是:功能结构:构件表示功能或处理实体,连接件表示接口,它提供“使用”构件或“传递数据到”构件的功能。特性描述构件的特征和接口的组织。实现结构:“构件可以是包、类、对象、过程函数方法等所有在不同抽象层上打包的功能”。连接件包括传递数据和控制、共享数据、“使用”以及“是一个实例”等能力。特性关注于结构
19、实现时的质量特征(例如,可维护性、可重用性)。并发结构:构件表示“并发单元”,这些“并发单元”被组织为并行任务或线程。“关系(连接件)包括同步于、优先级高于、发送数据到、运行必须有、运行不能有。与结构相关的特性包括优先级、抢先占有以及执行时间”。,6.3.2 基本体系结构,物理结构:物理结构类似于设计开发中的部署模型,构件是物理硬件,软件驻留在硬件、上。连接件是硬件构件之间的接口,特性用来描述容量、带宽、性能和其他属性。开发结构:该结构定义构件、工作产品以及软件工程过程中所需的其他信息源。连接件表示工作产品之间的关系,特性标识每项的特征。每一种结构表示体系结构的不同视图,显示出进行建模和构建时
20、对软件团队的有用信息。,6.3.3 组织和求精,由于设计过程经常会留下许多种可供选择的体系结构方案,因此建立一组用于评估所导出的体系结构设计的设计标准是非常重要的。下面的问题有助于更深入地了解体系结构风格:控制。在体系结构中如何管理控制?是否存在清楚的控制层次?如果存在,构件在控制层次中有什么作用?构件如何在系统中传递控制?构件间如何共享控制?控制的拓扑结构(即控制呈现的几何形状)如何?控制是否同步或者构件操作是否异步?,6.3.3 组织和求精,数据。构件间如何进行数据通信?数据流是否是连续地传递给系统,或数据对象是否是零散地传递给系统?数据传递的模式是什么(即,数据是从一个构件传递到另一个构
21、件,还是数据被系统中的构件全局共享)?是否存在数据构件(如黑板或中心存储库)?如果存在,它们的作用是什么?功能构件如何和数据构件交互?数据构件是被动的还是主动的(即数据构件是否主动地和系统的其他构件交互)?数据和控制如何在系统中交互?这些问题有助于设计者对设计质量进行早期评估,也为更详细地分析体系结构奠定了基础。,6.4 典型的体系结构模式,尽管在过去的几十年中人们已经创建了众多的计算机系统,但其中绝大多数都可以归为少数几种体系结构风格之一。应用较多的体系结构模式有:MVC(模型-视图-控制器)、批处理序列、管道-过滤器(数据流)、调用和返回、主程序和子程序、面向对象系统、多级分层、客户机-服
22、务器、独立构件、通信进程、事件系统、虚拟机、解释器、基于规则系统、数据中心系统(知识库、黑板、容器)、数据库、超文本系统、过程控制。,6.4 典型的体系结构模式,这些体系结构风格也仅仅是可用风格中的一小部分。一旦需求工程揭示了待构建系统的特征和约束,就可以选择最适合这些特征和约束的体系结构风格和(或)风格的组合。在很多情况下,会有多种模式是适合的,需要对可选的体系结构风格进行设计和评估。,6.4.1 管道-过滤器,管道-过滤器(Pipes and Filters)体系结构模式(见表6-2和图6-4)是一个系统运行时组织的模型,在这个模型中,函数转换处理输入并产生输出。数据从一个处理单元流到另一
23、个处理单元,每经过一个单元就做一次变换。输入数据流经过这些变换直到转换为输出。这些转换可能顺序地或并行地执行,数据加工可以是一项一项地处理,也可以成批处理。,表6-2 管道-过滤器模式,图6-4 管道-过滤器模式(数据流体系结构),图6-5 管道-过滤器模式的一个实例,6.4.1 管道-过滤器,“管道-过滤器”的名字最早出自Unix系统,Unix系统在链接进程时可能会用到“管道”,通过提供符号表示要连接的构件和提供运行时机制来实现管道,这些管道能从一个进程到另一个进程传递文本流。遵照这个模型,系统可以组合Unix命令、使用管道和Unix shell控制工具来实现。“过滤器”这个词很形象地描述了
24、数据从输入到输出这样一个过程。,6.4.1 管道-过滤器,管道-过滤器模式又称数据流体系结构。当输入数据经过一系列的计算构件和操作构件的变换形成输出数据时,可以应用这种体系结构。管道-过滤器模式拥有一组称为过滤器(Filter)的构件,每个构件都有一组输入集和输出集。这些构件从输入源读入数据流,通过管道(Pipe)连接,管道将数据从一个构件传送到下一个构件,并在输出池产生输出数据流。,6.4.1 管道-过滤器,构件对输入流进行内部转换和增量计算,因此在输入数据流被全部处理之前,输出就已经开始了。每个过滤器独立于其上游和下游的构件而工作,要针对某种形式的数据输入产生某种特定形式的数据输出(到下一
25、个过滤器)。然而,过滤器没有必要了解与之相邻的过滤器的工作。管道-过滤器的通用结构如管线(Pipelines),限制系统的拓扑结构只能是过滤器的线性序列;有界管道(Bounded Pipes)限制了在管道中能容纳的数据量;类型定义管道(Typed Pipes)要求明确定义在两个过滤器间传输的数据类型。,6.4.1 管道-过滤器,另一个著名的管线系统例子是传统编译器,在这个管线系统中包括词法分析、句法分析、语义分析、代码生成阶段。自从计算机被用于自动数据处理以来,数据流模型的多种形式就被广泛使用。当系统中每个过滤器作为一个单一实体处理输入数据,即对数据的转换是顺序进行时,就成了一个退化的管线结构
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件设计 zhousu 体系结构 模式 结构
链接地址:https://www.31ppt.com/p-6434341.html