逆向工程与重构工程

逆向工程与重构工程

  • 定义
    • 逆向工程:分析已有的程序,寻求比源代码更高级的抽象表现形式。主要在软件生命周期内,将软件某种形式的描述转换成更为抽象的形式。
    • 重构:指在同一抽象级别上转换系统描述形式。
    • 设计恢复:借助工具从已有程序中抽象出有关数据设计、总体结构设计和过程设计的信息。
    • 重构工程:在逆向工程获得的信息基础上修改或重构已有的系统,产生系统的一个新版本。
  1. 完备性:逆向工程的完备性指的是在特定抽象层次上提供的信息的详细程度。通常情况下,抽象层次越高,提供的设计信息越少,即完备性越低。

  2. 抽象层次

    • 底层抽象:例如,过程的设计模型,这是逆向工程中最直接的信息提取。
    • 稍高层次的抽象:例如,程序和数据结构的信息。
    • 相对高层的抽象:例如,对象模型、数据和控制流模型。
    • 高层抽象:例如,UML图、状态图和部署图。

恢复信息的级别

  1. 实现级:程序的抽象语法树、符号表等。
  2. 结构级:反映程序分量之间相互依赖关系的信息,如调用图、结构图。
  3. 功能级:反映程序段功能及程序段之间关系的信息。
  4. 领域级:反映程序分量或程序诸实体与应用领域概念之间对应关系的信息。

恢复信息的方法

  1. 用户指导下的搜索与变换 (User-Directed Search and Transformation): 用于导出实现级和结构级信息。
  2. 变换式方法 (Transformational Approaches):
    • 自动分析法: 如静态分析和调用图生成。
    • 基于特定库的用户指导变换法: 需要用户指定规则库。
  3. 基于领域知识的方法 (Domain Knowledge-Based): 适用于功能级和领域级信息恢复。
  4. 铅板恢复法 (Lead Plate Recovery): 识别程序设计中的简单算法和公共结构。

选择实施逆向工程的条件

  • 决定或移植、或重新设计、或为重用而需验证正确性的程序。
  • 缺乏足够的时机、支持工具或经济上得不偿失的情况下,一般不会选择实施逆向工程。

举例说明

假设有一个已经上线的电商平台软件,但没有详细的开发文档。

  • 问题定义: 该电商平台需要增加支持多语言的功能。
  • 可行性研究: 确认多语言功能的市场需求和实施可行性。
  • 需求分析: 制定详细的需求规格说明书。

但是,开发团队发现原来的代码结构复杂,难以直接添加新功能。这时,可以使用逆向工程来恢复原来的设计信息。

  1. 实现级恢复:

    • 使用工具分析代码结构,生成符号表、抽象语法树等。
    • 例如,通过工具生成整个电商平台的调用关系图,了解代码的具体执行路径。
  2. 结构级恢复:

    • 识别模块之间的依赖关系,生成调用图、结构图。
    • 例如,通过工具分析,可以找出电商平台中各个模块(如用户管理模块、商品管理模块)之间的调用关系。
  3. 功能级恢复:

    • 分析代码实现的功能,理解程序段的作用。
    • 例如,通过检查代码逻辑,可以确定某个函数处理用户登录逻辑。
  4. 领域级恢复:

    • 理解代码与业务领域的对应关系,即代码实现的具体业务功能。
    • 例如,识别代码中实现的推荐算法如何与电商平台的推荐业务相联系。
相关推荐
文火冰糖的硅基工坊1 小时前
[嵌入式系统-83]:算力芯片的类型与主流架构
人工智能·重构·架构
文火冰糖的硅基工坊10 小时前
《投资-111》价值投资者的认知升级与交易规则重构 - 价值投资的思维模式:穿越表象,回归本质
重构·架构·投资·投机
文火冰糖的硅基工坊1 天前
《投资-114》价值投资者的认知升级与交易规则重构 - 从大规模分工的角度看,如何理解“做正确的事”,即满足下游正确的需求
重构·投资·投机
文火冰糖的硅基工坊2 天前
《投资-107》价值投资者的认知升级与交易规则重构 - 上市公司的估值,估的不是当前的净资产的价值,而是未来持续赚钱的能力,估的是公司未来所有赚到钱的价值。
重构·架构·投资·投机
文火冰糖的硅基工坊2 天前
《投资-99》价值投资者的认知升级与交易规则重构 - 什么是周期性股票?有哪些周期性股票?不同周期性股票的周期多少?周期性股票的买入和卖出的特点?
大数据·人工智能·重构·架构·投资·投机
文火冰糖的硅基工坊2 天前
《投资-93》价值投资者的认知升级与交易规则重构 - 衡量公司价值的本质是在公司的整个存续期间能够创造多少自由现金流,而不是当下有多少现金流。
重构·架构·产业链
lpfasd1232 天前
从OpenAI发布会看AI未来:中国就业市场的重构与突围
人工智能·重构
yueyuebaobaoxinx3 天前
2025 AI 落地元年:从技术突破到行业重构的实践图景
人工智能·重构
文火冰糖的硅基工坊3 天前
《投资-88》价值投资者的认知升级与交易规则重构 - 第三层:估值安全边际,“再好的公司,如果买贵了,也会变成一笔糟糕的投资。”
安全·重构
文火冰糖的硅基工坊3 天前
《投资-78》价值投资者的认知升级与交易规则重构 - 架构
大数据·人工智能·重构