《系统架构设计师教程(第2版)》第10章-软件架构的演化和维护-01-软件架构演化概述

文章目录

  • [1. 演化的重要性](#1. 演化的重要性)
  • [2. 架构演化示例](#2. 架构演化示例)

教材中,本节名为:"软件架构演化和定义的关系"

1. 演化的重要性

  • 演化目的:维持软件架构自身的有用性
  • 为什么说,软件架构是演化来的,而不是设计来的?
    软件架构的演化就是软件整体结构的演化,演化过程涵盖软件架构的全生命周期,包括软件架构需求的获取、软件架构建模、软件架构文档、软件架构实现以及软件架构维护等阶段。
  • 架构演化的重要性

    1. 软件架构演化保障软件系统向人们的预期方向发展

    软件架构作为软件系统的骨架支撑着整个软件系统,是软件系统具备良好特性的重要保障,

    1. 软件演化从软件架构演化出发更加合理
      • 更好地保证软件演化的一致性和正确性
      • 明显降低软件演化的成本
      • 软件架构演化使得软件系统演化更加便捷

2. 架构演化示例

  • 注意:软件架构演化要根据具体软件架构的定义来确定

  • 示例,软件架构定义是 SA={components,connectors,constraints}

  • 分析

    • 可知,软件架构包括:组件 (Components)、 连接件 (Connectors) 和约束 (Constraints) 三大要素
    • 即软件架构需要考虑:组件、连接件、约束的添加、修改、删除
  • 组件的演化

    • 什么是组件?
      • 组件是软件架构的基本要素和结构单元,表示系统中主要的计算元素、数据存储以及一些重要模块
    • 什么会引起组件演化?
      • 如:消除软件架构存在的缺陷、增加新的功能、适应新的环境等
    • 组件的演化的体现是什么?
      • 在组件中模块的增加、删除或修改
    • 产生波及效应:
      • 增加模块会导致增加新的交互消息
      • 删除模块会导致删除已有交互消息
      • 改变模块会导致改变已有交互消息
  • 连接件的演化

    • 什么是连接件?连接件是组件之间的交互关系,大多数情况下组件的演化牵涉到连接件的演化
    • 什么会引起连接件演化?
      • 模块的改变
      • 由于系统内部结构调整导致的人与系统交互流程的改变
    • 连接件的演化体现是什么?
      • 组件交互消息的增加、删除或改变
  • 约束的演化

  • 什么是约束?

    • 约束是组件和连接件之间的拓扑关系和配置,它为组件和连接件提供额外数据支撑,可以是架构的约束数据,也可以是架构的参数
    • 约束的演化体现?
      • 知识库中仿真数据的增加、删除或改变。

相关推荐
武子康1 天前
Java-141 深入浅出 MySQL Spring事务失效的常见场景与解决方案详解(3)
java·数据库·mysql·spring·性能优化·系统架构·事务
虫师c1 天前
分布式系统设计模式:从理论到实践
微服务·设计模式·系统架构·高可用·分布式系统
timmy-uav1 天前
PX4-Autopilot代码解析(2)-系统架构
系统架构·自动驾驶·无人机·飞控·px4
Jolie_Liang2 天前
证券业智能化投研与分布式交易系统架构:全球发展现状、技术创新与未来趋势研究
分布式·系统架构
夜听莺儿鸣2 天前
901-009_高级系统架构设计师-考试范围-软件可靠性技术
系统架构·软考
lypzcgf2 天前
Coze源码分析-资源库-编辑知识库-后端源码-基础设施/存储层
系统架构·go·知识库·coze·coze源码分析·智能体平台·ai应用平台
文火冰糖的硅基工坊2 天前
[创业之路-678]:工业制造领域的从事检测与测量设备的公司,包括上市公司、非上司公司、初创公司,以及对新创业者的启示...
系统架构·制造·产业链
夜听莺儿鸣2 天前
901-012_高级系统架构设计师-考试范围-标准化&知识产权&数学模型汇总
系统架构
m0_651593912 天前
位置透明性、Spring Cloud Gateway与reactor响应式编程的关系
java·spring cloud·系统架构·gateway
明月(Alioo)3 天前
用AI帮忙,开发刷题小程序:微信小程序在线答题系统架构解析
微信小程序·小程序·系统架构