在所有对于软件体系结构的定义中,我认为最有代表性的就是Hayes Roth所提出的:“认为软件体系结构是一个抽象的系统规范,主要包括用其行为来描述的功能构件和构件之间的相互连接、接口和关系。”那么,什么是软件体系结构风格呢?所谓软件体系结构风格是指:“描述某一特定应用领域中系统组织方式的惯用模式。”它反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。按这种方式理解,软件体系结构风格是指:“定义了用于描述系统的术语表和一组指导构件系统的规则。”

软件体系结构风格有很多种:

(1)数据流风格,包括批处理序列,管道/过滤器形式等;

(2)调用/返回风格,包括主程序/子程序,面向对象风格,分层结构等;

(3)独立组件风格,包括进程通讯,事件系统等;

(4)虚拟机风格,包括解释器,基于规则的系统等;

(5)仓库风格,包括中心数据库系统,黑板系统等;

在这里,我只着重分析一下仓库系统:

在仓库风格中,有两种不同的构件:中央数据结构说明当前状态,独立构件在中央数据存贮上执行,仓库与外构件间的相互作用在系统中会有大的变化。 
按控制策略的选取分类,可以产生两个主要的子类。若输人流中某类时间触发进程执行的选择,则仓库是传统型数据库;另一方面,若中央数据结构的当前状态触发进程执行的选择,则仓库是黑板系统。

这种风格的优点:(1)善于管理数据信息,适合大量数据的应用场 
合;(2)适用于复杂的逻辑系统;(3)黑板系统模型能更容易地处理任务间的协作,系统更加灵活。数据库系统一直得到广泛应用,如企业中使用的管理信息系统、ERP软件等;黑板系统主要应用在需要复杂翻译解释的系统中,如信号处理领域中的语音和模式识别。

转载于:https://www.cnblogs.com/lvgm/p/5424730.html

全检体系结构风格浅谈相关推荐

  1. oracle 删除补全日志组_浅谈Oracle 20c ASM文件组模板技术

    首先,Oracle ASM file group 是一组文件,它们共享相同的属性和特征.文件组最主要的好处是在相同的磁盘组里为不同的数据库文件定义不同的可用性属性,这一特性让在多租户架构的pdb (可 ...

  2. 猿来小课Java视频教程讲师浅谈JAVA体系结构

    猿来小课Java视频教程讲师:Java体系结构中不仅定义了Java的开发编译环境,也定义了Java的运行环境.为运行Java应用程序和applet,计算机上应安装JVM和Java运行时解释器,这两个部 ...

  3. 浅谈PCI Express体系结构(二)

    PCI总线的信号定义 PCI总线是一条共享总线,在一条PCI总线上可以挂接多个PCI设备.这些PCI设备通过一系列信号与PCI总线相连,这些信号由地址/数据信号.控制信号.仲裁信号.中断信号等多种信号 ...

  4. 浅谈PCI Express体系结构(三)

    PCI总线的存储器读写总线事务 总线的基本任务是实现数据传送,将一组数据从一个设备传送到另一个设备,当然总线也可以将一个设备的数据广播到多个设备.在处理器系统中,这些数据传送都要依赖一定的规则,PCI ...

  5. 浅谈PCI Express体系结构(四)

    PCI总线的中断机制 PCI总线使用INTA#.INTB#.INTC#和INTD#信号向处理器发出中断请求.这些中断请求信号为低电平有效,并与处理器的中断控制器连接.在PCI体系结构中,这些中断信号属 ...

  6. 浅谈DNS体系结构:DNS系列之一

      浅谈DNS体系结构<?XML:NAMESPACE PREFIX = O /> DNS是目前互联网上最不可或缺的服务器之一,每天我们在互联网上冲浪都需要DNS的帮助.DNS服务器能够为我 ...

  7. python配置核_浅谈pytorch卷积核大小的设置对全连接神经元的影响

    3*3卷积核与2*5卷积核对神经元大小的设置 #这里kerner_size = 2*5 class CONV_NET(torch.nn.Module): #CONV_NET类继承nn.Module类 ...

  8. 浅谈RESTful风格

    浅谈RESTful风格 REST风格 REST是Representational State Transfer(在表现层上的状态传输)的缩写. 这里翻译一下这句话: 资源(Resources):RES ...

  9. python相关职业-浅谈Python全栈开发工程师,让程序员都眼红的职业!

    原标题:浅谈Python全栈开发工程师,让程序员都眼红的职业! Python Python 的排名从去年开始就借助人工智能与独特的魅力持续上升,现在它已经成为了第一名. 与其它编程语言相比所占的优势 ...

最新文章

  1. 原因以及如何避免产生僵尸进程
  2. SAP Spartacus 找不到登录入口的问题 - 如何使用 Schematics 安装 user package
  3. 最简方式 表格编辑 基于 el-table
  4. Android之圆角矩形
  5. 怎样修改老旧commit的message信息?
  6. Java 修饰符详解:吐血整理,带你从底层语法和开发案例疏通这 11 种常见修饰符
  7. 【原理】解析一致性哈希算法
  8. 关于使用pietty或putty终端连接ubuntu虚拟机时报被拒绝连接问题
  9. Ubuntu13.04配置优化(四)转贴
  10. Deep Learning 论文笔记 (3): Deep Learning Face Attributes in the Wild
  11. 台达b2伺服modbus通讯_台达伺服ASDA-B2使用手册-简体最新.pdf
  12. [IOS APP] 适用于iso9001质量管理体系认证
  13. 自由职业者-免费的电子书资源【转载】
  14. 北京工业大学2020计算机考研复试科目,2020北京工业大学计算机考研专业课调整...
  15. 软件测试常见面试题分享
  16. Shell脚本之免交互操作
  17. 创业的几条至理名言,每条对创业者都大有帮助,值得收藏!
  18. Java校验身份证号码的工具类
  19. 以YOLOv5为基准实现布匹缺陷检测(Fabric Defect Detection)
  20. ROUGE: A Package for Automatic Evaluation of Summaries

热门文章

  1. 解决mysql无法远程登陆问题
  2. 以OpenGL/ES视角介绍gfx-hal(Vulkan) Framebuffer接口使用
  3. 更快学习 JavaScript 的 6 个思维技巧
  4. SQL Server 2005 For XML[学习]
  5. 使用Markdown写作
  6. python 网络爬虫学习笔记(一)
  7. 从零开始学建站-主机篇
  8. 刘宇凡:数字让切糕与电商溅起涟漪
  9. 使用putty上传文件
  10. Zabbix监控网络设备日志文件及字段报警