Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Evolution styles: foundations and models for software architecture evolution

Published: 01 May 2014 Publication History

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.

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)
[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)
[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)
[10]
Blackburn, P., Tzakova, M.: Hybrid languages and temporal logic. Log. J. IGPL 7(1), 27---54 (1999)
[11]
Boehm, B.W.: Software Engineering Economics. Prentice Hall, Upper Saddle River (1981)
[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)
[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)
[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)
[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)
[23]
Franceschet, M., de Rijke, M.: Model checking hybrid logics (with an application to semistructured data). J. Appl. Logic 4(3), 279---304 (2006)
[24]
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Boston (1994)
[25]
Garey, M.R., Johnson, D.S.: Computers and Intractability. Freeman, San Francisco (1979)
[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)
[30]
Ghezzi, C., Jazayeri, M., Mandrioli, D.: Fundamentals of Software Engineering. Prentice Hall, Upper Saddle River (1991)
[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)
[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)
[39]
Lamport, L.: The temporal logic of actions. ACM Trans. Progr. Lang. Syst. 16(3), 872---923 (1994)
[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)
[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)
[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)
[60]
Sistla, A.P., Clarke, E.M.: The complexity of propositional linear temporal logics. J. ACM 32(3), 733---749 (1985)
[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)
[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)
[69]
Yourdon, E., Constantine, L.L.: Structured Design. Prentice Hall, Upper Saddle River (1979)

Cited By

View all
  • (2024)Exploring Architectural Evolution in Microservice Systems Using Repository Mining Techniques and Static Code AnalysisSoftware Architecture10.1007/978-3-031-70797-1_10(157-173)Online publication date: 1-Sep-2024
  • (2021)Software Architectural MigrationACM Transactions on Software Engineering and Methodology10.1145/346101130:4(1-35)Online publication date: 23-Jul-2021
  • (2021)Information Reuse and Stochastic SearchACM Transactions on Autonomous and Adaptive Systems10.1145/344011915:1(1-36)Online publication date: 1-Feb-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Software and Systems Modeling (SoSyM)
Software and Systems Modeling (SoSyM)  Volume 13, Issue 2
May 2014
444 pages

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 01 May 2014

Author Tag

  1. Software architecture

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 04 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Exploring Architectural Evolution in Microservice Systems Using Repository Mining Techniques and Static Code AnalysisSoftware Architecture10.1007/978-3-031-70797-1_10(157-173)Online publication date: 1-Sep-2024
  • (2021)Software Architectural MigrationACM Transactions on Software Engineering and Methodology10.1145/346101130:4(1-35)Online publication date: 23-Jul-2021
  • (2021)Information Reuse and Stochastic SearchACM Transactions on Autonomous and Adaptive Systems10.1145/344011915:1(1-36)Online publication date: 1-Feb-2021
  • (2020)Architectural Concerns for Digital Twin of the OrganizationSoftware Architecture10.1007/978-3-030-58923-3_18(265-280)Online publication date: 14-Sep-2020
  • (2019)Towards an architectural patterns language for systems-of-systemsProceedings of the 26th Conference on Pattern Languages of Programs10.5555/3492252.3492254(1-24)Online publication date: 7-Oct-2019
  • (2018)Managing uncertainty in self-adaptive systems with plan reuse and stochastic searchProceedings of the 13th International Conference on Software Engineering for Adaptive and Self-Managing Systems10.1145/3194133.3194145(40-50)Online publication date: 28-May-2018
  • (2018)Supporting the analyzability of architectural component models - empirical findings and tool supportEmpirical Software Engineering10.1007/s10664-017-9583-423:6(3578-3625)Online publication date: 1-Dec-2018
  • (2016)Learning and evolution in dynamic software product linesProceedings of the 11th International Symposium on Software Engineering for Adaptive and Self-Managing Systems10.1145/2897053.2897058(158-164)Online publication date: 14-May-2016
  • (2016)Disseminating architectural knowledge on open-source projectsProceedings of the 38th International Conference on Software Engineering10.1145/2884781.2884792(476-487)Online publication date: 14-May-2016
  • (2016)A formal approach for managing component-based architecture evolutionScience of Computer Programming10.1016/j.scico.2016.03.003127:C(24-49)Online publication date: 1-Oct-2016
  • Show More Cited By

View Options

View options

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media