C 源代码模型分析开题报告
2020-04-14 21:37:19
1. 研究目的与意义(文献综述包含参考文献)
引 言
随着计算机技术的迅速发展, 计算机技术应用的领域也逐渐扩大, 人们希望计算机这一智能体能够解决各个领域的更多、更复杂的问题, 从而也对计算机软件产品的功能、质量、开发成本和时间提出了越来越多的要求, 软件技术受到了前所未有的挑战。传统的软件工程主要关注新软件的分析与设计, 但随着软件系统的规模和复杂度日益增长, 软件的生命周期越来越长, 软件开发的很大一部分工作集中于维护和改造现有的软件系统, 而这些现有系统的需求、设计决策、业务规则、历史数据等统称为遗产系统( ls , legacysystem) , ls 是一种巨大的、长期的投资, 因为如何充分利用这些有用的资产对新系统的开发显得尤其重要。另一方面, 随着int ernet 技术的普及, web 用户增多, 很多软件厂商需要将系统移植到web 上, 进一步加剧了对软件维护的需求。实践研究表明, 软件资源预算的50%~ 80% 消耗在对现有系统的维护上, 而软件维护者理解程序源代码的时间要占整个软件维护的47%~ 62% 。软件维护已经成为软件工程面临的重要课题之一, 而正确和全面地理解软件系统是对软件进行维护的前提, 软件逆向工程应运而生, 成为软件工程领域的一个新兴分支, 其目标就是开发帮助人们理解已有软件系统的方法、工具, 为软件系统的维护和演化提供支持。
文中主要介绍逆向工程的基本概念、主要步骤、分析方法、研究现状、存在的问题以及发展方向。1 逆向工程的基本概念/ 逆向工程这个名词最早出现在对硬件产品的分析中, 人们分析硬件产品以便改进自己的产品, m.g. rekoffjr将逆向工程定义为: 对一个复杂的硬件系统实施有条理的检查, 以开发出关于这个系统的一组规范说明的过程。在把这个概念应用到软件系统过程中, 研究人员发现利用其中的许多方法可以获得对系统以及系统结构的理解。然而, 对一个硬件系统实施
2. 研究的基本内容、问题解决措施及方案
要解决的问题:
(1)程序可以析取c 的类,并根据类间关系构建类图;
(2)寻找合适的算法思想,找出类间的交互关系,构建交互模型;