zoukankan      html  css  js  c++  java
  • 系统架构设计师软件架构风格

      软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式,它定义一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束支出系统是如何将这些构件和连接件组合起来的。架构个反映了额领域中众多系统所共有的结构和语义特特性,并指导如何将各个模块和子系统有效的组织成一个完成的系统。概要论述你参与与分析和设计的软件系统开发项目,以及你所承担的主要工作。软件系统开发中常用的软件架构风格有哪些,详细阐述每种风格的具体含义。详细说明你所参与分析和设计的软件系统采用了什么软件架构风格,并分析采用该架构风格设计的原因。

    软件架构风格典型分类

    1,数据流分风格:包括批处理系列架构风格(Batch Sequential)和管道-过滤器架构风格(Pipes/Filters)。

    2,调用/返回风格:包括主程序/子程序风格(Main Program and Subroutine)、数据抽象和面向对象架构风格(Data Absraction and Object-Oriented)及层次架构风格(Hierarchical Layers)

    3,独立构件风格:包括进程通信架构风格(Communicating Processes)和时间驱动架构风格(Event System)

    4,虚拟机风格:包括解释器架构风格(Interpreters)和基于规则的系统(Rule-based System)架构风格。

    5,仓库风格:包括数据仓库架构风格(Database)和黑板架构风格(Black Boards)。

      其他还有特定领域软件体系架构(Domain-Specific Software Architecture)、状态转移(State Transition System)、分布式处理(Distributed Process)架构风格和REST(Representational State Transfer)混合架构风格等,其中分布式架构风格中包括客户机/服务器(C/S)架构风格、浏览器/服务器(B/S)架构风格、CORBA、DCOM和EJB架构风格等。

    软件架构风格模型及含义

    1,数据流风格

      批处理序列架构风格:组件为一系列固定顺序的计算单元,组件间只通过数据传递交互。每个处理步骤是一个独立的程序,每一步必须在前一步结束后才能开始。数据必须是完成,一整体的方式床底。

      管道-过滤器架构风格:每一个构件都有一组输入和输出,构件读取输入的数据流。经过内部处理,然后产生输出数据流。在这个过程中通常通过对输入流的变换及增量计算来完成,包括通过计算和增加信息丰富数据、通过浓缩和删除精炼数据,以及通过改变记录方式转化数据和递增转化数据等。在输入被完全消费之前,输出便产生了。这里构建被称为“过滤器”,连接件就是数据流传输的管道,将一个过滤器的输出传到另一个过滤器的输入。

    2,调用/返回风格

      主程序/子程序架构风格:单线程控制,把问题划分为若干处理步骤。构件即主程序和子程序,子程序通常可合成为模块。过程调用作为交互机制,即充当连接件。调用关系具有层次性,其语义逻辑表现为子程序的正确性。

      数据抽象和面向对象架构风格:这种风格的构件是对象,对象是抽象数据类型的实例。在抽象数据类型中,数据的表示和他们的相应操作被封装起来,对象的行为体现在其接受和请求的动作。连接件即对象间交互的方式,对象是通过函数和过程函的调用来交互的。它具有封装性,一个对象的改变不会影响其他对象。对象又有状态和操作,也有责任维护状态。这种解雇风格中包含封装、交互、多态、集成和重用等特征。

      层次结构架构风格:层次系统组织成一个层次结构,构件在一些层实现了虚拟机。连接件通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。这个风格的特点是每层为上一层提供服务,使用下一层服务,只能见到与自己邻接的层。大的问题分解为若干个渐进的小问题,逐步解决,隐藏了很多复杂度。修改一层,最多影响两层,而通常只能影响上层。上层必须知道下层的身份,不能调整层次之间的顺序。

    3,独立构件风格

      进程通信架构风格:构件是独立的过程,连接件是消息传递。这种风格的特点是构件通常是命名过程,消息传递的方式可以是点到点、异步和同步方式,以及远过程调用等。

      事件驱动架构风格:构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中其他构件中的过程在一个或过个事件中注册,当一个事件触发,系统自动调用在这个事件中注册的所有过程。一个事件的触发就导致了另一个模块中过程的调用。这种风格中的构件是非命名的过程,它们之间交互的连接件往往是以过程之间的隐式调用(Imlicit Invocation)来实现的。基于事件的隐式调用风格的主要优点是为软件重用提供了强大的支持,并为构件的维护和演化带来了方便,其缺点是构件放弃了对系统计算的控制。

    4,虚拟机风格

      解释器架构风格:一个解释器通常包括完成解释工作的解释引擎、一个包含将被解释的代码的存储区、一个记录解释引擎当前工作状态的数据结构,以及一个记录源代码被解释执行进度的数据结构。具有解释器风格的软件中含有一台虚拟机,可以仿真硬件的执行过程和一些关键应用,其缺点是执行效率较低。

      基于规则的系统:包括规则集、规则解释器、规则/数据选择器及工作内存。

    5,仓库风格

      数据库架构风格:数据库架构是仓库风格最常见的形式,构件主要有两大类,一个是中央共享数据源,保存当前系统的数据状态;另一个是多个对处理元素,处理圆度对数据元素进行操作。

      黑板架构风格:黑板架构包括知识源、黑板和控制3个部分,知识源包括若干干独立计算的不同单元,提供解决问题的知识。它响应黑板上的变化,也只修改黑板;黑板是一个全局数据库,包含解域的全部状态,是知识源互相作用的唯一媒介。知识源响应通过黑板状态的变化来控制,黑板架构风格通常应用于对解决问题没有确定性算法的系统中,如信号处理、问题规划以及编译器优化等软件系统的设计中。

  • 相关阅读:
    微信小程序使用场景及取名“潜”规则
    微信小程序入门——Mustache语法学习
    微信小程序开发需要注意的29个坑
    微信小程序入门——怎么建多个项目?(导入官方Demo程序进行学习)
    精进:如何成为一个很厉害的人---书摘
    软件项目如何控制需求蔓延
    给现有MVC 项目添加 WebAPI
    Web API与国际化
    基于Attribute的Web API路由设置
    NuGet学习笔记1——初识NuGet及快速安装使用
  • 原文地址:https://www.cnblogs.com/guanghe/p/15409638.html
Copyright © 2011-2022 走看看