夜雨聆风学习资料网

ARTICLE · 1029141

软考 系统架构设计师 第十章 软件架构的演化和维护(三)- 软件架构演化时期

软考 系统架构设计师 第十章 软件架构的演化和维护(三)- 软件架构演化时期

:::tipsHi,新朋友吗?点击上方“关注”,我们就是朋友啦!每天5分钟,为你解读[软考架构]那些事儿。

:::

画板

软件架构演化时期

1. 本章一句话

软件架构演化可按粒度、研究方法、是否运行期分类;演化时期分设计时、运行前、有限制运行时、运行时四档,运行时最难。

2. 知识框架

  • • 演化方式分类
    • • 按实现方式与实施粒度
    • • 按研究方法(Barnes 4类)
    • • 按是否运行期(静态/动态)
  • • 演化时期(4种)
    • • 设计时演化
    • • 运行前演化
    • • 有限制运行时演化
    • • 运行时演化

3. 核心内容

3.1 演化方式的三类分类法

  • • 目前尚无公认分类法,以下为三种典型:
  • • 按实现方式与实施粒度 → 基于过程和函数 / 面向对象 / 基于组件 / 基于架构的演化
  • • 按研究方法(Jeffrey M. Barnes 4类)★:
    • • 第1类:对演化的支持(模块化准则、内聚耦合指示、代码重构)
    • • 第2类:版本与工程管理工具(CVS、COCOMO)
    • • 第3类:架构变换的形式方法(结构/行为变换模型、重现风格)
    • • 第4类:成本收益分析(决定如何增加系统弹性)
  • • 按演化是否处于系统运行期 → 静态演化(设计/实现/维护期,未运行或已停止)与动态演化(运行中)⚠
    • • 本章重点介绍:静态演化与动态演化

3.2 软件架构演化时期(4种)

  • • 设计时演化(Design-Time):发生在架构模型及代码编译之前
  • • 运行前演化(Pre-Execution)★:发生在执行之前、编译之后;程序未执行,可不考虑状态,但需考虑体系结构,且系统需具备增删组件机制
  • • 有限制运行时演化(Constrained Runtime):设计时就规定演化条件,置于"安全"模式,仅在特定约束满足时做规定好的操作
  • • 运行时演化(Runtime)★:体系结构在运行时不满足要求时演化,含增删组件、升级替换、改拓扑结构;最难实现

4. 关键概念速查

术语
一句话解释
常见考查角度
静态演化
未运行或停止状态下的架构修改
与动态演化的区别
动态演化
运行中不停止系统的架构修改
难点与适用场景
运行时演化
运行期进行的演化,含增删改组件与拓扑
四时期中难度最高
Barnes 4类
按研究方法的演化分类法
第3、4类含义
基于架构的演化
按粒度分类的最高层级
四类粒度排序

5. 易错 / 易混淆

  • • 静态 vs 动态演化 ⚠:区别在"是否处于系统运行期"。判定口诀:看系统在不在跑——没跑/停了=静态,边跑边改=动态。
  • • 运行前 vs 运行时演化:运行前是"编译后、执行前",程序还没动,不用管状态;运行时是"执行中",要边跑边改。

6. 章节速记

三句话

  1. 1. 演化分类无标准,典型按粒度/方法/运行期三种。
  2. 2. 演化时期分四档:设计时、运行前、有限制运行时、运行时。
  3. 3. 运行时演化最难,需边运行边改架构。

口诀:粒法期三分,四期递难行(设计→运行前→有限运行时→运行时,难度递增)。

关键词链:分类法 → 粒度/方法/运行期 → 静态/动态 → 四时期 → 运行时最难

自测三问

  1. 1. Barnes 四类演化研究方法第3类是什么? 答:架构变换的形式方法(结构/行为变换模型、重现风格)。
  2. 2. 运行前演化与运行时演化最关键的区别? 答:运行前程序未执行、不考虑状态;运行时程序执行中、边跑边改。
  3. 3. 哪种演化时期最难实现? 答:运行时演化(Runtime Evolution)。

:::tips听说给本文点“赞”的人,下半年都会好运爆棚!❤️

写文不易,您的关注就是对我最大的支持。我会持续产出更多优质内容,感谢相遇!

关注我,可查看更多往期内容!🎉

:::

相关学习资料