软件工程讲义04

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

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

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

资源描述

1第四章软件体系结构授课老师:清华大学计算机系殷人昆yinrk432@sina.compasswordqhdxjsjx2软件体系结构的定义一个程序或计算机系统的软件体系结构,包括一个或一组软件构件、软件构件的外部可见特性及其相互关系。软件构件的外部可见特性是指软件构件提供的服务、性能、特性、错误处理、共享资源使用等。软件体系结构的基本单位是软件构件,软件构件是一个软件体系结构的核心。31)概念结构:从主要设计元素(构件)及其相互关联、设计原则和性能角度考虑的结构。2)模块结构:根据功能分解建立模块的层次结构,包括模块接口、模块管理、模块控制和一致性等问题。3)代码结构:描述源程序,二进制程序,库文件在开发环境下的组织,包括系统资源配置管理,系统构造和对象嵌入机制OEM等。4)执行结构:描述系统的动态结构包括性能、调度、动态配置和不同系统间的接口等。4软件体系结构的设计过程是为系统建立一个基本架构。它包括识别系统的主要构件和这些构件之间的通信。设计过程的主要活动1)系统构造:将系统分解为一系列基本的子系统,每一子系统是独立的软件成分。2)控制建模:建立系统各部分之间的控制关系的一般模型。3)模块分解:将子系统进一步分解为模块。51、系统构造(SystemStructuring)体系结构设计的第一步是将系统分解为一系列相互作用的子系统。在最抽象层次,系统可视为一个方框图,图中每个方框表示一个子系统。每个方框内的方框表明子系统本身还可分解为子系统。箭头表示一个子系统向另一子系统传送数据或控制。6组装机器人控制系统的方框图视觉系统对象识别系统手臂控制器机械爪控制器组装选择系统组装系统传送带控制器7体系结构方框图表示一个系统结构的概貌,软件工程师很容易理解它。这种方框图的缺点是没有反映系统构件之间关系的本质,没有表明系统的外部特性。根据各子系统如何共享数据、如何分布、如何相互交互,可开发更加特定的模型。1)数据仓库模型2)客户机/服务器模型3)抽象机模型81)数据仓库模型(repositorymodel)所有共享数据都存放于数据库中,这些数据可为所有子系统存取。每个子系统保有各自的数据库,通过传送消息,可在子系统之间交换数据。大量的数据围绕一个共享数据库或数据仓库来组织。这种系统主要适用于控制系统,信息管理系统,CAD系统,CASE工具集。9集成的CASE工具集的体系结构以数据仓库为核心设计分析器报告生成器项目数据仓库设计编辑器代码生成器设计翻译器程序编辑器102)客户机/服务器模型(client/servermodel)这是一种分布式系统模型,表明各种数据和处理如何分布到各个处理器上。有一组功能各自独立的服务器,为其他子系统提供服务,如打印服务器,文件服务器,编译服务器等。有一组客户机,它们调用服务器提供的服务,也可能存在一些客户机,可并发执行的客户机程序。有一个网络,使得客户机能够访问服务器。11film&picturelibrary系统的体系结构CatalogueserverVodioserverPictureserverHypertextserverCatalogueFilmclipfilesHypertextwebWide-bandwidthnetworkClient1Client2Client3Client4Digitisedphotographs12客户机/服务器方法可用来实现基于数据仓库的系统,由数据仓库作为服务器提供系统服务。各子系统作为客户访问数据仓库,但各子系统还有自己的数据管理功能。服务器与客户间交换数据以执行处理。对于大量的数据交换,可通过高速网络来解决性能问题。客户机/服务器系统多用于具有多个分布式处理器的网络系统。133)抽象机模型(abstractmachinemodel)一个体系结构的抽象机模型也称为层次模型。此模型可以建立各个子系统的接口,它把系统组织成一系列的层次,每一层次提供一组服务,定义一个抽象机。每一个抽象机由其下一层的抽象机的代码构成。例如,网络协议的参考模型OSI即为典型的层次模型,而TCP/IP通信协议则为四层的层次模型。14以太网IPTCPFTP以太网IPTCPFTPFTP协议TCP协议IP协议以太网协议物理连接应用层传输层TCP/IP通信的层次模型15抽象机模型支持系统抽象程度递增的系统开发,具有可变更性和可移植性。当一个层次开发出来后,就可以为其上层提供有效的某些服务。如果接口是预定义的,则一个层次可为另一个层次所替换。若一个层次的接口发生变更,仅相邻层次受到影响。层次系统将机器依赖性局部化到它的内部层次上。16基于复用的层次式体系结构层次式结构中,每一层向其上层提供服务,并利用下层的服务。在层次系统中,内部层次全部被隐藏起来,只有外部层次或某些功能可以为外部可见。层次之间交互的通信协议构成层次间的连接;对层次之间交互的限制构成其拓扑约束。17用户应用系统基本工具内核过程调用不同元素组合常见的层次结构18四层式软件体系结构应用软件层特定业务层中间件层系统软件层各个应用的各种变型各个应用系统各个构件库系统(针对特定论域、特定业务)不依赖平台的低层构件等特定的平台软件:操作系统等192、控制模型(Controlmodel)在体系结构层次上的控制模型进一步考虑子系统之间的控制流。1)集中控制模型2)事件驱动模型201)集中控制模型(centralisedcontrolmodel)在集中控制模型中,将一个子系统设计为系统控制器,其职责是管理其他子系统的执行。集中控制模型可以:控制子系统顺序执行控制子系统并发执行作为集中控制器的子系统在将控制转交给另一子系统后,该子系统完成它的功能后控制权还要归还给集中控制器子系统。21调用-返回模型(Call-Returnmodel)此即熟悉的自顶向下的子程序模型。控制始于子程序层次的顶部,通过子程序调用,从层次结构较高层的程序向较低层的程序传递控制信息。程序执行结束将向较高层的父程序返回。这种程序模型仅应用于顺序系统。该模型可以在模块层使用,以控制函数或对象。22控制的Call-Return模型Routine1.1Routine1.2Routine3.1Routine3.2Routine1Routine2Routine3MainProgram23管理器模型(managermodel)这种模型应用于并发系统。模型中有一个系统构件被设计为系统管理器,它控制开始、终止,并协调其他系统进程。一个进程可以是子系统,也可以是模块,它可以与其他进程并行执行。这种模型也可应用于顺序系统。管理例程根据某些状态变量的值调用特定的子系统。24一个实时系统的集中控制模型SensorprocessesActuatorprocessesComputationprocessesUserInterfaceFaultHandlerSystemcontroller252)事件驱动系统(Event-drivensystem)集中控制模型通过一些系统状态变量值决定控制的流向;事件驱动模型则是通过外部生成的事件来驱动系统。广播模型中断驱动模型26广播模型(Broadcastmodel)在这种模型中,一个事件向所有的子系统广播,由能够处理此事件的子系统响应它。这种模型的控制策略不嵌入在事件和消息处理器内。子系统决定它需要哪些事件,而事件和消息处理器负责将事件发送给它们。在广播模型中,子系统注册有关特定事件的信息。一旦事件发生,控制将转移到能够处理该事件的子系统。27对于在网络中跨越不同计算机分布的集成子系统,广播模型十分有效。实时系统一定是事件驱动的,它要求快速处理外部生成的事件。事件处理器通常还支持点对点通信。事件和消息处理器子系统1子系统2子系统3子系统428中断驱动模型(Interrupt-drivenmodel)这种模型专用于实时处理系统。系统中只有有限的几种中断类型。每一中断都与中断向量中的一个存储位置相关联,该位置中存储了相应中断处理器的入口地址。当系统接收到一个特定类型的中断时,硬件开关立即将控制以间址方式转移到相应的中断处理器,进行相应的中断处理。中断处理器对事件的响应将是启动或停止其他某一进程。29InterruptsProcess1Handler1Process2Handler2Process3Handler3Process4Handler4Interruptvector303、模块分解(Modulardecomposition)在设计出一个结构性体系结构后,下一步就是将子系统分解为模块。在系统分解和模块分解之间没有严格的区别。将子系统分解为模块时用到两种模型:对象模型数据流模型如有可能,应避免并发设计,因为顺序设计在设计、编码、验证和测试都比较容易。31对象模型(Objectmodel)在对象模型中,将系统分解为一组对象。对象具有松散耦合和仔细定义的界面,对象的状态是私有的,对象的操作是基于其状态定义的。对象具有诸如封装、隐蔽、继承等良好的特性。对象必须自己维护其数据的一致性。对象是系统的构件。因此对象分解的焦点在于对象类、对象属性及对象操作。实现时,对象就是从这些类中产生。32数据流模型(Data-flowmodel)在数据流模型中,将系统分解为一系列功能模块。这种结构包括批处理和管道及过滤器。在体系结构中的每一个成份都有一套输入和输出数据,都依输入-变换-输出的方式工作。进行数据变换的构件叫做过滤器。把数据从一个过滤器的输出导入到另一个过滤器的输入,就叫做管道。33特定领域的体系结构对于一个特殊的应用领域,还可使用特定于它的体系结构模型,在开发新的系统时可以复用其公共体系结构。这种体系结构模型即为特定领域的体系结构。存在两种特定领域的体系结构模型:1.类属模型(Genericmodel)2.参考模型(Referencemodel)341)类属模型类属模型是从许多实际系统中抽象出来的模型,它封装了这些系统的主要特征。例如,在实时系统中,对于不同类型的系统,如数据采集系统、监控系统等,有它们各自的类属模型。又例如,在语言的编译器中包括有词法分析器、语法分析器、语义分析器、代码生成器等,还有在编译过程中建立的符号表、语法树等。35编译器的数据流模型编译器用数据流体系结构实现,处理流程按词法分析语法分析语义分析代码生成的顺序执行,但处理共享数据时,使用了当作数据仓库用的符号表。符号表词法分析语法分析语义分析代码生成36编译器还可以使用基于数据仓库的模型来组织类属系统的构件。在这种模型中,符号表、语法树等起到中央信息仓库的作用,各种工具或工具件的通信都经过它。此外,有关程序的语法定义、输出格式定义等都从工具中取出,归入到数据仓库中。37语言处理系统的数据仓库模型语法树词法分析器语法分析器语义分析器字体打印机编辑器优化器代码生成器语法定义符号表符号表数据仓库382)参考模型一般的软件体系结构模型反映的是已有系统的体系结构,而参考模型反映了一大类系统的体系结构。参考模型源于对应用领域的研究,它描述了一个理想化的包含了系统应具有的所有特征的软件体系结构。典型的例子是OSI参考模型。它描述了开放系统互连的标准。如果一个系统遵从这个标准,就可以与其他遵从该标准的系统互连。39OSI参考模型的体系结构应用层表示层对话层传输层网络层数据链路层物理层网络层数据链路层物理层应用层表示层对话层传输层网络层数据链路层物理层通信介质40分布式系统体系结构所有大型计算机系统现在都是分布式系统。分布式系统的信息处理分布在多个计算机上,而不是只限于单个计算机上。在分布式系统中,系统软件运行于用网络相连的一组松散地集成在一起的处理器上。例如,银行的ATM系统、预定系统、群件(Groupware)系统等。411、分布式系统的主要特征资源共享共享使用硬件、软件资源。开放性兼容不同厂家的硬件和软件的产品。并发

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

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

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

×
保存成功