(图片来源网络,侵删)
软件重用软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程软件元素包括需求分析文档、设计过程、设计文档、程序代码、测试用例和领域知识等横向重用指重用不同应用领域中的软件元素,例如数据结构、分类算法和人机界面构件等纵向重用指在一类具有较多公共性的应用领域之间进行软件重用逆向工程逆向工程 (Reverse Engineering) 与逆向工程相关的概念有重构、设计恢复、再工程和正向工程重构 (restructuring)重构是指在同一抽象级别上转换系统描述形式设计恢复(design recovery)设计恢复是指借助工具从已有程序中抽象出有关数据设计、总体结构设计和过程设计等方面的信息再工程 (re-engineering)再工程是指在逆向工程所获得信息的基础上,修改或重构已有的系统,产生系统的一个新版本再工程是对现有系统的重新开发过程,包括逆向工程、新需求的考虑过程和正向工程三个步骤它不仅能从已存在的程序中重新获得设计信息,而且还能使用这些信息来重构现有系统,以改进它的综合质量在利用再工程重构现有系统的同时,一般会增加新的需求,包括增加新的功能和改善系统的性能正向工程 (Forward Engineering)正向工程是指不仅从现有系统中恢复设计信息,而且使用该信息去改变或重构现有系统,以改善其整体质量逆向工程导出的信息可以分为如下4个抽象层次实现级别抽象的语法树、符号表、过程的设计表示结构级别反映程序分量之间相互依赖关系的信息,如调用图、结构图、程序和数据结构功能级别反映程序段功能及程序段之问关系的信息,如数据和控制流模型领域级别反映程序分量或程序实体与应用领域概念之间对应关系的信息,如E-R模型逆向工程的完备性可以用在某一个抽象层次上提供信息的详细程度来描述抽象层次越高完备性越低,通过逆向工程恢复的难度越大
0 评论