应用系统构建中可以采用多种不同的技术, (问题1) 可以将软件某种形式的描述转换为更高级的抽象表现形式,而利用这些获取的信息, (问题2) 能够对现有系统进行修改或重构,从而产生系统的一个新版本。
软件维护与系统演化领域中,逆向工程、再工程是两类核心技术,需与设计恢复、系统改进明确区分:逆向工程的核心是将现有系统的低层次描述,如源代码、数据库模式,转化为需求模型、设计模型等更高层次的抽象表示,核心作用是帮助技术人员全面理解旧系统的结构、功能与内在逻辑,设计恢复是逆向工程的特殊分支,仅聚焦于系统设计信息的重建,覆盖范围更有限。再工程则以逆向工程的分析成果为基础,通过对现有系统进行修改、重构乃至重设计,生成具备更优可维护性、性能的系统新版本;而系统改进仅针对系统做局部优化,无需依托逆向工程的全面分析,也不涉及整体层面的重构。二者常配合应用,是遗留系统迭代升级的关键技术路径,能有效降低旧系统的维护成本,提升系统适配性。
本题考察的是逆向工程与再工程的概念及区别。
逆向工程与再工程都是软件维护和系统演化中常用的重要技术,常见于系统架构设计与系统分析的考点。
问题1:
A选项逆向工程:是将已有系统的软件代码、数据库模式等较低层次的描述转化为更高层次的抽象表示(如设计模型、需求模型)的过程。其目的在于理解和分析现有系统的结构与功能,这是题干描述的第一部分,正确。
B选项系统改进:泛指在不改变系统主要功能的前提下对系统进行优化或增强,不一定涉及抽象层次提升,错误。
C选项设计恢复:是逆向工程的一种特殊形式,通过大量外部知识和推理来重建系统的设计信息,但其定义范围比逆向工程小,错误。
D选项再工程:是基于逆向工程结果进行系统改造,属于题干第二空的内容,不是第一空的答案,错误。
所以选择 A。
问题2:
A选项逆向工程:用于分析和抽象,不是用于修改或重构现有系统,错误。
B选项系统改进:虽然涉及对系统的优化,但并不一定基于逆向工程获取的信息进行全面重构,错误。
C选项设计恢复:是分析和理解系统设计的过程,不直接用于生成新版本,错误。
D选项再工程:是在逆向工程的基础上,利用获得的高层次信息对系统进行修改或重构,从而生成系统的新版本,符合题干描述,正确。
所以选择 D。
