1、软件体系结构风格(一)软件体系结构风格(一)从从“建筑风格建筑风格”谈谈起起建筑风格等同于建筑体系结构的一种可分类的模式,通过诸如外形、技术和材料等 形态上的特征加以区分。法式建筑风格中式园林建筑风格现代高层建筑风格软件体系结构风软件体系结构风格格大部分的软件设计是例行设计,即有经验的软件开发人员经常会借鉴现有的 解决方案,将其改造成新的设计。软件体系结构风软件体系结构风格格软件体系结构风格(ArchitecturalStyles)是描述特定系统组织方式的惯用 范例,强调了软件系统中通用的组织结构。构件构件构件构件构件连接件常见的体系结构风常见的体系结构风格格进程通信(Communicatin
2、g processes)事件系统(Event systems)独立构件Independent components管道-过滤器Pipes and filters批处理Batch sequential黑板Blackboard仓库Repository隐式调用(Implicit invocation)显式调用(Explicit invocation)数据流(Data Flow)以数据为中心(Data-centered)基于规则的系统Rule-based system解释器Interpreter虚拟机(Virtual Machine)调用/返回(Call/return)层次结构Layered主程序-子
3、程序Main program and subroutine面向对象Object-oriented主程序主程序-子程序子程序主程序-子程序风格是结构化程序设计的一种典型风格,从功能的观点设计 系统,通过逐步分解和细化,形成整个系统的体系结构。主程序子程序 1子程序 2子程序 N构件:主程序、子程序 连接器:调用-返回机制 拓扑结构:层次化结构面向对象风格面向对象风格系统被看作是对象的集合,每个对象都有一个它自己的功能集合;数据及作用在数据上的操作被封装成抽象数据类型;只通过接口与外界交互,内部的设计决策则被封装起来。构件:类和对象连接器:对象之间通过函数调用和消息传递实现交互管道管道-过滤器风格
4、过滤器风格管道-过滤器风格把系统任务分成若干连续的处理步骤,这些步骤由通过系统 的数据流连接,一个步骤的输出是下一个步骤的输入。Filters(过滤器)Pipes(管道)数据源数据汇点管道管道-过滤器风格过滤器风格AVI文件音频解码器分离器视频解码器显示器声卡管道-过滤器风格把系统任务分成若干连续的处理步骤,这些步骤由通过系统 的数据流连接,一个步骤的输出是下一个步骤的输入。举例:媒体播放器管道管道-过滤器风格过滤器风格管道-过滤器风格把系统任务分成若干连续的处理步骤,这些步骤由通过系统 的数据流连接,一个步骤的输出是下一个步骤的输入。Filters(过滤器)Pipes(管道)数据源数据汇点以
5、数据为中心的风以数据为中心的风格格举例:剪贴板是一个用来进行短时间的数据存储,并在文档/应用之间进行 数据传递和交换的软件程序。以数据为中心的风以数据为中心的风格格举例:剪贴板是一个用来进行短时间的数据存储,并在文档/应用之间进行 数据传递和交换的软件程序。应用1复制应用2读取读取应用N复制复制读取当前数据1 当前数据k剪贴板以数据为中心的风以数据为中心的风格格仓库体系结构(Repository Architecture)是一种以数据为中心的体系结构,适合于数据由一个模块产生而由其他模块使用的情形。数据存储功能模块功能模块功能模块功能模块功能模块功能模块示例示例1:程序设计语言编译:程序设计语言编译器器语法分析器词法分析器编译器语义分析器优化器代码生成器仓库语法分析树符号表源代码调试器语法编辑器示例示例2:基于数据库的系统结:基于数据库的系统结构构DBApplicationDB1Application1DB2DB3Application2Application3