Software & Systems Modeling

, Volume 13, Issue 2, pp 649–678 | Cite as

Evolution styles: foundations and models for software architecture evolution

  • Jeffrey M. BarnesEmail author
  • David Garlan
  • Bradley Schmerl
Theme Section Paper


As new market opportunities, technologies, platforms, and frameworks become available, systems require large-scale and systematic architectural restructuring to accommodate them. Today’s architects have few techniques to help them plan this architecture evolution. In particular, they have little assistance in planning alternative evolution paths, trading off various aspects of the different paths, or knowing best practices for particular domains. In this paper, we describe an approach for planning and reasoning about architecture evolution. Our approach focuses on providing architects with the means to model prospective evolution paths and supporting analysis to select among these candidate paths. To demonstrate the usefulness of our approach, we show how it can be applied to an actual architecture evolution. In addition, we present some theoretical results about our evolution path constraint specification language.


Software architecture 



We are grateful to the Software Engineering Institute, IBM, and NASA’s Jet Propulsion Laboratory for providing support for this work. We would especially like to thank Ipek Ozkaya, Sridhar Iyengar, S Sivakumar, and Brian Giovannoni. Finally, we would like to thank the anonymous reviewers for their constructive suggestions, which improved the manuscript greatly.


  1. 1.
    Abi-Antoun, M., Aldrich, J., Nahas, N., Schmerl, B., Garlan, D.: Differencing and merging of architectural views. In: Proceedings of the 21st IEEE International Conference on Automated Software Engineering (ASE 2006), pp. 47–58. IEEE, Los Alamitos (2006)Google Scholar
  2. 2.
    Alur, R., Henzinger, T.A.: A really temporal logic. In: Proceedings of the 30th Annual Symposium on Foundations of Computer Science, pp. 164–169. IEEE (1989)Google Scholar
  3. 3.
    Amazon Elastic Compute Cloud (Amazon EC2).
  4. 4.
    Baldwin, C.Y., Clark, K.B.: Design Rules, vol. 1. MIT, Cambridge (1999)Google Scholar
  5. 5.
    Barnes, J.M.: NASA’s Advanced Multimission Operations System: a case study in software architecture evolution. In: Proceedings of the 8th International ACM SIGSOFT Conference on the Quality of Software Architectures (QoSA’12), pp. 3–12. ACM (2012)Google Scholar
  6. 6.
    Bauer, A., Leucker, M., Schallhart, C.: Runtime verification for LTL and TLTL. ACM T. Softw. Eng.& Meth. 20(4), (2011)Google Scholar
  7. 7.
    Bérard, B., Bidoit, M., Finkel, A., Laroussinie, F., Petit, A., Petrucci, L., Schnoebelen, P., McKenzie, P.: Systems and Software Verification: Model-Checking Techniques and Tools. Springer, Berlin (2001)CrossRefGoogle Scholar
  8. 8.
    Berliner, B.: CVS II: parallelizing software development. In: Proceedings of the Winter 1990 USENIX Conference, pp. 341–352. USENIX, Berkeley (1990)Google Scholar
  9. 9.
    Blackburn, P.: Internalizing labelled deduction. J. Logic Comput. 10(1), 137–168 (2000)CrossRefzbMATHMathSciNetGoogle Scholar
  10. 10.
    Blackburn, P., Tzakova, M.: Hybrid languages and temporal logic. Log. J. IGPL 7(1), 27–54 (1999)CrossRefzbMATHMathSciNetGoogle Scholar
  11. 11.
    Boehm, B.W.: Software Engineering Economics. Prentice Hall, Upper Saddle River (1981)zbMATHGoogle Scholar
  12. 12.
    Brown, N., Nord, R.L., Ozkaya, I., Pais, M.: Analysis and management of architectural dependencies in iterative release planning. In: Proceedings of the Working IEEE/IFIP Conference on Software Architecture (WICSA’11), pp. 103–112. IEEE (2011)Google Scholar
  13. 13.
    Cariou, E., Marvie, R., Seinturier, L., Duchien, L.: OCL for the specification of model transformation contracts. In: Proceedings of the Workshop on OCL and Model Driven Engineering. University of Kent, Canterbury (2004).
  14. 14.
    Chaki, S., Sharygina, N., Sinha, N.: Verification of evolving software. In: Proceedings of the Workshop on Specification and Verification of Component Based Systems (SAVCBS 2004), pp. 55–61. Iowa State University, Ames (2004)Google Scholar
  15. 15.
    Clarke, E.M., Emerson, E.A., Sistla, A.P.: Automatic verification of finite-state concurrent systems using temporal logic specifications. ACM Trans. Progr. Lang. Syst. 8(2), 244–263 (1986)CrossRefzbMATHGoogle Scholar
  16. 16.
    Clements, P., Bachmann, F., Bass, L., Garlan, D., Ivers, J., Little, R., Merson, P., Nord, R., Stafford, J.: Documenting Software Architectures: Views and Beyond, 2nd edn. Addison-Wesley, Upper Saddle River (2011)Google Scholar
  17. 17.
    Crockford, D.: The application/json media type for JavaScript Object Notation (JSON). RFC 4627, IETF (2006).
  18. 18.
    Cunningham, W.: The WyCash portfolio management system. In: Addendum to the Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’92), pp. 29–30. ACM, New York (1992)Google Scholar
  19. 19.
    Debian: Package gnuchess (5.07-7) (2009).
  20. 20.
    Demri, S., Lazić, R., Sangnier, A.: Model checking memoryful linear-time logics over one-counter automata. Theor. Comput. Sci. 411(22–24), 2298–2316 (2010)CrossRefzbMATHGoogle Scholar
  21. 21.
    Ecma International: Standard ECMA-262: ECMAScript Language Specification, 5th edn. (2009).
  22. 22.
    Erder, M., Pureur, P.: Transitional architectures for enterprise evolution. IT Pro 8(3), 10–17 (2006)CrossRefGoogle Scholar
  23. 23.
    Franceschet, M., de Rijke, M.: Model checking hybrid logics (with an application to semistructured data). J. Appl. Logic 4(3), 279–304 (2006)CrossRefzbMATHGoogle Scholar
  24. 24.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Boston (1994)Google Scholar
  25. 25.
    Garey, M.R., Johnson, D.S.: Computers and Intractability. Freeman, San Francisco (1979)zbMATHGoogle Scholar
  26. 26.
    Garlan, D., Barnes, J.M., Schmerl, B., Celiku, O.: Evolution styles: foundations and tool support for software architecture evolution. In: Proceedings of the Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture (WICSA/ECSA 2009), pp. 131–140. IEEE (2009)Google Scholar
  27. 27.
    Garlan, D., Monroe, R., Wile, D.: Acme: an architecture description interchange language. In: Proceedings of the Conference of the Centre for Advanced Studies on Collaborative Research (CASCON ’97), pp. 169–183. ACM, New York (1997)Google Scholar
  28. 28.
    Garlan, D., Schmerl, B.: Ævol: A tool for defining and planning architecture evolution. In: Proceedings of the International Conference on Software Engineering (ICSE 2009), pp. 591–594. IEEE, Piscataway (2009)Google Scholar
  29. 29.
    Gerevini, A.E., Haslum, P., Long, D., Saetti, A., Dimopoulos, Y.: Deterministic planning in the fifth international planning competition: PDDL3 and experimental evaluation of the planners. Artif. Intell. 173(5–6), 619–668 (2009)CrossRefzbMATHMathSciNetGoogle Scholar
  30. 30.
    Ghezzi, C., Jazayeri, M., Mandrioli, D.: Fundamentals of Software Engineering. Prentice Hall, Upper Saddle River (1991)zbMATHGoogle Scholar
  31. 31.
  32. 32.
  33. 33.
    Goranko, V.: Temporal logic with reference pointers. In: Gabbay, D.M., Ohlbach, H.J. (eds.) Proceedings of the International Conference on Temporal Logic (ICTL ’94), LNCS, vol. 827, pp. 133–148. Springer, Berlin (1994)Google Scholar
  34. 34.
    Grunske, L.: Formalizing architectural refactorings as graph transformation systems. In: Proceedings of the International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD 2005), pp. 324–329. IEEE, Los Alamitos (2005)Google Scholar
  35. 35.
    Henzinger, T.A.: Half-order modal logic: How to prove real-time properties. In: Proceedings of the ACM Symposium on Principles of Distributed Computing (PODC’90), pp. 281–296. ACM (1990)Google Scholar
  36. 36.
    Inverardi, P., Wolf, A.L.: Formal specification and analysis of software architectures using the chemical abstract machine model. IEEE Trans. Software Eng. 21(4), 373–386 (1995)CrossRefGoogle Scholar
  37. 37.
    Ivers, J., Clements, P., Garlan, D., Nord, R., Schmerl, B., Silva, J.R.O.: Documenting component and connector views with UML 2.0. Tech. Rep. CMU/SEI-2004-TR-008, Software Engineering Institute, Pittsburgh (2004)Google Scholar
  38. 38.
    Kazman, R., Bass, L., Klein, M.: The essential components of software architecture design and analysis. J. Syst. Softw. 79(8), 1207–1216 (2006)CrossRefGoogle Scholar
  39. 39.
    Lamport, L.: The temporal logic of actions. ACM Trans. Progr. Lang. Syst. 16(3), 872–923 (1994)CrossRefGoogle Scholar
  40. 40.
    Laursen, E.: High-end trading strategists see cost savings in cloud computing. Inst. Investor (Jan. 2011).
  41. 41.
    Le Goaer, O.: Styles d’Évolution dans les Architectures Logicielles. Ph.D. thesis, LINA, Nantes (2009)Google Scholar
  42. 42.
    Le Goaer, O., Tamzalit, D., Oussalah, M.: Evolution shelf: reusing evolution expertise within component-based software architectures. In: Proceedings of the IEEE International Computer Software and Applications Conference (COMPSAC 2008), pp. 311–318. IEEE, Los Alamitos (2008)Google Scholar
  43. 43.
    Magee, J., Dulay, N., Eisenbach, S., Kramer, J.: Specifying distributed software architectures. In: Schäfer, W., Botella, P. (eds.) Proceedings of the European Software Engineering Conference (ESEC ’95), LNCS, vol. 989, pp. 137–153. Springer, Berlin (1995)Google Scholar
  44. 44.
    Markey, N., Schnoebelen, P.: Model checking a path. In: Amadio, R., Lugiez, D. (eds.) Proceedings of the International Conference on Concurrency Theory (CONCUR 2003), LNCS, vol. 2761, pp. 251–265. Springer, Berlin (2003)Google Scholar
  45. 45.
    Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Trans. Softw. Eng. 26(1), 70–93 (2000)CrossRefGoogle Scholar
  46. 46.
    Murphy, G.C., Notkin, D., Sullivan, K.: Software reflexion models: bridging the gap between source and high-level models. In: Proceedings of the ACM SIGSOFT Symposium on Foundations of Software Engineering (SIGSOFT ’95), pp. 18–28. ACM, New York (1995)Google Scholar
  47. 47.
    No Magic, Inc.: MagicDraw.
  48. 48.
    OMG: Meta Object Facility (MOF) 2.0 Query/View/ Transformation (QVT).
  49. 49.
    OMG: Unified Modeling Language (UML).
  50. 50.
    Opdyke, W.F., Johnson, R.E.: Refactoring: an aid in designing application frameworks and evolving object-oriented systems. In: Proceedings of the Symposium on Object-Oriented Programming Emphasizing Practical Applications (SOOPPA 1990), pp. 145–160. Marist College, Poughkeepsie (1990)Google Scholar
  51. 51.
    Oussalah, M., Sadou, N., Tamzalit, D.: SAEV: a model to face evolution problem in software architecture. In: Duchien, L., D’Hondt, M., Mens, T. (eds.) Proceedings of the International ERCIM Workshop on Software Evolution 2006, pp. 137–146. USTL, Lille (2006)Google Scholar
  52. 52.
    Ozkaya, I., Kazman, R., Klein, M.: Quality-attribute-based economic valuation of architectural patterns. Tech. Rep. CMU/SEI-2007-TR-003. Software Engineering Institute, Pittsburgh (2007)Google Scholar
  53. 53.
    Parnas, D.L.: Information distribution aspects of design methodology. In: Proceedings of IFIP Congress ’71, pp. 339–344. North-Holland, Amsterdam (1972)Google Scholar
  54. 54.
    Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. ACM SIGSOFT Softw. Eng. Notes 17(4), 40–42 (1992)CrossRefGoogle Scholar
  55. 55.
    Richardson, J.: Supporting lists in a data model (a timely approach). In: Proceedings of the International Conference on Very Large Data Bases (VLDB’92), pp. 127–138. Morgan Kaufmann, San Mateo (1992)Google Scholar
  56. 56.
    Rushby, J.: Bus architectures for safety-critical embedded systems. In: Henzinger, T.A., Kirsch, C.M. (eds.) Proceedings of the International Workshop on Embedded Software (EMSOFT 2001), LNCS, vol. 2211, pp. 306–323. Springer (2001)Google Scholar
  57. 57.
    Schmerl, B., Garlan, D.: AcmeStudio: supporting style-centered architecture development. In: Proceedings of the International Conference on Software Engineering (ICSE 2004), pp. 704–05. IEEE, Los Alamitos (2004)Google Scholar
  58. 58.
    Sefika, M., Sane, A., Campbell, R.H.: Monitoring compliance of a software system with its high-level design models. In: Proceedings of the International Conference on Software Engineering (ICSE 1996), pp. 387–396. IEEE, Los Alamitos (1996)Google Scholar
  59. 59.
    Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, Upper Saddle River (1996)zbMATHGoogle Scholar
  60. 60.
    Sistla, A.P., Clarke, E.M.: The complexity of propositional linear temporal logics. J. ACM 32(3), 733–749 (1985)CrossRefzbMATHMathSciNetGoogle Scholar
  61. 61.
    Spitznagel, B., Garlan, D.: A compositional approach for constructing connectors. In: Kazman, R., Kruchten, P., Verhoef, C., van Vliet, H. (eds.) Proceedings of the Working IEEE/IFIP Conference on Software Architecture (WICSA 2001), pp. 148–157. IEEE, Los Alamitos (2001)Google Scholar
  62. 62.
    Spitznagel, B., Garlan, D.: A compositional formalization of connector wrappers. In: Proceedings of the International Conference on Software Engineering (ICSE 2003), pp. 374–384. IEEE, Los Alamitos (2003)Google Scholar
  63. 63.
    Tamzalit, D., Oussalah, M., Le Goaer, O., Seriai, A.D.: Updating software architectures: a style-based approach. In: Arabnia, H.R., Reza, H. (eds.) Proceedings of the International Conference on Software Engineering Research& Practice (SERP’06), pp. 336–342. CSREA, Las Vegas (2006)Google Scholar
  64. 64.
    Tamzalit, D., Sadou, N., Oussalah, M.: Evolution problem within component-based software architecture. In: Proceedings of the 18th International Conference on Software Engineering& Knowledge Engineering (SEKE 2006), pp. 296–301. Knowledge Systems Institute, Skokie (2006)Google Scholar
  65. 65.
    Taylor, R.N., Medvidovic, N., Anderson, K.M., Robbins, J.E., Nies, K.A., Oriezy, P., Dubrow, D.L.: A component- and message-based architectural style for GUI software. IEEE Trans. Softw. Eng. 22(6), 390–406 (1996)CrossRefGoogle Scholar
  66. 66.
  67. 67.
    Varia, J.: Migrating Your Existing Applications to the AWS Cloud. Amazon Web Services (2010).
  68. 68.
    Wermelinger, M., Fiadeiro, J.L.: A graph transformation approach to software architecture reconfiguration. Sci. Comput. Program. 44(2), 133–155 (2002)CrossRefzbMATHGoogle Scholar
  69. 69.
    Yourdon, E., Constantine, L.L.: Structured Design. Prentice Hall, Upper Saddle River (1979)zbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Jeffrey M. Barnes
    • 1
    Email author
  • David Garlan
    • 1
  • Bradley Schmerl
    • 1
  1. 1.Institute for Software ResearchCarnegie Mellon UniversityPittsburghUSA

Personalised recommendations