Log in

A framework for supporting dynamic systems co-evolution

  • Published:
Automated Software Engineering Aims and scope Submit manuscript

Abstract

Businesses and their supporting software evolve to accommodate the constant revision and re-negotiation of commercial goals, and to intercept the potential of new technology. We have adopted the term co-evolution to describe the concept of the business and the software evolving sympathetically, but at potentially different rates. More generally, we extend co-evolution to accommodate wide-informatics systems, that are assembled from parts that co-evolve with each other and their environment, and whose behavior is potentially emergent. Typically these are long-lived systems in which dynamic co-evolution, whereby a system evolves as part of its own execution in reaction to both expected and unexpected events, is the only feasible option for change. Examples of such systems include continuously running business process models, sensor nets, grid applications, self-adapting/tuning systems, peer-to-peer routing systems, control systems, autonomic systems, and pervasive computing applications.

The contribution of this paper comprises: a study of the intrinsic nature of dynamic co-evolving systems; the derivation of a set of intrinsic requirements; a description of a model and a set of technologies, new and extant, to meet these intrinsic requirements; and illustrations of how these technologies may be implemented within an architecture description language (ArchWare ADL) and a conventional programming language (Java). The model and technologies address three topics: structuring for dynamic co-evolution, incremental design, and adapting dynamic co-evolving systems. The combination yields a framework that can describe the system’s specification, the executing software and the reflective evolutionary mechanisms within a single computational domain in which all three may evolve in tandem.

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.

Similar content being viewed by others

References

  • Apache Software Foundation: The Byte Code Engineering Library (BCEL) (2003). http://jakarta.apache.org/bcel/

  • Balasubramaniam, D., Morrison, R., Mickan, K., Kirby, G.N.C., Warboys, B.C., Robertson, I., Snowdon, R., Greenwood, R.M., Seet, W.: Support for feedback and change in self-adaptive systems. In: Proceedings of the ACM SIGSOFT Workshop on Self-Managing Systems (WOSS’04), Newport Beach, CA, USA, pp. 18–22 (2004)

  • Balasubramaniam, D., Morrison, R., Kirby, G.N.C., Mickan, K., Warboys, B.C., Robertson, I., Snowdon, B., Greenwood, R.M., Seet, W.: A software architecture approach for structuring autonomic systems. In: Proceedings of the ICSE Workshop on the Design and Evolution of Autonomic Application Software (DEAS 2005), St Louis, MO, USA, pp. 59–65 (2005)

  • Beck, K., Andres, C.: Extreme Programming Explained. Addison–Wesley, Reading (2005)

    Google Scholar 

  • Beer, S.: The Brain of the Firm. Wiley, Chichester (1981)

    Google Scholar 

  • Bradbury, J.S., Cordy, J.R., Dingel, J., Wermelinger, M.: A survey of self-management in dynamic software architecture specifications. In: Garlan, D., Kramer, J., Wolf, A. (eds.) Proceedings of the 1st ACM SIGSOFT Workshop on Self-Managed Systems (WOSS ’04), Newport Beach, CA, 31 October–01 November 2004, pp. 28–33. ACM Press, New York (2004)

    Chapter  Google Scholar 

  • Brosilow, C., Joseph, B.: Techniques of model-based control. In: Feedforward Control. Prentice-Hall, New York (2002), Chap. 9

    Google Scholar 

  • Burstall, R.M., Collins, J.S., Popplestone, R.J.: Programming in POP-2. Edinburgh University Press, Edinburgh (1971)

    MATH  Google Scholar 

  • Chiba, S., Load-time structural reflection in Java. In: Bertino, E.: (ed.) Proceedings of the 14th European Conference on Object-Oriented Programming (ECOOP 2000), Sophia Antipolis, France. Lecture Notes in Computer Science, vol. 1850, pp. 313–336 (2000)

  • Colman, A., Han, J.: Coordination systems in role-based adaptive software. In: Jacquet, J.-M, Picco, G.P. (eds.) Proceedings COORDINATION 2005. Lecture Notes in Computer Science, vol. 3454, pp. 63–78 (2005)

  • Dasgupta, S.: Design Theory and Computer Science. Cambridge University Press, Cambridge (1991)

    Google Scholar 

  • Garlan, D., Cheng, S.W., Huang, A.C., Schmerl, B., Steenkiste, P.: Rainbow: architecture-based self-adaptation with reusable infrastructure. IEEE Comput. 37(10), 46–54 (2004)

    Google Scholar 

  • Godfrey, M.W., Tu, Q.: Evolution in open source software: a case study. In: Proceedings of the International Conference on Software Maintenance (ICSM’00), 11–14 October 2000, pp. 131–142. IEEE Computer Society, Washington (2000)

    Chapter  Google Scholar 

  • Gorlick, M.M., Razouk, R.R.: Using weaves for software construction and analysis. In: Proc. 13th International Conference on Software Engineering, pp. 23–34. IEEE Computer Society, Austin (1991)

    Chapter  Google Scholar 

  • Groenewegen, L.P.J., de Vink, E.P.: Evolution-on-the-fly with paradigm. In: Ciancarini, P., Wiklicky, H. (eds.) Proc. Coord 2006, Bologna, Italy. Lecture Notes in Computer Science, vol. 4038, pp. 97–122 (2006)

  • Herring, C., Kaplan, S.: A viable system architecture. In: Proceedings of the 34th Hawaii International Conference on System Sciences, pp. 1–10, (2001)

  • IBM: Autonomic computing: IBM’s perspective on the state of information technology, IBM (2002). http://www.research.ibm.com/autonomic

  • Kaplan, S. (ed.): Working Conference on Complex and Dynamic Systems Architecture, Brisbane, Australia (2001)

  • Kephart, J.O., Chess, D.M.: The vision of autonomic computing. Computer 36(1), 41–50 (2003)

    Article  Google Scholar 

  • Kirby, G.N.C.: Dynamic compilation in Java. (2005) http://www-systems.dcs.st-and.ac.uk/dynamicjavacompiler/

  • Kirby, G.N.C., Connor, R.C.H., Cutts, Q.I., Dearle, A., Farkas, A.M., Morrison, R.: Persistent hyper-programs. In: Albano, A., Morrison, R. (eds.) Proc. 5th International Conference on Persistent Object Systems, Italy. In Persistent Object Systems, pp. 86–106. Springer, Berlin (1992)

    Google Scholar 

  • Kirby, G.N.C., Morrison, R., Stemple, D.: Linguistic reflection in Java. Softw. Pract. Experience 28(10), 1045–1077 (1998)

    Article  Google Scholar 

  • Kramer, J., Magee, J.: The evolving philosophers problem: dynamic change management. IEEE Trans. Softw. Eng. 16(11), 1293–1306 (1990)

    Article  Google Scholar 

  • Kramer, J., Magee, J.: Analysing dynamic change in software architectures: a case study. In: Proceedings of the IEEE 4th Int. Conference on Configurable Distributed Systems (CDS 98), Annapolis, May 1998, pp. 91–100 (1998)

  • Lehman, M.M.: Laws of software evolution revisited. In: Proceedings of the 5th European Workshop, EWSPT ’96, Nancy, France. Lecture Notes in Computer Science, vol. 1149, pp. 108–124 (1996)

  • McIlraith, S.A., Son, T.C., Zeng, H.: Semantic Web services. IEEE Intell. Syst. 16(2), 46–53 (2001)

    Article  Google Scholar 

  • McCarthy, J., Abrahams, P.W., Edwards, D.J., Hart, T.P., Levin, M.I.: The Lisp Programmers’ Manual. MIT Press, Cambridge (1962)

    Google Scholar 

  • Mickan, K.: A meta-programming framework for software evolution. PhD thesis, University of St Andrews (2006)

  • Milner, R.: Computing in space. In: 17th International Congress on Computer Assisted Radiology and Surgery (CARS2003) (2003). http://www.cl.cam.ac.uk/users/rm135/

  • Mitleton-Kelly, E.: IT legacy systems: enabling environments that reduce the legacy problem: a complexity perspective. In: Madhavji, N.H., Fernandez-Ramil, J., Perry, D.E. (eds.) Software Evolution and Feedback: Theory and Practice, pp. 53–70. Wiley, New York (2006)

    Chapter  Google Scholar 

  • Mockus, A., Fielding, R.T., Herbsleb, J.D.: Two case studies of open source software development: Apache and Mozilla. ACM Trans. Softw. Eng. Methodol. 11(3), 309–346 (2002)

    Article  Google Scholar 

  • Morrison, R., Connor, R.C.H., Kirby, G.N.C., Munro, D.S., Atkinson, M.P., Cutts, Q.I., Brown, A.L., Dearle, A.: The Napier88 persistent programming language and environment. In: Atkinson, M.P., Welland, R. (eds.) Fully Integrated Data Environments, pp. 98–154. Springer, Berlin (1999)

    Google Scholar 

  • Morrison, R., Balasubramaniam, D., Greenwood, R.M., Kirby, G.N.C., Mayes, K., Munro, D., Warboys, B.C.: A compliant persistent architecture. Softw. Pract. Experience 30, 1–24 (2000)

    Article  Google Scholar 

  • Morrison, R., Kirby, G.N.C., Balasubramaniam, D., Mickan, K., Oquendo, F., Cîmpan, S., Warboys, B.C., Snowdon, B., Greenwood, R.M.: Support for evolving software architectures in the ArchWare ADL. In: Proceedings of the 4th Working IEEE/IFIP Conference on Software Architecture (WICSA 4), Oslo, Norway, pp. 69–78 (2004)

  • Naur, P., Randell, B.: Software Engineering: Report of a conference sponsored by the NATO Science Committee, Garmich, Germany, 7–11 October 1968. Brussels Scientific Affairs Division, NATO (1969)

  • Oquendo, F.: π-ADL: an architecture description language based on the higher-order typed π-calculus for specifying dynamic and mobile software architectures. ACM Softw. Eng. Notes 29(3) (2004)

  • Oreizy, P., Medvidovic, N., Taylor, R.N.: Architecture-based runtime software evolution. In: Proceedings of the 20th International Conference on Software Engineering, pp. 177–186. IEEE Computer Society, Kyoto (1998)

  • Oreizy, P., Gorlick, M.M., Taylor, R.N., Heimbigner, D., Johnson, G., Medvidovic, N., Quilici, A., Rosenblum, D.S., Wolf, A.L.: An architecture-based approach to self-adaptive software. IEEE Intel. Syst. 14(3), 54–62 (1999)

    Article  Google Scholar 

  • PS-algol: PS-algol Reference Manual, 4th edn. Universities of Glasgow and St Andrews Technical Report PPRR-12-88 (1988)

  • Schmerl, B., Garlan, D.: Exploiting architectural design knowledge to support self-repairing systems. In: Proceedings of the 14th international Conference on Software Engineering and Knowledge Engineering, Ischia, Italy, 15–19 July 2002. SEKE ’02, vol. 27, pp. 241–248. ACM Press, New York (2002)

    Chapter  Google Scholar 

  • Shaw, M.: Beyond objects: a software design paradigm based on process control. ACM Softw. Eng. Notes 20(1), 27–38 (1995)

    Article  Google Scholar 

  • Singh, M.P., Huhns, M.N.: Service-Oriented Computing: Semantics, Processes, Agents. Wiley, New York (2005)

    Google Scholar 

  • Stemple, D., Fegaras, L., Stanton, R.B., Sheard, T., Philbrow, P., Cooper, R.L., Atkinson, M.P., Morrison, R., Kirby, G.N.C., Connor, R.C.H., Alagic, S.: Type-safe linguistic reflection: a generator technology. In: Atkinson, M.P., Welland, R. (eds.) Fully Integrated Data Environments, pp. 158–188. Springer, Berlin (1999)

    Google Scholar 

  • Topolnik, M.: An improved XML syntax for the Java programming language. In: Proceedings of the 8th International Conference on Telecommunications (ConTEL 2005), Zagreb, Croatia, pp. 485–492, (2005)

  • Waldrop, M.M.: Complexity: The Emerging Science at the Edge of Order and Chaos. Penguin Science Series. Penguin, Baltimore (1994)

    Google Scholar 

  • Warboys, B.C.: The software paradigm. ICL Tech. J. 10(1), 71–80 (1995)

    Google Scholar 

  • Warboys, B.C., Kawalek, P., Robertson, I., Greenwood, R.M.: Business Information Systems: A Process Approach. McGraw–Hill, New York (1999)

    Google Scholar 

  • Warboys, B., Snowdon, R., Greenwood, R.M., Seet, W., Robertson, I., Morrison, R., Balasubramaniam, D., Kirby, G.N.C., Mickan, K.: An active architecture approach to COTS Integration. IEEE Softw. 22(4), 20–27 (2005)

    Article  Google Scholar 

  • Wirth, N.: Program development by stepwise refinement. Commun. ACM 14(4), 221–227 (1971)

    Article  MATH  Google Scholar 

  • Zhang, J., Cheng, B.H.: Model-based development of dynamically adaptive software. In: Proceedings of the 28th International Conference on Software Engineering, (ICSE ’06), Shanghai, China, 20–28 May 2006, pp. 371–380. ACM Press, New York (2006)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ron Morrison.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Morrison, R., Balasubramaniam, D., Kirby, G. et al. A framework for supporting dynamic systems co-evolution. Autom Softw Eng 14, 261–292 (2007). https://doi.org/10.1007/s10515-007-0011-7

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10515-007-0011-7

Keywords

Navigation