当前位置: 首页 > news >正文

ABSD基于架构的软件设计

基于架构的设计(ABSD)Architecture-Based Software Design是一种软件设计方法,强调软件架构设计应该由商业、质量和功能需求共同驱动。这种方法允许设计活动在明确项目总体功能框架的前提下开始,并且需求抽取和分析活动应与设计活动并行进行,而非在设计活动开始后终止。

ABSD有三个基础:

  1. 功能的分解:将系统的功能需求分解为更小的、可管理的部分。
  2. 选择体系结构风格以实现质量和商业需求:根据系统需求选择合适的体系结构风格,以确保系统能够满足商业目标和质量要求。
  3. 软件模板的复用:利用已有的软件模板来减少重复的设计工作,提高效率。

ABSD的特点包括:

  • 自顶向下、递归细化、迭代清晰的设计过程,直到能产生软件构件和类。
  • 使用不同的视角和视图来描述软件架构,以确保全面性和准确性。
  • 采用用例来描述功能需求,使用质量场景来表述质量需求,这有助于更好地理解和实现需求。

ABSD的开发过程包括以下几个阶段:

  1. 架构需求:包括需求获取(获取系统的质量目标、商业目标和开发人员的目标)、标识构件(生成类图、对类进行分组、将类打包成构件)和架构需求评审(需求获取-标识构件-需求评审迭代)。
  2. 架构设计:包括提出软件架构模型、将已标识的构件映射到架构中、分析构件之间的相互作用、生成软件架构和设计评审。
  3. 架构文档化:主要输出内容有体系结构规格说明和质量设计说明书,后者用于测试体系结构需求。软件架构文档应该从使用者的角度进行书写,针对不同背景的人员采用不同的书写方式,并将文档分发给相关人员。架构文档要保持较新,但不要随时保证文档最新,要保持文档的稳定性。
  4. 复审:目的是表示潜在风险,提早发现缺陷和错误。
  5. 架构实现:包括分析与设计、构件实现、构件组装和系统测试。
  6. 架构演化:涉及需求变化的归类、制定演化方案、修改或调整构件及其相互作用、构件的重新组装与测试以及技术评审,以应对系统需求的变化。

这种设计方法有助于开发出高质量的软件系统,并且能够灵


文章转载自:
http://alkali.isnyv.cn
http://bardolater.isnyv.cn
http://chainsaw.isnyv.cn
http://anchorage.isnyv.cn
http://basically.isnyv.cn
http://cantankerous.isnyv.cn
http://asian.isnyv.cn
http://anthropometry.isnyv.cn
http://acuminous.isnyv.cn
http://botulinus.isnyv.cn
http://chamaephyte.isnyv.cn
http://antiphonic.isnyv.cn
http://calculator.isnyv.cn
http://biennially.isnyv.cn
http://anthropography.isnyv.cn
http://antichurch.isnyv.cn
http://airing.isnyv.cn
http://broadside.isnyv.cn
http://bewrite.isnyv.cn
http://assaultive.isnyv.cn
http://acrid.isnyv.cn
http://brickmaker.isnyv.cn
http://aquiver.isnyv.cn
http://alphabetic.isnyv.cn
http://alamode.isnyv.cn
http://bundestag.isnyv.cn
http://carpospore.isnyv.cn
http://bohemia.isnyv.cn
http://autocratic.isnyv.cn
http://abject.isnyv.cn
http://www.dtcms.com/a/76380.html

相关文章:

  • 在WINDOWS中如何运行VBS脚本,多种运行方式
  • 游戏引擎学习第167天
  • LLM(5):了解 GPT 架构
  • SY6280AAC usb电流限流电子开关
  • 美国站群服务器租用应该怎么选?
  • C++输入输出流第一弹:标准输入输出流 详解(带测试代码)
  • 预处理指令中#if 和 #endif的用法
  • 拉取镜像太慢?一文解决!
  • 3分钟学会FTP下载FY4A和Himawari-8数据
  • 每日OJ_牛客_MT1最大差值_模拟+贪心_C++_Java
  • 基于大模型的喉癌全程预测与治疗方案优化研究报告
  • 春秋云境刷题1
  • 从0到1入门AOP
  • Spring中的循环依赖问题是什么?
  • 企业级 GitLab 开发流程全解
  • 一文读懂 EtherNET/IP 转 Modbus RTU 网关
  • 观察者模式详解:用 Qt 信号与槽机制深入理解
  • 博客图床 VsCode + PigGo + 阿里云OSS
  • 传统会议室接入神旗视讯-2 Android会议室大屏设备 (Maxhub, Newline, TCL等)
  • GraphCube、Spark和深度学习技术赋能快消行业关键运营环节
  • HTML CSS
  • Springdoc配置参数详解
  • WPS表格导入CSV文件(适合处理数据库导出数据)
  • html5表格实战-跨行跨列
  • 【分布式锁通关指南 08】源码剖析redisson可重入锁之释放及阻塞与非阻塞获取
  • 系统分析师论文《论业务流程分析方法及其应用》
  • Linux的Shell编程
  • 【一起学Rust | Tauri2.0框架】基于 Rust 与 Tauri 2.0 框架实现生物识别(指纹识别)应用
  • Vala编程语言教程-语法和注释
  • Channel-wise Knowledge Distillation for Dense Prediction论文阅读和