软件体系结构.ppt
《软件体系结构.ppt》由会员分享,可在线阅读,更多相关《软件体系结构.ppt(74页珍藏版)》请在三一文库上搜索。
1、1,软件体系结构,1 软件体系结构的概念 2 软件体系结构的设计 3 特定领域的体系结构 4 分布式软件体系结构,2,1.1 软件体系结构的定义 一个程序或计算机系统的软件体系结构包括一个或一组软件构件、软件构件的外部可见特性及其相互关系。 软件构件的外部可见特性是指软件构件提供的服务、性能、特性、错误处理、共享资源使用等。 软件体系结构的基本单位是软件构件,软件构件是一个软件体系结构的核心。,1 软件体系结构的概念,3,软件构件可以是子系统,也可以是模块。在它们之间没有清晰的界限,但可以依据下列两点加以区分: 一个子系统独立构成系统,不依赖其他子系统提供的服务。子系统由模块或更小的子系统构成
2、。子系统之间的交互通过它们的接口。 一个模块通常是一个能提供一个或多个服务的系统构件,它能够利用其他模块提供的服务,一般不被看成一个独立的系统,模块可以由更简单的模块组成。,4,概念结构:从主要设计元素(构件)及其相互关联、设计原则和性能角度考虑的结构。 模块结构:根据功能分解建立模块的层次结构包括模块接口、模块管理、模块控制和一致性等问题。 代码结构:描述源程序,二进制程序,库文件。在开发环境下的组织包括系统资源配置管理,系统构造和对象嵌入机制 OEM 等。 执行结构:描述系统的动态结构包括性能、调度、动态配置和不同系统间的接口等。,1.2 软件体系结构的不同形式,5,1.3 在软件构件设计
3、中应保持的性质,计算功能:描述构件所实现的整体功能。 结构特性:描述特定构件定义、构件打包的方式和相互交互的方式,构件如何组织以构成整个系统。 附属功能:描述构件的执行效率、处理能力、环境假设、全局特性等,包括时间要求、空间要求、精确度、安全性、保密性、带宽、吞吐率、最低硬软件要求等。 家族特性:描述相同和相关构件之间的关系。,6,纯计算构件: 具有简单输入输出关系,没有运行状态变化如数值计算、过滤器、转换器等。 存储构件: 存放共享的、永久性的、结构化的数据。如数据库、文件、符号表、超文本等。 管理构件: 执行操作与运行状态紧密相关。如抽象数据类型、面向对象系统中的对象、服务器等。,1.4
4、软件构件分类,7,控制构件: 管理其它构件运行的时间、时机及次序。例如,调度器、同步器等。 链接构件: 在实体之间传递信息。例如,通信机制、用户界面等。 过程调用: 在某一特定执行路径中传递执行指针。如普通过程调用、远程过程调用。 数据流: 相互独立的处理通过数据流进行交互,在得到数据的同时被赋予控制权限。如 UNIX 系统中的管道。,1.5 构件之间的连接方式,8,间接激活: 处理因事件的发生而激活,在处理间没有直接交互。例如,事件驱动系统、自动垃圾回收等。 消息传递: 相互独立的处理间有明确交互,通过显式数据传递。传递可以是同步的,也可以是异步的。如TCP/IP 。 共享数据: 构件通过同
5、一数据空间进行并发操作。如多用户数据库, 数据黑板。,9,2 软件体系结构的设计,软件体系结构的设计过程是为系统建立一个基本架构。它包括识别系统的主要构件和这些构件之间的通信。 设计过程的主要活动 系统构造:将系统分解为一系列基本的子系统,每一子系统是独立的软件成分。 控制建模:建立系统各部分之间的控制关系的一般模型。 模块分解:将子系统进一步分解为模块。,10,2.1 系统构造 (System Structuring),体系结构设计的第一步是将系统分解为一系列相互作用的子系统。 在最抽象层次,系统可视为一个方框图,图中每个方框表示一个子系统。 每个方框内的方框表明子系统本身还可分解为子系统。
6、 箭头表示一个子系统向另一子系统传送数据或控制。 下图是一个组装机器人的系统构造。,11,组装机器人控制系统的方框图,12,体系结构方框图表示一个系统结构的概貌,软件工程师很容易理解它。 这种方框图的缺点是没有反映系统构件之间关系的本质,没有表明系统的外部特性。 根据各子系统如何共享数据、如何分布、如何相互交互,可开发更加特定的模型。 数据仓库模型 客户机/ 服务器模型 抽象机模型,13,1) 数据仓库模型 (repository model),所有共享数据都存放于数据库中, 这些数据可为所有子系统存取。 每个子系统保有各自的数据库,通过传送消息,可在子系统之间交换数据。 大量的数据围绕一个共
7、享数据库或数据仓库来组织。 这种系统主要适用于控制系统,信息管理系统,CAD系统,CASE工具集。,14,集成的CASE工具集的体系结构 以数据仓库为核心,15,这种体系结构包括数据库、超文本系统及数据黑板系统等。它包含两种成分:一是共享的结构化数据;二是所有访问这些数据的操作。 如果是因为输入数据而引起对共享数据的操作,那么这种控制策略下的体系结构就叫做数据库。 如果是由共享数据的当前状态触发相应的处理,那么这种体系结构就叫做数据黑板。为此,需要存储特定知识。,16,数据仓库模型可共享大量数据,在子系统之间无须进行数据转换。 子系统的数据模型必须与数据仓库的数据模型保持一致。如果一个新子系统
8、的数据模型与数据仓库的数据模型冲突,很难将它集成到系统中来。 不同的子系统对保密性、恢复和备份有不同的要求,而数据仓库模型将迫使所有子系统采用相同的策略。,17,2) 客户机/服务器模型 (client/server model),这是一种分布式系统模型, 表明各种数据和处理如何分布到各个处理器上。 有一组功能各自独立的服务器,为其他子系统提供服务,如打印服务器,文件服务器,编译服务器等。 有一组客户机, 它们调用服务器提供的服务,也可能存在一些客户机,可并发执行的客户机程序。 有一个网络, 使得客户机能够访问服务器。,18,film & picture library系统的体系结构,19,在
9、多用户超文本系统中存在若干服务器,它们管理和显示不同媒体的数据。 Vidio服务器要求高传输率和同步,但对分辨率要求相对较低。 Picture要求高分辨率。 Catalogue要求能处理大量查询并提供对超文本信息系统的链接。 客户机程序较为简单,是对以上服务器的集成化的用户界面。,20,客户机 / 服务器方法可用来实现基于数据仓库的系统,由数据仓库作为服务器提供系统服务。 各子系统作为客户访问数据仓库,但各子系统还有自己的数据管理功能。 服务器与客户间交换数据以执行处理。 对于大量的数据交换,可通过高速网络来解决性能问题。 客户机 / 服务器系统多用于具有多个分布式处理器的网络系统。,21,它
10、易于 增加一个新的服务器并将其与系统的其他集成在一起。 系统中服务器的升级对用户是透明的,且不影响系统的其他部分。,22,3) 抽象机模型 (abstract machine model),一个体系结构的抽象机模型也称为层次模型。 此模型可以建立各个子系统的接口,它把系统组织成一系列的层次,每一层次提供一组服务,定义一个抽象机。 每一个抽象机由其下一层的抽象机的代码构成。 例如,网络协议的参考模型 OSI 即为典型的层次模型,而TCP/IP 通信协议则为四层的层次模型。,23,TCP/IP 通信的层次模型,24,版本管理系统的例子,版本管理系统用于管理对象的版本。 为支持配置管理,它使用一个对
11、象管理系统来操作对象的信息存储和服务。 对象管理系统又使用数据库系统操作基本数据存储和服务,如事务管理、滚回、恢复和控制存取。 数据库管理系统在其实现时又使用操作系统工具和文件堆。,25,26,抽象机模型支持系统抽象程度递增的系统开发,具有可变更性和可移植性。 当一个层次开发出来后,就可以为其上层提供有效的某些服务。 如果接口是预定义的,则一个层次可为另一个层次所替换。 若一个层次的接口发生变更,仅相邻层次受到影响。 层次系统将机器依赖性局部化到它的内部层次上。,27,基于复用的层次式体系结构,层次式结构中,每一层向其上层提供服务,并利用下层的服务。 在层次系统中,内部层次全部被隐藏起来,只有
12、外部层次或某些功能可以为外部可见。 层次之间交互的通信协议构成层次间的连接;对层次之间交互的限制构成其拓扑约束。,28,常见的层次结构,29,四层式软件体系结构,30,最高层是应用系统层,此层包含多个应用系统;应用系统可以通过其接口与其他系统操作,还可以通过低层软件提供的服务或对象 (如操作系统、特定业务服务) 间接地与其他系统交互操作。 次高层是“特定业务”层,此层应当包括专门针对不同业务类型的一系列构件库系统。这样的构件库系统向用户提供可复用的使用事例和对象构件,用于开发应用系统。 特定业务层的软件建立在中间件之上。,31,中间件层位于次高层下面,它为次高层的各个构件库系统提供实用软件类,
13、以及不依赖于平台的服务。 最低层是系统软件层,此层包括计算机和网络等基础设施软件,如操作系统、专用的硬件接口软件等。 为了确保分层式系统可管理,规定在一个系统内,不能从低层复用高层的构件。,32,2.2 控制模型 (Control model),系统构造模型涉及到一个系统如何分解为子系统作为一个整体,必须对各子系统加以控制,使得它们的服务能够在正确的时刻被导向到正确的地方。 系统构造模型没有涉及,也不应涉及控制信息,必须按照控制模型组织各子系统,并满足系统构造模型的要求。 在体系结构层次上的控制模型应考虑子系统之间的控制流。,33,1) 集中控制模型 (centralised control
14、model),在集中控制模型中,将一个子系统设计为系统控制器,其职责是管理其他子系统的执行。 集中控制模型分为两类: 控制子系统顺序执行 控制子系统并发执行 作为集中控制器的子系统在将控制转交给另一子系统后,该子系统完成它的功能后控制权还要归还给集中控制器子系统。,34,(1)调用-返回模型 (Call-Return model),此即熟悉的自顶向下的子程序模型。 控制始于子程序层次的顶部,通过子程序调用,从层次结构较高层的程序向较低层的程序传递控制信息。程序执行结束将向较高层的父程序返回。 这种程序模型仅应用于顺序系统。 该模型可以在模块层使用,以控制函数或对象。,35,控制的Call-Re
15、turn模型,36,在调用- 返回系统结构中, 每一层都只与上下相邻的两层通信,每一层在利用下层基础服务的条件下,为上层提供服务。 这种结构的优点是:提供逐步抽象的编程支持,支持复用及系统升级缺点是:不是所有的系统都适合于建成层次结构,不能提供最佳性能。,37,(2) 管理器模型 (manager model),这种模型应用于并发系统。 模型中有一个系统构件被设计为系统管理器,它控制开始、终止,并协调其他系统进程。 一个进程可以是子系统,也可以是模块,它可以与其他进程并行执行。 这种模型也可应用于顺序系统。管理例程根据某些状态变量的值调用特定的子系统。,38,一个实时系统的集中控制模型,39,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 体系结构
链接地址:https://www.31doc.com/p-2601961.html