软件体系结构风格

目录

一、定义

二、.经典软件体系结构风格:

1.管道和过滤器

 2.数据抽象和面向对象系统

3.基于事件系统(隐式调用)

4.分层系统

5.仓库

6.C2风格

7.C/S

8.三层C/S

9.B/S

题:


一、定义

软件体系机构风格是描述某一特定应用领域中系统组织方式的惯用模式

二、.经典软件体系结构风格:

1.管道和过滤器

过滤必须独立的实体,它不能与其他的过滤器共享数据,而其他过滤器不知道它的上游和下游的标识

正确性不依赖于过滤器进行增量计算过程顺序

优点:

  1. 良好的隐蔽性和高内聚,低耦合的特点
  2. 允许设计师将整个系统的输入/输出行为看成多个过滤器的简单合并
  3. 支持重用
  4. 系统维护和增强系统性能简单
  5. 允许对一些如吞吐量,死锁等属性分析
  6. 支持并行

缺点:

  1. 导致进程成为批量处理结构
  2. 不适合处理交互的应用

应用:

传统的编译器

 2.数据抽象和面向对象系统

这种风格建立在数据抽象和面向对象的基础上,数据的表示方法和它的相应操作封装在一个抽象数据类型或对象中。对象被称为构件,负责保持资源的完整性,通过函数和过程的调用来交互。

优点:

  1. 应为对象对其他隐藏它的标识,所以可以改变一个对象的标识,而不影响其他
  2. 将一些数据存取操作的问题分解成一些交互的代理程序集合

缺点:

  1. 改变一个对象就要改变多个调用的对象

3.基于事件系统(隐式调用)

思想:构件不直接调用一个过程,而是触发或广播一个或多个事件

隐式调用:一个事件的触发就导致了另一个模块中的过程的调用。

风格:事件的触发者不知道那些构件会被调用

应用:调试

优点:

  1. 为软件重用提供了强大的支持
  2. 为改进系统带来了方便

缺点:

  1. 数据交互问题
  2. 构件放弃了对系统计算的控制

4.分层系统

连接件通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束,基于可增加抽象层的设计

应用:分层通信协议

优点:

  1. 可把一个复杂的程序按递增的步骤进行分解
  2. 支持功能增强
  3. 支持可重用

缺点:

  1. 很难找到一个合适的,正确的层次抽象方法
  2. 不容易划分

5.仓库

中央数据结构说明当前状态,独立构件在中央数据存储上执行

黑板:中央数据结构的当前状态触发进程执行的选择

应用:信号处理领域、如语言和模式识别,松耦合代理数据共享存取

组成:知识源、黑板数据结构、控制

6.C2风格

通过连接件绑定在一起的,按照一组规则运作的并行构件网络。

特点:

  1. 可以将任意复杂的功能封装在一起
  2. 连接件之间异步消息交换机制来实现
  3. 构件相对独立,构件之间依赖性较少

7.C/S

基于资源不对等,有三个主要的部分:数据库管理,客户应用程序和网络

保证了系统的并发性,使网络上传输的数据量减少到最少,从而改善系统的性能

优点:

  1. 适应性和灵活性
  2. 功能充分隔离

缺点:

  1. 成本高
  2. 客户端程序设计复杂
  3. 信息内容单一
  4. 用户界面风格不一
  5. 移植困难
  6. 维护和升级困难
  7. 新技术不易开发

8.三层C/S

 具有强大的书操作和事物处理能力,模型思想简单易于人们理解和接受

三层:

表示层:用户接口部分,他担负着用户与应用间的对话功能

功能层:将具体的业务处理逻辑编入程序,确认用户对应和数据库存取权限的功能以及记录系统处理日志功能

数据层:数据库管理系统,负责管理对数据库的读写

应用:某石油管理局劳动管理

优点:

  1. 提高系统和软件的可维护性和可扩展性
  2. 良好的可升级性和开放性
  3. 并行开发
  4. 隔离表示层和数据层

9.B/S

 浏览器/web服务器/数据库服务器,提供了异种机,异种网,等开放性基础

题:

异构:

内外有别:企业内部用户通过局域网直接访问数据库服务器,采用c/s,外部用户通过B/S

优点:外部不可直接访问数据库服务器能保证相对安全,内部用户交互性强

缺点:外服务维护困难

查改有别:凡是须执行维护和修改数据操作均使用C/S,查询和浏览用B/S

最后一篇软件体系结构复习文章,祝大家都不挂科!!!

附上我的保护神

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/11175.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

没想到 JSON 还可以像 XPATH 方式进行操作,简直不要太爽

Jayway JsonPath 是一种 Java 库,用于在 Java 应用程序中解析和操作 JSON 数据。它提供了一种便捷的方式来定位和提取 JSON 文档中的信息,通过使用类似于 XPath 的语法,开发人员能够轻松地选择和操作 JSON 数据。 JsonPath 表达式是由用点分…

物联网系统

文章目录 一、物联网二、物联网系统1.核心特点2.体系构架3.作用 一、物联网 物联网(Internet of Things,IoT)是指将各种物理设备(如传感器、执行器、嵌入式系统等)通过互联网连接起来,并通过云计算系统实现…

通过内网穿透实现远程访问个人电脑资源详细过程(免费)(NatApp + Tomcat)

目录 1. 什么是内网穿透 2. 内网穿透软件 3. NatApp配置 4. 启动NatApp 5. 通过内网穿透免费部署我们的springboot项目 通过内网穿透可以实现远程通过网络访问电脑的资源,本文主要讲述通过内网穿透实现远程访问个人电脑静态资源的访问,下一章节将讲…

C语言/数据解构——(随即链表的复制)

一.前言 嗨嗨嗨,大家好久不见。已经有好几天没更新了。今天我们就分享一道链表题吧——随即链表的复制https://leetcode.cn/problems/copy-list-with-random-pointer废话不多说,让我们直接开始今天的题目分享吧。 二.正文 1.1题目描述 他和单链表不同…

超级好用的C++实用库之点阵字体

💡 需要该C实用库源码的大佬们,可搜索微信公众号“希望睿智”。添加关注后,输入消息“超级好用的C实用库”,即可获得源码的下载链接。 概述 点阵字体是一种数字字体,其中每个字符都由一定尺寸的像素矩阵组成。比如&…

华为OD机试 - 求幸存数之和(Java 2024 C卷 100分)

华为OD机试 2024C卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷C卷)》。 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试…

机器学习面试篇

如何理解机器学习数据集的概念 数据集是机器学习的基础,它包括了用于训练和测试模型所需的数据。数据集通常以矩阵的形式存在,其中每一行代表一个样本(或实例),每一列代表一个特征(或属性)。…

JVM从1%到99%【精选】-类加载子系统

目录 1.类的生命周期 1.加载 2.连接 3.初始化 2.类的加载器 1.类加载器的分类 2.双亲委派机制 3.面试题:类的双亲委派机制是什么? 4.打破双亲委派机制 1.类的生命周期 类加载过程:加载、链接(验证、准备、解析&a…

数据与结构--堆

堆 堆的概念 堆&#xff1a;如果有一个关键码的集合K{k0,k1,k2,…,kn-1}&#xff0c;把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中&#xff0c;并满足ki<k2i1且ki<k2i2&#xff08;或满足ki>k2i1且ki>k2i2&#xff09;&#xff0c;其中i0,1,2,…

PostgreSQL自带的命令行工具22- pg_controldata

PostgreSQL自带的命令行工具22- pg_controldata 基础信息 OS版本&#xff1a;Red Hat Enterprise Linux Server release 7.9 (Maipo) DB版本&#xff1a;16.2 pg软件目录&#xff1a;/home/pg16/soft pg数据目录&#xff1a;/home/pg16/data 端口&#xff1a;5777pg_controlda…

深度缓冲技术在AI去衣中的神奇作用

引言&#xff1a; 随着人工智能技术的飞速发展&#xff0c;其在图形处理和视觉领域的应用日益增多。AI去衣技术便是其中一个颇具争议但又技术上引人入胜的话题。今天&#xff0c;我们将深入探讨一项关键技术——深度缓冲&#xff08;Depth Buffering&#xff09;&#xff0c;它…

MPLS技术基础

一、MPLS的基本概述 1、MPLS【Multi-Protocol Label Switch|多协议标签交换】 2、MPLS最早由Cisco System公司开发&#xff0c;最早早该技术称之为Tagging Switch&#xff0c;后被IETF&#xff08;internet 工程任务小组&#xff09;改名为MPLS&#xff0c;进而向业界公开推广…

SpringAI 技术解析

1. 发展历史 SpringAI 的发展历史可以追溯到对 Spring 框架的扩展和改进&#xff0c;以支持人工智能相关的功能。随着人工智能技术的快速发展&#xff0c;SpringAI 逐渐成为 Spring 生态系统中的一个重要组成部分&#xff0c;为开发者提供了便捷、灵活的解决方案。 项目的灵感来…

如何用opencv去掉单元格的边框线,以提高Tesseract识别率?

在OpenCV中处理从表格切割下来的图片&#xff0c;并去掉单元格的边框线&#xff0c;以提升Tesseract的识别准确率&#xff0c;确实是一个具有挑战性的任务。在这种情况下&#xff0c;我们需要采取一种策略来预处理图像&#xff0c;使得数字与背景之间的对比度增强&#xff0c;同…

数据缓存,可以尝试RocksDB了

shigen坚持更新文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 个人IP&#xff1a;shigen shigen在最近的学习中&#xff0c;接触到了一款新的缓存数据库RocksDB&#xff…

NodeJS编写后端接口

技术栈 1.express&#xff1a;Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建 各种 Web 应用&#xff0c;和丰富的 HTTP 工具&#xff0c;使用 Express 可以快速地搭建一个完整功能的网站。 2.mysql&#xff1a;用于操作MySQL数据库 3.bod…

Spring:深入理解 Spring 事务原理

Spring 事务 Spring 框架支持两种主要的事务管理方式&#xff1a;编程式事务&#xff08;Programmatic Transaction Management&#xff09;和声明式事务&#xff08;Declarative Transaction Management&#xff09;。 1.编程式事务   编程式事务管理指的是在代码中显式地控…

使用 LangGraph 实现邮件智能处理系统来处理客户咨询【附代码】

简介 在这篇博文中&#xff0c;我们将探讨如何使用 LangGraph 结合 RAG&#xff08;Retrieval-Augmented Generation&#xff09;技术来构建一个响应客户邮件的电子邮件智能系统。LangGraph 是一个强大的框架&#xff0c;专为构建和部署基于图的语言应用而设计。它支持复杂的查…

【Linux】centos7安装软件(rpm、yum、编译安装),补充:查找命令的相关文件路径,yum安装mysql

【Linux】技术上&#xff0c;Linux是内核。而术语上&#xff0c;我们通常说的Linux是完整的操作系统&#xff0c;其实称为"Linux发行版"&#xff0c;是将Linux内核和应用系统打包&#xff0c;由不同的发行家族发行了不同版本。Linux发行版众多&#xff0c;主要有RedH…

职校智慧校园现状及问题分析

各大中职院校及高职院校是校园信息化的先行者和开拓者&#xff0c;很早就开始注重信息化基础设施建设和信息化人文素养的提升。在过去几年里&#xff0c;随着国家大力发展与扶植职校教育&#xff0c;学校投入相当的经费进行了校园信息通信网络、计算机等基础硬件设备建设&#…