软件体系结构2-04层次体系结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
② 继承型:面向对象系统中的分类结构;
超类使用子类提供的服务,子类继承超类固有的属性 优缺点:高层可根据需要改写低层提供的服务; 超类/子类的依赖关系影响了结构的可修改性 适用场合:面向对象的软件设计
ห้องสมุดไป่ตู้ 4. 优缺点评价
优点: ① 支持层次抽象过程的渐进式设计 ② 支持基于接口的系统功能扩充 ③ 提供层次独立性级别的可重用环境
① 设计内容分层/分块组织,
形成纵向(分层)和横向(分块)的功能分割体系; 纵向体现层间关联,横向体现层内功能 ② 层间信息交换需要以接口/协议的形式进行 接口:功能互操作和数据互交换的调用服务与连接机制
协议:通信体在连接交互过程中应共同遵守的规约
2. 结构组成:基于“调用—返回”原理和接口互连机制
一般不可跨层次进行数据通信
讨论1:一般通信协议的组成
语义部分:决定交互双方的对话类型 语法部分:决定交互双方的对话格式 交换规则:决定交互双方的应答关系 关联:构件协议
协议∷=(协议名,状态表,身份认证表)
状态表∷={状态,转换,映射方法} 身份认证表∷={身份标识,描述信息} 讨论2:层次结构中的 Push/Pull机制 推式机制:高层 低层 请求-调用方法
(3) 接口与协议:OSI/RM与Internet协议集见下图
拉式机制:低层
高层
通知-回调方法
层次结构中应避免拉式机制(强依赖)
讨论3:层次结构的变异
① 松弛型:层间约束条件放松,允许跨层次的交互通信;
每一层可使用所有下层的服务,而不限于相邻层 优缺点:提高了服务的灵活性;牺牲了软件的可维护性 适用场合:可用于系统软件(少修改,对性能要求高) 不宜用于应用软件(应用多变,对可维护性要求高)
④ 把代码变化的影响限制在本层内
缺点: ① 可维护性较差(改变结构或行为时,会引起连锁效应) ② 数据通信效率较低(可能存在多层次的数据传送) ③ 层次间的功能冗余会增加系统运行的开销
④ 找出正确的层次划分及结构关系并非易事
2.3.2 层次结构的应用实例
1. 层次模型的设计过程
① 定义设计目标:设计对象(S,A),分层标准,模型层数 ② 层内功能描述:层次命名,功能/任务描述, 方法(面向过程,面向对象) ③层次接口定义:黑盒原则,灰盒原则,白盒原则
② 调用/返回关系:
自顶向下的调用:把高层请求映射成低层的基本操作
例如,层 K 把层 K+1 发出的请求, 转换成对层 K-1 层的多个请求 自底向上的返回:把低层处理结果发送给高层(提供服务) 并释放控制权
③ 部件功能:作为一个虚拟机,屏蔽掉低层的处理细节,
但不一定采用解释执行和状态模拟工作方式; 提供过程调用操作;为高层提供连接服务 ④ 连接功能:以协议形式,定义部件间的交互/合成规则 ⑤ 语义约束:每一层至多和相邻的上下层存在交互关系,
第 4 讲:层次体系结构 2.3 层次体系结构 2.3.1 层次结构组成原理
1. 设计思想
2. 结构组成 3. 技术特征 4. 优缺点评价 2.3.2 层次结构的应用实例
1. 层次模型的设计过程
2. ISO/OSI参考模型
2.3 层次体系结构
学科关联:计算机网络,操作系统,数据库,工作流参考模型
层次结构:是一种基本的体系结构设计风格; 也是一种普遍适用的软件设计方法与通用抽象原则 2.3.1 层次结构组成原理 1. 设计思想:问题抽象层次化,层间交互接口化
② 层次结构的正确画法
3. 技术特征
分层/分块+调用/返回+接口/协议 ① 结构分层/层内分块:层间工作过程遵循调用/返回原理 层间耦合采用接口/协议机制 层内功能实现为基于虚拟机的抽象基(接口/实现程序)
结构优化:可引入客户/服务计算逻辑(集中式系统)
甚至引入客户/代理/服务计算逻辑(分布式系统)
④层间协议说明:采用的协议格式,
层间的调用—返回限制,出错处理 ⑤ 确定邻层通信:推模型(高 → 低的调用请求) 拉模型(避免依赖,引入回调) ⑥ 设计优化:高层—服务综合化,低层—服务原子化;
层间耦合弱化;错误处理
2. ISO/OSI参考模型(层次模型的精华)
网络体系结构参考模型分析:层次,服务,接口,协议 (1) 层次划分:7个功能层次 (2) 服务功能—应用设计目标定位 ① 设备连接:介质连接,位流传输;Modem接口
区别:参数连接,事件连接,操作链连接 每一层作为一个抽象基体,包括三部分: ① 构成系统的部件(一个虚拟机的实现:过程调用) ② 部件间的连接(接口说明,上下文约定,合成规则)
③ 行为操作的语义约束(层间交互/层内的限制条件)
讨论1:层次模型设计的核心理念
(1) 层次:模型复杂度的纵向分割 可分解可重叠的分块单元的迭放次序 关联 粒度:可封装可重用的独立分块的大小程度
② LAN构成:设备互连,数据流传输;Bridge接口
③ LAN互连:路由选择,拥塞(流量)控制;Router接口 ④ WAN通信:网间数据传输,可靠性/安全性控制 ⑤ 数据通信:会话连接,交互管理,同步控制 ⑥ 公共表示:数据交换/通信服务的公共表示方法
⑦ Internet服务:网络/设备管理,应用服务;Gateway接口
(2) 功能:模型复杂度的横向分割;单层部件内部所提供的服务
(3) 接口:层间数据交换的连接机制
层内功能抽象的封装机制 避免层间共享
(signature)
(wrapper) (松化耦合)
(4) 协议:接口语境即上下文(context)描述(状态/转换集) 接口与实现之间调用服务应遵守的顺序性等限定
讨论2:① 层次模型的复杂性:层间接口/协议