软件架构的演化和维护

  1. 软件架构的演化和维护

    • 软件架构的演化是一个不断迭代的过程,旨在使软件适应环境变化并满足用户需求。
    • 涉及软件架构的全生命周期,包括需求获取、建模、文档化、实现和维护等阶段。
    • 软件架构演化的重要性在于它是系统骨架,保障软件特性和宏观管控复杂性。
    • 通过形式化和可视化表示,有助于降低演化成本,提高软件演化效率。
  2. 软件架构演化的主要类型

    • 对象演化:包括AddObject(AO)和DeleteObject(DO)。AO用于添加新对象以实现新功能或增加灵活性;DO用于移除对象或合并功能以降低复杂性。
    • 消息演化:包括AddMessage(AM)、DeleteMessage(DM)、SwapMessageOrder(SMO)、OverturnMessage(OM)和ChangeMessageModule(CMM)。AM用于增加新交互;DM用于移除交互;SMO用于交换消息顺序;OM用于反转消息发送和接收对象;CMM用于改变消息发送或接收对象。
    • 复合片段演化:包括AddFragment(AF)、DeleteFragment(DF)、FragmentTypeChange(FTC)和FragmentConditionChange(FCC)。AF用于新增复合片段;DF用于移除复合片段;FTC用于改变复合片段类型;FCC用于改变复合片段内部执行条件。
    • 约束演化:包括AddConstraint(AC)和DeleteConstraint(DC)。AC用于添加新约束;DC用于删除不必要约束。
  3. 软件架构演化分类方法

    • 按实现方式和粒度分类:过程和函数级演化、面向对象演化、组件级演化、架构级演化。
    • 按研究方法分类:演化支持(如模块化准则)、版本管理工具、形式方法(系统结构变换)和成本收益分析。
    • 按演化时期分类:静态演化(设计时和运行前)和动态演化(有限制运行时和运行时)。
  4. 软件架构动态演化技术

    • 动态软件架构(DSA):允许运行时通过框架结构的动态演化实现架构修改。
    • 动态重配置(DR):通过操作组件和连接件的配置,允许运行时增删组件和修改连接关系。
    • 实现原理:显式表示DSA,作为系统运行依据,允许运行时体系结构信息改变触发系统调整。
    • 需求来源:内部执行导致的体系结构改变和外部请求导致的重配置。
  5. 软件动态性级别

    • 交互动态性:数据在固定结构下动态交互。
    • 结构动态性:允许结构修改,如组件和连接件实例的添加或删除。
    • 架构动态性:允许软件架构构造的变动,如新的组件类型定义。
  6. 大型网站系统架构演化实例

    • 单体架构:初始阶段。
    • 垂直架构:功能模块垂直划分。
    • 使用缓存:提高网站性能。
    • 服务集群:提升并发处理能力。
    • 数据库读写分离:优化数据库操作。
    • 反向代理和CDN:加速响应。
    • 分布式文件系统和数据库:处理大数据。
    • NoSQL和搜索引擎:提高搜索性能和数据处理能力。
    • 业务拆分和分布式服务:实现分布式架构。
  7. 软件架构维护

    • 架构知识管理:文档化架构设计中的决策来源,帮助维护人员理解修改并为其他活动提供参考。
    • 架构修改管理:建立隔离区域,确保修改对其他部分影响小,并明确修改规则、类型及影响范围。
    • 架构版本管理:为版本演化控制、使用和评价提供依据,支持架构演化度量。
  8. 架构演化评估

    • 已知演化过程评估:通过度量和比较架构内部结构及由此导致的质量属性变化,评估演化过程中的质量属性。
    • 未知演化过程评估:逆向推测演化过程中的变化,并分析变化与质量属性的关联关系。
    • 评估执行过程:包括架构修改影响分析、演化过程监控、关键演化过程分析等步骤。
  9. 架构演化原则

    • 演化成本控制、进度可控、风险可控、主体维持、总体结构优化、平滑演化、目标一致、模块独立演化、影响可控、复杂性可控、利于重构、利于重用、设计原则遵从、适应新技术、环境适应性、标准依从性、质量向好和适应新需求。

你可能感兴趣的:(系统架构,数据库,重构)