第5章-软件体系结构设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

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

1 / 104
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功