Co-evolving Pattern Synthesis and Class Responsibility Assignment in Architectural Synthesis
Architectural synthesis (AS) activity plays a key role in architecture design as it essentially links the problem to the solution space. To reuse successful design experience, architects may use architectural patterns in AS to generate candidate solutions. In a pattern-based AS, there are two challenges: one is class responsibility assignment (CRA) when using specific patterns and the other is pattern synthesis which attempts to avoid the pattern constraint violations. In this paper, we propose a cooperative coevolution approach to assign class responsibility and synthesize pattern automatically in a pattern-based AS. We formally translate the problem of the automated pattern-based AS into a multi-objective optimization problem, and describe the approach in detail.
KeywordsAutomated architectural synthesis class responsibility assignment architectural patterns cooperative coevolution
Unable to display preview. Download preview PDF.
- 2.Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 3rd edn. Addison-Wesley Professional (2012)Google Scholar
- 3.Belle, A., El Boussaidi, G., Desrosiers, C., Mili, H.: The layered architecture revisited: Is it an optimization problem? In: SEKE, pp. 344–349 (2013)Google Scholar
- 5.Masoud, H., Jalili, S.: A clustering-based model for class responsibility assignment problem in object-oriented analysis. J. Syst. Softw. (2014)Google Scholar
- 6.Črepinšek, M., Liu, S., Mernik, M.: Exploration and exploitation in evolutionary algorithms: A survey. ACM Comput. Surv. 45(3), 1–33 (2013)Google Scholar
- 7.Xu, Y., Liang, P.: Automated software architectural synthesis using patterns: A cooperative coevolution approach. In: SEKE, pp. 174–180 (2014)Google Scholar
- 9.Buschmann, F., Henney, K., Schmidt, D.C.: Pattern-Oriented Software Architecture: On Patterns and Pattern Languages, 1st edn. Wiley (2007)Google Scholar
- 10.Mehta, N.R., Medvidovic, N., Phadke, S.: Towards a taxonomy of software connectors. In: ICSE, pp. 178–187 (2000)Google Scholar