软件体系结构的模型有下列几种: 结构模型:是构件、连接件(定义构件之间交互 规则、消息协议的构造模块)有组织的集合。反映系 统的重要语义内容,包括系统的配置、约束等。 框架模型:与结构模型类似,不侧重细节,侧重 于系统的整体结构(模式) 动态模型:补充模型,强调系统的行为性质。 过程模型:注重系统系统必须适应业务和技术的 过程。 功能模型:一组功能构件按层次组成,下层向上 层提供服务,是一种特殊的框架模型。 西安交通大学刘海岩
西安交通大学 刘海岩 6 软件体系结构的模型有下列几种: • 结构模型:是构件、连接件(定义构件之间交互 规则、消息协议的构造模块)有组织的集合。反映系 统的重要语义内容,包括系统的配置、约束等。 • 框架模型:与结构模型类似,不侧重细节,侧重 于系 统的整体结构(模式)。 • 动态模型:补充模型,强调系统的行为性质。 • 过程模型:注重系统系统必须适应业务和技术的 过程。 • 功能模型:一组功能构件按层次组成,下层向上 层提供服务,是一种特殊的框架模型
这些模型可用语言(ADL)描述,也可用图形(UML) 描述。 Bass等人对软件体系结构的定义强调了软件构件的角 色。构件( component):具有明确功能并可以分离出来的软 件或硬件。在体系结构设计的语境内,一个软件构件可以 是简单的程序模块,如:源程序文件、可执行文件,也可 以扩展到包括数据库以及网络配置中的“中间件”。构件 间的关系可以简单地从一个模块到另一个模块的过程调用, 也可以是复杂的数据库访问协议。 西安交通大学刘海岩
西安交通大学 刘海岩 7 这些模型可用语言(ADL)描述,也可用图形(UML) 描述。 Bass等人对软件体系结构的定义强调了软件构件 的角 色。构件(component): 具有明确功能并可以分离出来的软 件或硬件。在体系结构设计的语境内,一个软件构件可以 是简单的程序模块,如:源程序文件、可执行文件,也可 以扩展到包括数据库以及网络配置中的“中间件”。构件 间的关系可以简单地从一个模块到另一个模块的过程调用, 也可以是复杂的数据库访问协议
2、体系结构的风格 体系结构风格也是构造的一种模式( Pattern),类似于 建筑行业中的建筑风格,是描述某一特定应用域中系统组 织方式的惯用模式,反映了领域中众多系统所共有的结构 和语义特性。 研究体系结构风格的意义: 有利于发现不同系统在较高级别上的共同特性 对体系结构的了解,使得在设计软件结构时选择合适 的模式,进行正确地设计。 使用常用的、规范的模式来组织结构,使别的设计者 易于理解、便于交流。 有利于较高级别上的软件复用。判断能否在不同的软 件系统中使用同一体系结构。 Garlan和Shaw(1996)对体系结构的分类如下 西安交通大学刘海岩
西安交通大学 刘海岩 8 2、体系结构的风格 体系结构风格也是构造的一种模式(Pattern),类似于 建筑行业中的建筑风格,是描述某一特定应用域中系统组 织方式的惯用模式,反映了领域中众多系统所共有的结构 和语义特性。 研究体系结构风格的意义: • 有利于发现不同系统在较高级别上的共同特性。 • 对体系结构的了解,使得在设计软件结构时选择合适 的模式,进行正确地设计。 • 使用常用的、规范的模式来组织结构,使别的设计者 易于理解、便于交流。 • 有利于较高级别上的软件复用。判断能否在不同的软 件系统中使用同一体系结构。 Garlan和Shaw(1996)对体系结构的分类如下:
数据流风格:批处理序列;管道/过滤器 调用/返回风格:主程序/子程序;面向对象风格;层次 结构 仓库风格:数据库系统;超文本系统;黑板系统 虚拟机风格:解释器 独立构件风格:进程通信;基于事件系统 介绍几种主要的体系结构风格: (1)仓库风格 基于一个共享数据库的系统模型。(见下图) 西安交通大学刘海岩
西安交通大学 刘海岩 9 • 数据流风格:批处理序列;管道/过滤器 • 调用/返回风格:主程序/子程序;面向对象风格;层次 结构 • 仓库风格:数据库系统;超文本系统;黑板系统 • 虚拟机风格:解释器 • 独立构件风格:进程通信;基于事件系统 介绍几种主要的体系结构风格: (1)仓库风格 基于一个共享数据库的系统模型。(见下图)
客户软件 客户软件 客户软件 中心数据存储 客户软件 (仓库或黑板) 客户软件 客户软件 数据为中心的体系结构 仓库系统中有两类构件:中心数据存储构件及对 心数据进行各种操作的一组构件集。中心数据存储与外 部构件集之间的信息交互是该模式的至关重要的问题, 系统承担的功能不同,信息交互的方式也不同 西安交通大学刘海岩 10
西安交通大学 刘海岩 10 数据为中心的体系结构 仓库系统中有两类构件:中心数据存储构件及对中 心数据进行各种操作的一组构件集。中心数据存储与外 部构件集之间的信息交互是该模式的至关重要的问题, 系统承担的功能不同,信息交互的方式也不同