论文部分内容阅读
随着软件工程领域的不断发展,软件的需求和外部环境也不断地发生变化,软件必须进行动态演化来适应这些变化。但是软件的演化过程由于受到各种因素的影响而变得难以控制。软件体系结构从全局的角度宏观地描述了软件系统的结构,对软件的整体把握提供了一条有效地途径。如何从软件体系结构的角度来描述软件的动态演化,这已经成为软件演化研究的重要方向。当前的软件体系结构动态演化研究很少考虑从生物进化的特征来研究软件体系结构动态演化,并提高软件体系结构演化过程的运行效率。本文使用遗传算法及其改进算法对软件体系结构动态演化进行研究。第一,提出了一种基于遗传算法的软件体系结构动态演化模型。利用遗传算法对软件体系结构动态演化进行编码,从而形成构件群体,然后对构件群体进行初始化;定义一个适应度函数来计算构件群体中每个构件的适应度函数值;对构件群体进行遗传操作,包括变异操作、交叉操作和选择操作,操作后计算每个构件的适应度函数值;根据它们的适应度值的大小来决定这些构件是否作为下一代构件群体,对上述过程进行迭代操作,最后生成目标构件群体。第二,由于遗传算法在上述的演化过程中可能出现局部搜索能力不强和运行效率较低的情况,为充分利用遗传算法在软件体系结构动态演化中的优势、避开其缺陷、进一步加快收敛速度,本文主要从以下几方面进行改进操作,初始构件群体的改进、变异操作和交叉操作的改进、收敛准则的改进和引入复合形算子操作,从而提出了一种基于改进遗传算法的软件体系结构动态演化模型。本文通过一个智能家居系统实例和四组测试数据对两种模型方法进行实验分析,通过实验结果可以得出以下几个结论。第一,解决了具有生物进化特征的遗传算法对软件体系结构动态演化进行正确演化的问题,具有可行性和有效性;第二,在实现软件体系结构动态演化的过程中,具有生物进化特征的遗传算法的时间复杂度比文献[50]中元胞自动机算法的时间复杂度要低一些,即基于遗传算法的软件体系结构动态演化的运行效率更高一些;第三,利用初始构件群体的改进和引入复合形算子操作等多种改进方式以加快生成软件体系结构动态演化的目标构件群体,最终进一步提高了软件体系结构动态演化的运行效率。