Software Construction by Stepwise Feature Introduction

  • Ralph-Johan Back
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2272)


We study a method for software construction that is based on introducing new features to an evolving system one by one. A layered software architecture is proposed to support this method. We show how to describe the software with UML diagrams. We provide an exact semanticsfor the UML diagramsemplo yed in the software architecture, using refinement calculusasthe logical framework and show how to reason about software correctness in terms of these UML diagrams.


Service Provider Software Component Correctness Condition Service Feature Iteration Cycle 
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.
    R.J. Back. Correctness Preserving Program Refinements: Proof Theory and Applications, volume 131 of Mathematical Centre Tracts. Mathematical Centre, Amsterdam, 1980.Google Scholar
  2. 2.
    R.J. Back. A calculusof refinementsfor program derivations. Acta Informatica, 25:593–624, 1988.zbMATHCrossRefMathSciNetGoogle Scholar
  3. 3.
    .R.J. Back. Refinement diagrams. J. M. Morris and R. C. Shaw, editors, 4th Refinement Workshop, pages125–137, Cambridge, UK, January 1991. Springer-Verlag.Google Scholar
  4. 4.
    R.J. Back, L. Milovanov, I. Porres-Paltor and V. Preoteasa. A Case Study in Extreme Programming and Stepwise Feature Introduction. TUCS Technical Report, in preparation.Google Scholar
  5. 5.
    R.J. Back, L. Milovanov and V. Preoteasa. Testing layered software. TUCS Technical Report, in preparation.Google Scholar
  6. 6.
    R.J. Back, A. Mikhajlova and J. von Wright. Class Refinement as Semantics of Correct Object Substitutability. Formal Aspects of Computing, 12: 18–40, 2000.zbMATHCrossRefGoogle Scholar
  7. 7.
    R.J. Back and V. Preoteasa. Layered Specifications: A Case Study. TUCS Technical Report, in preparation.Google Scholar
  8. 8.
    R.J. Back and K. Sere. Superposition Refinement of Reactive Systems. Formal Aspects of Computing, 8(3):324–346, 1996.zbMATHCrossRefGoogle Scholar
  9. 9.
    R.J. Back and J. von Wright. Refinement Calculus: A Systematic Introduction. Springer-Verlag, 1998.Google Scholar
  10. 10.
    R. J. Back and J. von Wright. Encoding, decoding, and data refinement. Formal Aspects of Computing, 2000.Google Scholar
  11. 11.
    K. Beck. Extreme Programming Explained Addison-Wesley, the XP Series, 1999.Google Scholar
  12. 12.
    G. Booch, J. Rumbaugh and I. Jacobson. The Unified Modeling Language User Guide. Addison-Wesley, 1998.Google Scholar
  13. 13.
    E.W. Dijkstra. Notes on structured programming. In O. Dahl, E.W. Dijkstra, and C.A.R. Hoare, editors, Structured Programming. Academic Press, 1971.Google Scholar
  14. 14.
    M. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley Object Technology Series 2000.Google Scholar
  15. 15.
    B. Meyer. Object-Oriented Software Construction, Prentice Hall, second edition, 1997.Google Scholar
  16. 16.
    W.P. de Roever and K. Engelhardt. Data Refinement: Model-Oriented Proof Methods and their Comparison. Cambridge Tractsin Theoretical Computer Science 47, 1998.Google Scholar
  17. 17.
    C.C. Morgan. Programming from Specifications. Prentice-Hall, 1990.Google Scholar
  18. 18.
    N. Wirth. Program development by stepwise refinement. Communications of the ACM, 14:221–227, 1971.zbMATHCrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Ralph-Johan Back
    • 1
  1. 1.Åbo Akademi and Turku Centre for Computer ScienceTurkuFinland

Personalised recommendations