Abstract
The engineering of distributed adaptive software is a complex task which requires a rigorous approach. Software architectural (structural) concepts and principles are highly beneficial in specifying, designing, analysing, constructing and evolving distributed software. A rigorous architectural approach dictates formalisms and techniques that are compositional, components that are context independent and systems that can be constructed and evolved incrementally. This paper overviews some of the underlying reasons for adopting an architectural approach, including a brief “rational history” of our research work, and indicates how an architectural model can potentially facilitate the provision of self-managed adaptive software system.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Kramer J, Magee J. Engineering distributed software: A structural discipline. In Proc. the 10th European Software Engineering Conference held jointly with the 13th ACM SIG-SOFT International Symposium on Foundations of Software Engineering, Lisbon, Portugal, Sept. 2005, pp.283–285.
Kramer J. Dynamic configuration for distributed systems. IEEE Transactions on Software Engineering, 1985, 11(4): 424.
Magee J. Constructing distributed systems in Conic. IEEE Transactions on Software Engineering, 1989, 15(6): 663.
Kramer J, Magee J. The evolving philosophers problem: Dynamic change management. IEEE Transactions on Software Engineering, 1990, 16(11): 1293–1306.
Kramer J. Configuration programming — A framework for the development of distributable systems. In Proc. International Conference on Computer Systems and Software Engineering, Tel-Aviv, Israel, May 1990, pp.374–384.
Kramer J, Magee J, Ng K. Graphical support for configuration programming. In Proc. International Conference on System Sciences, Hawaii, USA, Jan. 1989, pp.860–870.
Magee J, Dulay N, Kramer J. Regis: A constructive development environment for parallel and distributed programs. Distributed Systems Engineering Journal, Special Issue on Configurable Distributed Systems, 1994, 1(5): 304–312.
Magee J et al. Specifying distributed software architectures. In Proc. the 5th European Software Engineering Conference (ESEC’95), Sitges, Spain, Sept. 25–28, 1995, pp.137–153.
Magee J, Kramer J. Dynamic structure in software architectures. In Proc. the 4th ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE 4), San Francisco, California, USA: ACM Press, 1996, pp.3–14.
van Ommering R. The Koala component model for consumer electronics software. Computer, 2000, 33(3): 78.
Magee J, Kramer J. Concurrency: State Models & Java Programs. Chichester: Wiley, xviii, 2006, p.413.
Magee J, Kramer J, Giannakopoulou D. Behaviour analysis of software architectures. In Proc. the 1st Working IFIP Conference on Software Architecture (WICSA1), San Antonio, TX, USA, Feb. 1999.
Cheung S C, Kramer J. Checking subsystem safety properties in compositional reachability analysis. In Proc. the 18th International Conference on Software Engineering (ICSE’18), Berlin, Germany: IEEE Computer Society Press, March 25–26, 1996.
Giannakopoulou D, Magee J, Kramer J. Checking progress with action priority: Is it fair? In Proc. the 7th European Software Engineering Conference held jointly with the 7th ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE’99), Toulouse, France: Springer, Sept. 6–10, 1999, pp.511–527.
Giannakopoulou D, Magee J. Fluent model checking for event-based systems. In Proc. ESEC/SIGSOFT FSE, Helsinki, ACM, Finland, Sept. 1–5, 2003, pp.257–266.
Uchitel S. Incremental elaboration of scenario-based specifications and behavior models using implied scenarios. ACM Transactions on Software Engineering and Methodology, 2004, 13(1): 37.
Proc. the 3rd IEEE International Conference on Autonomic Computing. Dublin: IEEE, Nov. 29, 2006.
Proc. the 2nd IEEE Int. Workshop on Self-Managed Networks, Systems and Services (SelfMan 2006). Dublin: IEEE, June 16, 2006.
Dobson S et al. A survey of autonomic communications. ACM Trans. Auton. Adapt. Syst., 2006, 1(2): 223–259.
Proc. IEE/IFIP 1st Int. Workshop on Configurable Distributed Systems (CDS 92). London, UK, May 1992.
Proc. IEEE 2nd International Conference on Configurable Distributed Systems (CDS 94). Pittsburgh, USA, May 1994.
Proc. IEEE 3rd International Conference on Configurable Distributed Systems (CDS 96). Annapolis, USA, May 1996.
Proc. the First Workshop on Self-Healing Systems. Charleston, South Carolina: ACM Press, 2002.
Proc. the 1st ACM SIGSOFT Workshop on Self-Managed Systems. Newport Beach, California: ACM Press, 2004.
Proc. 2nd IEEE Int. Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2007), ICSE, Minneapolis, 2007.
Huebscher M C, McCann J. A survey of autonomic computing — Degrees, models and applications. ACM Computing Surveys, 2008, 40(3): 1–28.
Oreizy P et al. An architecture-based approach to self-adaptive software. Intelligent Systems and Their Applications, IEEE [see also IEEE Intelligent Systems], 1999, 14(3): 54–62.
Garlan D, Schmerl B. Model-based adaptation for self-healing systems. In Proc. the First Workshop on Self-Healing Systems, ACM Press: Charleston, South Carolina, USA, 2002, pp.27–32.
Dashofy E M, A van der Hoek, Taylor R N. Towards architecture-based self-healing systems. In Proc. First Workshop on Self-Healing Systems, ACM Press: Charleston, South Carolina, 2002, pp.21–26.
Castaldi M et al. A light-weight infrastructure for reconfiguring applications. In Proc. the 11th Software Configuration Management Workshop (SCM03), Portland, Oregon, LNCS, 2003, pp.231–244.
Kramer J, Magee J. Analysing dynamic change in distributed software architectures. In IEE Proc. Software, 1998, 145(5): 146–154.
Kramer J, Magee J. Self-Managed Systems: An Architectural Challenge. IEE Proc. Software, 145(5): 146–154.
Georgiadis I, Magee J, Kramer J. Self-organising software architectures for distributed systems. In Proc. the First Workshop on Self-Healing Systems, ACM Press: Charleston, South Carolina, 2002.
Sykes D et al. Plan-directed architectural change for autonomous systems. In Proc. the Sixth International ACM Workshop on Specification and Verification of Component-Based Systems (SAVCBS’07), Dubrovnik, Croatia, Sept. 3–4, 2007, pp.15–21.
Gat E. Three-Layer Architectures. Artificial Intelligence and Mobile Robots, MIT/AAAI Press, 1997.
Zhang J, Cheng B H C. Model-based development of dynamically adaptive software. In Proc. the 28th International Conference on Software Engineering, ACM Press, Shanghai, China, 2006.
van Lamsweerde A. Goal-oriented requirements engineering: A guided tour. In Proc. the 5th IEEE International Symposium on Requirements Engineering, IEEE Computer Society, 2001.
Author information
Authors and Affiliations
Corresponding author
Additional information
Much of the research has been supported by the Engineering and Physical Sciences Research Council and is currently partly supported by EPSRC Platform grant AEDUS 2 and a DTC grant.
Rights and permissions
About this article
Cite this article
Kramer, J., Magee, J. A Rigorous Architectural Approach to Adaptive Software Engineering. J. Comput. Sci. Technol. 24, 183–188 (2009). https://doi.org/10.1007/s11390-009-9216-5
Received:
Revised:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11390-009-9216-5