软件体系整理5-6章

2023-05-16

第五章 软件体系结构风格

1.管道过滤器风格

特征:

(1)构件即过滤器(Filter),对输入流进行处理、转换,处理后的结果在输出端流出。而且,这种计算常常是递进的,所以可能在所有的输入接受完之前就开始输出,可以并行地使用过滤器。

(2)连接件位于过滤器之间,起到信息流的导管作用,即管道(Pipe)。

(3)每个构件都有输入/输出集合,构件在输入出读取数据流,在输出处生成数据流。

(4)过滤器必须是独立的实体,它们不了解信息流从哪个过滤器流出,也不需要知道信息将流入哪个过滤器。它们可以指定输入的格式,可以确保输出的结果,但是它们可能不知道管道之后将会是什么样子,过滤器之间也不共享状态。

(记住)管道-过滤器模式的特性之一是过滤器的相对独立性,即过滤器独立完成自身功能,相互之间无须进行状态交互。此外,各过滤器无须知道输人管道和输出管道所连接的过滤器的存在,仅仅需要对输人管道的输人数据流进行限制,并保证输出管道的输出数据流有合适的内容,但它们并不知道连接在其输人、输出管道上的其他过滤器的实现细节。并且,整个管道过滤网络的最终输出和网络中各个过滤器执行操作的顺序无关。

优点:

(1)由于每个构件的行为不受其他构件的影响,因此,整个系统的行为比较易于理解。

(2)支持功能模块的复用。

(3)具有较强的可维护性与可扩展性。

(4)支持特殊的分析

(5)支持并发执行。

2.黑板模式

“黑板”模式类似于这样一个情形,即让专家们坐在真实黑板前并一起工作来解决一个问题。每个专家独立评估解法的当前状态,并可在任何时间到黑板上添加、更改或删除信息。人们往往要决定接下来谁去访问黑板。在黑板模式中,如果可用的组件超过一个,仲裁者(moderator)组件决定程序执行的顺序。

 

分层系统风格p101   OSI

3. 一个标准的黑板型仓库模式系统通常包括3个组成部分:

(1)知识源:

(2)中央数据单元:

(3)控制单元:

 

4. 模型-视图-控制器风格 — MVC的实现

5.解释器风格

由1个执行引擎+3个存储器, 

一共4个构件组成:                             

正在被解释的程序、执行引擎、被解释的程序的当前状态、执行引擎的当前状态

优点:(1)有助于应用程序的可移植性与程序设计语言的跨平台能力。

(2)可以对未实现的硬件进行仿真。

缺点:额外的间接层次带来的系统性能的下降。

5.C/S体系结构

a.表示层

  • 表示层是应用的用户接口部分,它负担着用户与应用之间的对话功能,用于检查用户从键盘等输入的数据,显示应用输出的数据。
  • 在变更用户界面时,只需改写显示控制和数据检查程序,而不影响其他两层。
  • 检查的内容也仅限于数据的形式和取值的范围,不包括有关业务本身的处理逻辑。

b.功能层

  • 功能层相当于应用的本体,用于将具体的业务处理逻辑编入程序。
  • 表示层与功能层之间的数据交互要尽可能简洁。
  • 在功能层中包含确认用户对应用与数据库存取权限的功能以及记录系统处理日志的功能。

c. 数据层

  • 数据层就是数据库管理系统,负责管理对数据库的读写操作。
  • 数据库管理系统必须能迅速执行大量数据的更新和检索。

6.B/S风格

 

  

 

7.正交体系结构

正交软件体系结构的主要特征:

(1)正交软件体系结构由完成不同功能的n(n>1)个线索(子系统)组成。

(2)系统具有m(m>1)个不同抽象级别的层。

(3)线索之间是相互独立的(正交的)。

(4)系统有一个公共驱动层(一般为最高层,和公共数据结构(一般为最低层)。

8.异构体系结构

异构体系结构的实例 — “内外有别”模型

优点:

(1)外部用户不直接访问数据库服务器,能保证企业数据库的相对安全;

(2)企业内部用户的交互性较强,数据查询和修改的响应速度较快。

缺点:企业外部用户修改和维护数据时速度较慢、较繁琐,数据的动态交互性不强。

异构体系结构的实例 — “查改有别”模型

不管用户通过什么方式(局域网或Internet)连接到系统,凡是需要执行维护和修改数据操作的,就使用C/S体系结构;如果只是执行一般的查询和浏览操作,则使用B/S体系结构。

缺点:外部用户能够直接通过Internet连接到数据库服务器,企业数据容易暴露给外部用户,给数据安全造成了一定威胁。

第六章 面向对象的软件设计方法

1.面向对象的系统

面向对象的分析(OOA,Object Oriented Analysis)

面向对象的设计(OOD,Object Oriented Design)

面向对象的编程实现(OOP,Object Oriented Programming)。

2.OOD模型

OOD主要解决与实现有关的问题,基于OOA模型,针对具体的软、硬件条件(如机器、网络、OS、GUI、DBMS等)产生一个可实现的OOD模型。

3. 调整继承层次

(1)使用多重继承机制时,应该避免出现属性及服务的命名冲突。

一种多重继承模式的例子,这种模式可以称为窄菱形模式。使用这种模式时出现属性及服务命名冲突的可能性比较大。

另一种多重继承模式,称为阔菱形模式。使用这种模式时,属性及服务的名字发生冲突的可能性比较小,但是,它需要用更多的类才能表示同一个设计。

 

  
  

窄菱形模型                                      阔菱形模式

(2)把多重继承简化为单一层次的单继承。

 

  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件体系整理5-6章 的相关文章

  • DOCKER默认虚拟网卡IP地址与局域网冲突解决

    一 背景 docker启动时默认会创建一个docker0网桥 xff0c 它在内核层连通了其他的物理或虚拟网卡 xff0c 相当于将所有容器和其主机都放到同一个网络 但是部署在内网中的IP段存在有此网段的IP时 xff0c 会导致冲突 xf
  • 学习Hadoop MapReduce与WordCount例子分析

    MapReduce框架一直围绕着key value这样的数据结构 xff0c 下面以官方自带的WordCount为例子 xff0c 自己分析MapReduce的工作机制 MapReduce可以分为Map和Reduce过程 xff0c 代码实
  • mysql GTID主从复制 跳过复制错误

    在mysqlGTID下 xff0c 使用 span class hljs operator span class hljs keyword SET span span class hljs keyword GLOBAL span SQL S
  • 在Ubuntu/Debian Linux系统上检查已经安装软件包的版本

    如果要在Ubuntu Debian Linux操作系统上检查已经安装软件包的版本 xff08 知道Ubuntu Debian系统上可用的软件包版本 xff09 xff0c 可使用apt apt cache aptitude和apt show
  • Ubuntu16.04网络连接正常但浏览器无网络

    ubuntu xff0c google浏览器突然不能上网了 xff0c 经过一番折腾 xff0c 终于解决了问题 xff0c 在此记录一下 开始如下图 xff1a 然而 ping 一下百度 xff0c 是可以 ping 通的 xff0c 说
  • 读书笔记 --《 java核心技术卷一》

    Java核心技术卷 1 第一部分 xff08 java基本介绍 xff09 java特性 简单性 面向对象 分布式 健壮性 安全性 体系结构中立 编译器生成一个体系结构中立的目标文件格式 xff0c 这是一种编译过的代码 xff0c 只要有
  • 关于VNC远程登录ubuntu的各种问题及解决方法

    关于VNC远程登录ubuntu的各种问题及解决方法 2013 04 11 10 42 37 标签 xff1a vnc ubuntu windows d键 全屏 1 系统配置 首先要安装vnc服务器端 sudo apt get install
  • ST-Link 在keil5无法下载程序解决办法

    以前一直在用J Link下载程序 xff0c 由于工作需要 xff0c 换成ST Link下载程序 第一次用ST Link怎么也下载不下去 xff0c 后来差CSDN博客 xff1a https blog csdn net zeroice7
  • 实时时钟DS1302-第1季第14部分-朱有鹏-专题视频课程

    实时时钟DS1302 第1季第14部分 2594人已学习 课程介绍 本课程是 朱有鹏老师单片机完全学习系列课程 第1季第14个课程 xff0c 主要讲解了实时时钟DS1302芯片的编程和使用 xff0c 本课程的关键是引入了时序的概念 xf
  • Mac使用npm install报错,需使用sudo

    1 首先说下个人的经历 xff0c 从18年开始实习第一次使用npm xff0c 当时用npm install却总是会报一些错误 xff0c 主要是因为无权限 最初的解决方案自然是使用sudo xff0c 这个是有效的 如果用sudo还不行
  • 信号量、邮箱、队列与事件

    信号量 xff0c 邮箱 xff0c 队列的最大不同在于它们发送的内容不同 信号量是一个触发信号 xff0c 也是一个计数器 xff0c 等待接收信号的任务一般只有接收到信号才可以执行 xff0c 否则任务一直暂停 邮箱是信号量的扩展 xf
  • 自然语言处理中的Attention Model:是什么及为什么

    版权声明 xff1a 可以任意转载 xff0c 转载时请标明文章原始出处和作者信息 author 张俊林 xff08 想更系统地学习深度学习知识 xff1f 请参考 xff1a 深度学习枕边书 xff09 要是关注深度学习在自然语言处理方面
  • 新浪微博用户兴趣建模系统架构

    版权声明 xff1a 可以任意转载 xff0c 转载时请标明文章原始出处和作者信息 author 张俊林 作者注 xff1a 这是2011年左右新浪微博个人兴趣模型的技术架构 xff0c 所以你从中是看不到目前很多流行的NoSQL平台的 x
  • AES CBC模式 原理 c++完整代码可运行

    现在网上能找到的AES代码九成都是ECB模式的 xff0c 剩下的一成里又有九成只对十六个一组的数进行了加解密处理 xff0c 压根没有分组 我在网上扒拉了好久都没有找到CBC模式的完整代码 xff0c 只有接口函数 CBC的分组原理就是这
  • c++ char[]与int之间的类型转换

    char数组转int xff0c int转char数组 span class token macro property span class token directive hash span span class token direct
  • 力扣 2437. 有效时间的数目c++

    太恐怖了发现上了两年班我不会写代码了 xff0c 尝试自救一下 这个题直接情况讨论就可以 xff0c 因为情况很少 xff0c 就硬来 官方的方法是递归 xff0c 虽然看着也简单不到哪里去 xff0c 但是我好像确实不太擅长写递归 cla
  • 力扣 874. 模拟行走机器人 c++

    重点在于对哈希表unordered set xff1c pair xff1c int int xff1e xff1e 的应用 xff0c 具体可以看这个博客 哈希表之unordered set xff1c pair xff1c int in
  • 力扣 1015. 可被 K 整除的最小整数 c++

    终于有点熟悉的感觉了 xff0c 很纯粹的小算法 xff0c 题解看官方 xff0c 懒得写了 用不着哪些c 43 43 11甚至17的特性真的是太好了 span class token keyword class span span cl
  • 进制转换 输入一个十进制数N,将它转换成R进制数输出。(Java c++)

    完犊子我不知道这个题的题号是什么 xff0c 来着一个非要在没到截止时间就写博客的人的怨念 输入一个十进制数N xff0c 将它转换成R进制数输出 Input 输入数据包含多个测试实例 xff0c 每个测试实例包含两个整数N 32位整数 和

随机推荐

  • I2C通信之EEPROM-第1季第15部分-朱有鹏-专题视频课程

    I2C通信之EEPROM 第1季第15部分 3173人已学习 课程介绍 本课程是 朱有鹏老师单片机完全学习系列课程 第1季第15个课程 xff0c 主要讲解了EEPROM的编程和使用 xff0c 其中重点是I2C接口 xff0c I2C是物
  • 曼孚科技:7种常用的数据标注工具

    工欲善其事 xff0c 必先利其器 标注工具是数据标注行业的基础 xff0c 一款好用的标注工具是提升标注效率与产出高质量标注数据的关键 常用的数据标注工具主要有以下几种 xff1a 2D框 语义分割 多边形分割 点标注 线标注 视频标注
  • python14(绘图工具matplotlib和echart)

    1 matplotlib 1 绘制折线图 1 温度变化折线图 需求1 绘制10点到12点每分钟的气温 xff0c 如何绘制折线图观察每分钟气温的变化情况 temps 61 random randint 20 35 for i in rang
  • Ubuntu下安装TeamViewer[命令行方式]

    第一步 下载 安装包 从官网下载ubuntu的deb安装包 下载链接 xff1a https downloadus1 teamviewer com download version 12x teamviewer 12 0 71510 i38
  • 树莓派4安装Ubuntu20.04

    1 下载Ubuntu20 04 https ubuntu com download raspberry pi 2 下载image工具 https www raspberrypi org downloads 3 写入镜像 4 安装完成之后 x
  • encoder 基于品高云数据湖的大数据开发实践课程(随手记)-HDFS 的基本操作和 Java API 操作

    文章目录 61 61 1 使用FSDataInputStream获取HDFS的 user hadoop 目录下的task txt的文件内容 xff0c 并输出 xff0c 其中uri为hdfs localhost 9000 user had
  • navicat连接数据库(MySQL)报错1251解决。以及可能报错1045解决

    怀玉 点个关注 xff0c 必回关 话不多说线上结果 图 xff1a 问题说明 xff1a 报错1251是因为root用户密码没有设置或者密码错误 xff0c 我们要做的就是修改或者更新root用户密码 步骤图奉上 xff1a 连接MySQ
  • pvs Error reading device /dev/xxx at 0 length 512.

    背景 xff1a ceph osd 服务器磁盘坏掉 xff0c 将坏掉的 osd 从集群中踢出后 xff0c pvs 报错 系统 centos7 xff0c ceph luminous 1 查看错误信息 root 64 cmp15 pvs
  • 用word发CSDN blog,免去插图片的烦恼

    用csdn自带的网页编辑器 xff0c 最不方便的 xff0c 不是排版 xff0c 而是图片的发布 xff0c 希望能通过下面这个方式得到改善 1 注册博客账号 1 1 打开一个新的Word文档 如果之前没有用过博客功能的话 xff0c
  • openstack如何支持vlan trunk功能

    大多数场景下 xff0c 主机收发的是不带tag的报文 xff0c 但是在实际环境中 xff0c 无论是windows还是Linux环境都通过各自的方法可以收发带有vlan tag的报文 而一个虚机要想接收不同vlan tag的报文 xff
  • 在vscode中调试webpack

    前言 接手了公司的新项目 xff0c 但是由于对整个运作流程不了解 xff0c 想要一步步进行调试加深对项目印象 xff0c 所以搜索了相关资料 xff0c 结合自己实际情况进行调试 调试的两个关键文件 package json 正常的pa
  • AD和DA转换-第1季第16部分-朱有鹏-专题视频课程

    AD和DA转换 第1季第16部分 2091人已学习 课程介绍 本课程是 朱有鹏老师单片机完全学习系列课程 第1季第16个课程 xff0c 主要讲解AD转换和DA转换 目标是理解模拟量和数字量的概念 xff0c 并且学会使用AD转换来采集现实
  • vnc viewer登陆问题

    这里操作的前提是已经 安装了vnc server 登陆SUN 210 server xff0c solaris 10 采用VNC viewer 但是并不是每次登陆都成功 开始总是不成功 采用以下两条命令 xff1a vncserver ki
  • 光谱分布、光谱辐射通量密度与不同时间段分布光谱(图示)

    1 光谱分布图 2 太阳辐射能量图 3 不同时间段的太阳分布光谱图 4 不同波长的光的能量分布主要区域 5 不同波段的使用场景
  • 电磁波波谱及不同波长成像图

    1 电磁辐射波 实际的图像处理应用中 xff0c 最主要的图像来源于电磁 辐射成像 电磁辐射波包括无线电波 微波 红外线 可见光 紫外线 X射线 射线 电磁辐射波的波谱范围很广 xff0c 波长最长的是无线电波 为3 102m xff0c
  • 写给VR手游开发小白的教程:(四)补充篇,详细介绍Unity中相机的投影矩阵

    这篇作为上一篇的补充介绍 xff0c 主要讲Unity里面的投影矩阵的问题 xff1a 上篇的链接写给VR手游开发小白的教程 xff1a xff08 三 xff09 UnityVR插件CardboardSDKForUnity解析 xff08
  • 阿里云centos修改ssh端口后连接失败

    话说本人虽然工作多年 xff0c 一直是linux小白一个 xff0c 估计像我这样的也是没谁了 每次面试的时候面试官一问是否会linux xff0c 都老脸一红啊 为了解决这种情况 xff0c 自己去阿里云买了一台centos的服务器 x
  • linux进程调度方法(SCHED_OTHER,SCHED_FIFO,SCHED_RR)

    linux内核的三种调度方法 xff1a 1 xff0c SCHED OTHER 分时调度策略 xff0c 2 xff0c SCHED FIFO实时调度策略 xff0c 先到先服务 3 xff0c SCHED RR实时调度策略 xff0c
  • 12- 降维算法 (PCA降维/LDA分类/NMF) (数据处理)

    数据降维就是一种对高维度特征数据预处理方法 降维是将高维度的数据保留下最重要的一些特征 xff0c 去除噪声和不重要的特征 xff0c 从而实现提升数据处理速度的目的 PCA算法有两种实现方法 xff1a 基于特征值分解协方差矩阵实现PCA
  • 软件体系整理5-6章

    第五章 软件体系结构风格 1 管道过滤器风格 特征 xff1a xff08 1 xff09 构件即过滤器 xff08 Filter xff09 xff0c 对输入流进行处理 转换 xff0c 处理后的结果在输出端流出 而且 xff0c 这种