软件体系风格

体系风格

如武林门派各有异长之处,其所长即是风格体现。
对于软件体系来说"每一套体系风格里装载着独特的结构、语义特性"

体系构成

组成体系的几大要素

  • 数据流风格: API接口规范、管道、过滤器
  • 调用/返回风格: 主次程序关系、面向对象模式、层次结构
  • 独立性的构建风格: 进程间通信方式、事件处理系统
  • 虚拟机风格: 解析器、约定的规则系统
  • 厂库数据风格: 数据库系统、超文本系统、黑板系统

但凡软件领域里的系统及架构都离不开这些由这些要素来构建。
而且,对应软件层次结构画分可以按以上要素进行分层。

经典风格

管道与过滤器

可以粗略的将管道与过滤器看成一个黑盒子,一端往里丢数据,然后再从另一端取出已处理的数据。

管道
Unix 进程通信之管道详解

过滤器: 比较官方的解释"输入被消费前,输出已产生",实际上也是内部加上特定的处理后输出数据。不同的是其需要为独立的实体,每一个过滤器的数据为独立,不与其他过滤器共享。

优点:

  • 软件结构有良好的隐蔽性和高内聚、低耦合
  • 方便开发人员(设计师)处理输入\输出数据流
  • 支持软件重用
  • 便于系统维护,易于扩展系统性能
  • 支持并发处理 (过滤器为独立任务,每一个任务可以并行处理)

缺点:

  • 对交互式的应用,"黑盒子处理方式显得不太友好"
  • 过滤器处理数据的成本随着其数量增加而增加

数据抽象和面对对象系统

构件作为对象,负责保证资源的完整性,通过函数和过程调用来实现交互。

优点:

  • 根据对象的属性,可以做到高内聚、低耦合(通过隐藏来实现)。(即改变某个对象的表示,不会影响到其他对象)

缺点

  • 在过程调用及交互中,对象标志被改变了,那么调用该该标志的函数都需要进行改变(不太利于后续维护)

基于事件系统

其思想是系统构件不直接通过调用对象或者过程,而是通过触发器或者广播一个及多个事件来激活对应的进程调用。(为隐式调用)

优点:

  • 易于重构
  • 易于扩展系统(当用一个构件替代另外一个构件时,不会影响到其他构件接口)

缺点:

  • 数据通信问题。(消息广播后,不能确定有构件对其进行响应)

分层系统

所谓层次秉承上启下,对上层提供调用接口,对下层封装调用的接口。

仓库系统及知识库

主要由两种构件组成,中央数据结构+独立构件。
通常情况下,黑板系统作为仓库
其黑板由以下构成:
a. 知识源 。 (知识源之间互为独立,其通信通过黑板来完成(数据共享))
b. 黑板数据结构
c. 控制 (黑板的状态驱动为控制主导者)

C2风格

通过连接件绑定在一起的按照一组规则运作的并行构件网络。
其特点如下:

  • 系统中的构件可以通过不同的网络组成来构造复杂的应用需求
  • 构件的通信可以通过异步消息交换机制来实现
  • 构件之间互为独立,关联性比较小
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容

  • 第九章 软件架构设计 9.1 软件架构概述 9.1.1 软件架构的定义 定义1:软件或计算机系统的软件架构是该系统...
    步积阅读 4,778评论 0 17
  • 1. 管道和过滤器风格 【数据流风格,因为管道里都是数据流】 (1)构件:过滤器。它对输入流进行处理、转换。处理后...
    Mikito_k阅读 7,378评论 0 4
  • 软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法。 软件工程的三个要素:方法、工具...
    SnorlaxSE阅读 5,470评论 0 3
  • 体系结构 = 组件 + 连接件 + 约束 软件体系结构的核心概念: 构/组件 软件重用 构件: 语义完整、语法正确...
    pianosecret阅读 2,794评论 0 0
  • 1、什么是软件架构风格 软件架构风格就是描述某一特定应用领域中系统组织方式的惯用模式。架构风格反映了应用领域中众多...
    枫_7654阅读 967评论 0 1