逆向工程
不同抽象层次 #card
- 实现级 ↔ 主要包括与代码直接对应的底层信息,如源代码、语句序列、数据结构
- 结构级 ↔ 包括反映程序各部分(如模块、子系统、类)之间相互依赖关系的信息,例如调用图、结构图等
- 功能级 ↔ 描述程序段的功能和功能之间的关系
- 领域级 ↔ 反映程序实体与业务领域概念的对应关系
逆向工程负责从 {{c1 已有系统中提取高层次的抽象信息}} ,而再工程则利用 {{c1 这些信息对系统进行优化、修改或重构,生成新版本}} 。
在逆向工程中,使用用户指导下的搜索与变换方法,通常可以导出系统的哪两个层级信息 #card
- 实现级(Implementation level):即原始代码级别的信息,如函数、类、模块等。
- 结构级(Structural level):如系统组件之间的调用关系、模块划分、层次结构等架构信息。