当前位置: 首页 > 编程日记 > 正文

软件体系结构风格(第5-8课时)

摘要:本文给出软件体系结构风格的定义,并介绍几种常用风格:管道过滤器、数据抽象和面向对象组织,基于事件的隐式调用,分层系统,仓库系统,过程控制环路

  1. 软件体系结构风格是什么
    描述特定系统组织方式惯用范例
    组织方式即静态表述的样例。
    惯用范例是反应众多系统共有的结构和语义,独立于实际问题。
    体系结构风格指导如何将各个模块和子系统有效地组织成一个完整的系统。

  2. 管道/过滤器风格
    该风格的构件被称为过滤器,读输入的数据流,经过内部处理,产生输出数据流。
    该风格的连接件被称为管道,将一个过滤器的输出传入到另一个过滤器的输入。
    该风格的特点:
    ①过滤器虽然可以增量式地处理数据,但是它们是独立的。
    ②管道和过滤器的正确输出不依赖其顺序。(实际可能不是这样)
    实例:
    编译器,功能程序,并行程序。
    在这里插入图片描述

  3. 数据抽象和面向对象组织
    该风格的构件是类或抽象数据类型的实例即对象。
    该风格的连接件是方法(有时根据有无返回值细分为函数和过程)。
    在这里插入图片描述

  4. 基于事件的隐式调用(难点)
    为何叫隐式调用——构件不直接调用一个过程,而是触发或广播一个或多个事件。
    该风格的构件分为两类:事件源(也叫事件接收)和事件处理。
    在这里插入图片描述
    这两类构件本无关。通过注册机制(也叫事件处理机制)产生联系。事件源类似GUI中的按钮,事件处理类似程序员写的事件响应函数。(一种动态绑定?)
    该风格的特点:事件的触发者并不知道哪些构件会被这些事件影响。(对应设计模式——观察者模式)
    实例:数据库管理系统,用户界面。

  5. 分层系统
    按照层次结构组织,每一层都为上一层提供了相应的服务,并且接受下一层的服务。
    宏观上表现为层与层间调用,微观上表现为一些内层之对其相邻层和某些用于输出的函数可见,对于其他外部的层隐藏。
    在分层系统的一些层次中构件实现了虚拟机。
    连接件通过协议定义,协议规定了层次之间的交互方式。
    在这里插入图片描述
    图片英文翻译:箭头所指-各种元素的集合,过程调用
    层从里到外-内核层,基本功能层,应用系统层,用户
    实例:分层的通信协议

  6. 仓库系统
    最大的特点:有一个中央数据结构(即数据仓库,比数据库多一些AI/BI)
    构件:中央数据结构和一些独立构建的集合。
    仓库和在系统中很重要的外部构件之间的相互作用。
    实例:需要使用一些复杂表征的信号处理系统。
    在这里插入图片描述
    英文翻译:箭头所指/直接存取,计算,存储器;ks为knowledge source知识源。
    黑板系统:中央仓库里的数据可共享。

  7. 过程控制环路
    源自硬件领域,可以联系机器学习的模型训练过程。
    该风格将事务处理看成输入、加工、输出、反馈、再输入的一个持续的过程模型。
    通过持续性的加工处理过程将输入数据转换成既定属性的“产品”。(产品是想要的正确的输入)
    在这里插入图片描述

相关文章:

C#中调用Windows API时的数据类型对应关系

C#中调用Windows API时的数据类型对应关系 原文 C#中调用Windows API时的数据类型对应关系 BOOLSystem.Int32 BOOLEANSystem.Int32 BYTESystem.UInt16 CHARSystem.Int16 COLORREFSystem.UInt32 DWORDSystem.UInt32 DWORD32System.UInt32 DWORD64System.UInt64 …

linux下安装db2

最近研究了一下在 ubuntu下安装db2的过程,很快就完成安装,特贴出来供大家讨论,如有错误请多多指教。 注意:安装过程请使用root用户,否则会出现安装失败的情况; 安装过程: 准备工作: …

使用 SAX 解析器简化文档处理程序的编写

http://www-900.ibm.com/developerWorks/cn/xml/x-dochan.shtml有时候 SAX 文档处理程序的代码可能变得非常麻烦、结构性差而且难以维护,尤其是对于那些包含多种不同元素的复杂 XML 结构。本文介绍了应对这种问题的设计策略,从而有助于改进代码的质量和可…

软件体系结构风格之C/S,三层C/S,与BS

C/S的物理结构,其发展历程为(1)->(3)->(2),本文接下来要介绍的C/S为(3),即胖客户端瘦服务器,服务器只管数据库,接下来要介绍的三层C/S为(2),即客户端不胖不瘦。 C/S软件体系结构 背景:基于资源不对等&#xff0…

HDU-2020

绝对值排序 Problem Description输入n(n<100)个整数&#xff0c;按照绝对值从大到小排序后输出。题目保证对于每一个测试实例&#xff0c;所有的数的绝对值都不相等。 Input输入数据有多组&#xff0c;每组占一行&#xff0c;每行的第一个数字为n,接着是n个整数&#xff0c;…

Java归去来第2集:利用Eclipse创建Maven Web项目

一、前言 如果还不了解剧情&#xff0c;请返回第一集的剧情 Java归去来第1集&#xff1a;手动给Eclipse配置Maven环境 二、利用Eclipse创建Maven Web项目 选择File-New-Project 然后选择Maven-Maven Project 选择项目所在的工作空间目录&#xff0c;然后下一步 选择模…

vs2005什么时候能出正式版

2005试用版本出了很久了&#xff0c;不知道什么时候能出正式版&#xff0c;不会真得要推迟到2005年吧。企盼中…… 转载于:https://www.cnblogs.com/playboy2005/archive/2004/09/22/45563.html

人工神经网络是如何实现存算一体的

摘要 本文内容如题。 下图是一个神经元模型 可以将其抽象为一个数学函数yf(w1x1w2x2…wn*xnb)。也就是这个模型同时涵盖输入输出和进行计算。

编码能力的提升?_20131228

我在编程过程中发现&#xff0c;编码也是一很重要的能力&#xff0c;故花一点时间对其进行思考。 现将思考的成果与各位同行分享&#xff1b;我希望大家在看到以后&#xff0c;能提供宝贵的意见&#xff0c;先谢之&#xff01; 转载于:https://www.cnblogs.com/uestc999/p/3495…

Microsoft PowerToys for Windows XP

它们又卷土重来了&#xff01;PowerToys是由开发人员在软件产品正式发布并投放生产后相继编制的附加程序。它们的出现不仅使Windows体验更加兴味盎然&#xff0c;而且&#xff0c;还为Windows系统平添了许多功能特性。 说明&#xff1a;我们已为确保PowerToys的正常运行而付出了…

mysql主从配置读写分离笔记

第二次回头看了&#xff0c;第一次学完后感觉都会了&#xff0c;回头再看才发现什么都想不起来了。还得查资料再学习&#xff0c;虽然很简单。还是做个笔记吧&#xff01;笔记有点糙 就是自己看的因为主要是测试主从和读写分离 所以直接 yum install -y mariadb mariadb-server…

通用软件测试的6个角度

之后的课程都会围绕此展开 以QQ邮箱为例 外观界面测试 页面外观背景颜色、字体、字体格式、页面图案、动画、窗体布局功能测试 输入正确的用户名和密码可以登录&#xff0c;其他都不可性能测试 输入完邮箱的用户名和密码并单击登录按钮后&#xff0c;用户等待多长时间可以登录…

easyui源码翻译1.32--Messager(消息窗口)

前言 使用$.messager.defaults重写默认值对象。下载该插件翻译源码 消息窗口提供了不同的消息框风格&#xff0c;包含alert(警告框), confirm(确认框), prompt(提示框), progress(进度框)等。所有的消息框都是异步的。用户可以在交互消息之后使用回调函数去处理结果或做一些自己…

新闻网站个人中心(查询用户的关注信息)流程分析

1.获取当前用户登录状态 2.获取参数 用户的id user_id 3.获取新闻作者的id 4.如果新闻作者id和用户id 5.返回内容给前端转载于:https://www.cnblogs.com/zxt-cn/p/9158860.html

物联网技术与应用(第1-2课时)(cont.)

物联网的定义&#xff1a; 通过射频识别&#xff08;RFID&#xff09;、红外感应器、全球定位系统、激光扫描器等信息传感设备&#xff0c;按约定的协议&#xff0c;将任何物品通过有线与无线方式与互联网连接&#xff0c;进行通信和信息交换&#xff0c;以实现智能化识别、定位…

db2 基础语法

一、db2 基础 基本语法 注释&#xff1a;“--”&#xff08;两个减号&#xff09; 字符串连接&#xff1a;“||” 如set msg’aaaa’||’bbbb’&#xff0c;则msg为’aaaabbbb’ 字符串的引用&#xff1a;‘’&#xff08;一定用单引号&#xff09;&#xff0c;如果需要输入单引…

Repeater分页代码

//ASP.NET中的DataList和Repeater提供了简单快速的方法來显示,其间&#xff0c;我们可以使用<ItemTemplate>更是使我们能随心所欲的控制数据的排放样式&#xff01; //.可惜的是它们不像Datagrid那样&#xff0c;有内置的分页功能。 // //如何解决呢&#xff1f; // //其…

消失,只为一个人存在……

好像很久很久没有24小时挂在网上了…… 每天收到的短消息来源越来越单一…… 在朋友中消失&#xff0c;所有的来电和消息&#xff0c;都不愿意理会…… 朋友虽然很重要&#xff0c;可是现在只想为一个人存在。 请各位好朋友原谅&#xff0c; 我就是那种重色轻友的人嘛…… 转载…

统一建模语言——UML(第9-20课时)(cont.)

文章目录UML概述UML是什么UML能做什么为什么要学UMLUML构造需求模型用例建模技术绘制用例图识别执行者识别用例检查形式关联关系编写用例文档用例文档的组成部分详细说明检查用例模型状态图定义组成元素复杂一点活动图定义作用组成元素绘制技巧例顺序图定义作用组成元素UML构造…

xunsearch 迅搜初探

2014年1月2日 19:34:12 1 [rootlocalhost bin]# ./php /usr/local/lamp/xunsearch/sdk/php/util/Quest.php demo "俗话说 OR pid:1"2 在 3 条数据中&#xff0c;大约有 2 条包含 俗话说 OR pid:1 &#xff0c;第 1-2 条&#xff0c;用时&#xff1a;0.0036 秒。3 4 1…

Aria2打造属于自己的下载神器

请关注微信公众号( ?sharingplus) 我使用Aria2差不多已经2年了。在这段时间使用很多下载工具&#xff0c;最开始使用的是迅雷极速版 、后面各种原因不好使了。Free Download Manager、uTorrent、qBittorrent、BitComet、IDM等等全部折腾了一遍。各有千秋&#xff0c;在上面中使…

GARFIELD@12-10-2004

无所不用其极 转载于:https://www.cnblogs.com/rexhost/archive/2004/12/10/75223.html

机器学习中的三对性能度量参数

文章目录1 分类结果混淆矩阵2 错误率和精度3 查准率P和查全率R4 真正例率TPR和假正例率FPR1 分类结果混淆矩阵 2 错误率和精度 错误率&#xff1a;分类错误的样本数占样本总数的比例 精度&#xff1a;分类正确的样本数占样本总数的比例 关系&#xff1a;两者之和为1 3 查准率…

管理输入光标的 WIN32 API 函数

下面的 API 函数是用来管理输入光标的 API 函数&#xff0c;下面是在使用C#时声明的这些函数&#xff1a; /**//// <summary> /// 参数说明&#xff1a; /// hwnd : 要创建光标的控件的句柄 /// hbm : 一个位图的句柄&#xff0c;如果指定则使用指定…

linux 防火墙 -netfilter

2019独角兽企业重金招聘Python工程师标准>>> 关于iptables 什么是iptables? 常见于linx系统下的应用层防火墙工具 firewalld 和netfilter Linux 防火墙-netfilter selinux 临时关闭 setenforce 0selinux 永久关闭 vi /etc/selinux/configcentos7 之前使用 netfilte…

信号完整性 带宽的确定

对于只包含很少电容的电路&#xff0c;可认为是梯形边沿&#xff0c;最大带宽可以采用 f1/tr.其中tr为上升时间。 对于有容性负载的电路&#xff0c;可以认为是指数边沿&#xff0c;最大带宽可以采用f4/tr.其中tr为上升时间。 参考书籍《数字信号完整性&#xff1a;互连、封装的…

验证(verification)和确认(validation)

验证&#xff1a;看软件产品是否符合需求文档 确认&#xff1a;看软件产品是否满足用户需求 整个软件测试做的事是验证

dva + antd + mockjs 实现用户管理

1.安装dva-cli npm install dva-cli -g 2.创建应用 dva new dvadashboard [dvadashboard为项目名] 3.安装mockjs npm install mockjs --save4.配置mockjs 打开.roadhogrc.mock.js 设置如下const fsrequire(fs); const pathrequire(path); const mockPathpath.join(__dirname/…

用S60操作系统SDK开发NOKIA手机应用程序(4)- 界面层框架及一些特性

Uikon和Avkon Series 60 将一个用户界面层(Avkon)添加在Symbian OS v7.0s 底层的Uikon 之上。Uikon是Symbian 核心用户界面&#xff0c;Avkon是S60平台的用户界面。Avkon 提供了一 套UI 组件和一个专为Series 60 设备设计的软件框架。UIKON 是所有Symbian OS设备都支持的一种用…

VS2010 发布web项目 问题

载&#xff1a;http://www.cnblogs.com/shaocm/archive/2012/08/10/2632116.html 转载于:https://www.cnblogs.com/zcttxs/p/3507007.html