ABSD 和 DSSA对比

news2024/10/26 3:16:30

ABSD(Application-Based Software Development,基于应用的软件开发)和 DSSA(Domain-Specific Software Architecture,领域专用软件架构)是两种不同的软件开发方法,主要区别在于开发的目的和应用范围。

1. ABSD 和 DSSA 的核心区别

特点ABSD (基于应用的软件开发)DSSA (领域专用软件架构)
目标为特定应用(单个项目)构建系统架构,解决独特的需求问题为特定领域构建通用架构,提高多次开发时的复用性
关注点满足当前应用的功能和业务需求解决某一特定领域内的共性需求,形成可重复使用的架构
产出物针对单一应用的架构和实现,满足特定功能和性能需求领域模型、可复用的架构和组件,用于该领域内多个项目的开发
适用场景适用于需要满足特定客户或项目需求的单一应用适用于在同一领域内开发多个类似应用系统,如电商平台或银行系统
开发方式通常按项目进度开发,面向独立应用的需求分析、设计和实现包括领域分析、领域设计和领域实现,逐步形成领域架构

2. ABSD 和 DSSA 的具体解释

ABSD (基于应用的软件开发)

ABSD 主要用于为单个应用项目设计和开发架构,通常是为了满足特定客户的业务需求。例如,开发一个物流管理系统时,ABSD 的开发流程会从系统需求入手,构建物流管理的架构设计、数据库设计和应用实现,聚焦于满足这个项目的个性化需求。开发完成后,该架构主要适用于当前应用项目,而不一定适合复用于其他项目。

  • 应用场景:ABSD 常用于解决独立项目的具体需求,适合不需要跨项目复用的系统。
  • 示例:一家快递公司定制一个物流跟踪系统,开发团队会根据该快递公司的业务流程设计专属的系统架构、数据库和接口,提供个性化服务。
DSSA (领域专用软件架构)

DSSA 的目标是为特定业务领域(例如金融、电商、物流等)开发通用的可复用架构。通过领域分析,DSSA 确定该领域的通用需求,然后进行领域设计,创建可以多次复用的标准化模块和接口,提升在同一领域内开发多个系统的效率。

  • 应用场景:DSSA 适合在一个领域内频繁开发类似系统的情境。
  • 示例:一个银行系统中的 DSSA 可能包含账户管理、支付、风控等通用模块和接口,通过领域设计,银行在新业务拓展中可以直接复用这些模块,减少重复开发的工作量。

3. 如何选择 ABSD 和 DSSA

选择 ABSD 的情形
  • 特定需求的应用:当需要满足独特项目需求时,ABSD 可以提供定制的系统架构。
  • 独立项目:适用于一次性或不复用的项目,架构无需考虑多次应用的通用性。

使用指南:

  1. 需求分析:从项目的独特需求出发,确定应用功能和技术要求。
  2. 架构设计:针对单一项目的架构设计,确保满足特定的性能、安全等需求。
  3. 系统实现与交付:基于设计完成项目实现,最终交付满足业务需求的系统。
选择 DSSA 的情形
  • 重复开发的领域:在同一领域内,多个项目存在相似功能需求时。
  • 领域复用:适用于金融、电商等重复性较高的领域项目,提高开发效率。

使用指南:

  1. 领域分析:分析领域内的共性需求,定义标准模块和接口。
  2. 领域设计:创建领域专用的架构和组件,确保可复用。
  3. 领域实现与优化:针对不同项目复用并不断优化架构。

总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2223744.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcode239. 滑动窗口最大值

问题描述: 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 输入:nums [1,3,…

c#子控件拖动父控件方法及父控件限在窗体内拖动

一、效果 拖放位置不超过窗体四边,超出后自动靠边停靠支持多子控件拖动指定控件拖放(含父控件或窗体)点击左上角logo弹出消息窗口(默认位置右下角)1.1 效果展示 1.2 关于MQTTnet(最新版v4.3.7.1207)实现在线客服功能,见下篇博文 https://github.com/dotnet/MQTTnet 网上…

7、哈希表

7、哈希表 哈希表最主要的作用就是把一个比较庞大的空间或者值域 映射到比较小的值域 (0-n) 就是将-10^9 ~10^9 映射到 0 ~10^5 一、存储结构 映射的方法可以是 h(x) x mod 10^5 但是这样映射会出现一个问题 可能会有重复的数字出现 所以就引出了两个方法 开放寻址法 和…

时间数据可视化基础实验(南丁格尔玫瑰图)——Python热狗大胃王比赛数据集

【实验名称】 实验一:时间数据的可视化 【实验目的】 1.掌握时间数据在大数据中的应用 2.掌握时间数据可视化图表表示 3. 利用python程序实现堆叠柱形图的可视化 【实验原理】 时间是一个非常重要的维度与属性。时间序列数据存在于社会的各个领域,如&a…

金融工程--pine-script 入门

背景 脚本基本组成 策略实现 实现马丁格尔策略 初始化变量:定义初始资本、初始头寸大小、止损百分比、止盈百分比以及当前资本和当前头寸大小等变量。 更新头寸:创建一个函数来更新头寸大小、止损价格和止盈价格。在马丁格尔策略中,每次亏…

若依框架篇-若依集成 X-File-Storage 框架(实现图片上传阿里云 OSS 服务器)、EasyExcel 框架(实现 Excel 数据批量导入功能)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 实现使用 Excel 文件批量导入 1.1 导入功能的前端具体实现 1.2 导入功能的后端具体实现 1.3 使用 EasyExcel 框架实现 Excel 读、写功能 1.4 将 Easy Excel 集成到…

npm、yarn、pnpm的workspaces使用

示例项目中总会遇到npm的packages中出现的workspaces键值对,自己的项目中没接触过这个东西,到底是什么?怎么用的?简单研究记录一下: abbrev是一个npm包,提供缩写展开功能。‌ 当你定义一个缩写后&#xff0…

mac电脑设置chrome浏览器语言切换为日语英语等不生效问题

在chrome中设置了语言,并且已经置顶了,但是不生效,在windows上直接有设置当前语言为chrome显示语言,但是mac上没有。 解决办法 在系统里面有一个单独给chrome设置语言的: 单独给它设定成指定的语言,然后重…

CTFHUB技能树之文件上传——双写后缀

开启靶场,打开链接: 直接指明是双写绕过方法 上传06shaungxie.php,内容如下: 这一步其实最好换成.png或者.jpg或者.gif这三个符合文件格式的要求后缀 用burp抓包改包: 将php改成pphphp后再“Forward”: 上传…

机房巡检机器人有哪些功能和作用

随着数据量的爆炸式增长和业务的不断拓展,数据中心面临诸多挑战。一方面,设备数量庞大且复杂,数据中心内服务器、存储设备、网络设备等遍布,这些设备需时刻保持良好运行状态,因为任何一个环节出现问题都可能带来严重后…

高边坡稳定安全监测预警系统解决方案

一、项目背景 高边坡的滑坡和崩塌是一种常见的自然地质灾害,一但发生而没有提前预告将给人民的生命财产和社会危害产生严重影响。对高边坡可能产生的灾害提前预警、必将有利于决策者采取应对措施、减少和降低灾害造成的损失。现有的高边坡监测技术有人工巡查和利用测…

设计一个html+css+js的注册页,对于注册信息进行合法性检测

综合使用HTML、JavaScript和CSS进行注册页面设计,实现以下若干功能: 注意整个页面的色调和美观使用FramesetTable布局(div也可)对用户ID和用户名、口令不符合条件及时判断对口令不一致进行及时判断(34的及时判断&#…

【AI学习】Mamba学习(十三):简单了解S5模型,S5论文速读

学习了S4模型后,简单看一下S5模型。 来自两篇文章的摘要 苏神在文章《重温状态空间模型SSM:HiPPO的高效计算(S4)》中简单提到了S5模型: 由于 HiPPO 的推导是基于u(t)是一维函数进行的,所以到目前为止&am…

博弈论 C++

前置知识 若一个游戏满足: 由两名玩家交替行动在游戏进行的任意时刻,可以执行的合法行动与轮到哪位玩家无关不能行动的玩家判负 则称该游戏为一个公平组合游戏。 尼姆游戏(NIM)属于公平组合游戏,但常见的棋类游戏&…

揭开C++ STL的神秘面纱之string:提升编程效率的秘密武器

目录 🚀0.前言 🚈1.string 构造函数 🚝1.1string构造函数 🚝1.2string拷贝构造函数 🚈2.string类的使用 🚝2.1.查询元素个数或空间 返回字符串中有效字符的个数:size lenth 返回字符串目…

micro-app【微前端实战】主应用 vue3 + vite 子应用 vue3+vite

micro-app 官方文档为 https://micro-zoe.github.io/micro-app/docs.html#/zh-cn/framework/vite 子应用 无需任何修改,直接启动子应用即可。 主应用 1. 安装微前端框架 microApp npm i micro-zoe/micro-app --save2. 导入并启用微前端框架 microApp src/main.ts …

2024软考网络工程师笔记 - 第8章.网络安全

文章目录 网络安全基础1️⃣网络安全威胁类型2️⃣网络攻击类型3️⃣安全目标与技术 🕑现代加密技术1️⃣私钥密码/对称密码体制2️⃣对称加密算法总结3️⃣公钥密码/非对称密码4️⃣混合密码5️⃣国产加密算法 - SM 系列6️⃣认证7️⃣基于公钥的认证 &#x1f552…

为微信小程序换皮肤之配置vant

微信小程序自带的控件虽然具有很好的通用性和简洁性,但在面对一些复杂的交互场景和个性化的设计需求时,可能会显得力不从心。其功能的相对基础使得开发者在实现诸如多步骤复杂表单提交、实时数据交互与可视化展示、高度定制化的界面布局等方面&#xff0…

Navicat 安装

Navicat 安装步骤

qt 下载安装

1. 官网地址 https://www.qt.io/ 2. 下载 使用邮箱注册账号,登录,后边安装时也用的到 登录后: 这里需要电话号验证,电话号需要正确的,其他随便填,电话号中国区前需要86, 验证后自动下载 …