软件逆向工程就是分析已有的程序,寻求比源代码更高级的抽象表现形式。在逆向工程导出信息的四个抽象层次中, (问题1) 包括反映程序各部分之间相互依赖关系的信息; (问题2) 包括反映程序段功能及程序段之间关系的信息。
软件逆向工程的导出信息分为四个由低到高的抽象层次,各层次分别承载不同维度的程序信息。实现级是最基础的层次,涵盖源代码、语句序列、基础数据结构等与代码直接对应的底层实现细节;结构级聚焦程序各组成部分如模块、子系统、类之间的依赖关联,调用图、结构图等都属于这一层次的核心输出,可帮助梳理系统的整体架构关系;功能级围绕程序段的功能定义以及不同程序段间的功能关联展开,用于还原系统的功能逻辑脉络;领域级是最高抽象层次,负责建立程序实体与业务领域概念的对应关系,将技术实现与业务需求挂钩,助力理解程序的业务价值。这四个层次从具体实现逐步延伸到业务视角,能帮开发者从已有程序中提取不同深度的关键信息,为系统维护、重构、迭代等再工程工作提供全面支撑。
本题考察的是逆向工程抽象层次的分类与特点。
逆向工程通过对已有程序进行分析,可以在不同抽象层次上获得有用信息,用于理解系统并支持再工程。
问题1:
A选项实现级:主要包括与代码直接对应的底层信息,如源代码、语句序列、数据结构,不涉及各部分的依赖关系,错误。
B选项结构级:包括反映程序各部分(如模块、子系统、类)之间相互依赖关系的信息,例如调用图、结构图等,符合题干第一空描述,正确。
C选项功能级:描述程序段的功能和功能之间的关系,不是结构依赖,错误。
D选项领域级:反映程序实体与业务领域概念的对应关系,不涉及依赖关系,错误。
所以选择 B。
问题2:
A选项实现级:仅涉及代码层面的具体实现细节,错误。
B选项结构级:描述依赖关系,不是功能及功能间关系,错误。
C选项功能级:包括反映程序段功能以及程序段之间的关系的信息,符合题干第二空描述,正确。
D选项领域级:反映与业务领域的概念映射,不是功能关系,错误。
所以选择 C。
