Requirements Engineering

, Volume 8, Issue 4, pp 266–288 | Cite as

Retrenching partial requirements into system definitions: a simple feature interaction case study

  • R. Banach
  • M. Poppleton
Original Article


In conventional model-oriented formal refinement, the abstract model is supposed to capture all the properties of interest in the system, in an as-clutter-free-as-possible manner. Subsequently, the refinement process guides development inexorably towards a faithful implementation. However, refinement says nothing about how to obtain the abstract model in the first place. In reality developers experiment with prototype models and their refinements until a workable arrangement is discovered.

Retrenchment is a formal technique intended to capture some of the informal approach to a refinable abstract model in a formal manner that will integrate with refinement. This is in order that the benefits of a formal approach can migrate further up the development hierarchy. The basic ideas of retrenchment are presented, and a simple telephone system feature interaction case study is elaborated. This illustrates not only how retrenchment can relate incompatible and partial models to a more definitive consolidated model during the development of the contracted specification, but also that the same formalism is applicable in a re-engineering context, where the subsequent evolution of a system may be partly incompatible with earlier design decisions. The case study illustrates how the natural method of composing retrenchments can give results that are too liberal in certain cases, and stronger laws of composition are derived for systems possessing suitable properties. It is shown that the methodology can encompass more ad hoc and custom-built techniques such as Zave's layered feature engineering approach to applications exhibiting a feature-oriented architecture (such as telephony).


Requirement engineering Partial requirements Formal development Retrenchment Refinement Telephony Feature engineering Feature interaction 



The authors would like to thank Michael Jackson for valuable interaction during the preparation of this paper.


  1. 1.
    Wirth N (1971) The development of programs by stepwise refinement. Commun ACM 14:221–227CrossRefGoogle Scholar
  2. 2.
    Dijkstra EW (1972) Notes on structured programming. In: Structured programming. Academic Press, LondonGoogle Scholar
  3. 3.
    Hoare CAR (1972) Proof of correctness of data representations. Acta Inform 1:271–281Google Scholar
  4. 4.
    de Roever W-P, Engelhardt K (1998) Data refinement: model-oriented proof methods and their comparison. Cambridge University Press, CambridgeGoogle Scholar
  5. 5.
    Back RJR, von Wright J (1998) Refinement calculus: a systematic introduction. Springer, Berlin Heidelberg New YorkGoogle Scholar
  6. 6.
    Barroca LM, McDermid JA (1992) Formal methods: use and relevance for the development of safety-critical systems. Comput J 35:579–599Google Scholar
  7. 7.
    Banach R, Poppleton M (1998) Retrenchment: an engineering variation on refinement. In: Bert D (ed) Proceedings of B-98. Lecture notes in computer science, vol 1393. Springer, Berlin Heidelberg New York, pp 129–147. See also Tech Rep UMCS-99–3-2, Scholar
  8. 8.
    Banach R, Poppleton M (2000) Retrenchment, refinement and simulation. In: Bowen JP, Dunne S, Galloway A, King S (eds) Proceedings of ZB-00. Lecture notes in computer science, vol 1878. Springer, Berlin Heidelberg New York, pp 304–323Google Scholar
  9. 9.
    Banach R, Poppleton M (1999) Sharp retrenchment, modulated refinement and simulation. Form Aspects Comput 11:498–540CrossRefGoogle Scholar
  10. 10.
    Banach R, Poppleton M (2001) Engineering and theoretical underpinnings of retrenchment (submitted) Scholar
  11. 11.
    Calder M, Magill E (eds) (2000) Feature interactions in telecommunications and software systems VI. IOS Press, AmsterdamGoogle Scholar
  12. 12.
    Kimbler K (ed) (1999) Feature interactions in telecommunications and software systems V. IOS Press, AmsterdamGoogle Scholar
  13. 13.
    Banach R, Poppleton M (2000) Fragmented retrenchment, concurrency and fairness. In: Liu S, McDermid JA, Hinchey M (eds) Proceedings of ICFEM-00. IEEE Computer Society Press, Los Alamitos, CAGoogle Scholar
  14. 14.
    Zave P (2001) Requirements for evolving systems: a telecommunications perspective. In: Proceedings of the 5th IEEE international symposium on requirements engineering, pp 2–9Google Scholar
  15. 15.
    Kimbler K, Bouma LG (eds) (1998) Feature interactions in telecommunications and software systems V. IOS Press, AmsterdamGoogle Scholar
  16. 16.
    Back RJR (2002) Software construction by stepwise feature introduction. In: Bert D, Bowen JP, Henson MC, Robinson K (eds) Proceedings of ZB-02. Lecture notes in computer science, vol 2272. Springer, Berlin Heidelberg New York, pp 162–183Google Scholar
  17. 17.
    Back RJR, Sere K (1996) Superposition refinement of reactive systems. Form Aspects Comput 8:324–346Google Scholar
  18. 18.
    Jackson M, Zave P (1998) Distributed feature composition: a virtual architecture for telecommunications services. IEEE Trans Software Eng 24:831–847CrossRefGoogle Scholar
  19. 19.
    Cansell D, Mery D (2000) Playing with abstraction and refinement for managing features interactions. In: Bowen JP, Dunne S, Galloway A, King S (eds) Proceedings of ZB-00. Lecture notes in computer science 1878. Springer, Berlin Heidelberg New York, pp 148–167Google Scholar
  20. 20.
    Calder M, Kolberg M, Magill E, Reiff-Marganiec S (2001) Feature interaction: a critical review and considered forecast. Comput Networks 41(1):115–141CrossRefGoogle Scholar
  21. 21.
    Crow J, Owre S, Rushby J, Shankar N, Sirvas M (1995) a tutorial introduction to PVS. In: France R, Gerhart S, Larrondo-Petrie M (eds) Proceedings of WIFT-95 workshop on industrial strength formal specification techniques. IEEE Computer Society Press, Los Alamitos, CAGoogle Scholar
  22. 22.
    Schellhorn G (1999) Verification of abstract state machines. PhD thesis, University of Ulm Fakultät für InformatikGoogle Scholar
  23. 23.
    Schellhorn G (2001) Verification of ASM refinements using generalized forward simulation. J Univers Comput Sci 7:952–979Google Scholar

Copyright information

© Springer-Verlag London Limited 2003

Authors and Affiliations

  1. 1.Computer Science DepartmentManchester UniversityManchesterUK
  2. 2.Department of ComputingOpen UniversityMilton KeynesUK

Personalised recommendations