文档详情

软件体系结构风格(上).ppt

发布:2025-04-16约4.01千字共40页下载文档
文本预览下载声明

软件体系结构风格;;使用软件体系结构风格的优点:

促进设计重用;

带来巨大的代码重用;

使系统更易于被他人理解;

使用标准化的风格有利于系统的互操作性;

便于利用特有的体系结分析方法;

提供特定风格的可视化。;在体系结构层次上,常出现客户机-效劳器系统、管道过滤器设计或者分层体系结构等软件风格术语,这些术语一般与特定的设计方法和符号相关,如面向对象和数据流等,虽然还没有对体系结构惯用模式实现分类,但是这种分类的轮廓已开始出现,如下局部主要种类:;软件体系结构风格是反复出现的组织模式和习惯用法,是对一系列体系结构设计的抽象;

软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束;

词汇表包括一些构件和连接件,约束指出系统如何将这些构件和连接件组合起来;;讨论体系结构风格时要答复的问题:

设计词汇表是什么?

构件和连接件的类型是什么?

可容许的结构模式是什么?

根本的计算模型是什么?

风格的根本不变性是什么?

其使用的常见例子是什么?

其优缺点是什么?

体系结构风格最关键的四个要素:提供一个词汇表、定义一套配置规那么、定义一套语义解释原那么和定义对基于这种风格的系统所进行的分析。

分析7种通用的风格;Garlan和Shaw对通用体系结构风格的分类:

〔1〕数据流风格:批处理序列、管道/过滤器

〔2〕调用/返回风格:主程序/子程序、面向对象系统、多级分层

〔3〕独立构件风格:进程通讯、事件系统;

〔4〕虚拟机风格:解释器、基于规那么的系统;

〔5〕知识库风格:数据库系统、超文本系统、黑板系统;经典软件体系结构;管道和过滤器(PIPESANDFILTER);

管道过滤器通用结构:

过滤器是一个独立实体,其间无需共享状态

管线〔Pipelines〕:限制系统的拓扑结构只能是过滤器的线性序列

有界管线〔BoundedPipes〕:限制了在管道中能容纳的数据量

类型定义管道〔TypePipes〕:明确定义在两个过滤器间的数据类型;管道和过滤器风格的例子:

UNIX的shell程序,如命令:

catfile|grepxyz|sort|uniqout

在文件file中查找包括xyz的行?排序?去掉重行?输出到out文件中;

编译器:词法分析?句法分析?语义分析?代码生成。;管道和过滤器的实现:

将系统任务分成几个独立的处理阶段;

定义每个管道传输的数据格式;

决定管道的连接;

设计和实现过滤器;

设计出错处理;

建立处理流水线。;管道和过滤器的优点:

每个过滤器都是独立的整体,相互之间的状态互不影响;只要具备输入条件即可独立地完成自己的处理

支持功能模块的重用;过滤器并不知道它的上游和下游的过滤器的特性;它的设计和实现不会对与它相连的过滤器加以限制。

系统容易维护和扩展

支持某些特定的分析,如吞吐量和死锁检测

并发性;管道和过滤器的缺点:

管线或流水线(PipeLine):过滤器严格限制为单输入、单输出类型,系统拓扑结构只能是线性序列;

交互性比较弱

兼容性相对弱;维持两个相对独立但又存在某种关系的数据流之间的通信可能比较困难;

有名管道:在过滤器之间通过有名的管道来进行数据传送,增加了解析或反响工作,从而降低系统的效率。;数据抽象和面向对象组织;面向对象风格的优点:

封装:对象具有信息隐藏特性,内部结构对外不可见;

继承:从具有通用特征的对象开始,逐渐定义更具体对象多态:不同类型的对象可以对相同的鼓励做出不同的响应;PS:数据抽象是特殊化的面向对象风格:ADT(AbstractDataType)只有封装特点,没有继承和多态的特点。;基于事件的隐式调用;隐式调用风格的优点

为软件重用提供了强大的支持

为改进系统带来了方便

隐式调用风格的缺点

构件放弃了对系统计算的控制

数据交换的问题

既然过程的语义必须依赖于被触发事件的上下文约束,关于正确性的推理存在问题;分层系统;例:ISO的OSI/RM(OpenSystemsInterconnectionReferenceModel)7层模型;分层系统的实现:

为分层定义抽象准那么,定义抽象层次;

给每一层命名并指定它们的任务和提供的效劳;

为每个层定义接口、实现独立的层;

确定相邻层通信、降低相邻层的耦合程度;

设计错误处理策略。;基于微内核模式构建的WindowsNT系统:

系统效劳层:子系统与NT执行程序间的接口层;

资源管理层:包括对象管理、平安引用监视、进程管理、I/O管理、虚拟存储管理、局部过程调用等模块;

内核:负责根本功能,如中断和异常处理,多处理器同步,线程调度;

硬件抽象层:隐藏不同处理器系列机器间硬

显示全部
相似文档