Incremental Design: Programming with Holes and Evolvers

  • Ron Morrison
  • Dharini Balasubramaniam
  • Brian Warboys
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6875)


Incremental design allows the system developer to define the system software in convenient stages. Often when all the parts of the system are defined the system is ready for deployment. However it is possible to delay the definition of some parts of the system definition to when it is more convenient post-deployment. In this paper we will explore a unifying approach to incremental design that accommodates both pre-deployment and post-deployment but more importantly outlines a system structuring for incremental design. It will contain the notion of holes and evolvers in incremental system design along with other concepts and technologies that are required to support it. The contribution of this paper comprises: a study of the intrinsic nature of programming with holes and evolvers including increments; static and dynamic systems; E-P structuring; and autonomic and emergent change.


Incremental design holes evolvers autonomic and emergent systems 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Dasgupta, S.: Design Theory and Computer Science. Cambridge University Press, Cambridge (1991)CrossRefGoogle Scholar
  2. 2.
    Warboys, B.C.: The Software Paradigm. ICL Technical Journal 10(1), 71–80 (1995)Google Scholar
  3. 3.
    Wirth, N.: Program Development by Stepwise Refinement. Comm. ACM. 14(4), 221–227 (1971)CrossRefzbMATHGoogle Scholar
  4. 4.
    Beck, K., Andres, C.: Extreme Programming Explained. Addison-Wesley, Reading (2005)Google Scholar
  5. 5.
    Morrison, R., Balasubramaniam, D., Kirby, G.N.C., Mickan, K., Warboys, R., Greenwood, W., Robertson, I., Snowdon, R.: A Framework for Supporting Dynamic Systems Co evolution. Automated Software Engineering 14(3), 261–292 (2007)CrossRefGoogle Scholar
  6. 6.
    Kephart, J.O., Chess, D.M.: The Vision of Autonomic Computing. Computer 36(1), 41–50 (2003)MathSciNetCrossRefGoogle Scholar
  7. 7.
    Witkowski, M.M., Standley, S.: Collaborative Risk Management for the Cassini-Huygens Probe Mission. In: IEEE Aerospace Conference, pp. 111–119 (2005) Google Scholar
  8. 8.
    Losavio, F., Levy, N., Davari, P., Colonna, F.: 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. 94–112. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  9. 9.
    Beer, S.: The Brain of the Firm. Wiley, Chichester (1981)Google Scholar
  10. 10.
    Herring, C., Kaplan, S.: A Viable System Architecture. In: Proc. 34th Hawaii International Conference on System Sciences, pp. 1–10 (2001)Google Scholar
  11. 11.
    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
  12. 12.
    Shaw, M.: Beyond Objects: A Software Design Paradigm based on Process Control. ACM Software Engineering Notes 20(1), 27–38 (1995)CrossRefGoogle Scholar
  13. 13.
    Kaplan, S. (ed.): Working Conference on Complex and Dynamic Systems Architecture, Brisbane, Australia (2001) Google Scholar
  14. 14.
    Yeomans, B.S.: A Process-Based Environment for the Evolutionary Development of Large Software Systems. M. Res Thesis, University of Manchester UK (1997) Google Scholar
  15. 15.
    Mickan, K.: A Meta-Programming Framework for Software Evolution, Ph.D. Thesis, University of St. Andrews (2006) Google Scholar
  16. 16.
    Barringer, H., Rydeheard, D., Warboys, B., Gabbay, D.: A Revision-Based Logical Framework for Evolvable Software. In: Proc. International Conference on Software Engineering, pp. 78–83 (2007) Google Scholar
  17. 17.
    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
  18. 18.
    Randell, B., Xu, J.: The Evolution of the Recovery Block Concept. In: Lyu, M. (ed.) Software Fault Tolerance. Trends in Software, pp. 1–22. J. Wiley, Chichester (1994)Google Scholar
  19. 19.
    Horning, J.J., Lauer, H.C., Melliar-Smith, P.M., Randell, B.: A Program Structure for Error Detection and Recovery. LNCS, vol. 16, pp. 177–193 (1974)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Ron Morrison
    • 1
  • Dharini Balasubramaniam
    • 1
  • Brian Warboys
    • 2
  1. 1.School of Computer ScienceThe University of St AndrewsFifeUK
  2. 2.School of Computer ScienceThe University of ManchesterManchesterUK

Personalised recommendations