惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
H
Help Net Security
GbyAI
GbyAI
博客园_首页
G
Google Developers Blog
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
月光博客
月光博客
美团技术团队
B
Blog RSS Feed
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
博客园 - 叶小钗
有赞技术团队
有赞技术团队
T
The Blog of Author Tim Ferriss
Engineering at Meta
Engineering at Meta
Google DeepMind News
Google DeepMind News
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
Microsoft Azure Blog
Microsoft Azure Blog
罗磊的独立博客
云风的 BLOG
云风的 BLOG
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
P
Proofpoint News Feed

博客园 - zhaotianff

WPF控件样式和模板全解析-ToolTip控件 WPF控件样式和模板全解析-RadioButton控件 WPF控件样式和模板全解析-ToggleButton控件 WPF控件样式和模板全解析-CheckBox控件 WPF控件样式和模板全解析-Label控件 WPF控件样式和模板全解析-Button控件 Windows一直卡在检查更新的解决方案 - zhaotianff - 博客园 AI时代,程序员应该何去何从? C++中的explicit关键字 如何解决Windows 10/11 删除打印机时,拒绝访问的问题 解决IIS服务器typecho上传附件后无法访问的问题 Visual Studio编译过程中拷贝文件的一些实用小技巧 Jenkins快速入门教程 .NET是什么?为什么要选择.NET? 如何在WPF中实现类似DevOps的自动化流程 一文带你搞懂医疗器械设计开发全生命周期 Windows如何清除本机记录的git用户名和密码 HL7协议详解 医疗行业 GDT 数据格式详解 一文带你搞懂C# 异步编程(async/await)底层原理 如何在C#中使用Chromium headless(无头模式)浏览器 不同.NET版本中的WPF新增功能 如何在WPF中使用 Fluent 主题 Windows平台下的各种原生UI框架介绍 C#如何Hook托管函数 WinDbg 用户层调试进阶教程 Windows编程的一些基础理论 推荐一款优秀的Windows经典文件管理器项目-WinFile Windows如何阻止应用程序联网 如何在WPF中捕获窗口外的事件
软件架构风格与软件架构设计方法
zhaotianff · 2026-08-30 · via 博客园 - zhaotianff

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

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

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

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

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

如下所示:

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

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

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

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

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

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

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