软件体系结构第7讲.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1温故知新概述管道/过滤器风格仓库风格和黑板风格分层系统风格客户服务器风格2软件体系结构第7讲:体系结构风格(二)江贺3内容简介:分层系统风格实例数据抽象和面向对象风格基于事件的风格模型-视图-控制器风格解释器风格(虚拟机风格)信息系统的参考模型体系结构风格的选择4分层系统风格实例系统描述:劳动和社会保险管理信息系统–系统的功能是完成劳动和社会保险的主要业务管理,即“五保合一”管理,包括养老保险、医疗保险、劳动就业和失业保险、工伤保险、女工生育保险。整个业务流程十分复杂,牵涉面相当广泛。例如,整个系统要与银行、企业、事业机关、医院、财政部门、税务部门、邮局等多种单位建立连接关系。5分层系统风格实例6分层系统风格实例•核心层•通用打印基类•通用查询基类•权限验证基类•通用数据库连接基类•字符处理基类•码表维护基类•数据转换基类7分层系统风格实例•基层单位管理平台8分层系统风格实例•业务管理系统9分层系统风格实例•扩展应用层10数据抽象和面向对象风格构件:–数据和操作的复合体对象连接件:–函数或过程调用对象对象对象对象对象数据抽象和面向对象风格的体系结构抽象数据类型过程调用11数据抽象和面向对象风格应用:–COM,CORBA等12数据抽象和面向对象风格优点:–隐藏实现细节–继承性,有利于重用缺点:–过程调用依赖于对象标识的确定–不同对象的操作关联性差13基于事件的风格(隐式调用)构件:–模块连接件:–对事件的显式/隐式调用agentagentagentagent广播媒介图5-6基于事件的体系结构风格声明事件监听事件监听事件声明事件14基于事件的风格(隐式调用)应用:–各种基于事件响应的Windows程序15基于事件的风格(隐式调用)优点:–事件广播者不必知道哪些部件会被事件影响–有利于软件复用,任何构件均可以注册其相关事件–系统演化、升级比较简单缺点:–构件的调用不是主动的–系统正确性难以推理16模型-视图-控制器风格3种构件–视图:负责显示信息–模型:负责维护数据,是应用程序的核心–控制器:负责与用户的交互用户视图控制器模型问题领域的应用程序查看使用操作更新图5-7模型—视图—控制器风格的体系结构17模型-视图-控制器风格应用:–VisualStudio提供的文档视图结构–各种可以更换皮肤的软件18文档视图结构文档–数据容器视图:–查看数据的窗口或是和数据发生交互的窗口。19文档视图结构单文档视图程序20文档视图结构多文档视图程序21文档/视图的核心是四个关键类:–CDocument(或COleDocument)类支持用于存储或控制程序数据的对象,并为程序员定义的文档类提供基本功能。文档表示数据单元,用户一般用“文件”菜单上的“打开”命令打开它,并用“文件”菜单上的“保存”命令保存它。–CView(或它的许多派生类之一)为程序员定义的视图类提供基本功能。视图被附加到文档并在文档和用户之间充当中介:视图在屏幕上呈现文档的图像并将用户输入解释为对文档的操作。视图还为打印和打印预览呈现图像。–CFrameWnd(或其变体之一)支持在文档的一个或多个视图周围提供框架的对象。–CDocTemplate(或CSingleDocTemplate或CMultiDocTemplate)支持一个对象,该对象协调给定类型的一个或多个现有文档并对创建该类型的正确文档、视图和框架窗口对象进行管理。文档视图结构22文档视结构带来的好处主要有:–首先是将数据操作和数据显示、用户界面分离开。这是一种“分而治之”的思想,这种思想使得模块划分更加合理、模块独立性更强,同时也简化了数据操作和数据显示、用户界面工作。–MFC在文档/视结构上提供了许多标准操作界面,包括新建文件、打开文件、保存文件、打印等,减轻了用户的工作量。–支持打印预览和电子邮件发送功能。以下情况不宜采用文档视结构:–不是面向数据的应用或数据量很少的应用程序,不宜采用文档/视结构。如一些工具程序包括磁盘扫描程序、时钟程序,还有一些过程控制程序等。–不使用标准的窗口用户界面的程序,象一些游戏等。文档视图结构23模型-视图-控制器风格优点:–简化系统设计,–界面友好缺点:–适用范围比较狭隘,局限在用户界面软件开发领域24解释器风格(虚拟机风格)构件;–被解释程序–执行引擎–执行引擎的当前状态–被解释程序的当前状态连接件:–过程调用–存储器访问25解释器风格(虚拟机风格)26解释器风格(虚拟机风格)应用:–各种虚拟机,如Java虚拟机–各种脚本语言的解释器,如Perl等27中间代码:–介乎源语言与目标代码之间,比源语言简单,比目标代码复杂。–区分编译器的前端与后端,方便提出针对新机器的编译器。–可以设计针对中间代码的优化器。解释器的功能作用说明词法分析器语法分析器语义分析器中间代码生成器代码优化器代码生成器解释器操作系统源程序记号流语法树语法树中间代码优化后中间代码目标代码28编译阶段proceduresortvara:array[0..9]ofinteger;x:integer;Beginx:=a[3];End;词法分析器语法分析器记号流语法树语义分析器中间代码生成建立符号表、查询符号表过程sort的符号表“x”“a”表头空sort数组整数515↑15=↑8+3解释器的功能作用说明29编译后、运行前↑15=↑8+3。。。。。。。。此时只有可执行的代码,没有符号表了,更没有运行栈(活动记录栈)可执行代码解释器的功能作用说明30运行阶段返回值和参数a[0]a[1]a[2]…a[9]控制链访问链和机器状态代码段静态数据区x↑15=↑8+3515。。。。。。。。加载可执行代码执行顺序运行栈被解释程序的当前状态执行引擎的当前状态正在被解释的程序执行引擎解释器的功能作用说明31解释器风格(虚拟机风格)优点:–应用程序的可移植性和程序设计语言的跨平台能力–对硬件进行仿真缺点:–效率比较低32信息系统的参考模型图5-16ISO的OSI参考模型33体系结构风格的选择问题描述:34体系结构风格的选择仓库风格–优点:数据共享适合采用高效的表达方式计算分布于独立模块,符合呈现问题的自觉思维习惯–缺点:不易修改,共享数据表示将影响到所有模块输入移位排序输出字符串移位后单词排序后单词35体系结构风格的选择数据抽象风格–优点:易于修改,数据表示和算法可以在单独模块修改而不会对模块间产生相互影响更好地支持重用–缺点:不易更改系统功能,除非打破模块界限或增加新的模块修改现存模块将导致模块简洁性和完整性受到破坏输入数据串SetCharchar移位setupchar排序setupchar输出36体系结构风格的选择管道过滤器风格–优点:维护了一种直觉的处理流程更好地支持重用,容易加入新功能–缺点:很难支持与用户的交互空间使用效率低,每个过滤器必须拷贝全部数据到它的输入口输入移位排序输出串37谢谢!

1 / 37
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功