在软件生存周期中,将某种形式表示的软件转换成更高抽象形式表示的软件的活动属于( )。
A、逆向工程B
解析
答案选B
通常产品设计过程是一个从设计到产品的过程,即设计人员首先在大脑中构思产品的外形、性能和大致的技术参数等,然后在详细设计阶段完成各类数据模型,最终将这个模型转入到研发流程中,完成产品的整个设计研发周期。这就是“正向设计”过程。而逆向工程,又名反向工程(ReverseEngineering-RE),则是一个从产品到设计的过程,就是根据已经存在的产品,反向推出产品设计数据(包括各类设计图或数据模型)的过程。早期的船舶工业中常用的船体放样设计就是逆向工程的很好实例。在软件开发行业,基于某个软件,以反汇编阅读源码的方式去推断其数据结构、体系结构和程序设计信息成为软件逆向工程技术关注的主要对象。软件逆向技术的目的是用来研究和学习先进的技术,特别是当手里没有合适的文档资料,而又很需要实现某个软件的功能的时候。因此很多软件开发组织为了垄断技术,在软件安装之前,要求用户同意不去逆向研究。根据黄柏素、梅宏组织翻译,RogerS.Pressman编著的《软件工程—实践者的研究方法》第4版的陈述:逆向工程抽象层次应该尽可能高,即逆向工程过程应该能够导出过程的设计表示(一种低层的抽象);程序和数据结构信息(稍高一点层次的抽象);数据和控制流模型(一种相对高层的抽象);以及实体—关系模型(一种高层抽象)。随着抽象层次增高,软件工程师获得更有助于理解程序的信息。
软件重构修改源代码和/或数据以使得它适应未来的变化。通常,重构并不修改整体的程序体系结构,它趋向于关注个体模块的设计细节以及定义在模块中的局部数据结构。如果重构扩展到模块边界之外并涉及软件体系结构,则重构变成了正向设计过程。代码重构的目标是生成可提供相同功能的设计,但是该设计比原程序有更高的质量