第5章 软件体系结构设计ppt课件.ppt
《第5章 软件体系结构设计ppt课件.ppt》由会员分享,可在线阅读,更多相关《第5章 软件体系结构设计ppt课件.ppt(104页珍藏版)》请在三一办公上搜索。
1、第五章 软件体系结构设计,5.1 软件体系结构,在软件编码之前,进行软件的分析和设计,已成为软件行业的标准做法。 软件体系结构仅关注大型设计,为开发团队的设计者提供指导。软件体系结构的设计过程是一个具有多个步骤的过程,其主要任务是从信息需求中综合出数据结构、程序结构、接口特征和过程细节。,软件体系结构的三要素 程序构件(模块)的层次结构 构件之间交互的方式 数据的结构软件设计的一个目标是建立软件的体系结构表示。将这个表示当作一个框架,从事更详细的设计活动。,在软件体系结构设计中应保持的性质,结构 体系结构设计定义系统的构件、构件打包的方式和相互交互的方式附属的功能 体系结构设计描述设计出的体系
2、结构如何实现功能、性能、可靠性、安全性、适应性,以及其它的系统需求。可复用 体系结构设计应描述为一种可复用的模式,能复用已有构造块,并可供以后类似系统族的设计使用。,5.1 软件体系结构,5.1.1 软件体系结构的概念体系结构:是高层的建模,它描述事物最重要的性质。M.Shaw:软件体系结构定义为程序/系统各构件的结构以及它们之间的内部关系和指导它们的设计并随时间而演变的原理和方针。,5.1 软件体系结构,M.Shaw的具体观点如下:第一,从结构模式观点上看,软件体系结构包括软件构件、构件之间的联系和系统构造、方式、约束、语义、分析、属性、基本原理和系统需求。,5.1 软件体系结构,第二,框架
3、模式观点虽然与结构观点有相似点,但前者更加强调系统的整体连贯性,主要针对特定领域和问题,而不仅仅是研究系统的组成。第三,动态模型包括系统的总体配置的变化、建立/禁止预定义的通讯、互连通道和计算进程等。第四,进程模式观点强调软件体系结构中的构造过程中的步骤和进程,在这一观点下软件体系结构是一个进程描述的结果。,5.1 软件体系结构,软件体系结构是一个软件系统的基本组织,它体现在构件、构件间的相互关系以及构件与环境的关系中;它还包括指导系统设计和进化的原则。 软件体系结构并非是可执行的软件,它是一种设计表示,通过该表示使得软件体系结构师能够分析其所完成的设计是否满足软件需求,以减少软件构造过程中存
4、在的风险。,5.1.2 为什么软件体系结构重要1)软件体系结构可以用于各风险承担者之间的沟通;2)软件体系结构设计突出了早期设计的选择,这些选择对随后的设计和实现工作乃至最终项目的成功影响深远;3)软件体系结构建立了一个相对较小、但易于理解和掌握的模型,该模型描述了系统如何构成,以及这些构件如何一起工作;4)软件体系结构设计结论是软件测试的基础与前提,在软件体系结构上考虑测试,其目的是找出体系结构设计的错误和缺陷,产生指导代码测试的测试计划和测试用例;5)软件体系结构对新的团队成员的培训是必不可少的,这可让新成员快速跟上开发进度;此外,软件体系结构的培训还对客户、管理者、测试者和操作员有用。,
5、5.2数据体系结构设计,在软件应用中,数据体系结构对软件体系结构的设计有深远的影响,其具体表现在:1)在软件体系结构设计层,数据的结构设计是软件体系结构设计的一个重要方面;2)在构件设计层,数据结构及其操纵它们的相关算法的设计对创建高质量的应用是至关重要的;3)在应用层,数据模型到数据库的映射,是实现应用系统业务目标的关键;4)在业务层,存在于数据库或数据仓库中的数据是进行数据挖掘和知识发现的基础,该内容对业务系统的成功具有举足轻重的影响。,5.2数据体系结构设计,数据体系结构设计出现在高抽象层,构建表示数据或信息的模型。这一数据模型被逐步求精为特定的实现表示,该表示可以被应用系统处理。构件级
6、的数据设计关注于被一个或多个软件构件直接访问的数据结构表示,在实际应用中,数据设计在分析模型的创建期间就已经开始。,5.3 软件体系结构风格,软件体系结构风格(style)又称软件体系结构习惯模式(idiomatic paradigm)。体系结构风格定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束:词汇表中包含一些构件和连接器类型,而这组约束指出系统是如何将这些构件和连接器组合起来的。Define classes of software systems based on the form of the solution and which can be applied across
7、problem domain.,5.3 软件体系结构风格,常见的软件体系结构风格涉及:设计词汇表是什么?或者构件和连接器的类型是什么?可容许的结构模式是什么?基本的计算模型是什么?风格的基本不变性是什么?其使用的常见例子是什么?使用此风格的优缺点是什么?其常见特例是什么?,5.3 软件体系结构风格,体系结构风格的四要素内容词汇表;配置规则;语义解释原则对基于这种风格的系统所进行的分析。,5.3 软件体系结构风格,对体系结构风格有三种不同的观点。第一种观点,体系结构风格是一种语言。第二种观点,体系结构风格是一种类型系统。第三种观点,体系结构风格是一种理论。,有原则地使用软件体系结构风格具有如下意
8、义:它促进了设计的复用,使得一些经过实践证实的解决方案能够可靠地解决新问题。它能够带来显著的代码复用,使得体系结构风格中的不变部分可共享同一个解决方案。便于设计者之间的交流与理解。通过对标准风格的使用支持了互操作性,以便于相关工具的集成。在限定了设计空间的情况下,能够对相关风格作出分析。能够对特定的风格提供可视化支持。,与此同时,人们目前尚不能准确回答的问题是:系统设计的哪个要点可以用风格来描述;能否用系统的特性来比较不同的风格,如何确定用不同的风格设计系统之间的互操作;能否开发出通用的工具来扩展风格;如何为一个给定的问题选择恰当的体系结构风格,或者如何通过组合现有的若干风格来产生一个新的风格
9、。,1. 管道与过滤器(Pipes and Filters),基本结构与词汇表在此软件体系结构中,每一模块都有一组输入和输出。每一模块从其输入端接收输入输入数据流,在经过其内部处理后,按标准的顺序,将结果数据流送到输出端,以达到传递一组完整计算结果的目的。在此,我们将处理模块称为过滤器,而各个模块之间的连接器称为管道。词汇表是构件=过滤器;连接器=管道,管道和过滤器体系架构模式把系统任务分成为几个独立的处理步骤。这些步骤采用通过系统的数据流连接。一个步骤的输出是下一个步骤的输入。每个处理步骤由一个过滤器组件实现,它处理或者转化数据,并且系统的输入可以是多种数据源.,这种结构有若干不变特征:1.
10、 过滤器一定是独立的实体,即各个过滤器之间不能共享状态。2. 过滤器与其连接的上下游过滤器相互独立,即不知道,更不能假定,分别与其输入和输出相连接的其他过滤器的信息。它们的规格说明中只能涉及限制哪些数据可以出现在它的输入管道中和保证它将输出何种类型的计算结果,但它们不能识别在与它们相连的管道的另一边究竟是谁。如图5.1所示。,种类本类型的规格说明都包括管线、受约束的管道和有名管道三类。管线限制过滤器的拓扑结构只能是线性序列。受约束的管道限制在其上流通的数据量。有名管道要求在两个过滤器之间流通的数据经过严格地定义。,5.3 软件体系结构风格,优点它允许设计者将一个系统的整体输入/输出行为理解为各
11、个独立过滤器行为的一个简单的合成。该体系结构支持重用。维护系统和增强功能容易。缺点容易导致批处理方式。在维护或者响应两个分离但相关的数据流时容易受阻。增加了分析与编码的工作量,增加了复杂性,降低了性能。,UNIX的command shell是这种结构,2数据抽象和面向对象组织(Data Abstraction and Object- Oriented Organization),(1)基本结构与词汇表在该结构中,数据表示和与之相连的最基本操作都被封装在一个抽象数据类型或者对象中。词汇表是构件=对象;连接器=方法调用(2)特征其特征包括两个方面是:对象负责维持其本身的完整性;信息隐藏。,(3)优
12、点封装性。信息隐藏。抽象性。类特性。继承性等。(4)缺点由于对象之间的交互是通过明确的对象函数调用进行的,所以当一个对象需要实现一个特定功能的时候,必须知道哪一个对象提供这种服务,这就降低了系统的灵活性。管道和过滤器模型不需要明确指明数据的来源和去向。,3基于事件的隐式调用(Event-based Implicit Invocation)(1)基本结构与词汇表 该结构中的模块既提供一组过程,也提供一组事件。系统由可以发布事件的构件组成,另一些构件为注册接收这些发布的事件,这些构件将自己的过程同一事件相关。词汇表是构件=模块;连接器=事件与过程隐式调用(2)特征软件体系结构中的构件可以声明或者广
13、播一个或者多个事件,而不是直接调用过程。系统中的其它成分可以通过将一个过程连接到一个事件来表达自己对该事件的兴趣。当该事件激发时会隐含地调用其它模块。,(3)优点支持软件复用。容易使系统升级。(4)缺点软件构件放弃了对计算的控制,而完全由系统完成。此外,在数据传输上关系复杂,系统总体功能和性能与资源管理成为一个关键性问题。,4分层系统(Layers),(1)基本结构与词汇表 该结构采用层次化的组织方法,每一层向其上层提供服务,并利用下层服务。下层信息可以被全部隐藏起来,只有外部层次和一部分精心选择的功能可以被外部所见。词汇表是构件=虚拟机;连接器=层次间协议,内核,基本工具,有用的系统,用户,
14、软部件:实现在层次结构中的虚拟机,连接件:层次与层次之间交互的协议,层次化组织原则:每一层向其上层提供服务,并利用下层的服务。,5.3 软件体系结构风格,(2)特征层次结构虚拟机与层次间的协议。 (3)优点首先支持抽象程度递增的系统设计,使得设计者可以把一个复杂系统按递增的步骤分解开来。其次,功能的改变只会影响相邻的上下层。最后,这种结构可以支持重用。(4)缺点层次划分不容易,很难找到一个合适的正确的层次抽象方法。,5仓库系统及知识库(Repositories),(1)基本结构与词汇表 在该结构中,有两种不同的软件构件:一种表示当前状态的中心数据结构,另一种是一组相互独立的处理中心数据的构件。
15、不同的仓库系统与外部构件有不同的交互方式。控制方式的选择决定了仓库系统的类型。仓库系统可以分为两类:数据库和黑板系统(Blackboard)。黑板系统有知识源、黑板数据结构和控制三个部分组成。词汇表是构件=中心数据仓库和在仓库上操作的独立构件的集合;连接器=通知路径,软件部件,表示当前状态的中心数据结构一组相互独立的处理中心数据的部件,部件交互方式,根据输入数据流的事务处理类型决定执行哪个处理过程,根据中心数据结构的当前状态触发进行执行,传统的数据库系统,黑板系统,黑板(共享数据),知识源,知识源,知识源,知识源,直接存取:知识源不断改变黑板的状态。,按照与应用程序相关的层次组织的问题求解数据
16、,独立、分离的与应用程序相关的知识及其处理单元,黑板状态驱动控制:使用特定的知识。,5.3 软件体系结构风格,(2)特征存在一个共享中心数据区,为相关软件提供数据访问和存储服务。,6过程控制,(1)词汇表控制连续过程的软件体系结构要建立在过程控制模上,在该模型上:(1)计算元素是从控制策略中分离出来的令人感兴趣的过程。这些内容涉及:过程定义,即包括操纵某些过程变量的机构;控制算法,即决定如何操纵过程变量,涉及过程变量怎样反映真实状态的模型;过程变量包括输入变量、控制变量和操纵变量及其相关知识;设置点或控制变量的参考值;传感器;(2)控制循环模式是建立控制算法使用的关系。该模式收集有关过程的实际
17、状态和要求达到这些状态的信息,调节过程变量以驱动实际状态向要求达到的状态前进。词汇表过程单元|控制单元。过程单元于控制单元之间的交互主要有两个:控制单元子进程单元提供连续指令,以改变操纵变量。,5.3 软件体系结构风格,(2)基本结构过程控制的基本结构是一种特定的数据流体系结构,与一般数据流体系结构是线性形式的形式不同,控制循环体系结构是一个带有环形反馈的数据流体系结构,其模式如图5.6所示:,7软件体系结构风格的实例研究,例1. 公共对象请求代理体系结构(CORBA)是由对象管理组织OMG制定的一个工业标准,其主要目标是提供一种机制使得对象可以透明地发出请求和获得应答,从而建立起一个异质的分
18、布式应用环境。下面对CORBA结构风格的分析。,设计词汇表设计词汇表=构件=客户机系统/服务器系统/其它构件;连接件=请求/服务。其中客户机系统包括客户机应用程序、客户桩、上下文对象和接口仓库等构件,以及桩类型激发API和动态激发API等连接件。服务器系统包括服务器应用程序方法库,服务器框架和ORB等构件,以及对象适配器等连接器。CORBA 的体系结构模式(如图5.7所示),(3)基本计算模型特点在此体系结构中,客户机应用程序用桩类型激发API或者动态激发API向服务器发送请求。在服务器端接受方法调用请求,不进行参数引导,设置需要的上下文状态,激发服务器框架中的方法调度器,引导输出参数,并完成
19、激发。服务器应用程序使用服务器端的服务部分,它包含了某个对象的一个或者多个实现,用于满足客户机对指定对象上的某个操作的请求。,(4)不变性很明显,客户机系统是独立于服务器系统,同理服务器系统也独立于客户机系统。(5)使用例子各种基于CORBA的应用系统,如基于CORBA的人力资源管理系统等。(6)优缺点优点:支持异构环境中的应用软件开发;支持分布对象和分布处理;因为具备了标准,故相对稳定,可支持软件重用;高度支持C/S互操作性。缺点:未能真正解决分布计算中固有的复杂性,具体为:存在迟滞和死锁问题;缺乏实时特性;缺乏性能优化;缺乏保护机制;缺乏支持大量数据传送的机制。,5.3 软件体系结构风格,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 软件体系结构设计ppt课件 软件 体系结构 设计 ppt 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-1428989.html