软件体系结构第7讲.ppt
文本预览下载声明
* 解释器风格(虚拟机风格) 优点: 应用程序的可移植性和程序设计语言的跨平台能力 对硬件进行仿真 缺点: 效率比较低 * 信息系统的参考模型 图5-16 ISO的OSI参考模型 * 体系结构风格的选择 问题描述: * 体系结构风格的选择 仓库风格 优点: 数据共享适合采用高效的表达方式 计算分布于独立模块,符合呈现问题的自觉思维习惯 缺点: 不易修改,共享数据表示将影响到所有模块 输入 移位 排序 输出 字符串 移位后单词 排序后单词 * 体系结构风格的选择 数据抽象风格 优点: 易于修改,数据表示和算法可以在单独模块修改而不会对模块间产生相互影响 更好地支持重用 缺点: 不易更改系统功能,除非打破模块界限或增加新的模块 修改现存模块将导致模块简洁性和完整性受到破坏 输入 数据串 SetChar char 移位 setup char 排序 setup char 输出 * 体系结构风格的选择 管道过滤器风格 优点: 维护了一种直觉的处理流程 更好地支持重用,容易加入新功能 缺点: 很难支持与用户的交互 空间使用效率低,每个过滤器必须拷贝全部数据到它的输入口 输入 移位 排序 输出 串 * 谢谢! * * * * * * * 温故知新 概述 管道/过滤器风格 仓库风格和黑板风格 分层系统风格 客户服务器风格 * 软件体系结构 第 7讲: 体系结构风格(二) 江贺 * 内容简介: 分层系统风格实例 数据抽象和面向对象风格 基于事件的风格 模型-视图-控制器风格 解释器风格(虚拟机风格) 信息系统的参考模型 体系结构风格的选择 * 分层系统风格实例 系统描述:劳动和社会保险管理信息系统 系统的功能是完成劳动和社会保险的主要业务管理,即“五保合一”管理,包括养老保险、医疗保险、劳动就业和失业保险、工伤保险、女工生育保险。整个业务流程十分复杂,牵涉面相当广泛。例如,整个系统要与银行、企业、事业机关、医院、财政部门、税务部门、邮局等多种单位建立连接关系。 * 分层系统风格实例 * 分层系统风格实例 核心层 通用打印基类 通用查询基类 权限验证基类 通用数据库连接基类 字符处理基类 码表维护基类 数据转换基类 * 分层系统风格实例 基层单位管理平台 * 分层系统风格实例 业务管理系统 * 分层系统风格实例 扩展应用层 * 数据抽象和面向对象风格 构件: 数据和操作的复合体对象 连接件: 函数或过程调用 对象 对象 对象 对象 对象 数据抽象和面向对象风格的体系结构 抽象数据类型 过程调用 * 数据抽象和面向对象风格 应用: COM, CORBA等 * 数据抽象和面向对象风格 优点: 隐藏实现细节 继承性,有利于重用 缺点: 过程调用依赖于对象标识的确定 不同对象的操作关联性差 * 基于事件的风格(隐式调用) 构件: 模块 连接件: 对事件的显式/隐式调用 agent agent agent agent 广播 媒介 图5-6 基于事件的体系结构风格 声明事件 监听事件 监听事件 声明事件 * 基于事件的风格(隐式调用) 应用: 各种基于事件响应的Windows程序 * 基于事件的风格(隐式调用) 优点: 事件广播者不必知道哪些部件会被事件影响 有利于软件复用,任何构件均可以注册其相关事件 系统演化、升级比较简单 缺点: 构件的调用不是主动的 系统正确性难以推理 * 模型-视图-控制器风格 3种构件 视图:负责显示信息 模型:负责维护数据,是应用程序的核心 控制器:负责与用户的交互 用户 视图 控制器 模型 问题领域的应用程序 查看 使用 操作 更新 图5-7 模型—视图—控制器风格的体系结构 * 模型-视图-控制器风格 应用: Visual Studio提供的文档视图结构 各种可以更换皮肤的软件 * 文档视图结构 文档 数据容器 视图: 查看数据的窗口或是和数据发生交互的窗口。 * 文档视图结构 单文档视图程序 * 文档视图结构 多文档视图程序 * 文档/视图的核心是四个关键类: CDocument(或 COleDocument)类支持用于存储或控制程序数据的对象,并为程序员定义的文档类提供基本功能。文档表示数据单元,用户一般用“文件”菜单上的“打开”命令打开它,并用“文件”菜单上的“保存”命令保存它。 CView(或它的许多派生类之一)为程序员定义的视图类提供基本功能。视图被附加到文档并在文档和用户之间充当中介:视图在屏幕上呈现文档的图像并将用户输入解释为对文档的操作。视图还为打印和打印预览呈现图像。 CFrameWnd(或其变体之一)支持在文档的一个或多个视图周围提供框架的对象。 CDocTemplate(或 CSingleDocTemplate 或 CMultiDoc
显示全部