如何理解基于架构的软件设计(ABSD)

既然是基于架构的软件设计那么就离不开架构这两个字,整个设计的核心思想都是架构,所以我们首先要理解什么叫架构。

那么什么叫架构呢?在软件开发中,架构指的是系统的高层次结构和组织方式。它涉及以下几个方面:

  1. 组件和模块:系统由哪些主要部分构成,它们的功能和职责是什么。
  2. 接口和交互:各个组件如何通过接口进行通信和数据交换。
  3. 设计模式:使用了哪些设计模式或架构风格(如MVC、微服务)来解决特定问题。
  4. 部署:系统如何部署和运行在不同环境中,如云平台、本地服务器等。

知道了什么是架构以后,我们在来对比一下传统的软件设计与基于架构的软件设计有什么不同。

传统的软件设计,主要通过业务需求来细化用户需求,再通过用户需求来细化系统需求,这种自上而下的关系来逐渐细化需求。

而基于架构的软件设计主要是针对架构来进行分析设计,这种设计理念更关注系统的整体结构和组件之间的关系,确保系统的可扩展性、性能和可维护性。在架构驱动的设计中,重点是通过定义系统架构来指导整个开发过程,从而优化系统的质量和适应性。

这种设计主要包括六个阶段,他们分别是:架构需求、架构设计、架构文档化、架构复审、架构实现、架构演化。

架构需求:

1、获取需求

2、生成类图,对类进行分组,将分组打包成构件,最终识别出系统有哪些构件(构件是一个可独立部署的整体)。

3、通过评审来看构件中类的分组是否合理,构件的合并(构件合并是指将多个独立构建集成到一个统一的系统中)是否合理。

架构设计:

1、选择一个合适的架构风格如(如MVC、微服务)

2、将构件映射到架构中,分析构件之间的相互作用

  • 数据流:构件之间如何传递数据。
  • 控制流:构件如何控制其他构件的行为。
  • 接口:构件之间如何通过接口进行交互。

3、创建一个中间结构来表示这些构件及其关系。

  • 模块图:展示构件及其接口的图示。
  • 数据流图:描述数据在构件之间的流动路径。
  • 序列图:展示构件之间的交互顺序。

4、基于中间结构,对系统架构进行进一步精化。这包括:

  • 详细设计:将高层次的构件和接口细化为详细设计,包括具体的类、方法、数据结构等。
  • 接口设计:设计详细的接口规范,包括输入输出格式、协议、错误处理等。
  • 数据建模:设计数据模型,包括数据库模式、数据流和数据存储。

架构文档化:

记录和文档化精化后的架构设计,以便于团队成员理解和实现:

  • 架构文档:详细记录架构设计,包括构件、接口、数据流等信息。
  • 沟通:与团队成员和利益相关者沟通架构设计,确保大家对架构有共同的理解。

架构复审:

架构复审【架构评估】的目的是标识潜在的风险,及早发现架构设计中的缺陷和错误。

架构实现:

可以从构件库中直接查找符合接口约束的构件,也可以开发新构件。

对构件进行组装和部署。

对系统进行测试, 包括单个构件的功能性测试和被组装应用的整体功能和性能测试。

架构演化:

对需求变化进行归类,使变化的需求与已有构件对应。

对有变动的构件进行修改,增加或删除构件,要对修改和增加的构件进行功能性测试。

更新构件的相互作用,对构件进行组装、测试和对测试结果进行评审,得到反馈和改进意见。

相关推荐
深圳市益普科技有限公司6 小时前
半导体SPC工具怎么选?从控制图算法到落地架构的对比
大数据·人工智能·架构
每天一道题6 小时前
微服务为什么会变慢?从 QPS、P99 到 Trace 与性能瓶颈
微服务·云原生·架构
xunberg6 小时前
【Agent 生产化手记-02】Agent 怎么向人提问
人工智能·算法·架构
利威尔xu7 小时前
Go IM 源码实战(11):token 只是个 HASH,多端互踢的顺序错了就踢错人
后端·微服务·面试·架构·golang
充值内卷7 小时前
把 Visio 和 Axure 塞进一个 1.5 MB 的 exe:Visioxure 的架构与取舍
架构·axure
QianhangQianping7 小时前
一块大屏的数据在浏览器里怎么变成画面:背景、子屏、前景三层结构
前端·低代码·架构·编辑器·数据可视化·大屏可视化
每天一道题9 小时前
微服务为什么会发生级联故障?从 Timeout、Retry 到熔断、限流与 Backpressure
微服务·云原生·架构
ESDWAN9 小时前
SD-WAN 是什么?工作原理、适用场景与选型要点
开发语言·网络·数据库·架构·php
Figo_Cheung10 小时前
Figo基于结构空间算法假设(SSAH)的生成式大模型优化范式与工程实现边界研究——提出适应AGI架构演化的自适应拓扑感知表征机制
算法·架构·agi
FPGA小迷弟10 小时前
FPGA 与无线电:从软件定义无线电到 5G 基带的硬件实现之路
5g·fpga开发·架构·dsp开发·fpga·无线电