`
tomhibolu
  • 浏览: 1375811 次
文章分类
社区版块
存档分类
最新评论

章二 软件体系结构的构建模式(2)

 
阅读更多

章二 软件体系结构的构建模式(2)
三、事件驱动模式
1、事件驱动模式
事件驱动系统的基本观点是一个系统对外部的表现可以从它对事件的处理表征出来。
特点:
(1)系统由若干个子系统或元素所组成的一个整体;
(2)系统有一定的目标,各子系统在某一种消息机制的控制下,为了这个目标而协调行动;
(3)在某一种消息机制的控制下,系统作为一个整体与环境相适应和协调;
(4)在一个系统的若干子系统中,必定有一个子系统起着主导作用,而其它子系统处于从属地位;
(5)任一系统和系统内的任一元素,都有一个事件收集机制和一个事件处理机制,通过这种机制与周围环境发生作用和联系。
在基于事件驱动模式的系统设计中,系统的每个子系统在设计过程中都要考虑其完整性和相对独立性,不绝对依赖于某一子系统,系统之间的协调和管理都是通过消息传递和收集来进行的。
2、事件驱动模式系统的设计原则:
(1)从系统论的角度看待描述的对象,合理分解子系统,保证各个子系统的独立性和社会性;
(2)任何子系统都可按有无子系统这一性质分:管理系统和执行系统;
(3)为达到系统的目标,系统内的各个子系统通过传递消息和执行消息来协同操作;
(4)任何性质的子系统都必须有一个事件处理器,用以处理上级交给的事件;
(5)在一个完整系统中,必须有这样一个子系统,它没有上级,必须收集系统外的事件及下级发出的事件;
(6)管理类型的子系统一般不执行具体操作,它的主要功能是按照自己的只能指挥下级完成任务,功能性操作一般由执行类型的子系统完成;
(7)一般情况,除最高管理子系统外,子系统一般是“有问才答”,即使在必要的情况下需要积极寻找事件时,也必须征得上级系统的许可,保证了系统的控制流不会分散。
3、事件驱动模式的优点:
(1)事件驱动模式非常适合于描述系统族,在属于同一族的任何系统中,系统的高级管理子系统的描述是完全类似的,便于重用;
(2)由于最高管理子系统牢牢的掌握着控制权,又因为各同级子系统一般不直接发生关系,因此容易实现并发处理和多任务操作;
(3)基于事件驱动模式的系统具有良好的可扩展性,设计者只需为某个对象注册一个事件处理接口就可以将该对象引入整个系统,同事并不影响其它的系统对象;
(4)定义了包含执行子系统和管理子系统的类层次结构;
(5)简化客户代码;
(6)使整个系统的设计更具有一般化。
4、事件驱动模式的不足:
(1)构件消弱了自身对系统计算的控制能力;
(2)事件驱动模式中存在的另一个问题是数据共享;
(3)系统中各个对象的逻辑关系变得更加复杂。
5、事件驱动模式和面向对象之间的关系:基于事件驱动模式的系统往往都是面向对象的。
事件接口
6、事件驱动模式实例
事件驱动是JavaBean体系结构的核心之一,JavaBean系统通过事件驱动机制将一些组件作为事件源,发出可以被描述环境或其它组件接收的事件。
适配器类是JavaBean事件模型中极其重要的一部分,在一些应用场合,事件从源到监听者之间的传递要通过适配类来“转发”。
适配类成为了事件监听者,事件源实际是把适配类作为监听者注册到监听者队列中,而真正的事件响应者并未在监听者队列中,事件响应者应做的动作由适配类决定。

四、分层模式
1、分层模式特征
一个分层系统采用层次化的组织方式构建,系统中的每一层都要承担两个角色。
首先,它要为结构中的上层提供服务;
其次,它要作为结构中下面层次的客户,调用下层提供的功能函数。
最高层和最低层例外。
核心层-功能层-应用层
2、分层模式的优点:
(1)分层模式支持系统设计过程中的逐级抽象;
(2)分层模式的系统具有较好的可扩展性;
(3)分层模式支持软件复用。
3、分层模式的不足:
并非所有的系统都适合用分层模式来描述的;对于抽象出来的功能具体应该放在哪个层次上也是设计者头疼的问题。
4、实例:
在计算机网络的设计中,采用了分层模式的设计方法。ISO/OSI的七层参考模型。

分享到:
评论

相关推荐

    软件工程-04-软件架构的构建.pptx

    2022/6/30 2 第4章 软件架构的构建 软件架构也称为软件体系结构。 对软件架构的系统、深入的研究将成为提高软件生产率和解决软件维护问题的新途径。 用户需求中的各种约束对架构的选择都有着直接的影响,软件开发并...

    基于SAAS模式的多用户数据体系结构

    基于SAAS模式的多用户数据体系结构。 信任,或是缺乏充分信任,都是妨碍“软件即服务”(SaaS) 推广的首要问题。我们可以说,关于产 品、客户、雇员、供应商等的数据是商业运营中最重要的资产。当然,SaaS 的核心也是...

    【清华】 软件工程(完) 视频.txt

    第2章软件过程 .2.1软件过程模型 2.1.1瀑布模型 2.1.2增量式开发 2.1.3面向复用的软件工程 2.2过程活动 2.2.1软件描述 2.2.2软件设计和实现 2.2.3软件有效性验证 2.2.4软件进化 2.3应对变更 2.3.1原型构造 2.3.2增量...

    计算机系统要素:从零开始构建现代计算机

    在这个过程中,读者能够获得关于硬件体系结构、操作系统、编程语言、编译器、数据结构、算法以及软件工程的详实知识。通过这种逐步构造的方法,本书揭示了计算机科学知识中的重要成分,并展示其它课程中所介绍的理论...

    软件工程知识点.doc

    第一章 软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题...(4)构建工程的软件工程阶段:重视发展软件体系结构 ,软件设计模式,系统交互性,标准化等领域的重用,积极提倡基于软构件的

    构建安全的 ASP.NET 应用程序(中文译作+英文原作)

    如果知道您的应用程序目前采用或将要采用的体系结构和部署模式,则可通过本指南的这一部分了解相关的安全问题,以及保障特定方案的安全性所需的基本配置步骤。 最后,本指南第 IV 部分的补充信息和参考材料可帮助您...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    13.2 Oracle ClusterWare体系结构与进程介绍 13.2.1 Oracle ClusterWare 简介 13.2.2 Oracle ClusterWare 进程介绍 13.3 RAC数据库体系结构与进程 13.3.1 RAC 简介 13.3.2 Oracle RAC的特点 13.3.3 RAC...

    构建最高可用Oracle数据库系统 Oracle 11gR2 RAC管理、维护与性能优化

    1.2 RAC体系结构 1.2.1整体结构 1.2.2物理层次结构 1.2.3逻辑层次结构 1.3 RAC的特点 1.3.1双机并行 1.3.2高可用性 1.3.3易伸缩性 1.3.4低成本 1.3.5高吞吐量 1.4 RAC存在的问题 1.4.1稳定性 1.4.2高...

    Windows防火墙与网络封包截获技术源代码

    第二部分讨论局域网的一般性问题,内容包括局域网实现过程中常用的拓扑结构和传输介质、局域网协议体系结构以及LLC的详细内容。第三部分是本书的重点,主要介绍五种相关类型的局域网,内容包括以太网、令牌环网、...

    Ruby on Rails Web开发之旅.pdf【第二部分】

     4.3 MVC体系结构  4.3.1 MVC理论  4.3.2 MVC的Rails方式  4.3.3 ActiveRecord(模型)  4.3.4 ActionPck模块  4.4 代码生成  4.5 ActionMailer  4.6 测试和调试  4.6.1 测试  4.6.2 调试  4.7...

    nand2tetris:计算机系统要素,从零开始构建现代计算机

    在这个过程中,读者能够获得关于硬件体系结构、操作系统、编程语言、编译器、数据结构、算法以及软件工程的详实知识。通过这种逐步构造的方法,本书揭示了计算机科学知识中的重要成分,并展示其它课程中所介绍的理论...

    JSP期末复习资料详细解析

    C/S结构是二层结构平台模式,C/S结构要求客户端要安装指定的软件,客户端负责执行前端的数据处理,服务端进行后端的服务处理。 8.简述JSP技术和Servlet技术的区别和联系。 ♦区别:⑴JSP技术主要用来表现页面,而...

    HP Openview网管建设方案建议书

    3.1.2 HP OpenView 体系结构 10 3.2 网管产品推荐——HP OpenView NNM 12 3.2.1 功能模块 13 3.2.2 分布管理 14 3.2.3 信息过滤 15 3.2.4 高性能 15 3.2.5 其他优势 16 3.3 HP OpenView NNM 6.2新功能 18 3.3.1 配置...

    asp.net知识库

    第2章 并发操作的一致性问题 (2) Using sqlite with .NET Visual Studio 2005 中的新 DataSet 特性 MySQL 和 .Net2.0配合使用 与DotNet数据对象结合的自定义数据对象设计 (二) 数据集合与DataTable 与DotNet数据对象...

    链接器和加载器.PDF(链接器和加载器 Beta 2)

    第2章 体系结构的问题 2.1 应用程序二进制接口 2.2 内存地址 2.3 地址构成 2.4 指令格式 2.5 过程调用和寻址能力 2.6 数据和指令引用 2.7 分页和虚拟内存 2.8 Intel 386分段 2.9 嵌入式体系结构 练习 第3章 目标...

    面向对象技术与UML课件及源代码-by 南邮-陈杨

    本书的知识体系结构如下所示,遵循了循序渐进的原则,逐步引领读者从基础到各个知识点进行学习。 上篇面向对象技术 第1章Java入门 第2章程序设计基础: 变量及其运算 第3章程序设计基础: 流程控制和数组 第4...

    redhat linux教材20课程学习文档

    2.1 Linux的体系结构以图来表现 2.2 基本特点 2.2.1 单核心 2.2.2 多用户的操作系统 2.2.3 分时机制 2.2.4 多任务运行 2.3 核心与模块(模块分类、进程,核心结构图) 2.4 文件系统的基本概念 2.4.1 概述 2.4.2 ...

Global site tag (gtag.js) - Google Analytics