Skip to main content
Log in

A Rigorous Architectural Approach to Adaptive Software Engineering

  • Regular Paper
  • Published:
Journal of Computer Science and Technology Aims and scope Submit manuscript

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.

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

  1. 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.

  2. Kramer J. Dynamic configuration for distributed systems. IEEE Transactions on Software Engineering, 1985, 11(4): 424.

    Article  Google Scholar 

  3. Magee J. Constructing distributed systems in Conic. IEEE Transactions on Software Engineering, 1989, 15(6): 663.

    Article  Google Scholar 

  4. Kramer J, Magee J. The evolving philosophers problem: Dynamic change management. IEEE Transactions on Software Engineering, 1990, 16(11): 1293–1306.

    Article  Google Scholar 

  5. 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.

  6. 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.

  7. 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.

    Google Scholar 

  8. 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.

  9. 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.

    Chapter  Google Scholar 

  10. van Ommering R. The Koala component model for consumer electronics software. Computer, 2000, 33(3): 78.

    Article  Google Scholar 

  11. Magee J, Kramer J. Concurrency: State Models & Java Programs. Chichester: Wiley, xviii, 2006, p.413.

  12. 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.

  13. 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.

  14. 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.

  15. 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.

  16. 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.

    Article  Google Scholar 

  17. Proc. the 3rd IEEE International Conference on Autonomic Computing. Dublin: IEEE, Nov. 29, 2006.

  18. Proc. the 2nd IEEE Int. Workshop on Self-Managed Networks, Systems and Services (SelfMan 2006). Dublin: IEEE, June 16, 2006.

  19. Dobson S et al. A survey of autonomic communications. ACM Trans. Auton. Adapt. Syst., 2006, 1(2): 223–259.

    Article  MathSciNet  Google Scholar 

  20. Proc. IEE/IFIP 1st Int. Workshop on Configurable Distributed Systems (CDS 92). London, UK, May 1992.

  21. Proc. IEEE 2nd International Conference on Configurable Distributed Systems (CDS 94). Pittsburgh, USA, May 1994.

  22. Proc. IEEE 3rd International Conference on Configurable Distributed Systems (CDS 96). Annapolis, USA, May 1996.

  23. Proc. the First Workshop on Self-Healing Systems. Charleston, South Carolina: ACM Press, 2002.

  24. Proc. the 1st ACM SIGSOFT Workshop on Self-Managed Systems. Newport Beach, California: ACM Press, 2004.

  25. Proc. 2nd IEEE Int. Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2007), ICSE, Minneapolis, 2007.

  26. Huebscher M C, McCann J. A survey of autonomic computing — Degrees, models and applications. ACM Computing Surveys, 2008, 40(3): 1–28.

    Article  Google Scholar 

  27. 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.

    Google Scholar 

  28. 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.

    Chapter  Google Scholar 

  29. 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.

    Chapter  Google Scholar 

  30. 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.

  31. Kramer J, Magee J. Analysing dynamic change in distributed software architectures. In IEE Proc. Software, 1998, 145(5): 146–154.

    Article  Google Scholar 

  32. Kramer J, Magee J. Self-Managed Systems: An Architectural Challenge. IEE Proc. Software, 145(5): 146–154.

  33. 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.

  34. 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.

  35. Gat E. Three-Layer Architectures. Artificial Intelligence and Mobile Robots, MIT/AAAI Press, 1997.

  36. 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.

  37. van Lamsweerde A. Goal-oriented requirements engineering: A guided tour. In Proc. the 5th IEEE International Symposium on Requirements Engineering, IEEE Computer Society, 2001.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jeff Kramer.

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

Reprints 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

Download citation

  • Received:

  • Revised:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11390-009-9216-5

Keywords

Navigation