🏠 首页›第一梯队 · 决胜核心 · 第 9 小时 · 系统架构设计基础

软件架构概念与生命周期

选择 8~15 分案例 25 分论文高频
📄 教材出处 · 第 9 小时《架构设计》 (书第 87–96 页) ▸ 查看原文摘录 打开教材 PDF ↗
第 87 页 ↗系统架构设计基础知识 9.0 章节考点分析 主要学习软件架构的基本概念、基于架构的软件开发方法、软件架构风格、软件架构 复用以及特定领域软件体系结构等内容。
第 88 页 ↗【导读小贴士】 软件架构设计是降低成本、改进质量、按时和按需交付产品的关键因素。
第 89 页 ↗系统架构设计基础知识 81 1)组成SA模型(软件架构模型)的基本概念。
第 90 页 ↗9.2 基于架构的软件开发方法 【基础知识点】 1.体系结构的设计方法概述 基于体系结构(架构)的软件设计(Architecture-Based Software Design,ABSD)方法是体系 结构驱动的,即指构成体系结构的商业、质量和功能需求的组合驱动的。
第 91 页 ↗ 9.3 软件架构风格 【基础知识点】 1.软件架构风格概述 软件体系结构设计的核心目标是重复的体系结构模式(软件复用/重用)。
第 92 页 ↗ 图9.3 管道和过滤器风格 3.调用/返回体系结构风格 调用-返回风格在系统中采用了调用与返回机制。

知识点目录(共 3 项)

  1. 软件架构的定义与作用(构件 + 连接件 + 约束)
  2. 软件架构与生命周期各阶段的工作对应(需求 → 设计 → 实现 → 演化)
  3. 4+1 视图模型:逻辑视图 / 开发视图 / 进程视图 / 物理视图 / 场景视图

知识点详解

一、软件架构的定义

软件架构(Software Architecture),又称软件体系结构。经典的 Bass / Clements / Kazman 定义:

记忆:软件架构 = 系统的一个或多个结构,结构包括软件的构件(可能是程序模块、类或中间件)、构件的外部可见属性及其之间的相互关系。

注意两个易错点:

二、软件架构贯穿生命周期(六阶段,选择题高频)

需求分析问题→解空间 设计关注最早最多 实现SA→代码过渡 构件组装失配检测 部署部署方案评估 后开发维护/演化/复用 · 需求分析:起步阶段。保持问题空间(需求)与解空间(架构)的可追踪性与可转换性;两个关注点:如何由需求模型构建架构模型、如何保证转换可追踪 · 设计:研究最早最多。三个层次——①基本概念(构件+连接子建模)②ADL 架构描述语言(重视连接子,典型:UniCon/Rapide/Darwin/Wright/C2SADL/Acme/xADL 等)③多视图(4+1 模型、Hofmeister 4 视图、Views and Beyond;标准 IEEE 1471-2000/RM-ODP/UML/Zachman) · 实现:基于 SA 的开发过程支持;SA→实现过渡(模型转换、封装底层细节、引入实现概念);基于 SA 的测试 · 构件组装:支持可复用构件互联(连接子实现);检测并消除体系结构失配(Garlan 1995 提出):构件失配 / 连接子失配 / 全局架构失配 · 部署:高层视图描述软硬件模型;基于架构模型分析部署方案的质量属性。· 后开发:动态架构、架构恢复与重建(手工/工具支持的手工/查询语言自动建立聚集/数据挖掘)
图 1-1 软件架构设计与生命周期六阶段(依据教材表 9.1 及正文绘制)
考法:选择题考"某阶段的架构研究内容",重点记:设计阶段关注最早和最多;ADL 与其他建模语言最大区别是更关注构件间互联机制(连接子);失配三类、重建方法四种。

三、"4+1" 视图模型(RUP 采纳,超高频)

由 Philippe Kruchten 于 1995 年在《IEEE Software》提出,被 RUP 采纳,后为 UML 吸收。多视图体现"关注点分离"思想——不同角色关心架构的不同侧面:

逻辑视图 Logical最终用户 · 功能性需求类图/对象图/状态图What:有哪些功能块 开发视图 Development程序员 · 模块组织包图/组件图How:代码怎么分包 进程视图 Process系统集成人员 · 并发性能活动图Run:并发/同步/容错 物理/部署视图 Physical系统工程师 · 软件映射硬件部署图Where:装在哪台服务器 场景/用例视图Scenarios(+1)串联验证前 4 个视图
图 1-2 "4+1"视图模型(重绘自 Kruchten 模型 / 教材图 7.5)
记忆口诀:逻开进物场——逻辑对用户、开发对程序员、进程对集成者、物理对系统工程师、场景把四个视图串起来(这也是"4+1"得名的原因)。别名:开发视图=实现视图;进程视图=过程视图;物理视图=部署视图。

四、软件架构的重要性(8 条,简答/选择题素材)

软件架构设计是降低成本、改进质量、按时和按需交付产品的关键因素。重要性包括:① 满足系统的品质;② 使受益人(涉众)达成一致目标;③ 支持计划编制过程;④ 对系统开发的指导性;⑤ 有效地管理复杂性;⑥ 为复用奠定基础;⑦ 降低维护费用;⑧ 支持冲突分析。

易错辨析:架构能够展现软件的结构、属性与内部交互关系,但与用户的功能性需求没有直接对应关系——"表达系统是否满足用户功能性需求"不是架构的作用(历年真题考点)。