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

2023-09-05 14:44:31 浏览数 (3)

一、软件架构演化和定义

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

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

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

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

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

对象演化:在顺序图中,组件的实体是对象,包含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动态配置文件读取)

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

三、软件架构演化评估

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

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

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

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

1 人点赞