ARTICLE · 1015850
软考 系统架构设计师 第十章 软件架构的演化和维护(一)- 软件架构演化和定义的关系
软考 系统架构设计师 第十章 软件架构的演化和维护(一)- 软件架构演化和定义的关系
画板
:::tips
Hi,新朋友吗?点击上方“关注”,我们就是朋友啦!每天5分钟,为你解读[软考架构]那些事儿。
:::

一、演化与维护是什么
软件架构的生命周期通常经历四个阶段,修改完善阶段实质上就是架构的演化与维护过程。
• 目的:使软件能适应环境变化,满足用户需求。 • 性质:一个不断迭代的过程,架构在此过程中逐步完善。 • 本章范围:基本概念、演化类型、维护手段,以及实用的架构演化原则。
二、演化的重要性
核心观点
• 演化目的:维持架构自身的有用性,适应新需求、业务环境与运行环境的变化。 • 本质:软件整体结构的演化,涵盖架构全生命周期——需求获取、建模、文档、实现、维护。 • 关键论断:"软件架构是演化来的,而不是设计来的。"
为什么演化如此重要(三个层面)
1. 架构是系统的骨架
• 架构支撑整个软件系统,是保障性能、可靠性、安全性、易维护性等功能与质量属性的关键。 • 这些属性决定系统是否被用户接受、是否有市场竞争力、能否升级改造、是否有长生命周期。 • 架构演化正是保障这些属性向预期方向发展的措施。
2. 架构是宏观管控复杂性的蓝图
• 为管控系统整体复杂性与变化性提供有效途径。 • 基于架构进行检测和修改,成本相对较低。 • 因此从架构演化出发去刻画复杂演化、观察和控制影响效应,更加合理。
3. 保证演化的一致性、正确性,并降低成本、提升便捷性
具体有 3 个原因:
1. 架构的形式化、可视化表示 → 提高可构造性 → 便于演化; 2. 设计方案涵盖的整体结构、配置、约束信息 → 帮助开发人员预判未来可能的演化问题、情形与环境; 3. 架构设计时对组件间耦合的描述 → 有助于系统动态调整。
三、 演化与定义的关系
基本关系
• 软件架构定义众多(不完全统计近百种),不同定义确定了不同的组成方式与组成规则。 • 各定义间存在大量共性描述,因此架构演化既体现相同面,也体现不同面。 • 结论:理解架构演化,必须结合具体的架构定义。
以经典定义 SA = {Components, Connectors, Constraints} 为例
该定义下,演化主要关注组件、连接件、约束的添加、修改与删除。
| 组件 (Components) | |||
| 连接件 (Connectors) | |||
| 约束 (Constraints) |
演化的波及效应分类
• 受变更直接影响的 组件 / 连接件 / 约束; • 受变更波及的 组件 / 连接件 / 约束; • 上述两类 + 未受影响的元素 = 演化后的软件架构。
要点:组件演化几乎总牵涉连接件演化;任何一类元素的变更都可能引发连锁的波及效应,最终所有元素共同构成演化后的新架构。
:::tips
听说给本文点“赞”的人,下半年都会好运爆棚!❤️
写文不易,您的关注就是对我最大的支持。我会持续产出更多优质内容,感谢相遇!
关注我,可查看更多往期内容!🎉
:::