软件体系结构课程设计_第1页
软件体系结构课程设计_第2页
软件体系结构课程设计_第3页
软件体系结构课程设计_第4页
软件体系结构课程设计_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一部分第一部分 一 概述 一般认为 一个软件系统的体系结构定义了组成该系统的计算构件和构件之间的相 互作用关系 可以用一个三元组来描述软件系统结构 SA 构件 components 连 接件 connectors 约束 constraints 其中 components 是组件的集合 它们提供了一个系统所需的基本功能和操作 构成了一个系统的基本框架 connectors 是连接件的集合 表示两个或两个以上组件 之间的交互方式 定义了组件交互的规则并且也给出了一些实现机制 如协议 连接 的交互特性 数据模式 通信过程中交换的数据类型 constraints 包括了组件和连 接件的使用 选择及其互连的限制等 连接件是比较抽象的 往往体现为组件与组件 之间的接口规范 可能最终是由互相连接的组件各自实现一部分 在一个大规模软件系统的开发中 必须从一个较高的层次来考虑组成系统的构件 构件之间的交互方式 连接件 以及由构件与构件交互形成的拓扑结构 这些要素应 该满足一定的限制 遵循一定的设计规则 能够在一定的环境下进行演化 而且 软 件体系结构能反映系统开发中具有重要影响的设计决策 便于各种人员的交流 反映 多种关注 并据此开发的系统能够完成既定的功能和性能需求 软件系统结构可以描述软件的不同抽象层次 软件的设计过程是体系结构的逐步 细化过程 二 软件体系结构的构建风格软件体系结构的构建风格 管道管道 过滤器风格过滤器风格 在管道 过滤器风格下 每个功能模块都有一组输入和输出 功能模块称作过滤器 filters 功能模块间的连接可以看作输入 输出数据流之间的通路 所以称作 管道 pipes 管道 过滤器风格的特性之一在于过滤器的相对独立性 即过滤器独立完成自身 功能 相互之间无需进行状态交互 过滤器是独立运行的构件 非临近的过滤器之间不共享状态 过滤器自身无状态 过滤器对其处理上下连接的过滤器 无知 对相邻的过滤器不施加任何限制 结果的正确性不依赖于各个过滤器运行的先后次序 各过滤器在输入具备后完成 自己的计算 完整的计算包含在过滤器的拓扑结构中 一个管道 过滤器风格的示意图如下图所示 一个采用了嵌套的管道过滤器的系统示例 管道管道 过滤器风格优点 过滤器风格优点 设计者可以将整个系统的输入 输出特性简单的理解为各个过滤器功能的合成 设 计人员将整个系统的输入输出行为理解为单个过滤器行为的叠加与组合 这样可以将问题 分解 化繁为简 将系统抽象成一个 黑箱 其输入是系统中第一个过滤器的输入管道 输出是系统中最后一个过滤器的输出管道 而其内部各功能模块的具体实现对用户完全透 明 管道 过滤器风格支持功能模块的复用 任何两个过滤器 只要它们之间传送的数据遵 守共同的规约 就可以相连接 每个过滤器都有自己独立的输入输出接口 如果过滤器间 传输的数据遵守其规约 只要用管道将它们连接就可以正常工作 基于管道 过滤器风格的系统具有较强的可维护性和可扩展性 旧的过滤器可以被替代 新的过滤器可以添加到已有的系统上 软件的易于维护和升级是衡量软件系统质量的重要 指标之一 在管道 过滤器模型中 只要遵守输入输出数据规约 任何一个过滤器都可以被 另一个新的过滤器代替 同时为增强程序功能 可以添加新的过滤器 这样 系统的可维 护性和可升级性得到了保证 支持一些特定的分析 如吞吐量计算和死锁检测等 利用管道 过滤器风格的视图 可 以很容易的得到系统的资源使用和请求的状态图 然后 根据操作系统原理等相关理论中 的死锁检测方法就可以分析出系统目前所处的状态 是否存在死锁可能及如何消除死锁等 问题 管道 过滤器风格具有并发性 每个过滤器作为一个单独的执行任务 可以与其它过滤 器并发执行 过滤器的执行是独立的 不依赖于其它过滤器的 在实际运行时 可以将存 在并发可能的多个过滤器看作多个并发的任务并行执行 从而大大提高系统的整体效率 加快处理速度 FiltersPipes 管道管道 过滤器风格不足 过滤器风格不足 交互式处理能力弱 管道 过滤器模型适于数据流的处理和变换 不适合为与 用户交互频繁的系统建模 在这种模型中 每个过滤器都有自己的数据 这些数据 或者是从磁盘存储器中读取来 或者是由另一个过滤器的输出导入进来 整个系统 没有一个共享的数据区 这样 当用户要操作某一项数据时 要涉及到多个过滤器 对相应数据的操作 其实现较为复杂 由以上的缺点 可以对每个过滤器增加相应 的用户控制接口 使得外部可以对过滤器的执行进行控制 管道 过滤器风格往往导致系统处理过程的成批操作 设计者也许不得不花费精力协调两个相对独立但又存在某种关系的数据流之间 的关系 例如多过滤器并发执行时数据流之间的同步问题等 根据实际设计的需要 设计者也需要对数据传输进行特定的处理 如为了防止数据泄漏而采取加密等手段 导致过滤器必须对输入 输出管道中的数据流进行解析或反解析 增加了过滤器 具体实现的复杂性 面向对象风格特征面向对象风格特征 概述 面相对象模式集数据抽象 抽象数据类型 类继承为一体 使软件工程公 认的模块化 信息隐藏 抽象 重用性等原则在面向对象风格下得以充分 实现 应用场合 面向对象的体系结构模式适用于数据和功能分离的系统中 同样也适合于 问题域模型比较明显 或需要人机交互界面的系统 大多数应用事件驱动 风格的系统也常常应用了面向对象风格 面向对象风格的体系结构图 面向对象风格优点 面向对象风格优点 高度模块性 封装功能 代码共享 灵活性 易维护性 可扩充性 面向对象风格不足 面向对象风格不足 面向对象风格最大的不足在于如果一个对象需要调用另一个对象 它就必须知道那个对 象的标识 对象名或对象引用 这样就无形之中增强了对象之间的依赖关系 如果一个对 象改变了自己的标识 就必须通知系统中所有和它有调用关系的对象 否则系统就无法正 常运行 层次系统风格层次系统风格 层次系统组织成一个层次结构 每一层为上层服务 并作为下层客户 在一些层次系 统中 除了一些精心挑选的输出函数外 内部的层只对相邻的层可见 这样的系统中构件 在一些层实现了虚拟机 在另一些层次系统中层是部分不透明的 连接件通过决定层间如 何交互的协议来定义 拓扑约束包括对相邻层间交互的约束 这种风格支持基于可增加抽象层的设计 这样 允许将一个复杂问题分解成一个增量 步骤序列的实现 由于每一层最多只影响两层 同时只要给相邻层提供相同的接口 允许 每层用不同的方法实现 同样为软件重用提供了强大的支持 一个概念上的分层模型如下图所示 分层风格具有一些系统设计者无法抗拒的优势分层风格具有一些系统设计者无法抗拒的优势 分层风格支持系统设计过程中的逐级抽象 基于分层风格的系统具有较好的可扩展性 分层风格支持软件复用 分层风格不足分层风格不足 并不是所有的系统都适合用分层风格来描述的 对于抽象出来的功能具体应该放在哪个 层次上也是设计者头疼的一个问题 解释器风格解释器风格 基于解释器风格的系统核心在于虚拟机 一个基于解释器风格的系统通常包括 正在被解释执行的伪码和解释引擎 伪码 由需要被解释执行的源代码和解释引擎分析所得的中间代码组成 解释引擎包括 语法解释器和解释器当前的运行状态 核心层 最底层 功能层 中间层 应用层 最高层 解释器风格示意图如下图所示 解释器风格优点 解释器风格优点 在文法规则比较简单的情况下 解释器风格工作的很好 易于改变和扩展文法 因为解释器风格使用类来表示文法规则 用户可以使用继承来改变和扩展文法 已有的 表达式可以采用增量的方式逐渐扩充 而新的表达式可以定义为旧表达式的变体 易于实现文法 可以用多种操作来 解释 一个句子 解释器风格缺点 解释器风格缺点 无法解释复杂的文法规则 对于比较简单的文法规则 解释器风格工作的很好 而对于复杂的文法规则 则由于文法层次的庞大而难于管理 应用范围比较狭窄 在文法规则比较复杂 则文法的层次变得无法管理 系统中需要包含许多表示文法 规则的类 反馈控制环风格反馈控制环风格 控制工程是一个十分强调方法论的专业领域 因此控制工程方法完全是独立于各 种应用领域的 为了将过程控制方法从单纯的控制领域中抽象出来 我们引入了动态系统的概念 动态系统表示信号处理和传输的一个功能单元 例如 信号可以是能量 材料 信息 资金及其他形式 其中系统的起因和由此引起的时间上的效果分别作为系统 的输入量和输出量来考虑 如此定义的系统具有共同的特征 即在其中一定存在有目标的作用 信息处理 闭环和开环控制过程 正如 N Wiener 所提出的 以上概念可以用控制论这个更高级 的概念来总结 控制论也可以应用于软件体系结构的创建 根据上述的动态系统的定义 在系统中必然存在信号的处理和传输 这时系统 也可描述为传输环节或传输系统 传输环节具有唯一的作用方向 这由输入 输出信 号的箭头方向给出 单变量系统如下图所示单变量系统如下图所示 待待解解释释的的源源代代码码解解释释后后的的代代码码 解解释释引引擎擎 解解释释引引擎擎 内内部部状状态态 数数据据访访问问工工作作 解解释释工工作作 存存储储区区 i in np pu ut t o ou ut tp pu ut t 多变量系统如下图所示 多变量系统如下图所示 除了用方框图来表达动态系统以外 还可以用信号流图 如下图所示 除了用方框图来表达动态系统以外 还可以用信号流图 如下图所示 一般的动态系统描述框图可以分为开环控制和闭环控制系统 但在实际应用中这两种不一般的动态系统描述框图可以分为开环控制和闭环控制系统 但在实际应用中这两种不 同的动态系统往往很容易混淆在一起 对它们之间的区别强调的不够 同的动态系统往往很容易混淆在一起 对它们之间的区别强调的不够 现在通过一个市内暖气系统来指出这两者之间的不同和相同之处 现在通过一个市内暖气系统来指出这两者之间的不同和相同之处 开环控制图如下图所示 开环控制图如下图所示 闭环控制图如下图所示 闭环控制图如下图所示 动态系统 输入量输出量 动态系统 输入量1 输出量3 输出量2 输出量1 输入量3 输入量2 GYU 节点节点支路 G YU G1UE G2 W G1UE G2 W Z G G WEU G G E U W Z 3 2 1 开环控制 装置 房间 干扰量 输入量输出量 3 2 1 房间 干扰量1 输出量 调节器 输入量 干扰量2 负反馈 开环控制和闭环控制的差别 开环控制和闭环控制的差别 闭环控制 闭环控制 表示一个闭合的作用过程 控制回环 根据闭环作用原理可增加抗干扰性 负反馈 可能不稳定 也即被控量不再衰减 而是增长到无穷大 理论上 开环控制开环控制 表示一个开放的作用过程 控制序列 只能对抗指定由其处理的干扰 对于其他一些干扰因素无法消除 只要被控制对象自己保持稳定 整个开环控制系统也就保持稳定 反馈控制环风格基本结构反馈控制环风格基本结构 以闭环控制系统为例分析过程控制环的基本结构 一个自动控制系统包括如下 4 个主要组成部分 被控对象 测量环节 调节器和执 行环节 如下图所示 反馈控制环风格反馈控制环风格 自适应反馈控制环自适应反馈控制环 直接法模型如下图所示 直接法模型如下图所示 间接法模型如下图所示间接法模型如下图所示 调节器执行环节调节特性 干扰特性 给定值 控制量 测量环节 被控对象 控制误差 干扰量 被控量 负反馈 被控系统 参考模型 调节器 输入量 自适应模块 被被控控系系统统调调节节器器 输输入入量量 自自适适应应模模块块 可可调调模模型型 仓库风格仓库风格 在仓库风格中 有两种不同的构件 中央数据结构说明当前状态 独立构件在中央 数据存贮上执行 仓库与外构件间的相互作用在系统中会有大的变化 控制原则的选取产生两个主要的子类 若输入流中某类时间触发进程执行的选择 则仓库是一传统型数据库 另一方面 若中央数据结构的当前状态触发进程执行的选择 则 仓库是一黑板系统 黑板系统的组成 1 知识源 知识源中包含独立的 与应用程序相关的知识 知识源之间不直接进行 通讯 它们之间的交互只通过黑板来完成 2 黑板数据结构 黑板数据是按照与应用程序相关的层次来组织的解决问题的数据 知识源通过不断地改变黑板数据来解决问题 3 控制 控制完全由黑板的状态驱动 黑板状态的改变决定使用的特定知识 三 总结三 总结 软件体系结构风格为大粒度的软件重用提供了可能 然而 对于应用体系结构风格来 说 由于视点的不同 系统设计师有很大的选择空间 要为系统选择或设计某一个体系结 构风格 必须根据特定项目的具体特点 进行分析比较后再确定 体系结构风格的使用几 乎完全是特化的 在本文中 我们只讲述了 纯 的体系结构 但是 从上面的介绍中 我们知道 不同的结构有不同的处理能力的强项和弱点 一个系统的体系结构应该根据实 际需要进行选择 以解决实际问题 第二部分第二部分 分层风格实例 计算机网络的设计分层风格实例 计算机网络的设计 网络协议设计者将计算机网络中的各个部分按其功能划分为若干个层次 Layer 其中的每一个层次都可以看成是一个相对独立的黑箱 一个封闭的系统 用户只关心每一 层的外部特性 只需要定义每一层的输入 数据处理和输出等外部特性 ISO OSIISO OSI 网络体系结构网络体系结构 ISO OSI 采用了 7 层体系结构 从高到低分别是 应用层 表示层 会话层 传输层 网络层 数据链路层和物理层 如图所示 其最高层为第 7 层应用层 用于同应用服务之 间交换数据 最低层为第 1 层物理层 用于连接物理传输介质实现真正的数据通信 层与 层之间的联系是通过各层之间的接口来实现的 上层通过接口向下层提出服务请求 而下 层通过接口向上层提供服务 两台计算机通过网络进行通信时 只有两物理层之间能够通 过媒体进行真正的数据通信 其余各对等层之间均不存在直接的通信关系 各对等层之间 只能通过各对等层的协议来进行虚拟通信 第 1 层是物理层 Physical Layer 它负责在物理信道上传输原始的数据 bit 流 它 应该提供为建立 维护和拆除物理链路连接所需的机械的 电气的 功能和规程的特性 应应用用层层 表表示示层层 会会话话层层 传传输输层层 物物理理层层 链链路路层层 应应用用层层 表表示示层层 会会话话层层 传传输输层层 物物理理层层 链链路路层层 网网络络层层网网络络层层 应应用用控控制制项项 资资源源子子网网 通通讯讯控控制制项项 通通讯讯子子网网 传传输输介介质质接接口口 物物理理传传输输介介质质 第 2 层是数据链路层 Data Link Layer 它的主要功能是纠错和流量控制 负 责在可能出现差错的物理线路中实现无差错的数据传送 它应该在物理层的基础上 建立 相邻结点之间的数据链路 通过差错控制提供数据帧 Frame 的无差错传输 并进行数据 流量控制 第 3 层是网络层 Network Layer 它的主要功能是路由控制 找路 拥塞控制 和数据打包 它应该为其上一层传输层的数据传输提供建立 维护和终止网络连接的手段 把上层传来的数据分割成一个一个的数据包 Packet 也叫报文分组 在结点之间进行交 换传送 并且负责路由控制和拥塞控制 第 4 层是传输层 Transport Layer 它的主要功能是在上层和下层之间起到一种 接口的功能 它应该为上层提供端到

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论