Software & Systems Modeling

, Volume 18, Issue 2, pp 1487–1512 | Cite as

Applying design patterns in the search-based optimization of software product line architectures

  • Giovani GuizzoEmail author
  • Thelma Elita Colanzi
  • Silvia Regina Vergilio
Regular Paper


The design of the product line architecture (PLA) is a difficult activity that can benefit from the application of design patterns and from the use of a search-based optimization approach, which is generally guided by different objectives related, for instance, to cohesion, coupling and PLA extensibility. The use of design patterns for PLAs is a recent research field, not completely explored yet. Some works apply the patterns manually and for a specific domain. Approaches to search-based PLA design do not consider the usage of these patterns. To allow such use, this paper introduces a mutation operator named “Pattern-Driven Mutation Operator” that includes methods to automatically identify suitable scopes and apply the patterns Strategy, Bridge and Mediator with the search-based approach multi-objective optimization approach for PLA. A metamodel is proposed to represent and identify suitable scopes to receive each one of the patterns, avoiding the introduction of architectural anomalies. Empirical results are also presented, showing evidences that the use of the proposed operator produces a greater diversity of solutions and improves the quality of the PLAs obtained in the search-based optimization process, regarding the values of software metrics.


Design pattern Search-based software engineering Software product line architecture 


  1. 1.
    Amoui, M., Mirarab, S., Ansari, S., Lucas, C.: A genetic algorithm approach to design evolution using design pattern transformation. Int. J. Inf. Technol. Intell. Comput. 1, 235–245 (2006)Google Scholar
  2. 2.
    Arcuri, A., Fraser, G.: On parameter tuning in search based software engineering. In: Proceedings of the 3rd Symposium on Search Based Software Engineering (SSBSE), pp. 33–47 (2011)Google Scholar
  3. 3.
    Cinnéide, M.O.: Automated software evolution towards design patterns. In: Proceedings of the 4th International Workshop on Principles of Software Evolution (IWPSE), pp. 162–165. ACM, New York (2001)Google Scholar
  4. 4.
    Coello, C.A.C., Lamont, G.B., Veldhuizen, D.A.V.: Evolutionary Algorithms for Solving Multi-Objective Problems, 2nd edn. Springer, Berlin (2007)zbMATHGoogle Scholar
  5. 5.
    Colanzi, T.E., Vergilio, S.R.: Representation of software product lines architectures for search-based design. In: CMSBSE Workshop of International Conference on Software Engineering (ICSE), pp. 28–33 (2013)Google Scholar
  6. 6.
    Colanzi, T.E., Vergilio, S.R., Gimenes, I.M.S., Oizumi, W.N.: A search-based approach for software product line design. In: Proceedings of the 18th Software Product Line Conference (SPLC), pp. 237–241 (2014)Google Scholar
  7. 7.
    Contieri Junior, A.C., Correia, G.G., Colanzi, T.E., Gimenes, I.M.S., Junior, E.A.O., Ferrari, S., Masiero, P.C., Garcia, A.F.: Extending UML components to develop software product-line architectures: lessons learned. In: Proceedings of the 5th European Conference on Software Architecture (ECSA), pp. 130–138 (2011)Google Scholar
  8. 8.
    Coplien, J.O.: Software design patterns: common questions and answers. In: Rising, L. (ed.) The Patterns Handbook: Techniques, Strategies, and Applications, pp. 311–320. Cambridge University Press, Cambridge (1998)Google Scholar
  9. 9.
    Darwin, C.: On the Origin of Species by Means of Natural Selection, or, The Preservation of Favoured Races in the Struggle for Life. J. Murray, London (1859)Google Scholar
  10. 10.
    Deb, K., Pratap, A., Agarwal, S., Meyarivan, T.: A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE Trans. Evol. Comput. 6(2), 182–197 (2002)CrossRefGoogle Scholar
  11. 11.
    Derrac, J., García, S., Molina, D., Herrera, F.: A practical tutorial on the use of nonparametric statistical tests as a methodology for comparing evolutionary and swarm intelligence algorithms. Swarm Evol. Comput. 1(1), 3–18 (2011)CrossRefGoogle Scholar
  12. 12.
    Donegan, P.M., Masiero, P.C.: Design issues in a component-based software product line. In: Proceedings of Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS), pp. 3–16 (2007)Google Scholar
  13. 13.
    Fant, J.S., Gomaa, H., Pettit, R.G.: A pattern-based modeling approach for software product line engineering. In: Proceedings of the 46th Hawaii International Conference on System Sciences (HICSS), pp. 4985–4994 (2013)Google Scholar
  14. 14.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley Professional Computing Series, vol. 206. Addison-Wesley Longman Publishing Co., Inc, Boston (1995)Google Scholar
  15. 15.
    Gandibleux, X., Sevaux, M., Sörensen, K., T’Kindt, V.: Metaheuristics for multiobjective optimisation. Lecture Notes in Economics and Mathematical Systems. Springer Berlin Heidelberg (2012)Google Scholar
  16. 16.
    Garlan, D., Shaw, M.: An introduction to software architecture. In: Ambriola, V., Tortora, G. (eds.) Advances in Software Engineering and Knowledge Engineering, vol. I, pp. 1–39. World Scientific, Singapore (1994)Google Scholar
  17. 17.
    Gomaa, H., Hussein, M.: Software reconfiguration patterns for dynamic evolution of software architectures. In: Proceedings of the Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA), pp. 79–88. IEEE Computer Society, Washington (2004)Google Scholar
  18. 18.
    Guizzo, G., Colanzi, T.E., Vergilio, S.R.: Applying design patterns in product line search-based design: feasibility analysis and implementation aspects. In: Proceedings of the 32nd International Conference of the Chilean Computer Society (SCCC), Temuco, Chile, SCCC’13 (2013)Google Scholar
  19. 19.
    Guizzo, G., Colanzi, T.E., Vergilio, S.R.: A pattern-driven mutation operator for search-based product line architecture design. In: Proceedings of the 6th Symposium on Search Based Software Engineering (SSBSE), pp. 77–91. Springer, Fortaleza (2014)Google Scholar
  20. 20.
    Harman, M., Clark, J.: Metrics are fitness functions too. In: Proceedings of the 10th International Symposium on Software Metrics (ISSM), pp. 58–69 (2004)Google Scholar
  21. 21.
    Harman, M., Mansouri, A.: Search based software engineering: introduction to the special issue of the IEEE transactions on software engineering. IEEE Trans. Softw. Eng. 36(6), 737–741 (2010)CrossRefGoogle Scholar
  22. 22.
    Harman, M., Tratt, L.: Pareto optimal search based refactoring at the design level. In: Proceedings of the 9th Genetic and Evolutionary Computation Conference (GECCO), pp. 1106–1113. ACM (2007)Google Scholar
  23. 23.
    Hwang, C.L., Yoon, K.: Multiple attribute decision making: methods and applications : a state-of-the-art survey. Lecture notes in economics and mathematical systems. Springer (1981)Google Scholar
  24. 24.
    Institute SE (2014) Arcade Game Maker pedagogical product line., Accessed on 8 Aug 2016
  25. 25.
    Jensen, A.C., Cheng, B.H.C.: On the use of genetic programming for automated refactoring and the introduction of design patterns. In: Proceedings of the 12th Genetic and Evolutionary Computation Conference (GECCO), pp. 1341–1348 (2010)Google Scholar
  26. 26.
    Junior, E.A.O., Gimenes, I.M.S., Maldonado, J.C.: Systematic management of variability in UML-based software product lines. J. Univers. Comput. Sci. 16(17), 2374–2393 (2010)Google Scholar
  27. 27.
    Keepence, B., Mannion, M.: Using patterns to model variability in product families. IEEE Softw. 16, 102–108 (1999)CrossRefGoogle Scholar
  28. 28.
    van der Linden, F., Schmid, K., Rommes, E.: Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering. Springer, Berlin (2007)CrossRefGoogle Scholar
  29. 29.
    Macia, I.: On the detection of architecturally-relevant code anomalies in software systems. Ph.d. thesis, Pontifical Catholic University of Rio de Janeiro (2013)Google Scholar
  30. 30.
    Mariani, T., Vergilio, S.R.: A systematic review on search-based refactoring. Inf. Softw. Technol. 83, 14–34 (2017)CrossRefGoogle Scholar
  31. 31.
    Mariani, T., Colanzi, T.E., Vergilio, S.R.: Search based design of layered product line architectures. In: Proceedings of the 39th IEEE Computer Society International Conference on Computers, Software and Applications (COMPSAC). IEEE, Taichung (2015a)Google Scholar
  32. 32.
    Mariani, T., Vergilio, S.R., Colanzi, T.E.: Optimizing aspect-oriented product line architectures with search-based algorithms. In: Proceedings of the 7th Symposium on Search Based Software Engineering (SSBSE), pp. 173–187. Springer, Bergamo (2015b)Google Scholar
  33. 33.
    Oliveira Junior, E.A., Gimenes, I.M.S., Maldonado, J.C., Masiero, P.C., Barroca, L.: Systematic evaluation of software product line architectures. J. Univers. Comput. Sci. 19, 25–52 (2013)Google Scholar
  34. 34.
    Philippow, I., Streitferdt, D., Riebisch, M.: Design pattern recovery in architectures for supporting product line development and application. In: Riebisch, M., Coplien, J., Streitferdt, D. (eds.) Modelling Variability for Object-Oriented Product Lines, pp. 42–57. Springer, Berlin (2003)Google Scholar
  35. 35.
    Qayum, F., Heckel, R.: Local search-based refactoring as graph transformation. In: Proceedings of the 1st Symposium on Search Based Software Engineering (SSBSE), pp. 43–46. IEEE (2009)Google Scholar
  36. 36.
    Räihä, O.: A survey on search-based software design. Comput. Sci. Rev. 4(4), 203–249 (2010)CrossRefGoogle Scholar
  37. 37.
    Räihä, O., Koskimies, K., Makinen, E.: Complementary crossover for genetic software architecture synthesis. In: 10th International Conference on Intelligent Systems Design and Applications (ISDA), pp. 266–271 (2010)Google Scholar
  38. 38.
    Räihä, O., Koskimies, K., Mäkinen, E.: Generating software architecture spectrum with multi-objective genetic algorithms. In: 2011 Third World Congress on Nature and Biologically Inspired Computing (NaBIC), pp. 29–36. IEEE (2011)Google Scholar
  39. 39.
    Rumbaugh, J., Jacobson, I., Booch, G.: The Unified Modeling Language Reference Manual, 2nd edn. Addison-Wesley Professional, Boston (2004)Google Scholar
  40. 40.
    Sant’Anna, C., Figueiredo, E., Garcia, A., Lucena, C.J.P.: On the modularity of software architectures: a concern-driven measurement framework. In: Proceedings of the 1st European Conference on Software Architecture (ECSA), pp. 207–224 (2007)Google Scholar
  41. 41.
    Shimomura, T., Ikeda, K., Takahashi, M.: An approach to ga-driven automatic refactoring based on design patterns. In: Proceedings of the Fifth International Conference on Software Engineering Advances (ICSEA), pp. 213–218 (2010)Google Scholar
  42. 42.
    Simons, C., Singer, J., White, D.R.: Search-based refactoring: metrics are not enough. In: Search-Based Software Engineering, Lecture Notes in Computer Science, vol. 9275, pp. 47–61. Springer International Publishing (2015)Google Scholar
  43. 43.
    Wüst, J.: SDMetrics: the software design metrics tool for the UML. Accessed on 8 Aug 2016
  44. 44.
    Yourdon, E., Constantine, L.L.: Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design. Prentice-Hall Inc, Upper Saddle River (1979)zbMATHGoogle Scholar
  45. 45.
    Ziadi, T., Jézéquel, J.M., Fondement, F.: Product line derivation with UML. In: Proceedings of Software Variability Management Workshop (2003)Google Scholar
  46. 46.
    Ziadi, T., Hélouët, L., Jézéquel, J.M.: Towards a UML profile for software product lines. In: Linden, F.J. (ed.) Software Product-Family Engineering, Lecture Notes in Computer Science, vol. 3014, pp. 129–139. Springer, Berlin Heidelberg (2004)Google Scholar
  47. 47.
    Zitzler, E., Thiele, L.: Multiobjective evolutionary algorithms: a comparative case study and the strength Pareto approach. Trans. Evol. Comput. 3(4), 257–271 (1999)CrossRefGoogle Scholar
  48. 48.
    Zitzler, E., Thiele, L., Laumanns, M., Fonseca, C.M., da Fonseca, V.G.: Performance assessment of multiobjective optimizers: an analysis and review. IEEE Trans. Evol. Comput. 7(2), 117–132 (2003)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag GmbH Germany 2017

Authors and Affiliations

  1. 1.Department of InformaticsFederal University of ParanaCuritibaBrazil
  2. 2.Department of InformaticsState University of MaringáMaringáBrazil

Personalised recommendations