● 再造(Rebuilding)
以提高可维护性、满足必要的功能追加和需求变更为目的,研究对系统整体进行重新构筑的方法。再造有两种方式,一种是废弃旧系统,在新平台新开发环境下重新开发的淘汰方式;一种是力图保留既存资产的再工程方式。在实际工程中,上述两种方式很难截然分开,多数情况是二者皆有。例如即使是淘汰方式,其重新开发时的上游工程也常常要参考既存资产中的原有文档。
以提高可维护性为目的的再造属于预防性维护,这显然不宜使用淘汰方式;进行功能追加和变更的再造属于完善性维护。如果使用适当的重用技术,淘汰率就可以降下来。
● 再构(Refactoring)
这是当前最受瞩目且成果较多的研究领域之一。它研究改善既存软件设计和代码以达到更理想状态的作业过程。该过程不改变软件外部功能,仅修改软件的内部结构。例如在不改变软件外部功能的前提下进行代码优化、性能优化、引入多线程并行处理方式、采用可供用户选择的多种算法实现同一功能、数据重组等。再构的思路、方法和技术不仅可以用于再工程,也可用于一次工程。再构是本专题后面将重点提及的反面模式解决方案的核心技术。
● 再结构化(Restructuring)
研究同一抽象级上对软件表现形式的变换。新表现形式必须满足原表现形式在含义(Semantics)和外部表现(External Behavior)上均不变的前提条件。与包含抽象粒度从细到粗、再从粗到细不同抽象级的再工程全过程不同,再结构化不涉及跨越软件不同抽象级的变换,它是最基本的再工程组成部分,也是目前最易实现自动化的领域之一。
● 文档重构(Redocumentation)
文档重构属于再结构化的一部分,它集中研究如何由源代码生成近于同一抽象级但与原文档不同形式的新文档,其目的在于得到更加易于理解的文档。
● 设计恢复(Design recovery)
是逆向工程的一部分。它研究如何在系统分析中加入领域知识、外部信息、推理、考察等,以便提升系统表现形式的抽象级。设计恢复的目的绝不是使系统设计更详细,它的重点在恢复设计判断及得到该判断的逻辑依据。
● 程序理解(Program Understanding或Comprehension)
也是逆向工程的一部分,研究如何取得关于程序的有关知识。它是进行修改、扩充、重用、文档重构等维护工作的必要准备过程,也是维护工作最困难的作业之一。
文章来源于领测软件测试网 https://www.ltesting.net/










