【笔记-软考】架构演化

Author:赵志乾
Date:2024-07-20
Declaration:All Right Reserved!!!

1. 概念

        架构都会经历初始设计、实际使用、修改完善和退化弃用的过程,其中修改完善即为架构的演化过程,其演化的目的是为了便于软件为适应环境的变化而进行纠错性与完善性修改。

2. 演化的重要性

        架构演化是为了维持自身的有用性,从而便于软件为适应环境的变化而进行纠错性与完善性修改;故其重要性主要通过架构本身的重要性间接体现。

  • 架构作为系统骨架,是系统具备诸多特性的重要保障;
  • 架构自身优劣直接影响其能否满足用户需求;
  • 架构作为蓝图为宏观管控系统的整体复杂性和变化性提供了有效途径;    

3. 架构演化与软件演化间的关系

        架构演化能够更好地促进软件演化,保证软件演化的一致性与正确性,降低软件演化成本,其原因有以下3点:

  • 对架构进行形式化、可视化表示,提高了软件的可构造性,便于软件演化;
  • 架构设计方案所涵盖的整体结构信息、配置信息、约束信息等有助于开发人员充分考虑未来可能出现的各种演化问题;
  • 架构设计时对系统构件之间的耦合描述有助于系统的动态调整;

4. 架构定义与演化间的关系

        架构定义很多,以下面的架构定义为例进行说明:

        架构:包括构件、连接件、约束三大要素,其演化过程主要关注构件、连接件、约束的增删改;

  • 构件是架构的基本要素和结构单元,其演化体现在构件中模块的增删改,这一过程往往会产生波及效应,例如:新增模块会导致交互消息新增、删除模块会导致交互消息删除、变更模块会导致已有交互消息的变更;
  • 连接件是构件间的交互关系,其演化体现在构件间交互消息的增删改,往往伴随着构件的演化而演化;
  • 约束是构件和连接件间的拓扑关系和配置,其为两者提供额外的数据支撑,可以是架构的约束数据或参数,其演化体现在知识库内容的增删改;

        构件、连接件、约束的演化都可能导致一系列的波及效应,最后受影响和不受影响的元素共同构成了演化后的架构。

相关推荐

  1. 笔记-架构演化

    2024-07-21 11:32:01       17 阅读
  2. 笔记--软件架构风格

    2024-07-21 11:32:01       38 阅读
  3. 笔记--信息系统架构

    2024-07-21 11:32:01       27 阅读
  4. 笔记--云原生架构内涵

    2024-07-21 11:32:01       39 阅读
  5. 笔记-】软件架构风格

    2024-07-21 11:32:01       16 阅读
  6. 笔记-】系统架构评估

    2024-07-21 11:32:01       21 阅读
  7. 笔记--基于架构的软件开发方法

    2024-07-21 11:32:01       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 11:32:01       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 11:32:01       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 11:32:01       45 阅读
  4. Python语言-面向对象

    2024-07-21 11:32:01       55 阅读

热门阅读

  1. 每天一个数据分析题(四百三十九)- 用户画像

    2024-07-21 11:32:01       17 阅读
  2. SpinalHDL之总线

    2024-07-21 11:32:01       15 阅读
  3. C# 中的事件

    2024-07-21 11:32:01       18 阅读
  4. 【分布式存储系统HDFS】架构和使用

    2024-07-21 11:32:01       17 阅读
  5. sugarhosts优惠码,国外免备案建站解决方案!

    2024-07-21 11:32:01       14 阅读
  6. SparseArray 你不知道的东西

    2024-07-21 11:32:01       16 阅读
  7. Python面试题:Python中的记忆化与缓存技术

    2024-07-21 11:32:01       15 阅读
  8. nginx的配置

    2024-07-21 11:32:01       14 阅读
  9. Choosing The Commander

    2024-07-21 11:32:01       19 阅读
  10. 测试人员如何进行需求分析

    2024-07-21 11:32:01       18 阅读
  11. 设计模式--模板方法

    2024-07-21 11:32:01       17 阅读
  12. 使用winget安装git

    2024-07-21 11:32:01       20 阅读
  13. [C/C++入门][for]22、输出奇偶数之和

    2024-07-21 11:32:01       17 阅读