经典软件体系结构风格及DSSA

软件体系结构风格整理 什么是软件体系结构风格? 软件体系结构风格(Architectural Styles)是描述特定系统组织方式的惯用范例,强调了软件系统中通用的组织结构。 风格这个词是个模糊的概念,不同的人有不同的理解,这有时候就让人很困惑。这时候为了明确这个概念,通过数学集合的方式来定义风格,如此一来,我们更能认清风格的内部结构及本质。 同样,针对某种软件应用场景,应该选择与其相适应的构件,以及合理安排构件间的关... 阅读详情

软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式(idiomatic paradigm)。体系结构风格定义了一个系统家族,即一个体系结构定义了一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。

风格允许定义领域特定的或应用特定的(application-specific)的设计词汇(vocabulary),以及如何使用这些词汇的约束。支持对领域特定的设计经验的打包(package),特定目的分析和代码生成工具的使用,设计过程的简化,与体系结构标准一致性的检查等。

讨论体系结构风格时要回答的问题是:

1设计词汇表是什么。

2构件和连接件的类型是什么。

3可容许的结构模式是什么。

4基本的计算模型是什么。

5风格的基本不变性是什么。

6其使用的常见例子是什么。

7使用此风格的优缺点是什么。

8其常见的特例是什么。

Garlan,Shaw对体系结构风格有个分类:

1数据流风格:批处理序列、管道/过滤器

2调用/返回风格:主程序/子程序、面向对象风格、层次风格

3独立构件风格:进程通信、事件系统

4虚拟机风格:解释器、基于规则的系统

5仓库风格:数据库系统、超文本系统、黑板系统。

经典软件体系结构风格:

 1管道/过滤器

在该体系结构中,每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成。因此,这里的构件被称为过滤器,而连接件被称为管道。

一个管道/过滤器网络输出的正确性并不依赖于过滤器进行增量计算的过程的顺序。

过滤器是独立的实体,不能与其他的过滤器共享数据。

典型的管道/过滤器风格有:UNIX下的Shell编程。UNIX既提供一种符号以连接各组成部分(进程),又提供某种进程运行时机制以实现管道。另一个例子:传统的编译器。传统的编译器中,一个阶段(包括词法分析、语法分析、语义分析和代码生成)的输出是另一个阶段的输入。

2数据抽象和面向对象组织

数据的表示方法和它们的相应操作封装在一个抽象数据类型或对象中。这个风格的构件就是对象,或者说是抽象数据类型的实例。对象是一种被称为管理者的构件,因为它负责保持资源的完整性。对象通过函数和过程调用来交互。

3基于事件的隐式调用

其思想是:构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其他构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程。这样,一个事件的触发导致了另一个模块中的过程的调用。

这个风格的构件是一些模块,这些模块既可以是一些过程,又可以是一些事件的集合。

这个风格的应用很多。

4分层系统

分层系统是一个层次结构,每一层为上一层服务,并作为下层的客户。在一些层次系统中,除了一些精心挑选的输出函数外,内部的层只对相邻层可见。这样,系统中的构件在一些层中实现了虚拟机(在另外一些层次系统中层是部分不透明的)。连接件通过决定层间如何交互的协议来定义,其拓扑约束包括对相邻层间交互的约束。

这种风格支持基于可增加抽象层的设计。这样,允许将一个复杂的问题分解成一个增量步骤序列的实现。因为,每一层只影响两层,同时只要给相邻层提供相同的接口,允许每次用不同的方法实现,同样为软件重用提供了强大的支持。

典型的应用是分层通信协议。

5C2风格

C2是一种基于构件和消息的架构风格,可用于创建灵活的、可伸缩的软件系统。一个C2构架可以看成是按照一
定规则由连接件连接的许多组件组成的层次网络:系统中的构件和连接件都有一个“顶部”和“底部”;一个构件的“顶部”或“底部”可以连接到一个连接件的“底部”或“顶部”;对于一个连接件,和其相连的构件或连接件的数量没有限制,但是构件和构件之间不能直接相连。

C2架构风格最重要的特性就是“底层无关性”,这在构件的可替代性和可重用性方面具有显著的作用;另外,C2架构引入了“事件转化”的概念,域解释器把构件的请求转化为接收方能够接收的特定形式,同时也把通知转化为该构件能够理解的形式。

C2风格是最常用的一种风格:

系统中的构件可实现应用需求,并能将任意复杂的功能封装在一起。

所有构件之间的通信以连接件为中介的异步消息交换机制。

构件相对独立,依赖性较少。系统中不存在某些构件将在同一地址空间内执行,或某些构件共享控制线程之类的相关性假设。

DSSA(Domain Specific Software Architecture)与软件体系结构风格的比较

DSSA与软件体系结构风格是从不同角度出发研究问题的两种结果,前者从问题域出发,后者从解决域出发。

DSSA只对某个领域进行专家知识的提取、存储、组织,但可以同时使用多种软件体系结构风格;而在某个软件体系结构风格中进行专家知识组织时,可以将提取的公共结构和设计方法扩展到多个应用领域。

DSSA通常选用一个或多个适合所研究的领域的体系结构风格,并设计一个该领域专用的体系结构分析设计工具。但该方法提取的专家知识只能应用于一个较小的范围--所在领域。一个领域的

DSSA及其工具在另一个领域中是不适应的,或不可以重用的。

体系结构风格避免设计到特定的应用领域或背景,所提取的知识比DSSA提取的知识应用范围要广。但在一个特定领域中,正是由于体系结构风格对领域知识、领域背景的忽略,使其在一个具体领域的开发中的作用并不比DSSA要大。

DSSA与体系结构风格是互为补充的两种技术。

软件架构设计 ABSD/DSSA/SAAM/ATAM 架构权衡分析方法ATAM是一种基于场景的系统架构评估方法,主要在系统开发之前,针对性能、可用性、安全性和可修改性等质量属性进行评价和折中。ATAM分为4个主要的活动包括场景和需求收集、架构视图描述、属性模型构造和分析、架构决策和折中,整个评估过程强调以属性作为架构评估的核心概念。软件架构分析方法SAAM是一种基于场景的系统架构评估方法,最初是用来分析架构的可修改性的,但实践证明也可用于对许多其它质量属性及系统功能的快速评估。分析类图是从业务领域获取信息的,在描述上更多的使用了业务领域的语言和词汇。 阅读详情

相关推荐

【软件体系结构】软件体系结构风格

多年来,人们在开发某些类型软件过程中积累起来的组织规则和结构,形成了软件体系结构风格。软件体系结构风格,是总结人们设计经验而形成结构较为巩固、组织较为统一的形式,是一种适合于多种场合的相似结构的抽象。软件体系结构设计的一个核心问题是,能否使用重复的体系结构模式,即能否达到体系结构级的软件重用。

m0_62410106的博客 3354

【软考系统架构设计师】DSSA特定领域软件架构

本阶段的重点是确定什么在感兴趣的领域中以及本过程到何时结束。这个阶段的一个主要输出是领域中的应用需要满足一系列用户的需求。本阶段的目标是编译领域字典和领域术语的同义词词典。在领域工程过程的前一个阶段产生的高层块圈将被增加更多的细节,特别是识别领域中应用间的共同性和差异性。本阶段的目标是描述解空间中有差别的特性。不仅要识别出约束,并且要记录约束对设设计和实现决定造成的后果,还要记录对处理这些问题时产生的所有问题的讨论。本阶段的目标是产生一般的体系结构,并说明构成它们的模块或构件的语法和语义。

weixin_42163707的博客 2953

系统架构 DSSA(Domain Specific SoftwareArchitecture)特定领域软件架构

系统架构 DSSA(Domain Specific SoftwareArchitecture)特定领域软件架构

技术博客 1996

高级系统架构师学习(四)软件架构设计-中篇

一、特定领域软件架构【DSSA】定义:以一个特定问题领域为对象,形成由领域参考模型、参考需求、参考架构等组成的开发基础架构,支持一个特定领域中多个应用的生成。基本活动  垂直域:某一个狭小领域或者说某个行业的共性抽象。  水平域:多个行业可通用的一些共性的抽象。领域分析中各角色职能领域专家:从事该领域中系统的需求分析、设计...

weixin_41309100的博客 1246

软考系统架构师论文-基于DSSA的软件架构设计和应用

基于DSSA的软件架构设计和应用 论基于DSSA的软件架构设计和应用 论基于DSSA服务的web应用系统设计 论软件可靠性设计和应用 摘要 去年三月份,我所在的公司启动国网电力用户用电信息采集系统项目,我被任命为项目负责人, 国网电力用户用电信息采集系统是国家电网公司坚强智能电网建设的一部分,由于公司之前为南网 开发过类似用电信息采集系统,且公司准备在典礼行业做强做大,我提出了采用DSSA技...

weixin_42672777的博客 1680

【ESP32开发】——开发环境搭建(VSCode+PlatformIO)

本章内容主要介绍ESP32的开发环境搭建(基于VSCode+PlatformIO)的流程与相应的注意事项,避免开发ESP32止于环境搭建!在项目的维护过程中,可以更好地管理和更新代码、调试问题,并且能够快速适应和采用新的功能、库或硬件平台。:VSCode 的代码提示和自动补全功能,以及 PlatformIO 的管理工具,都能帮助你编写规范、格式良好且易于阅读的代码。:Arduino 框架是一种简单、易用的嵌入式开发框架,适用于快速原型开发和小型项目。需要选择对应自己开发的开发板型号。

m0_61934621的博客 8415

三、软件体系结构风格

软件体系结构风格 一、概述 软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。 体系结构风格定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。 体系结构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。根据项目的具体特点进行分析,再确...

Cookie__C的博客 5359

手把手教你学Simulink——基于Simulink的变换器老化预测与数字孪生(Digital Twin)

这不仅是技术的演进,更是从“事后救火”到“事前预言”的降维打击。:通过本文的实战演练,你不仅掌握了功率变换器“电气-热-老化”多物理场耦合的建模哲学,更深刻领悟了如何将高深的随机过程(粒子滤波)降维成可落地、可量产的工程工具;:起初,由于数据量少,粒子滤波器预测的剩余寿命(RUL)置信区间(95%)非常宽泛(如 1000~2000小时)。在工业4.0与智能制造的浪潮下,功率变换器(如光伏逆变器、车载OBC、服务器电源)不再是孤立的硬件,而是具备“自我感知”与“寿命预知”的智能节点。

MHD0815的博客 297

《软件体系结构》第三章 软件体系结构风格

第三章 软件体系结构风格 一、基本概念 1. 软件体系结构设计的一个核心问题是能否使用重复的体系结构模式,即能够达到体系结构级的复用。 2. 软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系结构风格定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的 3. 对软件体系结构风格的...

学习笔记 2万+

7、复杂分布式水文模型的两阶段代理参数校准框架

本文提出了一种针对复杂分布式水文模型的两阶段代理参数校准框架,旨在解决可变入渗能力模型(VIC)在参数校准过程中计算成本高、耗时长的问题。该框架结合AdaBoost与反向传播神经网络(BPNN)构建高精度代理模型,并引入ε-NSGA II多目标优化算法加速搜索最优参数集。通过在兰江流域和湘江流域的实验验证,该方法在校准效率上提升了约20倍,同时保持了高模拟精度(NSE接近1,Bias接近0)。框架采用两阶段设计:第一阶段(SM-I)快速筛选关键参数范围,第二阶段(SM-II)进行高精度预测,显著减少了无效计

apple5的专栏 86

Python爬虫实战:研究Pandas,构建车质网各车型数据采集和分析系统

研究结果表明,通过网络爬虫技术可以有效地获取公开的汽车投诉数据,这些数据经过适当的清洗和处理后,可以揭示出丰富的汽车质量信息。)作为国内专业的汽车质量投诉受理平台,自 2010 年成立以来,已累计接收消费者投诉信息超过 200 万条,这些数据包含了车型、投诉时间、投诉问题、处理状态等多维度信息,具有极高的分析价值。:通过对车质网数据的分析,能够挖掘出有价值的汽车质量信息,为消费者购车提供参考,为汽车厂商改进产品质量和服务提供依据,同时也能为相关监管部门提供数据支持。

ylfhpy的博客 938

什么是DSSA?

DSSA通过对领域需求的深入理解,提供了一种高度复用的架构模式,使得架构更贴合领域需求并具备通用性。这种方法尤其适合那些在同一领域内开发多个项目或系统的团队,从而实现高效的领域专用解决方案。

pumpkin84514的博客 2107

北斗导航 | 基于LSTM-KF融合的北斗卫星定位算法研究框架

针对北斗卫星导航系统在复杂环境下存在的多路径效应、非视距传播等问题,提出一种基于长短期记忆网络(LSTM)与卡尔曼滤波(KF)的组合定位算法。通过LSTM网络建模定位误差的非线性特征,结合卡尔曼滤波实现动态噪声抑制,构建"粗定位-LSTM校正-卡尔曼滤波优化"的三级处理架构。实验表明,融合算法较传统方法定位精度提升42.7%,均方根误差降低至1.2米。

尘世冰封的专栏 920

ABSD 和 DSSA对比

ABSD 和 DSSA 都是架构设计方法,适用的开发场景和目标不同。ABSD 更适合特定项目的应用开发,而 DSSA 则适合在同一领域内建立标准化架构,实现复用。

pumpkin84514的博客 1482

rk3568 rk628桥片hdmi转lvds

RK628 是瑞芯微全新推出的视频桥接芯片,支持丰富的显示接口,支持高分辨率大屏产品转换需求。基于DRM、FB的显示框架易于使用。 输入信号支持:HDMI、RGB、BT.1120,输出信号支持 HDMI、GVI、Dual LVDS、Dual MIPI、MIPI-CSI、RGB、BT.1120,最高支持4K 60fps 输入/输出转换,并且支持输入到输出 1/4~4倍的缩放。

weixin_35723192的博客 1131

YOLOv8-Pose 姿态识别 RK3588 实战:从模型训练到 RKNN 部署,精度与推理速度双提升

本教程从YOLOv8-pose模型的姿态识别训练,到RK3588的边缘量化部署,为你打造了一套“高精度+高实时性+低成本”的人体姿态分析解决方案。无论是健身动作纠正、智能安防行为检测,还是工业人员姿态监控,这套技术都能直接复用——你只需替换数据集与业务逻辑,即可快速落地专属的边缘AI姿态识别系统。如果你在实践中遇到任何卡点,欢迎随时交流。记住,人体姿态识别的价值在于“关键点准、推理快、部署易”,而这三者的平衡,正是你通过本教程能掌握的核心能力。

FJN110的博客 364

论基于DSSA的软件架构设计与应用

软件架构设计的一个重要课题是如何解决软件重用问题。特定领域软件架构(Domain Specific Software Architecture,DSSA)是一种有效实现特定领域软件重用的手段。按照Tracz的说法,DSSA就是一个特定的问题领域中由领域模型、参考需求、参考架构等组成的开发基础架构,其目标就是支持一个特定领域中多个应用的生成。DSSA的基本活动包括领域分析、领域设计和领域实现。 领域...

程序员杂谈 3400

Mysql授权允许远程访问

前言 Mysql授权允许远程登录后,linux中安装的mysql可以与Navicat for Mysql(可视化)等连接,在可视化软件下管理数据库。 注意:不能使用临时密码 设置密码命令: alter user 'root'@'localhost' identified by '这里是你的密码'; 授权允许远程访问 一、授权命令: grant all privileges on *.* to '...

🏆 前端领域优质创作者 3万+

ATAM,DSSA,ABSD

定义 ATAM是一种常用的软件架构评估方法,该方法强调对软件的质量属性进行分析、分类和优先级排序工作。在此基础上构件质量属性效用树(敏感点和权衡点是关键的体系结构决策) ...

Echo的博客 2921

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

软考高级:特定领域软件架构(DSSA)概念和例题

明明如月学长, 优快云 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。

悟鸣的技术博客 2096

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

什么是DSSA?以及DSSA主要包括哪些阶段?

DSSA是Domain Specific Software Architecture的缩写,叫做特定领域软件架构。 架构的本质在于其抽象性。它包括两个方面的抽象:业务抽象和技术抽象。其中业务抽象面向特定的应用领域。 特定领域软件架构(Domain Specific Software Architecture,DSSA)可以看做开发产品线的一个方法(或理论),它的目标就是支持在一个特定领域中有多个应用的生成。DSSA 的必备特征有: (1)一个严格定义的问题域或解决域; (2)具有普遍性,使其可以用于领域中.

mischen520的博客 4950

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

特定领域软件架构 DSSA【方法论】

(抽离共性做标准通用软件,以通用软件版本为基础,做定制开发)垂直域:在一个特定领域中的通用的软件架构,是一个完整的架构。相同领域,深入水平域:在多个不同的特定领域之间的相同的部分的小工具,如购物和教育都有收费系统,收费洗头膏即是水平域(不同领域,平移目标是,即整个领域工程过程中信息的来源,可能的信息源包括现存系统、技术文献、问题域和系统开发的专家、用户调查和市场分析、领域演化的历史记录等,它不是单个系统的表示,而是能够。建立领域模型之后,就可以派生出满足这些被建模的领域需求DSSA。

apple20150410的博客 1007

特定领域软件架构DSSA

DSSA是为特定领域提供标准化软件架构的框架,包含领域模型、参考架构和可复用组件库。其建立过程分为领域分析、设计和实现三个阶段,由领域专家、分析者、设计者等角色协作完成。DSSA分为垂直域(单一领域)和水平域(跨领域),具有严格定义的问题域与解域,强调领域共性和复用。通过提取领域知识,DSSA能提高开发效率和质量,但需权衡领域成熟度与适用范围。典型案例包括电信软件和图形编辑器等领域应用。

icefan02的专栏 713

系统架构设计师——特定领域软件体系结构DSSA

在软件工程领域,特定领域软件架构(DSSA)是一种针对特定应用领域的软件架构方法。

庄的博客 1154
上一篇: 篮球术语普及A~Z
下一篇: software architeture的相关名词
yethyeth
博客等级 码龄21年 140粉丝 265原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值