




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件体系结构电子教案第6章文档化体系结构蒋哲远
2/197第6章内容摘要6.1软件体系结构编档概述6.2视图类型与风格6.3软件体系结构编档的实施《软件体系结构》电子教案3/1976.1软件体系结构编档概述(1)、软件文档类型(2)、SA文档的作用(3)、SA文档化的内容(4)、合理文档化的规则(5)、编档标准结构《软件体系结构》电子教案4/197(1)、软件文档类型系统文档
为设计和开发人员提供相关信息,来维护系统或对系统进行重新设置多数或者所有的文档是随着软件生命周期的过程而产生的用户文档
为最终的用户提供系统运行支持。它主要描述系统的操作规程,诸如一些功能,数据的录入,产生的结果和定期维护等6.1软件体系结构编档概述《软件体系结构》电子教案5/197系统文档(1)、软件文档类型生命周期阶段系统文档分析传统方法面向对象方法E-R图,数据流图过程描述,数据字典类图,用例图交互图,状态图设计事件列表系统流程图,结构图设计类图,软件包图模块或方法的伪代码,数据库模式图实现程序源代码,数据库模式源代码,测试数据6.1软件体系结构编档概述6/197(2)、SA文档的作用SA文档的3种用途:教育工具。特别是新的团队成员、外部分析人员和新的构架师。是涉众间的首要通讯工具。涉众包括诸如:代表客户的构架师和需求工程师、组成部分构架师和设计人员、实现者、测试者和集成者、维护者、必须与系统进行交互操作的其它系统设计者、管理者、产品线管理者、质量保证小组等。支持系统分析。也就是必须包含系统分析的必要信息,诸如对各种属性(安全性、性能、可用性和可维护性等)进行评估的必要信息6.1软件体系结构编档概述《软件体系结构》电子教案7/197(3)、SA文档化的内容接口:指两个独立的实体相互接触、交互和通讯的边界视图:是对一组系统元素及其关系的描述。PhilippeKruchten的4+1视图RM-ODP视点Hofmeister视图基于UML的RUP视图本章主讲的视图(PaulClements等)几种著名的视图/视点:6.1软件体系结构编档概述8/197(3)、SA文档化的内容(续)PhilippeKruchten的4+1视图逻辑视图—系统设计时子系统或关键包的逻辑表示。它忽略任何实现和物理细节进程视图—定义不同的OS的线程、任务和进程是如何相互通讯的部署视图—定义在硬件上是如何被实例化和部署的实现视图—描述实际软件是如何被实现的,包括实际源代码、代码的目录结构及数据库的结构等用例视图—包括为理解系统行为而必须定义的用例6.1软件体系结构编档概述《软件体系结构》电子教案9/197(3)、SA文档化的内容(续)RM-ODP视点企业视点—商业需求和策略、以及系统的范围和目标。RM-ODP可能会影响系统中可能与企业相关的信息,如组织结构信息视点—指信息的结构,它的变化、流程,以及在不同功能间的逻辑划分计算视点—重点在于把系统分解为实体和实体间的接口工程视点—处理分布式系统对象之间的交互,以及交互是如何得到支持的技术视点—定义构成系统的硬件和软件构件6.1软件体系结构编档概述10/197(3)、SA文档化的内容(续)Hofmeister视图概念视图—包括主要设计元素和它们之间的主要关系模块视图—将构件及其接口映射到子系统和模块执行视图—描述模块是如何映射到执行线程上的代码视图—将实现阶段的实体,诸如源文件等映射到构件6.1软件体系结构编档概述《软件体系结构》电子教案11/197(3)、SA文档化的内容(续)基于UML的RUP视图设计视图(Designview)过程视图(Processview)实现视图(Implementationview)实施视图(Deploymentview)UseCase视图(UseCaseview)功能描述类、接口和协作,主要支持功能需求针对系统的性能、可收缩性和吞吐量软件系统的物理分布6.1软件体系结构编档概述《软件体系结构》电子教案12/197(3)、SA文档化的内容(续)视图类型:从特定的角度定义那些描述SA的元素类型和关系类型①模块(module)视图类型:软件作为一个实现单元集,它是如何构造的。模块视图能为系统的实现单元编档②构件-连接件(C&C)视图类型:软件作为一个运行时行为和交互作用的元素集,它是如何构造的。C&C视图能为系统的执行单元编档③分配(allocation)视图类型:软件是如何在它所处的环境中与非软件结构产生联系的。能为系统软件与其开发和执行环境之间的关系编档本章主讲的视图(PaulClements等)6.1软件体系结构编档概述《软件体系结构》电子教案13/197(3)、SA文档化的内容(续)SA文档包:
(下图)SA编档其实是对相关的视图编档,然后添加适应于多个视图的文档。6.1软件体系结构编档概述《软件体系结构》电子教案14/197(3)、SA文档化的内容(续)风格:是对元素和关系类型的特化,以及如何使用这些元素和关系的一组限制条件视图类型、风格和视图的关系实例C&C管道-过滤器C-S……共享数据你的风格管道-过滤器视图C-S……共享数据视图你的视图视图类型风格视图视图包6.1软件体系结构编档概述《软件体系结构》电子教案15/197(3)、SA文档化的内容(续)视图类型与其包含的风格模块视图类型C&C视图类型分配视图类型风格分解风格使用风格泛化风格分层风格管道-过滤器共享数据风格发布-订阅风格C/S风格对等关系风格通讯进程风格部署风格实现风格工作任务风格6.1软件体系结构编档概述《软件体系结构》电子教案16/197(3)、SA文档化的内容(续)模块与构件(联系与区别)模块倾向于指向设计时的实体;构件倾向于指运行时的实体模块不太强调交付媒介在运行时发生的情况;构件意指独立部署的软件单元。已交付的二进制构件将在整个执行过程中维持其独立性模块被复用的可能性远远小于构件模块视图类型包含主要反应设计时因素的风格:向设计和实现单元指派问题各个部分的分解过程6.1软件体系结构编档概述《软件体系结构》电子教案17/197(3)、SA文档化的内容(续)模块与构件(联系与区别)C&C视图类型包含的风格强调执行期间进程的交互方式和数据在系统中的流动方式在模块视图中编档的元素可能会在C&C视图中得到良好的展现,这就是设计时的元素在运行时的展现模块和构件代表着当前软件工程快速组建和轻松更改软件系统的基本原则,它们都成为了创建和记录SA的基本要素6.1软件体系结构编档概述《软件体系结构》电子教案18/197对任何软件编档(包括SA编档)的规则:
(4)、合理文档化的规则①从读者的角度编写文档:避免意识流,采用执行流写作风格②避免出现不必要的重复③避免歧义。语义精确,定义明确;应该慎用箭头④使用标准结构⑤记录基本原理⑥使文档保持更新,但更新频度不要过高⑦针对目标的适应性对文档进行评审6.1软件体系结构编档概述《软件体系结构》电子教案19/197(5)、编档标准结构主题名称内容概述1概述解释视图类型/风格为什么有益于SA编档,并讨论支持系统的那些方面,以及如何支持系统的推断和分析2元素、关系和特性元素:视图/风格的固有构架组成块关系:元素之间的协作方式特性:元素,关系的附加信息3支持什么和不支持什么支持和不支持的推断类型。帮助构架师了解视图/风格的意图4表示法图形和/或文字表示法5与其它视图的关系视图之间的关联;其它视图的警告信息;有利于建立这一视图与其它视图之间映射的建议6范例介绍指定风格编档的范例6.1软件体系结构编档概述《软件体系结构》电子教案20/197第6章内容摘要6.1软件体系结构编档概述6.2视图类型与风格6.3软件体系结构编档的实施《软件体系结构》电子教案21/1976.2视图类型与风格6.2.1模块视图类型与风格6.2.2C&C视图类型与风格6.2.3分配视图类型与风格《软件体系结构》电子教案22/197
模块是能提供内聚功能单元的软件实现单元。模块产生于20世纪60-70年代,基于软件单元的思想,这些软件单元具有良好的接口,并能提供一组服务(一般为过程或函数),实现了完全或部分隐藏自身内部数据结构和算法。这些概念在面向对象的编程语言和建模表示法中得到了广泛的应用。(1)模块视图类型---概述6.2.1模块视图类型与风格《软件体系结构》电子教案23/197
目前,系统软件分解成可管理单元的方式仍然是重要的系统结构形式之一。它确定了系统源代码是如何划分成可分离的部分的,每一部分对其它部分作出了什么样的假设,以及这些部分是如何聚集成更大的集合体的。模块化的选择通常能确定系统的某一部分将如何影响其它部分,因此,系统具有支持可修改性、可移植性和复用的能力(1)模块视图类型---概述6.2.1模块视图类型与风格《软件体系结构》电子教案24/197(1)模块视图类型---元素、关系和特性描述元素模块,提供内聚功能单元的软件实现单元关系部分关系、依赖关系、特化关系元素特性名称、模块责任、实现信息关系特性部分关系:拥有相关的可见性特性依赖关系:拥有分配的约束条件特化关系:拥有实现特性布局没有继承布局的约束条件6.2.1模块视图类型与风格25/197(1)模块视图类型---支持/不支持什么描述支持使用模块视图类型应针对:构造:模块视图提供源代码的蓝图,因此,模块和物理结构之间通常会进行详细映射分析:模块能划分系统,因而可以确定模块责任,高层需求往往通过一组调用序列得到满足。实现需求跟踪和影响分析通讯:模块为要了解系统的人说明系统的功能,主要通过系统责任的自顶向下的分解来展示不支持一般不能用于分析性能、可靠性以及其它运行属性。即对运行时的行为无法推断。6.2.1模块视图类型与风格《软件体系结构》电子教案26/197(1)模块视图类型---表示法描述非正规表示发图形表示文本列表表示(参见下页:A-7E航空电子系统)UML
模块与关系示范6.2.1模块视图类型与风格《软件体系结构》电子教案27/197(1)模块视图类型---表示法(文本列表示例)6.2.1模块视图类型与风格28/197(1)模块视图类型---与其它视图的关系模块通常会映射到C&C视图类型中的视图:模块视图中展示的实现单元能映射到运行时执行的构件单一的模块通常会在多个构件中复制当模块片段与构件片段对应时,情况可能会比较复杂模块视图表示的是软件的划分,因此,不能展示多个对象的实例6.2.1模块视图类型与风格29/197(1)模块视图类型---总结模块遵循某种方式将系统软件分解成可管理的单元,这种功能单元是一种重要的系统结构形式模块以“部分关系”、“依赖关系”和“特化关系”的形式相互联系模块视图能为源代码提供蓝图不应依赖模块名称定义模块的功能:应该使用责任特性定义模块功能应该使用接口文档确立模块在系统中角色模块通常映射到构件和连接件视图类型的视图6.2.1模块视图类型与风格30/197(2)模块视图类型的风格---分解风格---概述分解风格是一种颇受欢迎的沟通工具在模块视图类型中,当强调“部分关系”时即可获得模块分解风格几乎所有的SA开始都采用模块分解风格实现可修改性,即通过在SA中特定的位置分配功能而将可修改性嵌入SA中6.2.1模块视图类型与风格《软件体系结构》电子教案31/197(2)模块视图类型的风格---分解风格---元素、关系和特性描述元素模块,子系统(聚集成其它模块的模块)关系分解关系(“部分关系”的细化)文档义务(规定用来定义分解的标准)元素特性由模块视图类型定义关系特性可见性(除了父模块之外,其它模块对该模块的了解程度和对其功能的可用程度)布局
分解图中不允许出现循环在一个视图中,一个模块不能属于多个模块6.2.1模块视图类型与风格32/197(2)模块视图类型的风格---分解风格---支持/不支持什么描述支持分解的工作任务可映射到组织单位和团队,有利于这些工作任务的实现和测试分解视图还能在软件实现层为更改效果进行分析提供某些支持不支持由于分解视图不能模拟时间的所有依赖,因此无法对更改效果进行全面的影响分析,必须采用对依赖关系更为详细描述的视图6.2.1模块视图类型与风格33/197(2)模块视图类型的风格---分解风格---表示法描述非正规表示法图形表示文本列表表示(参见:A-7E航空电子系统)UML6.2.1模块视图类型与风格《软件体系结构》电子教案34/197(2)模块视图类型的风格---分解风格---与其它风格的关系分解视图与C&C视图之间可以进行相互映射,其目的是将软件的实现结构映射成运行时的结构同一模块可能会实现若干构件和连接件,一个构件可能需要若干模块才能实现分解风格与工作任务风格密切相关,后者是分配视图类型中的一员6.2.1模块视图类型与风格《软件体系结构》电子教案35/197(2)模块视图类型的风格---使用风格---概述在使用“依赖关系”时,就应该考虑模块视图类型的使用风格对于开发者来说,要使自己负责的部分能正常工作,必须具备那些模块此风格允许系统中的有用子集以增量的方式开发和部署6.2.1模块视图类型与风格《软件体系结构》电子教案36/197(2)模块视图类型的风格---使用风格---元素、关系和特性描述元素模块(由模块视图类型定义)关系使用关系(“依赖关系”的细化)元素特性由模块视图类型定义关系特性使用关系是一种描述特性,详细描述了一个模块使用另外一个模块的方式布局使用不存在布局限制。但是,如果这种关系中的循环包含许多元素,那么,以增量方式产生SA的能力会被削弱6.2.1模块视图类型与风格37/197(2)模块视图类型的风格---使用风格---支持/不支持什么描述支持适用于计划增量开发、系统的扩展和子集的扩展调试和测试效果评估不支持6.2.1模块视图类型与风格《软件体系结构》电子教案38/197(2)模块视图类型的风格---使用风格---表示法描述非正规表示法矩阵表示(行模块使用了列模块)使用双列表格的形式(使用元素位于左列,被使用元素位于右列)UML此图中的数据库具有两个接口,它们分别由用户接口模块和管理系统模块使用6.2.1模块视图类型与风格《软件体系结构》电子教案39/197(2)模块视图类型的风格---使用风格---与其它风格的关系使用风格能与分层风格密切配合区分使用和调用的关系:程序P1使用P2,而不必调用P2:如P1可以假设P2在结束对某个设备的使用后使设备保持可用状态;程序P1可以调用程序P2,但不使用P2:如P2是P1在检测到某个错误时调用的异常处理程序,那么P1通常就不关心P2会做什么6.2.1模块视图类型与风格《软件体系结构》电子教案40/197(2)模块视图类型的风格---泛化风格---概念当打算支持SA和单个元素的扩展和演化时,就会使用泛化风格模块必须能捕捉共性和差异性:父模块拥有共性,子模块表现出差异性通过添加、删除或更改子模块来达到扩展的目的对父模块的修改,要保持继承它的子模块的自动更新泛化意味着同时继承接口和实现方案:子模块将继承父模块的结构、行为和约束条件6.2.1模块视图类型与风格41/197(2)模块视图类型的风格---泛化风格---元素、关系和特性描述元素模块(由模块视图类型定义)关系泛化(模块视图类型中的“特化关系”)元素特性除了模块视图类型中为模块定义的特性外,模块还拥有“抽象”特性,抽象特性能定义拥有接口,但没有实现方案的模块关系特性泛化关系能拥有一种区别接口和实现继承的特性布局
模块能拥有多个父模块泛化关系中不允许出现循环6.2.1模块视图类型与风格《软件体系结构》电子教案42/197(2)模块视图类型的风格---泛化风格---支持/不支持什么描述支持面向对象设计扩展和演化局部更改或变化复用不支持6.2.1模块视图类型与风格《软件体系结构》电子教案43/197(2)模块视图类型的风格---泛化风格---表示法UML表示法:6.2.1模块视图类型与风格《软件体系结构》电子教案44/197(2)模块视图类型的风格---泛化风格---与其它风格的关系继承关系是其它模块使用类型关系的补充在复杂的设计方案中,应该将继承关系与分解关系与其它类型的关系分开展示,继承关系更多的用于描述模型、风格、框架和引用模型,而不是用于对单一系统的描述继承可以引出类型和子类型的概念,子类型关系能用来演化指定的类型,以满足新的需求泛化是元素之间的分类关系;继承则是将共享增量描述组合起来,形成对元素的全面描述的一种机制泛化意味着对接口和实现的继承,子模块将继承父模块的结构、行为和约束条件6.2.1模块视图类型与风格《软件体系结构》电子教案45/197(2)模块视图类型的风格---分层风格---概述每个层表示一个虚拟机;对虚拟机之间关系的约束条件;虚拟机定义了一种“序”关系,说B在A的下面意味着:在实现A层时可以使用B层提供的虚拟机中的任何基础设施;层次越低,允许使用的的设施越少;虚拟机增强了可移植性和维护性;分层的实质在于较低的层不能毫无限制地访问较高层。6.2.1模块视图类型与风格《软件体系结构》电子教案46/197(2)模块视图类型的风格---分层风格---元素、关系和特性描述元素层关系“允许使用”是模块视图类型“依赖关系”的特化元素特性层的名称层包容的软件单元允许层使用的软件,包括(1)提供层间和层内的使用规则;(2)列出这些规则可容许的所有例外情况关系特性与层内和层间有关布局每个部分软件只能分配到一个层中6.2.1模块视图类型与风格《软件体系结构》电子教案47/197(2)模块视图类型的风格---分层风格---支持/不支持什么6.2.1模块视图类型与风格描述支持有助于提供可修改性和可移植性虚拟机对于较低层的更改可以隐藏在接口之下,且不会对上面各层产生影响层可以部分地扮演系统的蓝图,但不总是有效的层可以扮演一部分通讯角色,特别是在大型复杂系统中,将模块组织成具有接口的层来管理,是向开发者传达结构的重要手段不支持影响性能的较低层的更改会影响该层的接口,进而影响较高层48/197(2)模块视图类型的风格---分层风格---表示法描述非正规表示法堆栈分段层环型分段层,3维烤箱模型带边车结构的层内容接口大小和颜色UMLUML没有层的内置元素,但可用“包”表示。见下页6.2.1模块视图类型与风格《软件体系结构》电子教案49/197(2)模块视图类型的风格---分层风格---表示法描述UML分段层6.2.1模块视图类型与风格50/197(2)模块视图类型的风格---分层风格---与其它风格的关系层与模块:层可以是模块;虽然模块被分解成其它的模块,但层并未分解成更小的层,引入分段层目的是为了实现与模块之间的映射。层和模块之间的映射不是一一对应的(如下图)6.2.1模块视图类型与风格51/197(2)模块视图类型的风格---分层风格---与其它风格的关系层与级(tier):在分布式环境下,给机器分配资源、元素间的数据流、以及通讯信道的存在和使用,都倾向于用“级”表示(如下图)。注意图中的双向箭头和对称性是与层不同的6.2.1模块视图类型与风格《软件体系结构》电子教案52/197(2)模块视图类型的风格---分层风格---与其它风格的关系模块“使用”风格:由于层能表达“允许使用”关系,因此非常适合使用风格子系统:如下图,子系统由顶层段和任何它可使用的任何较低层的段构成6.2.1模块视图类型与风格《软件体系结构》电子教案53/197(2)模块视图类型的风格---总结分解风格能展示向模块分配任务的方式。分解风格特别适应于新成员,也适应于对更改影响进行分析使用风格能展示模块相互依赖的方式。使用风格有助于实现增量开发和系统有用子集的建立泛化风格能展示一个模块将如何成为另一个模块的泛化或特化;也能展示继承性,并能用来使用模块之间的共性;从而使模块之间产生关联。泛化风格广泛应用于面向对象系统6.2.1模块视图类型与风格《软件体系结构》电子教案54/197(2)模块视图类型的风格---总结分层风格能将系统风割成一组虚拟机,这些虚拟机通过“允许使用”关系相互关联。分层风格能帮助系统实现可移植性和可修改性针对使用视图和分层视图采用UML构造型的“依赖关系”;针对分解视图采用“部分关系”;针对泛化视图采用“继承关系”等。6.2.1模块视图类型与风格《软件体系结构》电子教案55/1976.2视图类型与风格6.2.1模块视图类型与风格6.2.2C&C视图类型与风格6.2.3分配视图类型与风格《软件体系结构》电子教案56/197(1)、C&C视图类型—概述C&C视图是实际操作中的常见视图,用线框图表示,并用于对SA进行主要的初步说明C&C视图能定义由进程、对象、客户机、服务器和数据存储等元素构成的模型C&C视图给出了一幅运行时的实体和可能的交互图6.2.2C&C视图类型与风格《软件体系结构》电子教案57/197(1)、C&C视图类型—概述上图展示了系统在运行时可能呈现的状态。它是不同风格的混合:C/S风格、数据共享风格和发布-订阅风格6.2.2C&C视图类型与风格58/197(1)、C&C视图类型—元素、关系和特性描述元素构件类型:主要处理单元和数据存储器连接件类型:交互机制关系连接:构件端口(接口)和特定的连接件角色相关联元素特性构件:名称:应该能反应构件功能类型:定义一般功能、端口数量及类型和所需特性其它特性:取决于构件类型,包括性能和可靠性值连接件名称:能反应连接件的交互性质类型:定义交互性质、角色数量和类型以及所需特性其它特性:取决于连接件类型,包括性能和可靠性值布局不存在固有的布局限制6.2.2C&C视图类型与风格59/197(1)、C&C视图类型—元素、关系和特性选择连接件的指导方针:连接件可以是多于二元的连接件如果某一构件是用作一组构件之间进行交互操作的中间构件,就应该考虑将它表示为连接件连接件通常能表示复杂的交互形式,如CORBA连接件体现交互协议。当两个或更多的构件进行交互时,它们必须遵守有关的交互顺序、控制轨迹、错误状态处理和超时处理的约定6.2.2C&C视图类型与风格《软件体系结构》电子教案60/197(1)、C&C视图类型—支持/不支持什么描述支持C&C能用来推断运行时系统的质量属性,如性能、可靠性和有效性主要回答以下问题系统的主要执行构件是什么,它们如何交互主要的共享存储器是什么系统的哪些部分被复制,次数如何系统执行时,数据是如何经过系统的通讯实体使用了什么交互协议系统的哪些部分会以并行的方式运行在执行过程中,系统结构可能会发生什么样的变化不支持并不适合于表示没有运行时存在的设计元素6.2.2C&C视图类型与风格《软件体系结构》电子教案61/197(1)、C&C视图类型—表示法描述非正规表示法线框图正规表示法ADL:参见以前内容UML:(1)将构件类型作为类,构件实例作为对象(2)将构件类型表示为UML子系统,将构件实例表示为子系统的实例(利用包和包的实例)(3)基于UML的扩展机制,形成UML-profile(变体的UML框架)来表示构件和连接件类型6.2.2C&C视图类型与风格《软件体系结构》电子教案62/197(1)、C&C视图类型—与其它视图类型的关系一般情况下,系统的C&C视图和模块视图之间的关系可能非常的复杂:同样的代码模块可由C&C视图的许多元素执行;反之,C&C视图的单一构件可执行由许多模块执行的代码6.2.2C&C视图类型与风格《软件体系结构》电子教案63/197(1)、C&C视图类型—与其它视图类型的关系应该将C&C视图元素和模块视图元素之间的关系进行编档C&C构件可能拥有许多与环境进行交互的点,每个交互点由同一模块接口定义6.2.2C&C视图类型与风格《软件体系结构》电子教案64/197(1)、C&C视图类型—总结C&C视图能定义由具有某种运行时存在的元素构成的模型。这些元素包括进程、对象、客户机、服务器和数据库存储等;此外,构件和连接件模型还包含作为元素的交互路径,诸如通讯链路和协议、信息流和共享存储器访问等构件具有接口,它是端口的划分;连接件具有接口,称为角色连接件可以是多于二元的,在某些SA中采用n元连接件是非常有用的6.2.2C&C视图类型与风格《软件体系结构》电子教案65/197(1)、C&C视图类型—总结如果某些构件主要是一组构件之间进行交互操作的中间构件,就应该考虑将它表示为连接件,而不是构件连接件能够而且通常应该表示复杂的交互形式。能体现交互协议通过引用合适的风格指南说明自己当前使用的是哪种风格说明将构件连接到连接件时会使用什么端口6.2.2C&C视图类型与风格《软件体系结构》电子教案66/197(1)、C&C视图类型—总结如果将给定的端口和给定的角色连接起来,其合法性不是一目了然的,就应该在视图的基本原理部分提供合理性说明说明哪些端口用于将系统连接到外部环境数据流和控制流是C&C模型的投影。在创建类图时,应该阐明箭头走向的语义准则。数据流和控制流至多只能被近似地定义成连接件6.2.2C&C视图类型与风格《软件体系结构》电子教案67/197(2)、C&C风格—概述C&C风格是C&C视图类型的特化。也就是一组特定的构件和连接件的集合、以及对这个集合中的元素进行组合的约束规则被选来表示C&C视图的风格通常取决于系统内运行时结构的性质和用途C&C视图类型能捕捉到系统运行时的各个方面,所以,C&C风格通常也会与交互模式相关联6种风格:管道-过滤器、共享数据、发布-订阅、C-S、对等连接和进程通讯6.2.2C&C视图类型与风格《软件体系结构》电子教案68/197(2)、C&C风格—管道-过滤器风格---概述其交互模式表现出数据流连续变换的特征数据流到达过滤器并经过转换后由管道传递给下一个过滤器单个过滤器能通过多个端口传送数据一般用在信号处理系统和UNIX管道构建的系统中在编档时,对管道:是否得到缓冲,它们如何处理数据结尾,以及它们向已满的缓冲管道写入数据或读取管道数据时的阻塞行为。在编档时,对过滤器:是否属于一个单独的进程,每个过滤器实现的流变换6.2.2C&C视图类型与风格《软件体系结构》电子教案69/197(2)、C&C风格—管道-过滤器风格---元素、关系和特性描述元素构件类型:过滤器。过滤器端口必须是输入端口和输出端口连接件类型:管道。拥有数据输入/出角色关系连接关系能使过滤器输出端口与某个管道的数据输入角色相关联,使过滤器的输入端口与多个管道的数据输出角色相关联,并能确定交互过滤器的图形计算模型过滤器从其输入端口读取数据流,并将数据流写入其输出端口的数据转换器特性与C&C视图类型定义的特性相同布局管道能将过滤器输出端口连接到过滤器输入端口。这种风格的特化可限制构件和非循环图或线形顺序的关联6.2.2C&C视图类型与风格70/197(2)、C&C风格—管道-过滤器风格---支持/不支持什么描述支持在很大程度上倾向于数据变换过滤器一般用在接收来自传感器的大量数据,并通过初步处理后传给相应的诸如可视化等工具或系统可以用来推断系统性能,如输入/出流等待时间、可调度性等不支持6.2.2C&C视图类型与风格《软件体系结构》电子教案71/197(2)、C&C风格—管道-过滤器风格---与其它风格的关系在管道过滤器风格中,构件之间的“连线”表示具有特定计算含义的连接器,它们能将数据流能从一个过滤器传送到另一个过滤器在数据流投影或数据流视图中,这些线条表示构件间数据通讯的关系,没计算含义,仅仅表示数据从一个元素流向下一个元素6.2.2C&C视图类型与风格《软件体系结构》电子教案72/197(2)、C&C风格—共享数据风格---概述交互模式由持久数据的交换所支配,这种数据有多个存取器和至少一个用来保留持久数据的共享数据存储器数据库系统和基于知识的系统均属于这一风格的系统如果共享数据存储器能通知数据消费者其感兴趣的数据已经到达,则共享数据风格称为“黑板”如果数据消费者负责数据检查,则共享数据风格成为“存储库”目前,许多的“存储库”能提供“黑板”的触发机制6.2.2C&C视图类型与风格《软件体系结构》电子教案73/197(2)、C&C风格—共享数据风格---关系、元素和特性描述元素构件类型:共享数据存储库或数据存储器连接件类型:数据读写关系连接关系能确定哪些数据存取器将连接到哪些数据储存库计算模型数据存取器之间的通讯经由共享数据存储器来完成。控制过程由数据存取器或数据存储器来启动特性与C&C视图类型定义的特性相同布局数据存取器与连接到数据存储器的连接器连接6.2.2C&C视图类型与风格《软件体系结构》电子教案74/197(2)、C&C风格—共享数据风格---支持/不支持什么只要各个数据项拥有多个存储器,并具有持久性,就能使用共享数据风格能将数据产生者和消费者分离开来,支持可修改性与这种风格相关的性能分析通常集中在性能、安全性、保密性、可靠性和兼容性等方面6.2.2C&C视图类型与风格《软件体系结构》电子教案75/197(2)、C&C风格—共享数据风格---与其它风格的关系与n级C-S形式存在一些共同的特征。在使用这种风格的信息管理应用程序中,数据存储器通常是一个关系数据库,它利用客户-服务器的交互提供关系查询和关系更新黑板风格类似于发布-订阅风格,只是发布-订阅风格缺乏数据持久性6.2.2C&C视图类型与风格《软件体系结构》电子教案76/197(2)、C&C风格—发布-订阅风格---概述构件通过宣布事件进行交互,构件可以订阅一组事件在这种风格中,连接件的主要形式是一种事件总线发布-订阅基础设施的任务是:确保每项发布的事件均传递给所有订阅这一事件者构件通过宣布事件,将事件置于总线上,然后连接件将这些事件传递给适当的构件通常,这种风格用于消息生产者和消费者6.2.2C&C视图类型与风格《软件体系结构》电子教案77/197(2)、C&C风格—发布-订阅风格---元素、关系和特性宣布事件并能对其它已宣布事件作出反应的独立构件系统计算模型描述所有的构件连接到一个事件分配器,可将该分配器视为总线(连接器)或构件布局与C&C视图类型定义的特性相同。但可以精化为:哪些事件由哪些构件宣布,哪些事件由哪些构件订阅,什么时候应许构件订阅事件特性连接关系能将构件与发布-订阅连接器关联起来关系构件类型:任何具有发布和(或)订阅事件的接口的C&C构件类型连接件类型:发布-订阅元素6.2.2C&C视图类型与风格《软件体系结构》电子教案78/197(2)、C&C风格—发布-订阅风格---支持/不支持什么
能为一组未知的接收者发送事件和消息。由于该接收者是未知的,因此,可以在不修改产生者的情况下添加新的接收者6.2.2C&C视图类型与风格《软件体系结构》电子教案79/197(2)、C&C风格—发布-订阅风格---与其它风格的关系如果利用发布-订阅风格来向一组未知的接受者发送事件和消息,就能将这种风格看成没有持久性的共享黑板当构件拥有独立的控制线程时,发布-订阅风格就是通讯-进程风格的精化隐式调用通常与对等连接风格联合使用,在这种情况下,构件能利用过程调用或函数调用进行显式交互,也能通过事件宣布进行隐式交互。6.2.2C&C视图类型与风格《软件体系结构》电子教案80/197(2)、C&C风格—C-S风格---概述在C-S风格中,构件通过请求其它构件的服务进行交互服务器能够通过一个或更多接口提供一组服务,而客户机则使用该系统其它服务器提供的零个或多个服务可以采用一个中心服务器,也可以采用若干个分布式服务器常见的C-S风格的实例有:6.2.2C&C视图类型与风格《软件体系结构》电子教案81/197(2)、C&C风格—C-S风格---概述常见的C-S风格的实例有:窗口系统:根据客户应用和屏幕服务器划分的系统目录服务:根据名称解析器和名称服务器划分的系统两级服务器系统:根据客户机和数据划分的系统Web分布式信息系统:根据客户应用、商业逻辑和数据管理服务等因素划分的系统等。6.2.2C&C视图类型与风格《软件体系结构》电子教案82/197(2)、C&C风格—C-S风格---元素、关系和特性描述元素构件类型:请求其它构件服务的客户机和向其它构件提供服务的服务器连接件类型:请求/应答,即客户机对服务器的非对称调用关系连接关系使客户机与连接件的请求角色关联,使服务器和连接器的应答角色相关联,并确定哪些服务能由那些客户机请求计算模型客户机能启动各项活动,向服务器请求所需服务,并等待这些请求的结果特性与C&C视图类型定义的特性相同,但能根据服务器精化为:可以连接的客户机的数量和类型以及性能特性,诸如每秒处理的事务等布局一般没有限制,特化可施加如下限制:(1)与给定端口或角色的连接数量;(2)服务器之间允许存在的关系;(3)级6.2.2C&C视图类型与风格83/197(2)、C&C风格—C-S风格---支持/不支持什么用于将客户应用程序和它们使用的服务分离开来,从而达到对系统的理解将功能划分成客户机和服务器后,可将它们单独分配给各级,以便支持系统的可收缩性和可靠性C-S分析包括:6.2.2C&C视图类型与风格《软件体系结构》电子教案84/197(2)、C&C风格—C-S风格---支持/不支持什么C-S分析包括:确定服务器是否提供客户机要求的服务客户机使用服务的方式是否适当依赖性分析:如,了解系统是否从服务故障中恢复过来安全性分析:如,确定服务器提供的信息是否被限制在拥有适当权限的客户机的范围内性能分析:如确定服务器能否保持预期服务器请求的规模和速度。6.2.2C&C视图类型与风格《软件体系结构》电子教案85/197(2)、C&C风格—C-S风格---与其它风格的关系C-S风格是编程语言中的过程/函数/方法调用的一种泛化通常将客户机与服务器分组,并将它们部署在分布式环境中的不同机器上,以便形成包含n级的分层结构层(layer)和级(tier)不同:分层是模块视图类型中的特定风格,是“允许使用”关系n级客户机-服务器是C&C视图类型中客户机-服务器风格的一种限制形式,交互是一种“请求-应答”连接器6.2.2C&C视图类型与风格《软件体系结构》电子教案86/197(2)、C&C风格—对等连接风格---概述对等连接风格具有对等性,构件通过服务交换直接进行交互原则上,任何构件能通过请求其它任何构件的服务与该构件进行交互连接件可能涉及复杂的双向交互协议,从而反应对等构件之间的双向通讯对等连接的常见例子:CORBA等6.2.2C&C视图类型与风格《软件体系结构》电子教案87/197(2)、C&C风格—对等连接风格---元素、关系和特性描述元素构件类型:同位体连接件类型:调用过程关系连接关系使同位体与“调用过程”连接器相关联,并能确定可能的构件交互图计算模型同位体提供接口和对状态进行封装。计算是通过交互请求服务的同位体协作完成特性与C&C视图类型定义的特性相同,但会强调交互协议和面向性能的特性。连接可能会在运行时出现变化布局可能会限制与任何给定端口或角色的允许连接数量。6.2.2C&C视图类型与风格88/197(2)、C&C风格—对等连接风格---支持/不支持什么在对等连接风格中,假设任务同时需要客户机和服务器两种角色的话,那么它们即能扮演客户机也能扮演服务器对等连接计算能用于分布式计算应用程序。6.2.2C&C视图类型与风格《软件体系结构》电子教案89/197(2)、C&C风格—对等连接风格---与其它风格的关系缺乏分层结构意味着对等连接系统具有比客户机-服务器系统更为一般的布局灵活性。6.2.2C&C视图类型与风格《软件体系结构》电子教案90/197(2)、C&C风格—通讯进程风格---概述其特征是:并发执行构件将通过各种连接件机制进行交互。连接件机制包括同步、消息传递、数据交换、启动和停止,等常用于大型系统,在所有的分布式系统中都是必不可少的适应于理解与并发性相关的任何行为6.2.2C&C视图类型与风格《软件体系结构》电子教案91/197(2)、C&C风格—通讯进程风格---元素、关系和特性描述元素构件类型:并发单元,如任务、进程和线程等连接件类型:数据交换、消息传递、同步、控制、其它通讯关系连接关系同C&C视图中定义的连接关系计算模型通过特定连接器机制,进行交互的并发执行构件元素特性并发单元:“可抢占性”,表示并发单元的执行可被另一个并发单元抢占,或者并发单元将继续执行,直到它自愿终止自己的执行;“优先性”:它能影响调度“时间参数”:如周期和最后期限数据交换:“缓冲”-如果不能立即处理消息则先把消息保存起来布局任意图6.2.2C&C视图类型与风格《软件体系结构》电子教案92/197(2)、C&C风格—通讯进程风格---支持/不支持什么一般用在设计阶段:哪些构件分配给哪些进程可以了解系统的哪些部分能进行并行操作,哪些构件与进程进行捆绑等可以用来分析性能和可靠性其本质是:元素能进行相对独立的操作,并发是理解系统如何工作的重要部分。6.2.2C&C视图类型与风格《软件体系结构》电子教案93/197(2)、C&C风格—通讯进程风格---与其它风格的关系一般情况下与其它风格相结合应用常被特化,以便提供监视器信息,如监视其它进程或资源同步的执行时间的进程。6.2.2C&C视图类型与风格《软件体系结构》电子教案94/197(2)、C&C风格—总结C&C风格能特化C&C视图类型,方法是引入一个特定的构件和连接件类型集,并确定这些类型的元素将以什么规则结合在一起。C&C风格通常与某种交互模式相关联,这种交互模式能规定计算、数据和控制流将如何流过这一风格的系统在管道-过滤器风格中,交互模式的特点是能进行连续数据变换。数据抵达过滤器,经过变换后通过管道传递给管道线中的下一个过滤器或过滤器集6.2.2C&C视图类型与风格《软件体系结构》电子教案95/197(2)、C&C风格—总结与管道-过滤器相关的分析包括导出由过滤器图提供的聚集变换和推断系统性能在共享数据风格中,通过保留持久数据即可支配交互模式。持久数据由多个数据存取器和至少一个储存库保留与共享数据风格相关的分析通常集中在性能、安全性、保密性、可靠性和兼容性方面6.2.2C&C视图类型与风格《软件体系结构》电子教案96/197(2)、C&C风格—总结(续)在发布-订阅风格中,构件通过事件发布进行交互。构件可订阅一组事件。发布-订阅运行时基础结构的任务是确保每个发布的事件能传递给事件的所有订阅者由于事件接收者是未知的,因此在不修改事件产生者的情况下可以增加新的接收者。6.2.2C&C视图类型与风格《软件体系结构》电子教案97/197(2)、C&C风格—总结(续)客户机-服务器风格能展示构件通过请求其它构件的服务进行交互的过程。其本质是通讯一般是配对的。客户机-服务器风格可以提供对系统普通服务的划分。将功能划分成客户机和服务器后,即可基于运行时准则把它们单独分配给各个级。它提供的系统分析包括服务器是否提供客户机需要的服务、依赖性分析、安全性分析和性能6.2.2C&C视图类型与风格《软件体系结构》电子教案98/197(2)、C&C风格—总结(END)对等连接系统通过构件之间的直接交换支持服务交换。对等连接是一种调用返回风格,这种风格不存在客户机-服务器风格中出现的不对称性对等连接风格能提供全局系统平台上部署系统的灵活性通讯-进程风格的特性表现在通过各种连接件机制并发执行构件的交互,如通过同步、消息传递、数据交换、启动停止等进行交互6.2.2C&C视图类型与风格《软件体系结构》电子教案99/197(2)、C&C风格—总结(END)在大多数系统来说,通讯-进程风格适应于来理解和并发相关的任何行为,它尤其适合于性能和可靠性分析非正规的线框表示法经常用来为C&C风格编档。UML为C&C风格的遍档提供了若干的策略:(1)使用类和对象;(2)使用子系统;(3)使用实时语义框架6.2.2C&C视图类型与风格《软件体系结构》电子教案100/1976.2视图类型与风格6.2.1模块视图类型与风格6.2.2C&C视图类型与风格6.2.3分配视图类型与风格《软件体系结构》电子教案101/197(1)、分配(Allocation)视图类型—概述硬件、文件和团队都会与SA交互性能系统管理项目活动6.2.3分配视图类型与风格102/197(1)、分配(Allocation)视图类型—概述分配视图类型—SA映射到其环境的最一般形式。表示从模块风格或C&C风格的元素映射到环境元素。分配视图风格—分配视图类型的常见3种形式:部署风格:构件-连接件对硬件的映射实现风格:模块对包含它们的文件系统的映射工作任务风格:模块对承担模块开发任务的人员、团队和小组的映射6.2.3分配视图类型与风格《软件体系结构》电子教案103/197(1)、分配视图类型—元素、关系和特性描述元素软件元素:模块视图类型或C&C视图类型中的某一风格环境元素:如处理器、特大容量硬盘、配置条目或开发团队等关系“分配到…”。即软件元素被分配到环境元素元素特性软件元素拥有“要求的”特性。环境元素拥有“提供的”特性。前者必须同后者匹配关系特性取决于特定的风格布局因风格而异6.2.3分配视图类型与风格104/197(2)、分配视图类型—部署风格—概述在部署风格中,其元素C&C视图类型的通讯-进程风格,被分配到执行平台限制条件是由软件元素表达的需求和硬件元素满足这些需求的方式软件元素和物理元素的重要特性是那些影响软件元素分配到物理元素这一过程的特性6.2.3分配视图类型与风格《软件体系结构》电子教案105/197(2)、分配视图类型—部署风格—概述与物理单元相关的环境元素特性:CPU特性、内存特性、磁盘容量或其它存储单元容量、带宽、容错性与软件元素相关的特性:资源消耗、必须满足的资源需求和约束条件、安全临界值与分配相关的特性:分配能随着系统的执行而发生变换,这一特性规定了软件元素从一个处理移植到另一个处理时必须发生的事件。6.2.3分配视图类型与风格《软件体系结构》电子教案106/197(2)、分配视图类型—部署风格—元素、关系和特性描述元素软件元素:通常是C&C视图类型中的进程环境元素:计算硬件---处理器、内存、磁盘和网络等关系“分配到…”。即表示元素驻留到哪些物理单元上如果分配是动态的,关系就是“移到…”、“副本移植到…”、和(或)“执行移植到…”元素特性软件元素所“要求的”特性:重要硬件特性,如处理、内存、容量需求和容错性环境元素所“提供的”特性:影响分配决策的重要硬件特征关系特性“分配到…”布局无限制6.2.3分配视图类型与风格107/197(2)、分配视图类型—部署风格—支持/不支持什么描述支持用于性能、可靠性和安全性分析作为成本评估的一部分部署视图用于展示特定配置的硬件元素及其用途子系统的分配取决于企业内的某个组织,每个组织都能利用自己的策略和标准对部署进行控制不支持对部署风格的一种错误用法:是将它看成系统的SA。这种风格的单一视图并不是对软件SA的完整描述。6.2.3分配视图类型与风格《软件体系结构》电子教案108/197(2)、分配视图类型—部署风格—表示法描述非正规表示法线框图表格正规表示法UML:UML的部署视图6.2.3分配视图类型与风格《软件体系结构》电子教案109/197(2)、分配视图类型—部署风格—与其它风格的关系部署风格与C&C风格(风格集)存在联系;C&C风格提供分配到物理环境的软件元素。6.2.3分配视图类型与风格《软件体系结构》电子教案110/197(2)、分配视图类型—实现风格—概述实现风格将模块视图类型中的模块映射到开发基础设施实现一个模块总会产生许多独立的文件需要配置管理系统的支持:配置项(item:文件或目录)的变化管理实现风格中的软件元素和环境元素的重要特性将影响软件分配到配置项的过程6.2.3分配视图类型与风格《软件体系结构》电子教案111/197(2)、分配视图类型—实现风格—概述实现风格的两种关系是:(1)“分配到…”:模块与配置项之间的关系。这种关系使模块和实现该模块的配置项联系起来,主要是一种一对一的关系。但是,一配置项可由多个项组成。(2)包容:配置项之间的关系。一个配置项能包容在多个其它配置项中,如:目录结构和版本分支。6.2.3分配视图类型与风格《软件体系结构》电子教案112/197(2)、分配视图类型—实现风格—元素、关系和特性描述元素软件元素:模块环境元素:配置项,如文件和目录等关系包容关系:规定一个配置项由另外一个配置项包容“分配到…”关系:描述将模块分配到配置项元素特性如果存在的话,就是软件元素所要求的特性:通常是对Java或数据库等开发环境的需求环境元素所提供的特性关系特性无布局分层配置项:“包容在…”6.2.3分配视图类型与风格113/197(2)、分配视图类型—实现风格—支持/不支持什么实现风格用于开发过程和生成阶段中,管理和维护软件元素的文件开发者利用这种风格,确认他们进行更新、测试或系统生成时所能检测的文件开发者利用这种风格,用来指定特定系统的不同版本。并对新版本进行检测实现风格用来突出用于特殊目的的元素,如测试或分析系统配置管理对它的表示包括模块、配置项、及其之间的关系6.2.3分配视图类型与风格《软件体系结构》电子教案114/197(2)、分配视图类型—实现风格—表示法非正规表示法:利用图标将配置项和模块区别开来配置项的分解也应该展示出来6.2.3分配视图类型与风格《软件体系结构》电子教案115/197(2)、分配视图类型—实现风格—与其它风格的关系实现风格与模块风格关系最为密切;模块风格能在分配过程中提供软件元素。6.2.3分配视图类型与风格《软件体系结构》电子教案116/197(2)、分配视图类型—工作任务风格—概述工作任务风格能展示形成一个工作系统而必须存在的重要软件单元,以及生产这些软件单元的人员能展示软件开发所用的工具和所处的环境工作任务表示将SA映射到由人组成的团队之中,因此是一种重要的分配风格6.2.3分配视图类型与风格《软件体系结构》电子教案117/197(2)、分配视图类型—工作任务风格—概述时间和预算估计取决于工作分解结构,而工作分解结构取决于SA软件元素的特性包含对所需技能集的描述,而人员因素的特性可包含提供的技能集结构良好的工作任务关系具有完整性特性,所有工作均有人负责,但不会重叠,不会将同一工作分配到两个位置。6.2.3分配视图类型与风格《软件体系结构》电子教案118/197(2)、分配视图类型—工作任务风格—元素、关系和特性描述元素软件元素:模块环境元素:组织单元、如人员、团队、部门和分包商等关系“分配到…”元素特性技能集:所需要的技能和提供的技能关系特性无布局一般不受限制,但在实际工作中却不然,以便将某个模块分配给某个组织单元6.2.3分配视图类型与风格《软件体系结构》电子教案119/197(2)、分配视图类型—工作任务风格—支持/不支持什么描述支持非常适应于团队资源分配的管理和项目结构的说明该风格是工作分解结构以及详细预算和进度估计的基础不支持不能展示运行时的关系,如“调用”或“传递数据”不能展示模块间的依赖性关系应该谨慎对待工作任务分解风格和其它风格的组合。如果工作任务是建立在“分解”的基础上,分解工作任务并不适应与进程、级、层和其它许多SA的元素。6.2.3分配视图类型与风格120/197(2)、分配视图类型—工作任务风格—表示法无专门的表示法(2)、分配视图类型—工作任务风格—与其它风格的关系与模块分解风格关系密切,并能将模块分解风格用作分配映射的基础通常情况下,能通过添加一些工具模块,如开发工具、测试工具和配置管理工具等,对模块分解进行扩展;同时将添加项目后的日常操作分配给个人或团队6.2.3分配视图类型与风格《软件体系结构》电子教案121/197工作任务风格通常与其它风格联合使用,如工作任务可以是模块分解风格中的模块,也可以是分层图中的层等是对概念不同的视图的归并,能有效发挥作用团队之间的信息划分在很大程度上有助于模块内的信息划分。6.2.3分配视图类型与风格《软件体系结构》电子教案122/197(2)、分配视图类型—风格—总结分配视图类型中的风格能将SA映射到软件环境的结构SA与环境结构相互影响部署风格能描述运行时软件元素到执行这些软件的硬件的映射部署风格能描述模块对配置管理方案的映射,并能协助组织实施模块的文件工作任务风格能根据承担任务模块开发任务的人员、小组和团队描述模块的聚集6.2.3分配视图类型与风格《软件体系结构》电子教案123/197第6章内容摘要6.1软件体系结构编档概述6.2视图类型与风格6.3软件体系结构编档的实施《软件体系结构》电子教案124/1976.3软件体系结构编档的实施6.3.1相关概念6.3.2软件接口编档6.3.3软件行为编档6.3.4视图的选择6.3.5制作文档包6.3.6文档评审《软件体系结构》电子教案125/1976.3SA编档的实施6.3.1相关概念视图包(viewpacket):是对视图的内部信息进行分块的一种方式,提供给涉众的最小内聚捆绑文件构成同一视图的视图包存在兄弟或父子关系:兄弟视图包:是为同一系统的不同部分编档。此时,这些视图包能拼接成一个整体视图子视图包:是能为系统的同一部分编档,但其详细程度将逐步提高,并能清楚地展示系统的细节。《软件体系结构》电子教案126/197对视图的理解顺序:深度优先:选择一个元素为它的子结构编档,如此继续下去广度优先:为同一层次的元素的所有子结构编档混合:是深度和广度优先的综合。6.3SA编档的实施6.3.1相关概念《软件体系结构》电子教案127/197构成不同视图的视图包之间的关系:系统的不同区域采用不同的风格:通过桥接元素实现从一个视图包到另外一个视图包之间的理解。桥接元素出现在两种视图包中过滤器过滤器过滤器数据库构件构件过滤器端口协作的角色数据端口协作的角色管道管道6.3SA编档的实施6.3.1相关概念128/197构成不同视图的视图包之间的关系(续)
:某种风格的元素由另外一种风格的元素构成:如客户-服务器风格的服务器由管道-过滤器风格来实施服务器过滤器过滤器过滤器服务器由管道-过滤器实现管道管道客户机客户机客户机6.3SA编档的实施6.3.1相关概念《软件体系结构》电子教案129/197构成不同视图的视图包之间的关系(续)
:以不同的角度去观察同一个系统:如管道过滤器中的每个过滤器能访问数据库的情况过滤器过滤器过滤器数据库由管道-过滤器和共享数据库构成的系统管道管道6.3SA编档的实施6.3.1相关概念《软件体系结构》电子教案130/197精化:是对视图包的“放大”,通过一系列的操作来逐步展露信息的过程。分解精化:能详细描述单一元素,揭示它们的内部结构,然后以递归的方式精化这一内在结构的每一个成员实现精化:许多的元素和关系将被具有更多实现细节的新元素和新关系所取代(参见某种风格的元素由另外一种风格的元素构成)6.3SA编档的实施6.3.1相关概念《软件体系结构》电子教案131/197描述完整性:是与精化相关的一种概念,它能描述视图包之间是如何相互联系的按照完整性策略:如果两个元素之间未表现出任何关系,则这两个元素之间的关系要么不存在,要么不允许存在按照非完整性策略:通过对该视图的后续精化再展示这种关系通过对该视图的后续精化或其它描述来展示附加的元素6.3SA编档的实施6.3.1相关概念《软件体系结构》电子教案132/197使用上下文图:能展示被构造的系统内部和外部存在什么东西,以及与它们进行交互的实体顶层上下文图:当开发一个大型系统的一部分系统时,顶层上下文图能对其进行描述顶层上下文图是读者了解其SA的第一步6.3SA编档的实施6.3.1相关概念《软件体系结构》电子教案133/197上下文图的内容:对实体(元素或系统)的描述,这些实体的SA正在接受编档,而且区分于那些外部实体数据源和数据目的,或由实体产生或处理的刺激或命令。与当前编档实体交互的其它实体表示法或符号的图例6.3SA编档的实施6.3.1相关概念《软件体系结构》电子教案134/197上下文图不能支持什么:是视图包支持文档的一部分,每个视图包都拥有一个上下文图通常用于向更了解应用程序外部实体而不是内部实体的人说明系统不能揭示有关实体的构架细节不能展示任何时间信息,如交互或数据流等不能展示传递数据、触发刺激和发送消息等条件6.3SA编档的实施6.3.1相关概念《软件体系结构》电子教案135/197上下文图的表示法:非正规表示法:线框图:实体位于中间,其它与之交互的外部实体位于周围UML:“用例图”或“类图”(虽然UML没有明确的机制来支持上下文图的表示)6.3SA编档的实施6.3.1相关概念《软件体系结构》电子教案136/1973种建立独立风格或视图之间的映射:为独立视图之间的映射编档:将这种编档看成适应于视图之外的文档集的一部分创建一个覆盖图:只有当一个视图中的元素与另外一个视图中的元素存在明确的映射,且单独编档时会产生过多冗余信息时使用。不会产生新的元素和关系创建混合风格:通过组合两个现有风格和编写风格指南来创建。会产生合成元素和关系组合视图:包含来自两个或更多其它视图的元素和关系的视图6.3SA编档的实施6.3.1相关概念《软件体系结构》电子教案137/197产生有用的视图:取决于对视图之间关系的理解在进行视图组合时,应确保视图之间存在简单明确的映射越大的系统,更应该使视图保持独立过多的概念会扰乱组合视图不同的工作团队不同类型的信息,对视图的选择应满足涉众的需要工具会影响视图的选择和数量应该最大限度地减少视图数量。系统的视图集在保持大多数视图的明确性和降低成本之间进行权衡组合视图:包含来自两个或更多其它视图的元素和关系的视图6.3SA编档的实施6.3.1相关概念《软件体系结构》电子教案138/197组合视图:包含来自两个或更多其它视图的元素和关系的视图视图映射类型:“多对一”(如模块映射到进程)6.3SA编档的实施6.3.1相关概念《软件体系结构》电子教案139/197组合视图:包含来自两个或更多其它视图的元素和关系的视图视图映射类型:“一对多”6.3SA编档的实施6.3.1相关概念《软件体系结构》电子教案140/197组合视图:包含来自两个或更多其它视图的元素和关系的视图视图映射类型:“多对多”:属于复杂影射。此时,尽量采用使视图保持分离的原则。如果非要组合,则最好对它们打乱后在细细重新获得新的视图,以便降低视图之间的复杂性6.3SA编档的实施6.3.1相关概念《软件体系结构》电子教案141/197组合视图:包含来自两个或更多其它视图的元素和关系的视图为混合视图编档(将一个视图中的多个元素映射到另外一个视图的单个元素)6.3SA编档的实施6.3.1相关概念《软件体系结构》电子教案142/197组合视图:包含来自两个或更多其它视图的元素和关系的视图为混合视图编档(将一个视图中的某个元素映射到另外一个视图的多个元素)元素1成为混合视图中元素的特性6.3SA编档的实施6.3.1相关概念《软件体系结构》电子教案143/197为可变性和动态性编档可变性产生的原因:在单个系统的设计过程中,虽然对可选方案进行了探讨,但对某些决策无法确定SA针对的一个系统家族,家族中的待构成员的具体情况决定了必须存在可选的方案SA是一个系统集的框架,应该包含该框架的明确的扩展点。可变性:是对某个系统部署前做出的决策6.3SA编档的实施6.3.1相关概念《软件体系结构》电子教案144/197为可变性和动态性编档动态性产生的原因:通过构件和连接件的变更使SA发生动态变化,如新用户的加入和离开等重新分配资源或责任,如构件从一个处理器移动到另外一个处理器等动态性:指在系统执行期间做出或重新考虑的决策6.3SA编档的实施6.3.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 咸宁中考题目及答案
- 物理中考题及答案甘肃
- 吉林省通化市名校2024届中考数学全真模拟试题含解析
- 《大禹治水》读后感
- 医院青协笔试试题及答案
- 湖南司法警官职业学院《生物启发性材料》2023-2024学年第二学期期末试卷
- 山东省临沂市第十九中学2025届高三调研测试(二)物理试题文试题含解析
- 浙江水利水电学院《室内陈设设计》2023-2024学年第二学期期末试卷
- 秦皇岛工业职业技术学院《管理决策英》2023-2024学年第二学期期末试卷
- 岳阳现代服务职业学院《核医学实验技术》2023-2024学年第二学期期末试卷
- 第六讲探寻新时期中美正确相处之道-2025年春季学期形势与政策课件
- 智慧矿山无人机自动巡检解决方案
- 英语语法-时间介词-练习题(带答案)
- 《国核-核安全文化》课件
- 业务员销售提成方案表
- 气体充装安全培训课件
- 大学生就业21问知到智慧树章节测试课后答案2024年秋西华大学
- DB3410T 47-2024 绿色金融和普惠金融服务乡村振兴评价体系
- 高二走读生家长会课件
- 2024年河北省石家庄市高考物理质检试卷(一)(含详细答案解析)
- 二年级除法口算天天练
评论
0/150
提交评论