Abstract:There are two core activities in pattern-oriented software architectural synthesis (AS):responsibility synthesis which attempts to assign responsibilities to classes, and pattern synthesis which tries to prevent violations of pattern constraints. One of the major challenges of providing automated support for architectural synthesis is how to compose a final architectural solution from generated solutions of the two activities without inconsistencies. In this study, a learning based cooperative co-evolution approach (CoEA-L) is proposed for automated AS by leveraging search-based software engineering (SBSE) techniques. CoEA-L extends the traditional genetic operator of the genetic algorithm with a learning operator, and employs an association algorithm from data mining in the learning operator to discover the relations between responsibilities. The relations are further used to address the inconsistency issues during pattern-oriented AS. The experiment results show the effectiveness of learning for addressing the inconsistency issues during automated pattern-oriented architectural synthesis.