基于体系结构逆向的构件化软件演化历史恢复研究
发布时间:2021-01-11 19:11
软件演化指的是软件在其生命周期内不断更新变化的过程,是软件的本质特征之一,其贯穿于整个软件的生命周期之内。通常,软件通常通过持续不断的演化来满足需求的变化、硬软件环境的变化等。为了更好地管理软件的演化,越来越多的软件演化管理模型被提了出来,现存的软件演化管理模型或版本管理系统中存储的软件大多是以文件或者项目为单位,而这些模型缺乏软件组成构件的演化历史信息,这使得软件演化管理人员无法直观有效地了解以及管理软件的演化。因此如何通过挖掘这些软件演化过程中留下的历史信息,得到软件及其组成构件的演化历史关系是一个值得解决的问题。为此,本文通过定义软件演化二叉树的概念,表示一个软件及其组成构件的演化历史,并提出了一种基于软件体系结构逆向技术恢复出软件系统的体系结构及其组成构件演化二叉树的方法。该方法主要包括:1、利用软件的源代码以及体系结构逆向技术恢复出软件系统的(原子)构件和软件体系结构(本文将软件体系结构看作一种特殊的复合构件)。2、度量出原子构件的三维属性包括(构件中类的个数、类文件的个数以及类文件的大小的总和)以及复合构件的五维属性包括(复合构件中原子构件的个数、原子构件的大小总和、体系结...
【文章来源】:江西师范大学江西省
【文章页数】:76 页
【学位级别】:硕士
【部分图文】:
图2-1?Bunch工具进行体系结构逆向流程图??从图中可以看出,在使用Bunch工具之前,需要依靠源代码分析工具@]分析??
?/??图3-2划分好簇的类的关系依赖图示??如图3-2所示的类的关系依赖图中,右边的椭圆表示JDK中的类的集合,??左边的矩形表示组成该系统版本的类集合,矩形中的A、B、C三个圆形表示经??过软件体系结构逆向工具得到的三个类簇,圆角矩形Cl、C2、Q、......、(:12表??示的是12个类,这12个类分别位于簇A、B、C和JDK中,类之间的有向边表??示两个类之间存在依赖关系。??显而易见,从类的关系依赖图中只能获取到系统版本中所包含的类,以及这??些类之间的功能需求关系和类所组成的簇等信息,而无法获取到对应的系统版本??的版本信息和不同的系统版本之间的演化信息。??每个系统版本都可以通过逆向得到一个类的关系依赖图,而类的关系依赖图??通过体系结构逆向工具可以将图划分为一个个簇。在使用某个系统版本的类的关??系依赖图以及该系统版本的源代码逆向生成所有的原子构件时,首先,把类的关??系依赖图中的每个簇都逆向成为一个原子构件
B?/?System?/??图3-2划分好簇的类的关系依赖图示??如图3-2所示的类的关系依赖图中,右边的椭圆表示JDK中的类的集合,??左边的矩形表示组成该系统版本的类集合,矩形中的A、B、C三个圆形表示经??过软件体系结构逆向工具得到的三个类簇,圆角矩形Cl、C2、Q、......、(:12表??示的是12个类,这12个类分别位于簇A、B、C和JDK中,类之间的有向边表??示两个类之间存在依赖关系。??显而易见,从类的关系依赖图中只能获取到系统版本中所包含的类,以及这??些类之间的功能需求关系和类所组成的簇等信息,而无法获取到对应的系统版本??的版本信息和不同的系统版本之间的演化信息。??每个系统版本都可以通过逆向得到一个类的关系依赖图,而类的关系依赖图??通过体系结构逆向工具可以将图划分为一个个簇。在使用某个系统版本的类的关??系依赖图以及该系统版本的源代码逆向生成所有的原子构件时
【参考文献】:
期刊论文
[1]扩充CDL支持基于构件的系统组装与演化[J]. 钟林辉,谢冰,邵维忠. 计算机研究与发展. 2002(10)
[2]青鸟软件配置管理系统JBCM及相关工具[J]. 钟林辉,谢冰,邵维忠. 计算机工程. 2000(11)
[3]软件配置管理系统HSCMS[J]. 曹化工,朱顺炎,秦友淑. 计算机工程与应用. 1997(07)
本文编号:2971321
【文章来源】:江西师范大学江西省
【文章页数】:76 页
【学位级别】:硕士
【部分图文】:
图2-1?Bunch工具进行体系结构逆向流程图??从图中可以看出,在使用Bunch工具之前,需要依靠源代码分析工具@]分析??
?/??图3-2划分好簇的类的关系依赖图示??如图3-2所示的类的关系依赖图中,右边的椭圆表示JDK中的类的集合,??左边的矩形表示组成该系统版本的类集合,矩形中的A、B、C三个圆形表示经??过软件体系结构逆向工具得到的三个类簇,圆角矩形Cl、C2、Q、......、(:12表??示的是12个类,这12个类分别位于簇A、B、C和JDK中,类之间的有向边表??示两个类之间存在依赖关系。??显而易见,从类的关系依赖图中只能获取到系统版本中所包含的类,以及这??些类之间的功能需求关系和类所组成的簇等信息,而无法获取到对应的系统版本??的版本信息和不同的系统版本之间的演化信息。??每个系统版本都可以通过逆向得到一个类的关系依赖图,而类的关系依赖图??通过体系结构逆向工具可以将图划分为一个个簇。在使用某个系统版本的类的关??系依赖图以及该系统版本的源代码逆向生成所有的原子构件时,首先,把类的关??系依赖图中的每个簇都逆向成为一个原子构件
B?/?System?/??图3-2划分好簇的类的关系依赖图示??如图3-2所示的类的关系依赖图中,右边的椭圆表示JDK中的类的集合,??左边的矩形表示组成该系统版本的类集合,矩形中的A、B、C三个圆形表示经??过软件体系结构逆向工具得到的三个类簇,圆角矩形Cl、C2、Q、......、(:12表??示的是12个类,这12个类分别位于簇A、B、C和JDK中,类之间的有向边表??示两个类之间存在依赖关系。??显而易见,从类的关系依赖图中只能获取到系统版本中所包含的类,以及这??些类之间的功能需求关系和类所组成的簇等信息,而无法获取到对应的系统版本??的版本信息和不同的系统版本之间的演化信息。??每个系统版本都可以通过逆向得到一个类的关系依赖图,而类的关系依赖图??通过体系结构逆向工具可以将图划分为一个个簇。在使用某个系统版本的类的关??系依赖图以及该系统版本的源代码逆向生成所有的原子构件时
【参考文献】:
期刊论文
[1]扩充CDL支持基于构件的系统组装与演化[J]. 钟林辉,谢冰,邵维忠. 计算机研究与发展. 2002(10)
[2]青鸟软件配置管理系统JBCM及相关工具[J]. 钟林辉,谢冰,邵维忠. 计算机工程. 2000(11)
[3]软件配置管理系统HSCMS[J]. 曹化工,朱顺炎,秦友淑. 计算机工程与应用. 1997(07)
本文编号:2971321
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/2971321.html