Skip to main content
Log in

Evolution styles: foundations and models for software architecture evolution

  • Theme Section Paper
  • Published:
Software & Systems Modeling Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8

Similar content being viewed by others

Notes

  1. In Sect. 3.2, we mentioned that architectural styles can be captured by means of UML profiles. In this case, these architectural-style profiles should extend the profile of Fig. 2. Incidentally, UML profiles could be used much more extensively than the way we present here. We could use them to define a much more elaborate base style that serves as a specialization of UML to formal software architecture modeling. That is, we could define a general profile for representing software architectures (or perhaps several profiles for different architectural views). However, the problem of defining a UML profile for software architecture is not particularly relevant to the topic at hand, is not necessary for the case study we present in Sect. 5, and has already been explored in previous work, so we do not do so here.

  2. This is “weak next,” meaning that \(\mathord {\bigcirc }\phi \) is interpreted to be true in the final state of a sequence. “Strong next” can be defined in terms of the weak next operator: \(\bar{\bigcirc }\phi := \lnot \mathord {\bigcirc }\lnot \phi \).

  3. In the program verification community, the problem of checking a finite, single trace is known as runtime verification, with the term model checking reserved for checking entire state structures [6].

References

  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)

  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)

  3. Amazon Elastic Compute Cloud (Amazon EC2). http://aws.amazon.com/ec2/

  4. Baldwin, C.Y., Clark, K.B.: Design Rules, vol. 1. MIT, Cambridge (1999)

    Google Scholar 

  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)

  6. Bauer, A., Leucker, M., Schallhart, C.: Runtime verification for LTL and TLTL. ACM T. Softw. Eng.& Meth. 20(4), (2011)

  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)

    Book  Google Scholar 

  8. Berliner, B.: CVS II: parallelizing software development. In: Proceedings of the Winter 1990 USENIX Conference, pp. 341–352. USENIX, Berkeley (1990)

  9. Blackburn, P.: Internalizing labelled deduction. J. Logic Comput. 10(1), 137–168 (2000)

    Article  MATH  MathSciNet  Google Scholar 

  10. Blackburn, P., Tzakova, M.: Hybrid languages and temporal logic. Log. J. IGPL 7(1), 27–54 (1999)

    Article  MATH  MathSciNet  Google Scholar 

  11. Boehm, B.W.: Software Engineering Economics. Prentice Hall, Upper Saddle River (1981)

    MATH  Google Scholar 

  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)

  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. 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)

  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)

    Article  MATH  Google Scholar 

  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. Crockford, D.: The application/json media type for JavaScript Object Notation (JSON). RFC 4627, IETF (2006). http://www.ietf.org/rfc/rfc4627

  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)

  19. Debian: Package gnuchess (5.07-7) (2009). http://packages.debian.org/stable/gnuchess

  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)

    Article  MATH  Google Scholar 

  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. Erder, M., Pureur, P.: Transitional architectures for enterprise evolution. IT Pro 8(3), 10–17 (2006)

    Article  Google Scholar 

  23. Franceschet, M., de Rijke, M.: Model checking hybrid logics (with an application to semistructured data). J. Appl. Logic 4(3), 279–304 (2006)

    Article  MATH  Google Scholar 

  24. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Boston (1994)

    Google Scholar 

  25. Garey, M.R., Johnson, D.S.: Computers and Intractability. Freeman, San Francisco (1979)

    MATH  Google Scholar 

  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)

  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)

  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)

  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)

    Article  MATH  MathSciNet  Google Scholar 

  30. Ghezzi, C., Jazayeri, M., Mandrioli, D.: Fundamentals of Software Engineering. Prentice Hall, Upper Saddle River (1991)

    MATH  Google Scholar 

  31. GNU Chess. http://www.gnu.org/software/chess/

  32. Google App Engine. http://code.google.com/appengine/

  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)

  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)

  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)

  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)

    Article  Google Scholar 

  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)

  38. Kazman, R., Bass, L., Klein, M.: The essential components of software architecture design and analysis. J. Syst. Softw. 79(8), 1207–1216 (2006)

    Article  Google Scholar 

  39. Lamport, L.: The temporal logic of actions. ACM Trans. Progr. Lang. Syst. 16(3), 872–923 (1994)

    Article  Google Scholar 

  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. Le Goaer, O.: Styles d’Évolution dans les Architectures Logicielles. Ph.D. thesis, LINA, Nantes (2009)

  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)

  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)

  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)

  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)

    Article  Google Scholar 

  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)

  47. No Magic, Inc.: MagicDraw. http://magicdraw.com/

  48. OMG: Meta Object Facility (MOF) 2.0 Query/View/ Transformation (QVT). http://www.omg.org/spec/QVT/

  49. OMG: Unified Modeling Language (UML). http://www.omg.org/spec/UML/

  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)

  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)

  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)

  53. Parnas, D.L.: Information distribution aspects of design methodology. In: Proceedings of IFIP Congress ’71, pp. 339–344. North-Holland, Amsterdam (1972)

  54. Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. ACM SIGSOFT Softw. Eng. Notes 17(4), 40–42 (1992)

    Article  Google Scholar 

  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)

  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)

  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)

  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)

  59. Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, Upper Saddle River (1996)

    MATH  Google Scholar 

  60. Sistla, A.P., Clarke, E.M.: The complexity of propositional linear temporal logics. J. ACM 32(3), 733–749 (1985)

    Article  MATH  MathSciNet  Google Scholar 

  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)

  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)

  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)

  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)

  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)

    Article  Google Scholar 

  66. Twilio. http://www.twilio.com/

  67. Varia, J.: Migrating Your Existing Applications to the AWS Cloud. Amazon Web Services (2010). http://media.amazonwebservices.com/CloudMigration-main.pdf

  68. Wermelinger, M., Fiadeiro, J.L.: A graph transformation approach to software architecture reconfiguration. Sci. Comput. Program. 44(2), 133–155 (2002)

    Article  MATH  Google Scholar 

  69. Yourdon, E., Constantine, L.L.: Structured Design. Prentice Hall, Upper Saddle River (1979)

    MATH  Google Scholar 

Download references

Acknowledgments

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.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jeffrey M. Barnes.

Additional information

Communicated by Dr. D. Tamzalit, B. Schätz, D. Deridder and A. Pierantonio.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Barnes, J.M., Garlan, D. & Schmerl, B. Evolution styles: foundations and models for software architecture evolution. Softw Syst Model 13, 649–678 (2014). https://doi.org/10.1007/s10270-012-0301-9

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-012-0301-9

Keywords

Navigation