Software & Systems Modeling

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

Evolution styles: foundations and models for software architecture evolution

  • Jeffrey M. Barnes
  • David Garlan
  • Bradley Schmerl
Theme Section Paper

Abstract

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.

Keywords

Software architecture 

References

  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). http://aws.amazon.com/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)CrossRefMATHMathSciNetGoogle Scholar
  10. 10.
    Blackburn, P., Tzakova, M.: Hybrid languages and temporal logic. Log. J. IGPL 7(1), 27–54 (1999)CrossRefMATHMathSciNetGoogle Scholar
  11. 11.
    Boehm, B.W.: Software Engineering Economics. Prentice Hall, Upper Saddle River (1981)MATHGoogle 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). http://www.cs.kent.ac.uk/projects/ocl/oclmdewsuml04/papers/2-cariou_marvie_seinturier_duchien.pdf
  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)CrossRefMATHGoogle 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). http://www.ietf.org/rfc/rfc4627
  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). http://packages.debian.org/stable/gnuchess
  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)CrossRefMATHGoogle Scholar
  21. 21.
    Ecma International: Standard ECMA-262: ECMAScript Language Specification, 5th edn. (2009). http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
  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)CrossRefMATHGoogle 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)MATHGoogle 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)CrossRefMATHMathSciNetGoogle Scholar
  30. 30.
    Ghezzi, C., Jazayeri, M., Mandrioli, D.: Fundamentals of Software Engineering. Prentice Hall, Upper Saddle River (1991)MATHGoogle 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). http://www.institutionalinvestor.com/Popups/PrintArticle.aspx?ArticleID=2750046
  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. http://magicdraw.com/
  48. 48.
    OMG: Meta Object Facility (MOF) 2.0 Query/View/ Transformation (QVT). http://www.omg.org/spec/QVT/
  49. 49.
    OMG: Unified Modeling Language (UML). http://www.omg.org/spec/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)MATHGoogle Scholar
  60. 60.
    Sistla, A.P., Clarke, E.M.: The complexity of propositional linear temporal logics. J. ACM 32(3), 733–749 (1985)CrossRefMATHMathSciNetGoogle 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). http://media.amazonwebservices.com/CloudMigration-main.pdf
  68. 68.
    Wermelinger, M., Fiadeiro, J.L.: A graph transformation approach to software architecture reconfiguration. Sci. Comput. Program. 44(2), 133–155 (2002)CrossRefMATHGoogle Scholar
  69. 69.
    Yourdon, E., Constantine, L.L.: Structured Design. Prentice Hall, Upper Saddle River (1979)MATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

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

Personalised recommendations