为了更好地管理软件的演化,越来越多的软件演仳管理模型被提岀,然而现存的软件演化管理模型或版本管理系统中存储的软件大多是以文件或者项目为单位的,而这些模型中又缺乏软件体系结构及组成构件的演化历史信息,这就致使软件演化管理人员无法直观有效地了解以及管理软件体系结构及其构件的演化。为此,文中通过定义软件演化二叉树这一概念,表示个软件及其组成构件的演化历史,并提出了一种基于软件体系结构逆向技术逆向岀软件体系结构及其组成构件演化二又树的方法,即利用软件源代码以及体系结构逆向技术逆向出软件系统的(原子)构件与软件体系结构(文中将软件体系结构看作种特殊的复合构件),并度量相应的原子构件以及复合构件的多维属性,再利用这些属性通过提岀的演化二又树枃造算法构造出软件的演化历史。最后设计了两组实验,用以分析演化二叉树构造的影响因素,分别利用 Bunch以及ACDC体系结构逆向工具,在不同属性相似度阈值下生成演化二叉树和不同属性组合下生成演化二叉树。通过对8个开源软件( Cassandra, Hbase,Hive, Openjpa, Zookeeper, Rxjava, Groovy, Scoop)的实验,可以发现属性相似度阈值以及构件驫性对演仳冮又树枃造的影响,也可以看出逆向出的复合构件演化二叉树与真实的演化二叉树十分相似,并且可以得出使用体系结构逆向工具ACDC恢复演化二叉树的准确度更高。由此可见,提岀的方法能够有效地逆向出这些开源软件及其组成构件的演化历史。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !