软件架构演化和维护-架构师之路(十六)

一、软件架构演化和定义

软件架构演化是对架构 修改和完善 的过程,为了适应环境变化 纠错性修改和完善的修改 等,不断迭代的过程。

演化过程涵盖 软件架构的全生命周期,包括 软件架构需求的获取、软件架构建模、软件架构文档、软件架构实现以及软件架构维护等阶段。

软件架构的演化可以 降低软件演化的成本。

软件架构定义包含 组件、连接件和约束三大要素,软件架构演化 主要关注 这三者之间添加、修改和删除等。

二、面向对象软件架构演化

对象演化:在顺序图中,组件的实体是对象,包含AddObject和DeleteObject,AO和DO两种。

消息演化:除了AO和DO外,还有

SwapMessageOrder(SMO)、OvertrueMessage(OM)、ChangeMessageModule(CMM)有五种。

SMO则是交换两条消息时间顺序。

OM则是反转发送消息和接受消息的对象。

CMM则是改变接受消息和发送消息对象。

复合片段演化:

复合片段是 对象交互关系的控制流描述,属于连接件范畴。

AddFragment(AF)、DeleteFragment(DF)、FragmentTypeChange(FTC)和

FragmentConditionChange(FCC)

AF:新增复合片段,

DF:删除复合片段。

FTC:改变复合片段类型。

FCC:改变复合片段内部执行条件。

约束演化:

直接对约束演化进行新增和删除,ADD Constraint,Delete Constraint。

演化过程是否处于系统自动运行,可以分为静态演化和动态演化。

软件架构演化时期:设计时演化、运行前演化、有限制运行时演化、和运行时演化。

静态演化五个步骤:软件理解、需求变更分析、演化计划、系统重构和系统测试

架构演化的 可维护性 基于组件图(构件图)表示软件架构。

可靠性演化 基于用例图、部署图和顺序图

动态演化只要四个方面:

属性改名:在运行时候,用户对属性重新定义。

行为改变:用户需求变化或系统自身服务质量调节都会引发软件行为变化。

拓扑结构变化:构件新增和删除,改变组件关联。

风格变化:正常演化后架构风格应该保持不变,就算演化也是两层C/S改成三层C/S。

动态软件架构DSA:允许运行过程中对框架结构动态演化对架构修改。

DR动态重配置:允许运行过程中增加删除组件,修改连接关系等。(比如服务降级,比如nacos动态配置文件读取)

动态重配置模式:主从模式、中央控制模式、客户端/服务器模式和分布式控制模式。

三、软件架构演化评估

评估过程分为:演化过程已知评估 和 演化过程未知的评估。

已知则知道每个版本的变化,每个版本变化的距离。

未知的话,通过演化前后的架构进行度量,比较两个度量之后的结果。

具体包括:架构修改影响分析、监控演化过程、分析关键演化过程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后端从入门到精通

你的鼓励是我最大的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值