软件的逆向工程是一个恢复设计的过程,从现有的程序中抽取数据、体系结构和过程的设计信息。逆向工程的完备性可以用在某一个抽象层次上提供信息的详细程度来描述,在大多数情况下,抽象层次越高,完备性就越低。下列可以通过逆向工程恢复的制品中,完备性最高的是______。
A.过程的设计模型
B.程序和数据结构
C.对象模型、数据和控制流
D.LYML状态图和部署图
参考答案:A
解析: 逆向工程过程及用于实现该过程的工具的抽象层次是指可从源代码中抽取出来的设计信息的精密程度。理想情况,抽象层次应该尽可能高,即逆向工程过程应该能够导出过程的设计表示(一种低层的抽象);程序和数据结构信息(稍高层次的抽象);对象模型、数据和控制流模型(一种相对高层的抽象);UML类、状态图和部署图(一种高层抽象)。随着抽象层次增高,软件工程师获得更有助于理解程序的信息。
逆向工程过程的完备性是指在某一抽象层次上提供信息的详细程度。在大多数情况,随着抽象层次增高,完备性就降低。例如,给定源代码列表,得到一个完整的过程设计表示是比较容易的,也可以导出简单的设计表示,但要得到UML图或模型的完整集合却困难得多。