重构流程

UniqueSoft将传统代码重构分成两个步骤:逆向工程和正向工程设计阶段。正向工程阶段与UniqueSoft所使用的新产品开发过程非常相似,在“软件开发服务”中有更详细的介绍。

逆向工程可以在一个设计模型中获取传统代码中的系统架构、功能和设计;“现代化”是以不同的质量属性、改进的设计或架构、新增加的功能和技术特性来开发一个新系统。UniqueSoft所使用的流程类似“软件开发”中所提到的。点击这里查看流程。

逆向工程阶段侧重于使用一系列的设计模型来捕捉系统的结构、功能、设计和结构。这样可以整理传统代码功能,使代码被简单地修改,并且无风险低成本 。逆向工程过程的步骤描述如下:

步骤一:架构提取

架构提取可以从不同的传统代码中生成一个正式架构的表达式。 虽然这个过程需要高度的专业背景和特定的行业技术,但它利用了模式识别引擎挖掘传统代码的具体架构功能(例如,线程,接口和的同步基元)。

步骤二:模型提取

这一步传统代码转换成可以捕捉传统系统行为的模型。提取是靠结构模型的引导并自动处理。解析后的传统代码会被转换为模型元素,并插入到系统架构的引用位置。(注: 传统代码不需要整体转换:可以只提取系统中问题最多的部分,例如,那些不能再运行,需要最多修改的,或含最多缺陷的部分)

步骤三:测试用例提取

此步骤会从传统代码的测试生成一个模型级别的测试套件。它被用来评估所提取模型的有效性,以及之后的现代化步骤。该模型记录外部接口上的行为,并且在传统的测试用例上执行测试。 所收集的测试踪迹也可以被转换成测试用例。

步骤四:功能模型开发

在这一步,一个功能模型会在传统代码,需求文档,现有的文件,测试用例,或开发人员和用户面谈分析的基础上进行手工开发。功能模型是传统系统所实现功能(行为)的分层表示。

步骤五:译注

该模型是根据功能模型中认证的功能附加说明。译注是一个半自动化流程,用户把传统系统中最普遍的符号与相应的特征联系起来。基于控制和数据流分析的聚类分析扩展了初始关联,并以一定程度的概率去覆盖一个完整的模型。

步骤六:度量分析

在这个阶段一组质量和模块化度量会被识别,用来测量传统代码重构的当前状态,并帮助在下一步骤中的重构。这些度量包括功能分散度,内聚力和实体耦合。这些可用于测量系统的模块化。

步骤七:重构

重构转换目录可以用来执行重要的设计变化以实现更好的模块化设计。 (额外的转换可以很容易的从UniqueSoft规则引擎中实现。)重构序列会与客户一起协商决定,然后通过规则引擎运用到抽象设计中。每次重构后,重构系统的质量度量会被重新计算,然后与之前版本的度量相比,以确保“建立一个更好系统”的进度。