Abstract
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.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
Keywords
- 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.
References
Abrial, J.-R.: The B-Book: Assigning Programs to Meanings. Cambridge University Press, Cambridge (1996)
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)
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)
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)
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)
Davies, J., Woodcock, J.: Using Z: Specification, Refinement and Proof. Prentice Hall International Series in Computer Science (1996)
Fitzgerald, J., Larsen, P.: Modelling Systems: Practical Tools and Techniques for Software Development. Cambridge University Press, Cambridge (1998)
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)
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)
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)
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)
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)
IEEE Std 1471-2000: IEEE Recommended Practice for Architectural Description of Software-Intensive Systems (October 2000)
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)
Kramer, J., Magee, J.: The Evolving Philosophers Problem: Dynamic Change Management. IEEE Trans. on Software Engineering 16(11), 1293–1306 (1990)
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)
Lehman, M.M.: Laws of software evolution revisited. In: Montangero, C. (ed.) EWSPT 1996. LNCS, vol. 1149, pp. 108–124. Springer, Heidelberg (1996)
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)
Mickan, K.: A Meta-Programming Framework for Software Evolution. Ph.D. Thesis, University of St Andrews (2006)
Milner, R.: Communicating and Mobile Systems: The Pi-Calculus. Cambridge University Press, Cambridge (1999)
Milner, R.: Computing in space. In: 17th International Congress on Computer Assisted Radiology and Surgery (CARS 2003) (2003), http://www.cl.cam.ac.uk/users/rm135/
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)
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)
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)
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)
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)
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)
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)
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)
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)
Stolen, K., Broy, M.: Specification and Development of Interactive Systems. Springer, Heidelberg (2001)
Warboys, B.C., Kawalek, P., Robertson, I., Greenwood, R.M.: Business Information Systems: A Process Approach. McGraw-Hill, New York (1999)
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)
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)
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)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Morrison, R., Balasubramaniam, D., Oquendo, F., Warboys, B., Greenwood, R.M. (2007). An Active Architecture Approach to Dynamic Systems Co-evolution. In: Oquendo, F. (eds) Software Architecture. ECSA 2007. Lecture Notes in Computer Science, vol 4758. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-75132-8_2
Download citation
DOI: https://doi.org/10.1007/978-3-540-75132-8_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-75131-1
Online ISBN: 978-3-540-75132-8
eBook Packages: Computer ScienceComputer Science (R0)