【系统分析师】第12章 软件架构设计

发布时间:2026/5/19 13:52:30

【系统分析师】第12章 软件架构设计 ️ 一、概述软件系统的“骨架”与“蓝图”软件架构设计是指将软件需求转化为系统顶层设计的过程它定义了软件的整体结构、组成元素及其相互关系并为后续的详细设计和实现提供宏观指导。软件架构是系统的“骨架”和“蓝图”决定了系统的质量属性如性能、安全性、可维护性和演进能力。对于系统分析师而言软件架构设计是你从“需求分析”走向“技术实现”的关键转折点。在需求阶段你关注“系统必须做什么”在架构设计阶段你开始思考“系统应该怎么组织”。这一阶段的产出将直接影响系统的开发效率、运行质量和长期维护成本。软件架构的核心价值· 沟通媒介为项目干系人用户、管理者、开发人员、测试人员提供统一的交流语言· 设计决策记录早期的、难以更改的重大技术决定· 可复用资产形成可传递和复用的模型为后续项目提供经验· 质量预测通过研究架构可以预测软件的质量属性· 复杂性管理将大问题分解为小问题有效控制系统复杂度架构设计在生命周期中的位置[系统规划] → [需求工程] → [软件架构设计] → [详细设计] → [编码实现] → [测试运维]↑“从做什么到怎么做”的关键过渡本章的知识框架基于常见教材目录· 12.1 软件架构的概念· 12.2 软件架构风格· 12.3 软件架构描述与表示· 12.4 软件架构设计方法· 12.5 软件架构评估️ 二、详细讲解五大核心知识点1️⃣ 12.1 软件架构的概念1软件架构的定义软件架构是有关软件整体结构与组件的抽象描述它包含三个核心要素· 组件系统的组成单元可以是子系统、模块、应用服务等不同粒度· 结构组件之间的组织方式形成特定的系统形态· 关系组件之间的连接方式如调用、依赖、消息传递等更正式的定义软件或计算机系统的软件架构是该系统的一个或多个结构而结构由软件元素、元素的外部可见属性及它们之间的关系组成。2架构设计的目标软件架构设计要达到的目标包括· 可靠性系统必须稳定可靠地运行· 安全性系统必须能抵御未授权访问和攻击· 可伸缩性系统能在用户量增加时保持合理性能· 可扩展性系统能方便地引入新技术和新功能· 可维护性系统易于修改和升级· 可定制性系统能根据不同客户需求进行调整3架构与软件复杂度的关系架构设计的本质是解决软件复杂度带来的问题。软件复杂度有多种表现形式· 业务复杂度如何拆解复杂的业务逻辑找到合适的组件和结构· 性能复杂度如何设计结构以满足高性能要求· 可用性复杂度如何确保系统在故障时仍能提供服务· 可扩展性复杂度如何使系统易于扩展 速记口诀“组结构关系三要素定架构可靠安全可伸缩扩展维护可定制六目标记心间”。2️⃣ 12.2 软件架构风格软件架构风格是描述特定软件系统组织方式的惯用模式它反映了众多系统共有的结构和语义特性强调对软件设计的重用。五大架构风格分类风格大类 子风格 核心特点 典型实例数据流风格 批处理、管道-过滤器 数据依次经过处理单元每个单元对数据进行变换 传统编译器、网络报文处理调用/返回风格 主程序/子程序、面向对象、层次结构 通过调用关系组织系统功能 分层C/S、MVC、三层架构独立构件风格 进程通信、事件驱动隐式调用 构件独立通过消息或事件交互 GUI系统、消息中间件虚拟机风格 解释器、规则系统 自定义执行环境和规则 专家系统、脚本引擎仓库风格 数据库系统、黑板系统、超文本系统 中央数据存储独立构件在其上操作 数据库、语音识别系统1数据流风格· 管道-过滤器每个构件过滤器有一组输入和输出读入数据流处理后输出· 优点松耦合、高重用性、可扩展性、支持并行· 缺点交互性较差、性能较差每个过滤器都需要解析与合成数据2调用/返回风格· 层次结构将系统按抽象层次分为多层每层为上一层提供服务使用下一层的服务· 分层架构的优点· 支持基于可增加抽象层的设计· 不同的层次处于不同的抽象级别· 每层最多只影响相邻两层便于修改和复用· 分层架构的缺点· 并非每个系统都可以很容易地划分层次· 很难找到合适的、正确的层次抽象方法3独立构件风格· 事件驱动隐式调用构件将过程注册到事件事件发生时自动触发· 优点松耦合、良好的重用性/修改性/可扩展性· 缺点构件放弃了对系统计算的控制正确性推理困难4虚拟机风格· 解释器具有运行时系统行为自定义与改变能力· 规则系统包含规则集、规则解释器、工作内存等5仓库风格· 黑板系统由全局共享数据的黑板、控制单元和多个知识源组成· 应用语音识别、专家问题解决系统6闭环控制架构过程控制· 工业中的实时控制如数控机床、生产流水线控制· 特点及时采集检测数据按最佳值自动控制和调节 速记口诀“数据流调用回独立构件虚拟机仓库闭环C2齐五大风格要牢记”。3️⃣ 12.3 软件架构描述与表示141视图模型41视图模型是描述软件架构的经典框架从不同角度满足不同涉众的关注视图 关注点 主要涉众 描述内容逻辑视图 功能需求 最终用户 系统的功能需求即系统提供给最终用户的服务开发视图 模块组织 程序员 软件模块的组织和管理关注代码库、包、层的划分进程视图 运行特性 集成人员 系统的并发、同步、性能等非功能性需求物理视图 硬件映射 系统工程人员 软件如何映射到硬件考虑拓扑结构、安装、通信场景1 系统活动抽象 所有涉众 重要系统活动的抽象使四个视图有机联系起来视图关系逻辑视图和开发视图描述系统的静态结构进程视图和物理视图描述系统的动态结构场景则是驱动这些视图的核心需求抽象。2架构可视化方法方法 描述 优势 劣势线框图 通过线框和连线表达架构元素及关系 工具多样、学习成本低 语义一致性差UML 统一建模语言标准化的建模元语言 语义一致、表达丰富 学习成本高、复杂度高草图 非正式的快速图形化 高效沟通、灵活 语义一致性低C4模型 分层抽象表达系统静态结构 语义一致、易学习 仅覆盖静态结构3C4模型C4模型在不同抽象层级表达软件系统的静态结构· 上下文图系统与外部环境的交互及边界· 容器图系统的组成容器应用、数据存储及技术选型· 组件图容器内部的组件组成及交互· 代码实现细节可选可用UML类图等补充 速记口诀“41视图经典法逻辑开发进程物场景贯穿联四者C4模型分层画上下容器组件码”。4️⃣ 12.4 软件架构设计方法1架构设计三原则原则 核心思想 实践要点合适原则 一切从实际场景出发 匹配业务发展阶段合理利用资源简单原则 用最简单的解决方案解决问题KISS 复杂问题拆解为简单单元避免过度设计演化原则 架构随业务发展不断演进 区分变化部分与不变部分持续迭代2架构设计方法论以TOGAF ADM为例ADM软件开发方法包含以下阶段· 预备阶段梳理业务需求了解真实业务目标· 架构远景规划最终要达成的效果· 业务架构理解业务场景抽象业务模型· 信息系统架构包括数据架构和应用架构· 技术架构选择技术框架、中间件、存储方案· 技术及解决方案提出多套方案做取舍决策· 迁移规划、实施治理后续运维事项3常见架构域划分架构域 关注问题 产出形式业务架构 业务如何拆解、场景如何梳理 业务架构图场景层、产品功能层、领域模型层数据架构 需要什么数据、如何存储、如何设计 ER图实体、属性、关系应用架构 子系统如何划分、模块间关系 应用架构图、模块划分技术架构 技术框架选择、非功能需求实现 技术方案、关键技术要点 速记口诀“合适简单演化三原则定方向业务数据应用技术四架构域齐展开”。5️⃣ 12.5 软件架构评估1架构评估的重要性软件系统的质量属性主要由系统的软件体系结构决定。在大型系统中性能、可用性和可修改性等质量的实现更多地取决于整体软件架构而非代码级实践。因此在建造之前就分析和确定系统是否能满足其期望的品质至关重要。2ATAM架构权衡分析方法ATAM是一种系统架构评估方法主要在系统开发之前针对性能、可用性、安全性和可修改性等质量属性进行评价和折中。ATAM的四个主要活动阶段1. 需求收集明确质量属性需求2. 架构视图描述了解架构设计3. 属性模型构造和分析分析各质量属性的实现情况4. 架构决策与折中识别权衡点并做出决策3核心概念概念 定义 示例敏感点 实现质量目标时应注意的点是一个或多个构件或构件之间的关系的特性 查询请求处理时间要求影响系统的数据传输协议设计权衡点 影响多个质量特征并对多个质量特征都是敏感点的质量特征 改变业务数据编码方式对系统性能和安全都产生影响风险 某些做法有一些隐患可能导致问题 业务逻辑描述未达成共识导致功能模块重复非风险 可行的做法 业务响应小于30ms请求响应超时设定为1秒可接受4ATAM评估步骤九步1. 描述ATAM方法2. 描述业务动机3. 描述架构4. 确定架构方法5. 生成质量效应树6. 分析架构方法7. 讨论场景和对场景分级8. 分析架构方法9. 描述评估结果 速记口诀“ATAM评估法性能可用安全可修改敏感权衡点风险非风险九步走完得结论”。 三、重点总结与速记方法✅ 核心重点1. 软件架构的本质组件结构关系是系统的“骨架”和“蓝图”。2. 五大架构风格数据流、调用/返回、独立构件、虚拟机、仓库——必须能根据描述识别风格类型。3. 41视图模型逻辑、开发、进程、物理、场景——从不同角度描述架构。4. 架构设计三原则合适、简单、演化——指导架构决策的基本法则。5. ATAM评估方法识别敏感点、权衡点、风险、非风险对质量属性进行权衡分析。6. 架构域划分业务、数据、应用、技术四层架构层层递进。⚡ 速记口诀大全1️⃣ 架构定义“三要素”口诀“组件结构加关系三要素定架构”2️⃣ 五大风格“五字诀”“数、调、独、虚、仓”数据流、调用/返回、独立构件、虚拟机、仓库3️⃣ 41视图“五视图”口诀“逻辑开发进程物场景贯穿联四者”4️⃣ 设计原则“三字诀”“合适简单演化三原则定方向”5️⃣ ATAM“四概念”口诀“敏感权衡点风险非风险”6️⃣ 架构域“四层”口诀“业务数据应用技术层层递进设计全”7️⃣ 一句话总纲软件架构设计 五大风格 41视图 三原则 ATAM评估是从需求到实现的“骨架搭建”决定了系统的质量、成本和演进能力。---掌握第12章《软件架构设计》意味着你具备了从宏观视角规划系统结构的核心能力。这是系统分析师从“需求分析师”迈向“系统架构师”的关键一步。

相关新闻