[发明专利]一种基于功能结构的软件体系结构恢复方法有效
| 申请号: | 202110270867.9 | 申请日: | 2021-03-12 |
| 公开(公告)号: | CN112988216B | 公开(公告)日: | 2022-07-29 |
| 发明(设计)人: | 张莉;贾航;葛宁;周雨飞;李延旭;王茵迪 | 申请(专利权)人: | 北京航空航天大学 |
| 主分类号: | G06F8/70 | 分类号: | G06F8/70;G06F8/74 |
| 代理公司: | 北京天达知识产权代理事务所(普通合伙) 11386 | 代理人: | 庞许倩 |
| 地址: | 100191*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 功能 结构 软件 体系结构 恢复 方法 | ||
本发明涉及一种基于功能结构的软件体系结构恢复方法,属软件体系恢复技术领域,解决了现有方式恢复出的软件体系结构难以理解的问题。步骤为:构建功能结构知识:每一功能包括父功能和/或子功能以及功能相关类;功能中的最低层功能包含功能相关类;将父功能、子功能、最低层功能分别映射为父构件、子构件和叶子构件,将功能相关类划分至对应的叶子构件中;从所有的类中剔除构件中已包括的类得到未恢复的类;计算每一未恢复的类与每一叶子构件的相关性,将相关性超过相关性阈值的类划分至与其相关性最高的叶子构件中;重复遍历所有未恢复的类,得到更新后的构件;若所有的类均完成恢复,基于更新后的构件恢复出软件的软件体系结构。
技术领域
本发明涉及软件体系恢复技术领域,尤其涉及一种基于功能结构的软件体系结构恢复方法。
背景技术
软件体系结构被相关学者与从业人员视作为软件开发和演化的重要依据,但在软件开发和演化过程中存在着三个问题:第一,在敏捷开发的大环境下,从业人员认为“可工作的软件胜过宽泛的文档”,他们简单地设计了一个软件体系结构,而没有经过充分的验证,或者没有设计相应的软件体系结构,仅仅通过用户提供的需求,就开始实现软件系统。第二,即使设计了软件体系结构、并进行了充分的验证,但在开发过程中存在没有按照设计的软件体系结构进行开发的问题,导致实现的软件体系结构与设计的软件体系结构不一致。第三,在软件持续演化的过程中,经常会出现软件的源代码更新后、而未更新软件体系结构的问题,这被业界称为“软件体系结构侵蚀与漂移”。最终,缺失、过时的软件体系结构会造成软件质量降低、迭代与维护困难等问题,这是当今软件存在的普遍问题。
基于以上问题,许多学者与从业人员致力于研究软件体系结构恢复技术,研究如何从源代码实体中抽取出一组构件,形成软件系统的体系结构,以重建、更新软件体系结构文档,从而提高软件的质量,降低软件开发、维护和演化风险。
目前,软件体系结构恢复技术是一个热门的研究领域,已经有了众多的研究成果,如Bunch,ACDC,LIMBO,MCA,ECA,ARC和ZBR等。其中,大多数的研究工作通过将结构高内聚、低耦合作为恢复目标来恢复软件体系结构。尽管这些研究工作取得了一定的成果,但是将结构高内聚低耦合作为恢复目标、使用源代码的结构信息进行恢复过程中,并没有使用或者未充分考虑功能结构知识和功能语义信息,从而使得恢复出的构件没有清晰的功能语义,造成软件体系结构难以理解、甚至不合理的。因此,目前的研究工作在软件体系结构恢复中考虑功能结构知识还尚且不足,而且恢复方法的平均恢复精确度不足50%。
发明内容
鉴于上述的分析,本发明实施例旨在提供一种基于功能结构的软件体系结构恢复方法,用以解决现有软件结构体系结构恢复过程未充分考虑功能结构造成的软件体系结构难以理解、甚至不合理的问题。
本发明公开了一种基于功能结构的软件体系结构恢复方法,包括:
构建待恢复体系结构的软件的功能结构知识;所述功能结构知识中的每一功能包括父功能和/或子功能,以及包括功能相关类;其中,所述功能中的最低层功能直接包含所述功能相关类;
将父功能、子功能、最低层功能分别映射为对应的父构件、子构件和叶子构件,并将所述最低层功能直接包含的功能相关类划分至该最低层功能映射到的叶子构件中;
从类的源代码中获取结构信息和文本信息,并基于所述文本信息及叶子构件的名称和功能描述,得到所有类和所有叶子构件的关键词;
从所有的类中剔除所述构件中已包括的类得到未恢复的类;基于所述结构信息和关键词,得到每一未恢复的类与每一叶子构件的相关性,将相关性超过相关性阈值的类划分至与其相关性最高的叶子构件中;重复遍历所有未恢复的类,得到更新后的构件;
若所有的类均完成恢复,则基于更新后的构件恢复出所述软件的软件体系结构。
在上述方案的基础上,本发明还做出了如下改进:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110270867.9/2.html,转载请声明来源钻瓜专利网。





