经典软件体系结构风格及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

Quartus安装Altera USB-Blaster安装驱动程序出现问题(代码39)的解决办法

Quartus安装Altera USB-Blaster安装驱动程序出现问题(代码39)的解决办法

MCU_HOT的博客 1万+

三、软件体系结构风格

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

Cookie__C的博客 5359

Anki小白必看:手把手教你打造高颜值个性化笔记模板(附Leaflyer模板下载)

本文为Anki新手提供详细的个性化笔记模板设计指南,从基础配置到高级定制技巧,帮助用户打造高效记忆系统。特别推荐Leaflyer模板下载,通过视觉优化和功能强化,显著提升学习体验和记忆效率。

weixin_28717969的博客 433

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

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

学习笔记 2万+

因时机器人-灵巧手配置方案(Ubuntu18.04)

因时机器人-灵巧手配置方案(Ubuntu18.04)

CH_monsy的博客 3848

RTX 50系列显卡选购指南:从Stable Diffusion到深度学习,哪款最适合你的AI需求?

本文深入分析了RTX 50系列显卡如何满足不同的AI应用需求。针对Stable Diffusion图像生成,强调显存容量是关键;对于大语言模型本地推理,需平衡算力与显存;而深度学习训练则更看重算力效率。文章对比了RTX 5090、5080、5070等型号的核心规格与适用场景,并提供了从入门到专业的实战配置建议,帮助用户根据自身AI工作负载精准选择最具性价比的显卡。

linux6sysadmin的博客 689

什么是DSSA?

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

pumpkin84514的博客 2107

MuJoCo 动捕接口 Mocap 直接操控机械臂(附代码)

动作捕捉(Motion Capture,简称 Mocap)是一种记录并处理人或物体动作的技术,在影视、游戏、机器人等领域应用广泛。通过上下左右以及alt_l,alt_r可以控制hand这个hody跟着mocap进行同步,这里将quat固定为Z朝下。首先在 scene.xml 中修改添加 mocap 和 equality。下面介绍如何配置 Mocap 以及使用按键进行末端控制。控制核心代码,通过按键控制mocap的pos和quat。

darcsdn 879

ABSD 和 DSSA对比

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

pumpkin84514的博客 1482

Fluent新手避坑:遇到‘Floating point exception’别慌,这7个排查步骤帮你搞定

本文为Fluent新手提供了遇到‘Floating point exception’错误时的7个详细排查步骤。从理解浮点异常的本质到边界条件检查、时间步长设置、求解器选择、网格优化、亚松弛因子调节以及高阶格式的取舍,帮助用户快速定位并解决问题,确保CFD仿真的稳定性和准确性。

weixin_30480075的博客 260

微磁模拟实战指南:从OOMMF安装到首个3D模型运行

本文详细介绍了OOMMF微磁模拟软件的安装与使用,从环境配置到首个3D模型运行的完整教程。涵盖Windows、Linux和macOS平台的安装避坑指南,以及MIF文件编写、并行计算优化等实战技巧,帮助研究人员快速掌握这一开源工具在磁畴壁运动、磁滞回线等微磁学问题中的应用。

weixin_29294597的博客 153

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

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

程序员杂谈 3400

【基于深度学习的脑电图识别】数据集篇:THE TUH EEG CORPUS: A Big Data Resource for Automated EEG Interpretation

【基于机器学习的脑电图识别】数据集篇:脑电信号自动判读的大数据摘要: 摘要: 这个数据集包括超过 25000 个脑电图研究,包括一个神经学家对测试的解释,一个简短的病人病史和关于病人的人口统计信息,如性别和年龄。这是第一次有足够的数据来支持最先进的机器学习算法的应用。在这篇论文中,我们使用了3762个语料库的会话子集,展示了从原始脑电图信号数据预测脑电图的一些基本属性的初步实验结果。在闭环测试中,...

梁瑛平的博客 5615

ATAM,DSSA,ABSD

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

Echo的博客 2921

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

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

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

悟鸣的技术博客 2096

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

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

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

mischen520的博客 4950

特定领域软件架构 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、付费专栏及课程。

余额充值