摘要

面向模式的软件体系结构合成主要包括两个核心活动:(1)将软件职责分配到对象类的职责合成活动;(2)减少体系结构模式约束违背的模式合成活动.但如何从以上两个核心活动生成的候选方案中无冲突地组合出最终的软件体系结构设计方案,是面向模式的软件体系结构合成所面临的挑战.以基于搜索的软件工程技术为框架,提出了基于学习的协作式协同演化方法(CoEA-L),以解决自动化软件体系结构合成中面临的上述问题.CoEA-L使用学习运算子扩展了传统遗传算法中的运算子.在学习运算子中,使用数据挖掘的关联算法自动发现软件职责间的关系,并用于解决面向模式的软件体系结构合成中的冲突问题.实验结果表明,该方法能够有效地消解面向模式的软件体系结构合成中产生的冲突.

全文