📜  逆向工程中的抽象级别

📅  最后修改于: 2021-08-29 11:48:05             🧑  作者: Mango

逆向工程包含许多任务,可以帮助理解和修改软件系统。其主要目的是从系统中识别和恢复程序需求和设计需求信息。

抽象是忽略某些细节以简化问题并促进以逐步方式进行的系统的规范,设计和实现的过程。在软件维护中,定义了以下三个逆向工程抽象级别:实现抽象,设计抽象,规范抽象。

  1. 实施抽象–
    实现抽象是最低的抽象级别,在此级别上,抽象语言是编写系统所用语言的知识,语言的语法和语义以及系统组件的层次结构,而不是数据结构和算法。
  2. 设计抽象–
    设计抽象是抽象的中间层。此级别抽象了组件之间的关系和相互控制。
  3. 规范抽象–
    规范抽象通过用概念代替特定于应用程序需求的算法性质来抽象功能。

    逆向工程需要检测低级别的实现,并用其高级替换。结果,该过程最终转换为程序整体体系结构的增量形式。

但是,逆向工程中的高级对应对象并不一定意味着产品具有更高的抽象水平。如果所得产品的抽象级别与原始系统处于同一级别,则该操作通常称为“重新记录”。
另一方面,如果生成的产品处于较高的抽象级别,则该操作称为“设计恢复”或“特定恢复”。

  1. 重新记录–
    重新文档化是指在与原始系统表示形式相同的相对抽象水平内,使用规范语言(定义系统行为的一组符号)重新构建符合其要求的精确数学或逻辑结构。

    该过程具有3个目的/任务-

    • (一世)。通过使用数据流或源代码中的控制流程图来创建系统的交替视图,从而增强了对产品的理解。
    • (ii)。进行更改时,并排更新系统文档。
    • (iii)。完成新修改的系统的文档,以备将来对该系统进行维护工作。
  2. 设计恢复–
    设计恢复包括领域知识,外部数据以及对系统的演绎,以识别和提取有意义的更高层次的抽象,而不仅仅是通过检查系统本身直接获得的抽象。它将系统从低层抽象引入到高层抽象。
    设计恢复通过代码,现有设计文档(如果有),个人经验以及有关问题和应用程序领域的知识的组合来重新创建抽象。作为恢复设计的新设计可以通过形成将来的基准来用于重新开发系统。系统修改。可以使用关注点不同的不同方法来恢复这些设计。
    例如,恢复单词搜索应用程序的设计后,它可以用于新单词编辑应用程序中单词搜索模块的设计。