论文部分内容阅读
在软件生命周期中,由于开发技术、运行环境和应用需求本身都在不断发生变化,组织需要不断调整遗留系统以保护和提升已有投资。作为一种新兴的商业计算模型,云计算在软件市场的主导地位逐步增强。为了利用云计算带来的优势,遗留系统需要依据这种新型的计算模型做出调整和变化,实现遗留系统向云平台的移植。对于遗留系统向云平台移植而言,不同的移植策略具有不同的特点和优势,对遗留系统也有着不同的重用方案。本文针对面向对象遗留系统部分功能向SaaS移植过程中的组件重用开展研究,提出一组新的方法。首先,通过解析遗留系统源码或字节码文件获取系统的实现信息。然后,将系统实现信息作为输入,通过功能结构恢复方法实现系统模块化,借助层次结构恢复方法发现可重用业务逻辑组件,分析可重用组件生成其描述信息。最后,结合文本相似度量与结构相似度量实现目标服务与可重用组件的匹配,实现业务逻辑组件的有效重用。基于以上方法,开发了辅助移植工具并进行了实验验证。实验结果表明,工具可以有效发现遗留系统中的可重用业务逻辑组件并实现与目标服务的准确匹配,相关工作对于云移植中面向对象遗留系统业务逻辑重用具有积极作用。本文主要的贡献和创新性成果如下:1.提出一种新的功能结构恢复算法提出体现类间关系类型信息的模块依赖图(R-MDG)表示面向对象遗留系统的实现。将R-MDG作为功能结构恢复的输入,采用改进的Bunch聚类算法实现遗留系统的功能结构恢复。具体改进包括聚类算法的初始化分、多目标评价和耦合内聚度量等。利用改进聚类算法分析得到的软件功能结构更为准确,同时由于避免了初始划分的随机性,进而提升了功能结构恢复算法的效率。2.提出一种新的可重用组件发现方法采用改进的水平聚类算法实现遗留系统层次划分,在划分过程中考虑类间关系类型及包名特征信息,使得分层结果更为合理。正交体系结构恢复方法将恢复得到的功能结构和层次结构进行正交重叠,抽取中间层各个独立模块映射为可重用组件。分析可重用组件的类间关系获得支配类,通过对支配类进行源码分析获得可重用组件的描述信息。3.提出一种新的目标服务与可重用组件匹配算法基于目标服务和可重用组件的描述信息,采用文本相似度量和结构相似度量进行目标服务与可重用组件的匹配度量。鉴于目标服务与可重用组件粒度可能存在差异的情况,提出基于组件间耦合关系进行组件组合调整后迭代匹配的策略,进而克服了可重用组件与目标服务粒度不兼容的问题,提高了目标服务与可重用组件匹配的准确度。4.开发了遗留系统辅助移植工具辅助移植工具以逆向工程工具DependencyFinder为基础,在反向工程过程中提取了类间的关系类型信息,实现了四项主要功能,包括遗留系统的功能结构恢复、层次结构恢复、可重用组件发现以及服务与组件匹配。工具可以辅助开发人员有效实现遗留系统逻辑组件的发现和重用。