【技术实现步骤摘要】
一种软件体系结构恢复方法和装置
本专利技术涉及软件
,尤其涉及一种软件体系结构恢复方法和装置。
技术介绍
随着软件的规模不断变大,系统的总体结构设计和精确的规格说明要比计算机的算法更重要,在这种背景下,软件体系结构学术逐渐发展成为软件工程的重要研究领域。软件体系结构在开发中成为了不同人员共同交流的语言,体现了系统的设计决策,并为框架的实现、构件的共享与复用提供了有力的支持。虽然软件体系结构被视为软件开发的蓝图,应当能够指导软件开发的整个生命周期,许多研究证实了缺乏良好的体系结构会导致软件质量的灾难,但一直良好地维护体系结构是非常困难的。许多软件系统在创建之初,就没有建立体系结构文档,或者建立后缺少持续的维护。出现这些问题的原因是多方面的,可能是由于紧张的工期压力,或者是最早的设计人员离开了团队等等。而软件开发的现状是,在软件的生命周期中,设计和开发的时间只占约22%,大多数时间被用于系统维护,而在这部分时间开销中,约50%-90%的时间和经费被开发人员用于理解程序。对于这些大型遗留软件系统,缺失、过时的文档使得 ...
【技术保护点】
1.一种软件体系结构恢复方法,其特征在于,包括:/n使用JDT工具提取软件项目的源代码静态信息并存储于数据库中;/n基于所述源代码静态信息生成软件体系结构的特征矩阵;/n基于开源软件社区的同类软件项目数据获得特征权重;以及/n基于配置有特征权重的特征矩阵恢复所述软件项目的软件体系结构。/n
【技术特征摘要】
1.一种软件体系结构恢复方法,其特征在于,包括:
使用JDT工具提取软件项目的源代码静态信息并存储于数据库中;
基于所述源代码静态信息生成软件体系结构的特征矩阵;
基于开源软件社区的同类软件项目数据获得特征权重;以及
基于配置有特征权重的特征矩阵恢复所述软件项目的软件体系结构。
2.根据权利要求1所述的软件体系结构恢复方法,其特征在于,所述源代码静态信息包括结构信息和文本信息,其中,
所述结构信息包括软件项目目录中包含的项目、包和类文件的结构元素;以及
所述文本信息包括标识符名称、命名片段和出现位置。
3.根据权利要求2所述的软件体系结构恢复方法,其特征在于,基于所述源代码静态信息生成软件体系结构恢复的特征矩阵包括:
基于特征生成规则选择特征类别,其中,当包括m个类C1-Cm和n个命名片段A1-An时,所述特征生成规则包括:
基于所述类C1-Cm,得到调用类Cx的特征并记为f1Cx,其中,m为正整数,x为1至m的正整数;
基于所述类C1-Cm,得到继承类Cx的特征并记为f2Cx;
当类C1-Cm是接口时,得到是接口的特征并记为f3;以及
当类C1-Cm包含命名片段Ay时,得到包含命名片段Ay的特征并记为f4Ay,其中,n为正整数,y为1至n的正整数;以及
基于所述特征类别,生成特征向量(f1Cx,f2Cx,f3,f4Ay),所述特征向量包括2m+n+1个特征;其中,软件项目中所有类的特征向量形成所述特征矩阵。
4.根据权利要求1所述的软件体系结构恢复方法,其特征在于,基于开源软件社区的同类软件项目数据获得特征权重进一步包括:
从开源软件社区中选择与要进行软件体系结构恢复的软件系统相同或相似的项目作为训练数据;以及
基于所述训练数据通过遗传算法训练所述特征权重;其中,所述遗传算法包括基因编码步骤、适应性函数步骤和基因操作步骤,以及在所述遗传算法收敛或者达到最大代数后,获得自动配置的所述特征权重,
所述基因编码步骤将所述特征权重向量编码为二进制特征权重;
所述适应性函数步骤使用适应性函数评价基因的优劣;以及
基因操作步骤利用现有基因生成子代基因。
5.根据权利要...
【专利技术属性】
技术研发人员:张莉,李延旭,葛宁,胡明昊,
申请(专利权)人:北京航空航天大学,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。