大部分软件系统及软件架构遵循如图所示的发展趋势
从初步构建到最终消亡。其中分界点在于系统是否已处于老化阶段,如果软件系统存在如下描述形象:
1.系统的文档已经部分丢失和残缺。
2.研发团队对系统的认知非常有限
3.试图增加新的功能时,整个系统的集成运行总会发生意向不到的问题。
4.如果仔细分析当前系统代码,会发现代码之间的关系非常混乱且难以维护。
则可以说明系统已处于“成熟期”向“老化阶段”过渡时期,为了延缓系统衰亡速度,就需要开展“系统架构恢复与重构”工作,通常可以应用如下过程开展重构工作,经历反向工程与正向工程两个阶段,三个过程:
1.架构和设计恢复(正向工程)
2.架构与设计重构
3.系统代码重构
反向工程主要包含以下活动:
1).系统分析和架构恢复:全面掌握当前系统情况。
2).SWOT分析:从架构角度分析有点、弱点、改进机会及威胁
3).决策那些部分保留、那些部分更改、那些部分丢弃
正向工程包含以下活动:
1).建立新的架构远景
2).建立新的架构基线
3).进行代码重构
如此看来,在选择是否开展系统重构工作前需要进行深入评估,天下没有免费的午餐,治疗老系统延长寿命,同样需要付出一些代价!