软件架构设计师需要记住的内容(软件架构)
  h9htfs4cnhmS 2023年11月14日 24 0

软件架构风格

软件架构风格是指描述某一特定领域中系统组织方式的惯用模式。系统架构风格定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束则表示组件和连接件如何组合起来。

软件架构为软件系统提供了一个结构、行为、属性的高级抽象,有构成系统的元素的描述,这些元素的相互作用,指导元素集成的模式以及这些模式的约束组成。

软件架构的作用:

软件架构是项目干系人进行交流的手段,明确了系统实现的约束条件,决定了开发与维护的组织结构,制约着系统的质量属性。

软件架构使推理和控制的更改更加简单,有助于循序渐进的原型开发,可以作为培训的基础。

软件架构是可传递和可复用的模型,通过研究软件架构可以预测软件的质量。

分类

子类

数据流风格

批处理、管道-过滤器

调用/返回风格

主程序/子程序、面向对象、层级结构

独立构件风格

进程通信、事件驱动系统(隐式调用)

虚拟机风格

规则系统、解释器

仓库风格

数据库系统、黑板系统、超文本系统

数据流风格

(1)批处理序列

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

(2)管道过滤器

软件架构设计师需要记住的内容(软件架构)_软件架构

每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常是通过对输入数据流的变换或计算来完成的,包括通过计算和增加信息以丰富数据、通过浓缩和删除以精简数据、通过改变记录方式以转化数据和递增地转化数据等。这里的构件称为过滤器,连接件就是数据流传输的管道,将一个过滤器的输出传到另一个过滤器的输入。

优点

缺点

典型应用

1、松耦合[高内聚-低耦合] ;

2、良好的重用性/可维护性;

3、可扩展性[标准接口适配] ;

1、良好的隐蔽性

5、支持并行。

1、交互性较差;

2、复杂性较高

3、性能较差 (每个过滤器都需要解析与合成数据)

传统编译器

网络报文处理

调用/返回风格

(1)主程序/子程序

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

(2)面向对象

构件是对象,对象是抽象数据类型的实例。在抽象数据类型中,数据的表示和它们的相应操作被封装起来,对象的行为体现在其接受和请求的动作。连接件即是对象间交互的方式,对象是通过函数和过程的调用来交互的


(3)层次结构

概念: 构件组织成一个层次结构,连接件通过决定层间如何交互的协议来定义。每层为上一层提供服务,使用下一层的服务,只能见到与自己邻接的层。通过层次结构,可以将大的问题分解为若干个渐进的小问题逐步解决,可以隐藏问题的复杂度。修改某一层,最多影响其相邻的两层 (通常只能影响上层)

优点

缺点

特点

1、良好的重用性,只要接口不变可用在其它处;

2、可维护性好;

3、可扩展性好,支持递增设计。

1、并不是每个系统都方便分层;

2、很难找到一个合适的、正确的层次

抽象方法。

3、不同层次之间耦合度高的系统很难

实现。

各个层次的组件形成不同功能级别的虚拟机;多层相互协同工作,而且实现透明

独立构件风格

优点

缺点

特点

1、松耦合。

2、良好的重用性/可修改性/可扩展性。


1、构件放弃了对系统计算的控制。一个构件触发一个事件时,不能确定其它构件是否会响应它。而且即使它知道事件注册了哪些构件的过程,它也不能保证这些过程被调用的顺序。

2、数据交换的问题。

3、既然过程的语义必须依赖于被触发事件的上下文约束,关于正确性的推理就存在问题

系统由若干子系统构成且成为一个整

体;系统有统一的目标;子系统有主从之

分;每一子系统有自己的事件收集和处

理机制

(1)进程通信

构件是独立的过程,连接件是消息传递。构件通常是命名过程,消息传递的方式可以是点对点、异步或同步方式,以及远程过程 (方法) 调用等。

(2)事件驱动系统

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

虚拟机风格

(1)解释器

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

(2)基于规则系统

基于规则的系统包括规则集、规则解释器、规则/数据选择器和工作内存,一般用在人工智能领域和 DSS 中。

子分类

优点

缺点

特点


1、松耦合。

2、良好的重用性/可修改性/可扩展性。


1、构件放弃了对系统计算的控制。一个构件触发一个事件时,不能确定其它构件是否会响应它。而且即使它知道事件注册了哪些构件的过程,它也不能保证这些过程被调用的顺序。

2、数据交换的问题。

3、既然过程的语义必须依赖于被触发事件的上下文约束,关于正确性的推理就存在问题

系统由若干子系统构成且成为一个整

体;系统有统一的目标;子系统有主从之

分;每一子系统有自己的事件收集和处

理机制

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  eo9lmrKcoG9P   2023年12月11日   33   0   0 组播多点HCIP数据
h9htfs4cnhmS