软件体系结构风格

目录

一、定义

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

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.mfbz.cn/a/619183.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#泛型委托

在C#中,delegate 关键字用于声明委托(delegates),委托是一种类型安全的函数指针,允许你传递方法作为参数或从方法返回方法。有时我们需要将一个函数作为另一个函数的参数,这时就要用到委托(Dele…

java项目之车辆管理系统(springboot+vue+mysql)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的车辆管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 车辆管理系统的主要使用者分…

Deckset for Mac:让演示文稿制作更轻松

还在为繁琐的演示文稿制作而烦恼吗?Deckset for Mac来帮您解决!它支持Markdown语言,让您只需专注于内容的创作,无需在排版和设计上耗费过多精力。丰富的主题和布局选项,让您能够轻松打造出专业级的演示文稿。快来体验D…

云计算第十二课

安装虚拟机 第一步新建虚拟机 选择自定义安装 下一步 选择稍后安装操作系统 选择系统类型和版本 选择虚拟机文件路径(建议每台虚拟机单独存放并且路径不要有中文)点击下一步 选择bios下一步 选择虚拟机处理器内核数量 默认硬盘或者自行调大硬盘 选择虚…

软件测试的分类

1.用户分类 2.查看代码分类 3.阶段分类

云计算十三课

centos安装 点击左上角文件 点击新建虚拟机 点击下一步 点击稍后安装操作系统,下一步 选择Linux(l)下一步 设置虚拟机名称 点击浏览选择安装位置 新建文件夹设置名称不能为中文,点击确定 点击下一步 设置磁盘大小点击下一步…

4.1 编写程序,从键盘接收一个小写字母,然后找出他的前导字符和后续字符,再按顺序显示这三个字符

方法一: 运行效果: 输入B,输出显示ABC;输入A,输出显示AB 思路: 1、通过键盘输入接收一个字母。 2、将输入的字母减去1,得到前导字符,然后输出。 3、将输入的字母加上1,得…

【python量化交易】qteasy使用教程07——创建更加复杂的自定义交易策略

创建更加复杂的自定义交易策略 使用交易策略类,创建更复杂的自定义策略开始前的准备工作本节的目标继承Strategy类,创建一个复杂的多因子选股策略策略和回测参数配置,并开始回测 本节回顾 使用交易策略类,创建更复杂的自定义策略 …

(四十)第 6 章 树和二叉树(树的双亲表存储)

1. 背景说明 2. 示例代码 1) errorRecord.h // 记录错误宏定义头文件#ifndef ERROR_RECORD_H #define ERROR_RECORD_H#include <stdio.h> #include <string.h> #include <stdint.h>// 从文件路径中提取文件名 #define FILE_NAME(X) strrchr(X, \\) ? strrch…

基于yolov5+streamlit目标检测演示系统设计

YOLOv5与Streamlit&#xff1a;智能目标检测可视化展示介绍 随着人工智能技术的飞速发展&#xff0c;目标检测技术已成为推动智能化社会进步的关键技术之一。在众多目标检测算法中&#xff0c;YOLOv5以其卓越的性能和实时性&#xff0c;成为了业界的佼佼者。与此同时&#xff…

代码随想录阅读笔记-动态规划【爬楼梯】

题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 注意&#xff1a;给定 n 是一个正整数。 示例 1&#xff1a; 输入&#xff1a; 2输出&#xff1a; 2解释&#xff1a; 有两种方法可以爬到楼…

[AutoSar]BSW_Diagnostic_002 DCM模块介绍

目录 关键词平台说明背景一、DCM所处架构位置二、DCM 与其他模块的交互三、DCM 的功能四、DCM的内部子模块4.1 Diagnostic Session Layer (DSL)4.1 DSL 与其他模块的交互 4.2 Diagnostic Service Dispatcher (DSD)4.3 Diagnostic Service Processing (DSP)4.4 小结 关键词 嵌入…

vue3土味情话pinia可以持久保存再次修改App样式

我是不是你最疼爱的人-失去爱的城市 <template><div class"talk"><button click"getLoveTalk">土味情话</button><ul><li v-for"talk in talkStore.talkList" :key"talk.id">{{ talk.title }}<…

计算机服务器中了360后缀勒索病毒怎么解密,360后缀勒索病毒恢复

计算机网络技术的不断发展与应用&#xff0c;为企业的生产运营提供了极大便利&#xff0c;大大提高了企业的办公效率&#xff0c;为企业的生产运营注入了新的动力&#xff0c;但网络是一把双刃剑&#xff0c;在为企业提供便利的同时&#xff0c;也为企业的数据安全带来严重威胁…

macos使用yarn创建vite时出现Usage Error: The nearest package directory问题

步骤是macos上使用了yarn create vite在window上是直接可以使用了yarn但是在macos上就出现报错 我们仔细看&#xff0c;它说的If /Users/chentianyu isnt intended to be a project, remove any yarn.lock and/or package.json file there.说是要我们清除yarn.lock和package.js…

深圳晶彩智能ESP32-1732S019实时观看GPIO的状态

深圳晶彩智能ESP32-1732S019介绍 ESP32-1732S019开发板是基于ESP32-S3-WROOM-1模块作为主控&#xff0c;双核MCU ,集成WI-FI和蓝牙功能&#xff0c;主控频率可达240MHz , 512KB SRAM , 384KB ROM&#xff0c;8M PSRAM&#xff0c;16MB Flash&#xff0c;显示分辨率为170*320 I…

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

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

单调栈问题

原理 单调栈的核心原理是&#xff1a;在栈内保持元素的单调性&#xff08;递增或递减&#xff09; 单调递增栈&#xff1a; 用于处理“下一个更小的元素”问题。当新元素比栈顶元素小或等于时&#xff0c;直接入栈&#xff1b;否则&#xff0c;一直从栈顶弹出元素&#xff0c…

AtCoder Regular Contest 177 D. Earthquakes(概率 单调栈)

题目 D - Earthquakes 思路来源 官方题解 题解 对于不存在连锁反应的区间&#xff0c;每个区间独立处理&#xff0c;最后求个乘积 对于每个区间&#xff0c;相邻的两个杆子距离都小于H&#xff0c; 意味着没倒的区间是个连续的区间&#xff0c;假设要算i的概率 一定是第i…

金三银四面试题(二十七):适配器模式知多少?

什么是适配器模式 适配器模式&#xff08;Adapter Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许将一个类的接口转换为客户期望的另一个接口。通过适配器&#xff0c;原本不兼容的接口可以一起工作&#xff0c;从而提高系统的灵活性和可扩展性。 关键元素&…