An Active Architecture Approach to Dynamic Systems Co-evolution

  • Ron Morrison
  • Dharini Balasubramaniam
  • Flavio Oquendo
  • Brian Warboys
  • R. Mark Greenwood
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4758)


The term co-evolution describes the symbiotic relationship between dynamically changing business environments and the software that supports them. Business changes create pressures on the software to evolve, and at the same time technology changes create pressures on the business to evolve. More generally, we are concerned with systems where it is neither economically nor technologically feasible to suspend the operation of the system while it is being evolved. 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 predicted and emergent 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, routing systems, control systems, autonomic systems, and pervasive computing applications.

Active architectures address both the structural and behavioural requirements of dynamic co-evolving software by modelling software architecture as part of the on-going computation, thereby allowing evolution during execution and formal checking that desired system properties are preserved through evolution. This invited paper presents results on active architectures from the Compliant System Architecture and ArchWare projects. We have designed and constructed the ArchWare-ADL, a formal, well-founded architecture description language, based on the higher-order typed π-calculus, which consists of a set of layers to address the requirements of active architectures. The ArchWare-ADL design principles, concepts and formal notations are presented together with its sophisticated reflective technologies for supporting active architectures and thereby dynamic co-evolution.


Software Architecture Evolutionary Step Architecture Description Language Behavioural Requirement Automate Software Engineer 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abrial, J.-R.: The B-Book: Assigning Programs to Meanings. Cambridge University Press, Cambridge (1996)zbMATHGoogle Scholar
  2. 2.
    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: WOSS 2004. Proc. ACM SIGSOFT Workshop on Self-Managing Systems, Newport Beach, CA, USA, pp. 18–22. ACM Press, New York (2004)CrossRefGoogle Scholar
  3. 3.
    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: DEAS 2005. Proc. ICSE Workshop on the Design and Evolution of Autonomic Application Software, St Louis, MO, USA, pp. 59–65 (2005)Google Scholar
  4. 4.
    Chaudet, C., Greenwood, M., Oquendo, F., Warboys, B.: Architecture-Driven Software Engineering: Specifying, Generating, and Evolving Component-Based Software Systems. IEE Journal: Software Engineering 147(6) (December 2000)Google Scholar
  5. 5.
    Chaudet, C., Oquendo, F.: A Formal Architecture Description Language Based on Process Algebra for Evolving Software Systems. In: ASE 2000. Proceedings of the 15th IEEE International Conference on Automated Software Engineering, Grenoble, September 2000, IEEE Computer Society, Los Alamitos (2000)Google Scholar
  6. 6.
    Davies, J., Woodcock, J.: Using Z: Specification, Refinement and Proof. Prentice Hall International Series in Computer Science (1996)Google Scholar
  7. 7.
    Fitzgerald, J., Larsen, P.: Modelling Systems: Practical Tools and Techniques for Software Development. Cambridge University Press, Cambridge (1998)Google Scholar
  8. 8.
    Garlan, D., Cheng, S.W., Huang, A.C., Schmerl, B., Steenkiste, P.: Rainbow: Architecture-based self-adaptation with reusable infrastructure. IEEE Computer 37(10), 46–54 (2004)Google Scholar
  9. 9.
    Godfrey, M.W., Tu, Q.: Evolution in Open Source Software: A Case Study. In: ICSM 2000. Proceedings of the International Conference on Software Maintenance, Washington, DC, October 11 - 14, 2000, pp. 131–142. IEEE Computer Society, Los Alamitos (2000)Google Scholar
  10. 10.
    Gorlick, M.M., Razouk, R.R.: Using Weaves for Software Construction and Analysis. In: Proc. 13th International Conference on Software Engineering, Austin, Texas, United States, pp. 23–34. IEEE Computer Society Press, Los Alamitos (1991)CrossRefGoogle Scholar
  11. 11.
    Greenwood, M., Balasubramaniam, D., Cimpan, S., Kirby, N.C., Mickan, K., Morrison, R., Oquendo, F., Robertson, I., Seet, W., Snowdon, R., Warboys, B., Zirintsis, E.: Process Support for Evolving Active Architectures. In: Oquendo, F. (ed.) EWSPT 2003. LNCS, vol. 2786, Springer, Heidelberg (2003)Google Scholar
  12. 12.
    Groenewegen, L.P.J., de Vink, E.P.: Evolution-On-The-Fly with Paradigm. In: Ciancarini, P., Wiklicky, H. (eds.) COORDINATION 2006. LNCS, vol. 4038, pp. 97–122. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  13. 13.
    IEEE Std 1471-2000: IEEE Recommended Practice for Architectural Description of Software-Intensive Systems (October 2000)Google Scholar
  14. 14.
    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.) Persistent Object Systems, 1992. Proc. 5th International Conference on Persistent Object Systems, Italy, pp. 86–106. Springer, Heidelberg (1993)Google Scholar
  15. 15.
    Kramer, J., Magee, J.: The Evolving Philosophers Problem: Dynamic Change Management. IEEE Trans. on Software Engineering 16(11), 1293–1306 (1990)CrossRefGoogle Scholar
  16. 16.
    Kramer, J., Magee, J.: Analysing Dynamic Change in Software Architectures: A Case Study. In: CDS 1998. Proc. IEEE 4th Int. Conference on Configurable Distributed Systems, Annapolis, USA, May 1998, pp. 91–100. IEEE Computer Society Press, Los Alamitos (1998)Google Scholar
  17. 17.
    Lehman, M.M.: Laws of software evolution revisited. In: Montangero, C. (ed.) EWSPT 1996. LNCS, vol. 1149, pp. 108–124. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  18. 18.
    Mateescu, R., Oquendo, F.: pi-AAL: An Architecture Analysis Language for Formally Specifying and Verifying Structural and Behavioural Properties of Software Architectures. ACM Software Engineering Notes 31(2) (March 2006)Google Scholar
  19. 19.
    Mickan, K.: A Meta-Programming Framework for Software Evolution. Ph.D. Thesis, University of St Andrews (2006)Google Scholar
  20. 20.
    Milner, R.: Communicating and Mobile Systems: The Pi-Calculus. Cambridge University Press, Cambridge (1999)zbMATHGoogle Scholar
  21. 21.
    Milner, R.: Computing in space. In: 17th International Congress on Computer Assisted Radiology and Surgery (CARS 2003) (2003),
  22. 22.
    Morrison, R., Balasubramaniam, D., Greenwood, R.M., Kirby, G.N.C., Mayes, K., Munro, D., Warboys, B.C.: A Compliant Persistent Architecture. Software, Practice & Experience 30, 1–24 (2000)CrossRefGoogle Scholar
  23. 23.
    Morrison, R., Kirby, G.N.C., Balasubramaniam, D., Mickan, K., Oquendo, F., C\v{i}mpan, S., Warboys, B.C., Snowdon, B., Greenwood, R.M.: Support for evolving software architectures in the ArchWare ADL. In: WICSA 4. Proc. 4th Working IEEE/IFIP Conference on Software Architecture, Oslo, Norway, pp. 69–78 (2004)Google Scholar
  24. 24.
    Morrison, R., Balasubramaniam, D., Kirby, G.N.C., Warboys, B.C., Greenwood, R.M.: A Framework for Supporting Dynamic Systems Co-evolution. Journal of Automated Software Engineering (accepted for publication, 2007)Google Scholar
  25. 25.
    Oreizy, P., Medvidovic, N., Taylor, R.N.: Architecture-Based Runtime Software Evolution. In: Proc. 20th International Conference on Software Engineering, Kyoto, Japan, pp. 177–186. IEEE Computer Society, Los Alamitos (1998)CrossRefGoogle Scholar
  26. 26.
    Oquendo, F., Warboys, B., Morrison, R., Dindeleux, R., Gallo, F., Garavel, H., Occhipinti, C.: ArchWare: Architecting Evolvable Software. In: Oquendo, F., Warboys, B.C., Morrison, R. (eds.) EWSA 2004. LNCS, vol. 3047, Springer, Heidelberg (2004)Google Scholar
  27. 27.
    Oquendo, F.: π-ADL: an architecture description language based on the higher-order typed π-calculus for specifying dynamic and mobile software architectures. ACM Software Engineering Notes 29(3) (2004)Google Scholar
  28. 28.
    Oquendo, F.: pi-ARL: An Architecture Refinement Language for Formally Modelling the Stepwise Refinement of Software Architectures. ACM Software Engineering Notes 29(5) (September 2004)Google Scholar
  29. 29.
    Schmerl, B., Garlan, D.: Exploiting architectural design knowledge to support self-repairing systems. In: SEKE 2002. Proceedings of the 14th international Conference on Software Engineering and Knowledge Engineering, Ischia, Italy, July 15-19, 2002, vol. 27, pp. 241–248. ACM Press, New York (2002)CrossRefGoogle Scholar
  30. 30.
    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, Heidelberg (1999)Google Scholar
  31. 31.
    Stolen, K., Broy, M.: Specification and Development of Interactive Systems. Springer, Heidelberg (2001)Google Scholar
  32. 32.
    Warboys, B.C., Kawalek, P., Robertson, I., Greenwood, R.M.: Business Information Systems: A Process Approach. McGraw-Hill, New York (1999)Google Scholar
  33. 33.
    Warboys, B.C., Balasubramaniam, D., Greenwood, R.M., Kirby, G.N.C., Mayes, K., Morrison, R., Munro, D.S.: Collaboration and Composition: Issues for a Second Generation Process Language. In: Nierstrasz, O., Lemoine, M. (eds.) Software Engineering - ESEC/FSE 1999. LNCS, vol. 1687, pp. 75–91. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  34. 34.
    Warboys, B.C., Greenwood, R.M., Robertson, I., Morrison, R., Balasubramaniam, D., Kirby, G.N.C., Mickan, K.: The ArchWare Tower: The Implementation of an Active Software Engineering Environment using a π-calculus based Architecture Description Language. In: Morrison, R., Oquendo, F. (eds.) EWSA 2005. LNCS, vol. 3527, pp. 30–40. Springer, Heidelberg (2005)Google Scholar
  35. 35.
    Zhang, J., Cheng, B.H.: Model-based development of dynamically adaptive software. In: ICSE 2006. Proc. of the 28th international Conference on Software Engineering, Shanghai, China, May 20-28, 2006, pp. 371–380. ACM Press, New York (2006)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Ron Morrison
    • 1
  • Dharini Balasubramaniam
    • 1
  • Flavio Oquendo
    • 2
  • Brian Warboys
    • 3
  • R. Mark Greenwood
    • 3
  1. 1.University of St Andrews, St Andrews, KY16 9SXUK
  2. 2.University of South Brittany – Valoria, BP 573, 56017 Vannes CedexFrance
  3. 3.University of Manchester, Manchester, M13 9PLUK

Personalised recommendations