软件架构风格与软件架构设计方法

在软件架构设计中,我们一般采用的流程是:

需求分析->架构设计->架构评估

阶段核心任务对应的典型方法/活动分类
① 需求分析 搞清楚“要解决什么问题”和“质量目标是什么”。 ATAM(作为场景提炼)、DDD(领域分析)、用户故事梳理。 分析/诊断方法
② 架构设计 解决“用什么结构去满足这些目标”。 ADD(属性驱动设计)、模式选择(如微服务)、视图建模(C4/4+1)。 设计/构造方法
③ 架构评估 解决“设计好的方案有没有风险,能不能达标”。 ATAM(作为正式评估)、SAAM(软件架构分析方法)、原型验证、性能测试。 评估/检验方法

 

这里我们可以看到,ATAM虽然作为一种架构评估方法,但是常被用来做需求分析,因为里面的“收集并提炼质量属性场景“对于需求分析非常管用。

 

那么在架构设计阶段,我们就会遇到架构设计方法与架构风格两个概念,这里的区别是什么呢?

如下所示:

对比维度架构设计方法架构风格
本质 流程、策略、分析框架 结构、布局、解决方案模板
核心问题 “我如何得到正确的架构?” “我用哪种结构来解决这个问题?”
产出物 需求分析文档、架构决策记录、权衡方案 系统分层图、组件拓扑图、通信协议定义
可变性 高(针对不同项目,流程步骤可裁剪) 低(模板是固定的,只需填充业务细节)
依赖因素 严重依赖于人(架构师的经验、组织文化) 严重依赖于场景(性能、扩展性、团队规模)
典型代表 ADD、DDD(作为方法时)、ATAM、TOGAF-ADM 数据流体系风格、调用/返回体系风格、虚拟机体系风格等

 

为了更好的理解上述两个概念,

我们可以分成两个视角看架构过程:

1、架构形态金字塔(从抽象约束到具体模板)

  • 顶层:架构风格:最高层抽象约束,定义组件、连接器、交互拓扑,不绑定业务。如分层、管道‑过滤器、事件驱动、客户端‑服务器。
  • 中层:架构模式:组合一种或多种架构风格,面向一类业务 / 技术问题给出可复用的完整架构模板。如微服务架构模式,MVC架构模式。

2、独立的设计过程维度(用来产出上面的架构)

     架构设计方法:一套步骤和思考框架,用来分析质量属性、业务域,选择合适的架构风格,推导落地成架构模式。例如 ADD 方法、DDD 领域驱动设计、结构化设计方法(SD)、面向对象设计(OOD)、ATAM 架构评估。

posted @ 2026-08-30 23:16  zhaotianff  阅读(13)  评论(0)    收藏  举报