Co-evolving Pattern Synthesis and Class Responsibility Assignment in Architectural Synthesis

  • Yongrui Xu
  • Peng Liang
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8627)


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.


Automated architectural synthesis class responsibility assignment architectural patterns cooperative coevolution 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Hofmeister, C., Kruchten, P., Nord, R.L., Obbink, H., Ran, A., America, P.: A general model of software architecture design derived from five industrial approaches. J. Syst. Softw. 80(1), 106–126 (2007)CrossRefGoogle Scholar
  2. 2.
    Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 3rd edn. Addison-Wesley Professional (2012)Google Scholar
  3. 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
  4. 4.
    Bowman, M., Briand, L.C., Labiche, Y.: Solving the class responsibility assignment problem in object-oriented analysis with multi-objective genetic algorithms. IEEE Trans. Softw. Eng. 36(6), 817–837 (2010)CrossRefGoogle Scholar
  5. 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. 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. 7.
    Xu, Y., Liang, P.: Automated software architectural synthesis using patterns: A cooperative coevolution approach. In: SEKE, pp. 174–180 (2014)Google Scholar
  8. 8.
    Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. IEEE Trans. Softw. Eng. 20(6), 476–493 (1994)CrossRefGoogle Scholar
  9. 9.
    Buschmann, F., Henney, K., Schmidt, D.C.: Pattern-Oriented Software Architecture: On Patterns and Pattern Languages, 1st edn. Wiley (2007)Google Scholar
  10. 10.
    Mehta, N.R., Medvidovic, N., Phadke, S.: Towards a taxonomy of software connectors. In: ICSE, pp. 178–187 (2000)Google Scholar
  11. 11.
    Harman, M., McMinn, P., de Souza, J.T., Yoo, S.: Search based Software Engineering: Techniques, Taxonomy, Tutorial. In: Meyer, B., Nordio, M. (eds.) Empirical Software Engineering and Verification. LNCS, vol. 7007, pp. 1–59. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  12. 12.
    Hasheminejad, S.M.H., Jalili, S.: SCI-GA: Software component identification using genetic algorithm. J. Object Technol. 12(2), 1–34 (2013)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  • Yongrui Xu
    • 1
  • Peng Liang
    • 1
  1. 1.State Key Lab of Software Engineering School of ComputerWuhan UniversityWuhanChina

Personalised recommendations