知识点讲解
 
       典型体系结构模式
知识路径: > 信息化和信息系统 > 信息系统及其技术和开发方法 > 软件工程 > 软件架构(定义、模式、分析与评估) > 
被考次数:4次
被考频率: 中频率
总体答错率: 37%
知识难度系数:
考试要求: 熟悉     
相关知识点:7个
        软件体系结构模式是经过实践证明的、可重复使用的软件架构设计策略,为粗粒度的软件重用提供了可能。它描述了某一特定应用领域中系统的组织方式,反映了领域中众多系统所共有的结构和语义特性。常见的体系结构模式有:
        1.管道/过滤器模式
        每个构件都有一组输入输出,构件读取输入的数据流,经过内部处理后,产生输出的数据流,该过程主要完成输入流的变换及增量计算。构件称为过滤器,连接器称为数据流传输的管道。管道/过滤器输出的正确性并不依赖于过滤器进行增量计算过程的顺序。管道/过滤器模式如下图所示。
        
        管道/过滤器模式
        优点:
        .体现了各功能模块的“黑盒”特性及高内聚、低耦合的特点。
        .可将整个系统的输入输出行为看成是多个过滤器行为的简单合成。
        .支持软件功能模块的重用。
        .便于系统维护。新的过滤器可以加到现有系统中,旧的可以由改进的过滤器替换。
        .支持某些特定的分析,如吞吐量计算、死锁检测等。
        .支持并行操作,每个过滤器可以作为一个单独的任务完成。
        缺点:
        .通常导致系统处理过程的成批操作。
        .需要设计者协调两个相对独立但又存在关系的数据流。
        .可能需要每个过滤器自己完成数据解析和合成工作(如加密和解密),从而导致系统性能下降,并增加了过滤器具体实现的复杂性。
        2.面向对象模式
        面向对象模式建立在数据抽象和面向对象的基础上,将数据的表示方法及其相应操作封装在一个抽象数据类型或对象中。
        面向对象模式的典型应用是基于构件的软件开发(CBD)。面向对象模式如下图所示。
        
        面向对象模式
        优点:
        .高度模块化。
        .封装功能实现了数据隐蔽。
        .继承性提供了一种实现代码共享的手段。
        .提供了系统的灵活性,便于维护及扩充。
        缺点:
        .对象之间的调用需要知道所调用对象的标识。如果对象的标识发生改变,就必须通知所有调用该对象的对象,否则系统可能无法正常运行。
        3.事件驱动模式
        事件驱动模式的基本原理是构件并不直接调用过程,而是触发一个或多个事件。系统中的其他构件可以注册相关的事件,触发一个事件时,系统会自动调用注册了该事件的构件过程,即触发事件会导致另一构件中过程的调用。
        使用事件驱动模式的典型系统包括各种图形界面工具。
        优点:
        .支持软件重用,容易实现并发处理。
        .具有良好的可扩展性,通过注册可引入新的构件,而不影响现有构件。
        .可以简化客户代码。
        缺点:
        .构件削弱了自身对系统的控制能力。一个构件触发事件时,并不能确定响应该事件的其他构件及各构件的执行顺序。
        .不能很好地解决数据交换问题。
        .使系统中各构件的逻辑关系变得更加复杂。
        4.分层模式
        分层模式采用层次化的组织方式,每一层都是为上一层提供服务,并使用下一层提供的功能。这种模式允许将一个复杂问题逐步分层实现。层次模式中每一层最多只影响两层,只要给相邻层提供相同的接口,就允许每层用不同的方法实现,可以充分支持软件复用。
        分层模式的典型应用是分层通信协议,如ISO/OSI的七层网络模型。
        分层模式如下图所示。
        
        分层模式
        优点:
        .有助于把复杂的问题按功能分解,使整体设计更为清晰。
        .支持系统设计的逐级抽象。
        .具有较好的可扩展性。
        .支持复用。
        缺点:
        .层次的划分没有统一的、正确的抽象方法,并且有些系统不容易划分层次。
        .层次的个数过多,系统性能可能会下降。
        5.知识库模式
        知识库模式采用两种不同的构件:中央数据结构构件说明当前状态,独立构件在中央数据存储上执行,中央数据构件与独立的外部构件间相互作用。
        两种不同的控制策略:
        .基于传统数据库型的知识库模式:输入流触发进程执行的选择。
        .基于黑板系统的知识库模式:中央数据结构的当前状态触发进程执行的选择。
        黑板系统的典型应用是信号处理领域,如语音和模式识别。如下图所示。
        
        基于黑板系统的知识库模式
        黑板系统主要由三部分组成:
        .知识源:包含独立的、与应用程序相关的知识,知识源之间不直接进行通信,它们之间的通信通过黑板来完成。
        .黑板数据结构:按照与应用程序相关的层次来组织并解决问题的数据,知识源通过不断地改变黑板数据来解决问题。
        .控制:完全由黑板的状态驱动,黑板状态的改变决定了需要使用的特定知识。
        6.客户端/服务器模式
        客户端/服务器(C/S)模式是基于资源不对等,为实现共享而提出的。C/S模式将应用一分为二,服务器(后台)负责数据管理,客户端(前台)完成与用户的交互任务。C/S模式具有强大的数据操作和事务处理能力,易于理解和接受。
        C/S模式如下图所示。
        
        C/S模式
        优点:
        .客户端和服务器分离,允许网络分步操作;二者的开发也可分开同时进行。
        .一个服务器可以服务于多个客户端。
        缺点:
        .客户端与服务器的通信依赖于网络,可能成为整个系统运作的瓶颈;客户端的负荷过重,难以管理大量的客户端,系统的性能受到很大影响。
        .如果服务器及其界面定义有改变,则客户端也要做相应改变。
        .二层C/S模式采用单一服务器,以局域网为中心,难以扩展至广域网或Internet。
        .数据安全性不好。
        发展:
        C/S模式适用于分布式系统,得到了广泛应用。为了解决客户端的访问问题,发展形成了浏览器/服务器(B/S)模式;为了解决服务器端的问题,发展形成了三层(多层)C/S模式,即多层应用架构。
 

更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有