A Two-Layered Approach to Support Systematic Software Development

  • Maritta Heisel
  • Stefan Jähnichen
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1526)


We present two concepts that help software engineers to perform different software development activities systematically. The concept of an agenda serves to represent technical process knowledge. An agenda consists of a list of steps to be performed when developing a software artifact. Each activity may have associated a schematic expression of the language in which the artifact is expressed and validation conditions that help detect errors. Agendas provide methodological support to their users, make development knowledge explicit and thus comprehensible, and they contribute to a standardization of software development activities and products.

The concept of a strategy is a formalization of agendas. Strategies model the development of a software artifact as a problem solving process. They form the basis for machine-supported development processes. They come with a generic system architecture that serves as a template for the implementation of support tools for strategy-based problem solving.


Software engineering methodology process modeling formal methods 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. AR97.
    Astesiano, E., Reggio, G.: Formalism and Method. In: Bidoit, M., Dauchet, M. (eds.) CAAP 1997, FASE 1997, and TAPSOFT 1997. LNCS, vol. 1214, pp. 93–114. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  2. BJ95.
    Broy, M., Jähnichen, S. (eds.): KORSO 1995. LNCS, vol. 1009. Springer, Heidelberg (1995)Google Scholar
  3. CAB+94.
    Coleman, D., Arnold, P., Bodoff, S., Dollin, C., Gilchrist, H., Hayes, F., Jeremaes, P.: Object-Oriented Development: The Fusion Method. Prentice Hall, Englewood Criffs (1994)Google Scholar
  4. Che96.
    Chernack, Y.: A statistical approach to the inspection checklist formal synthesis and improvement. IEEE Transactions on Software Engineering 22(12), 866–874 (1996)CrossRefGoogle Scholar
  5. Dav93.
    Davies, J.: Specification and Proof in Real-Time CSP. Cambridge University Press, Cambridge (1993)zbMATHCrossRefGoogle Scholar
  6. FKN94.
    Finkelstein, A., Kramer, J., Nuseibeh, B. (eds.): Software Process Modeling and Technology. Wiley, Chichester (1994)Google Scholar
  7. FW96.
    Fuggetta, A., Wolf, A. (eds.): Software Process. Trends in Software 4. Wiley, Chichester (1996)Google Scholar
  8. GHD98.
    Grieskamp, W., Heisel, M., Dörr, H.: Specifying safety-critical embedded systems with Statecharts and Z: An agenda for cyclic software components. In: Astesiano, E. (ed.) ETAPS 1998 and FASE 1998. LNCS, vol. 1382, pp. 88–106. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  9. GHJV95.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns Elements of Reusable Object-Oriented Software. Addison Wesley, Reading (1995)Google Scholar
  10. GJ96.
    Garg, P., Jazayeri, M.: Process-centered software engineering environments: A grand tour. In: Fuggetta, A., Wolf, A. (eds.) Software Process, Trends in Software, vol. 4, ch. 2, pp. 25–52. Wiley, Chichester (1996)Google Scholar
  11. Gri81.
    Gries, D.: The Science of Programming. Springer, Heidelberg (1981)zbMATHGoogle Scholar
  12. Hei97.
    Heisel, M.: Methodology and Machine Support for the Application of Formal Techniques in Software Engineering. Habilitation Thesis, TU Berlin (1997)Google Scholar
  13. HL97.
    Heisel, M., Lévy, N.: Using LOTOS patterns to characterize architectural styles. In: Bidoit, M., Dauchet, M. (eds.) CAAP 1997, FASE 1997, and TAPSOFT 1997. LNCS, vol. 1214, pp. 818–832. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  14. HS96.
    Heisel, M., Sühl, C.: Formal specification of safety-critical software with Z and real-time CSP. In: Schoitsch, E. (ed.) Proceedings 15th International Conference on Computer Safety, Reliability and Security (SAFECOMP), pp. 31–45. Springer, London (1996)Google Scholar
  15. HS97.
    Heisel, M., Sühl, C.: Methodological support for formally specifying safety-critical software. In: Daniel, P. (ed.) Proceedings 16th International Conference on Computer Safety, Reliability and Security (SAFECOMP), pp. 295–308. Springer, London (1997)Google Scholar
  16. HS98.
    Heisel, M., Souquières, J.: Methodological support for requirements elicitation and formal specification. In: Proc. 9th International Workshop on Software Specification and Design, pp. 153–155. IEEE Computer Society Press, Los Alamitos (1998)Google Scholar
  17. HSZ95.
    Heisel, M., Santen, T., Zimmermann, D.: Tool support for formal software development: A generic architecture. In: Botella, P., Schäfer, W. (eds.) ESEC 1995. LNCS, vol. 989, pp. 272–293. Springer, Heidelberg (1995)Google Scholar
  18. Hum95.
    Humphrey, W.S.: A Discipline for Software Engineering. Addison-Wesley, London (1995)Google Scholar
  19. Kan90.
    Kanellakis, P.C.: Elements of relational database theory. In: van Leeuwen, J. (ed.) Handbook of Theoretical Computer Science, vol. B, ch. 17, pp. 1073–1156. Elsevier, Amsterdam (1990)Google Scholar
  20. Mil72.
    Milner, R.: Logic for computable functions: description of a machine implementation. SIGPLAN Notices 7, 1–6 (1972)CrossRefGoogle Scholar
  21. Ost87.
    Osterweil, L.: Software processes are software too. In: 9th International Conference on Software Engineering, pp. 2–13. IEEE Computer Society Press, Los Alamitos (1987)Google Scholar
  22. Reg98.
    Reggio, G.: A method to capture formal requirements: the Invoice case study. In: Allemand, M., Attiogbe, C., Habrias, H. (eds.) Proceedings Workshop on Comparing Specification Techniques. IRIN – Université de Nantes (1998)Google Scholar
  23. RW88.
    Rich, C., Waters, R.C.: The programmer’s apprentice: A research overview. IEEE Computer, 10–25 (November 1988)Google Scholar
  24. SG96.
    Shaw, M., Garlan, D.: Software Architecture. IEEE Computer Society Press, Los Alamitos (1996)Google Scholar
  25. SL93.
    Souquières, J., Lévy, N.: Description of specification developments. In: Proc. of Requirements Engineering 1993, pp. 216–223 (1993)Google Scholar
  26. Smi90.
    Smith, D.R.: KIDS: A semi-automatic program development system. IEEE Transactions on Software Engineering 16(9), 1024–1043 (1990)CrossRefGoogle Scholar
  27. SO97.
    Sutton, S., Osterweil, L.: The design of a next-generation process language. In: Jazayeri, M., Schauer, H. (eds.) ESEC 1997 and ESEC-FSE 1997. LNCS, vol. 1301, pp. 142–158. Springer, Heidelberg (1997)Google Scholar
  28. Spi92.
    Spivey, J.M.: The Z Notation - A Reference Manual, 2nd edn. Prentice Hall, Englewood Cliffs (1992)Google Scholar
  29. Wil83.
    Wile, D.S.: Program developments: Formal explanations of implementations. Communications of the ACM 26(11), 902–911 (1983)CrossRefGoogle Scholar
  30. WSH98.
    Winter, K., Santen, T., Heisel, M.: An agenda for event-driven software components with complex data models. In: Ehren-berger, W. (ed.) SAFECOMP 1998. LNCS, vol. 1516, p. 16. Springer, Heidelberg (1998) (to appear)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  • Maritta Heisel
    • 1
  • Stefan Jähnichen
    • 2
    • 3
  1. 1.Fakultät für Informatik, Institut für Verteilte SystemeOtto-von-Guericke-Universität MagdeburgMagdeburgGermany
  2. 2.FG SoftwaretechnikTechnische Universität BerlinBerlinGermany
  3. 3.GMD FIRSTBerlinGermany

Personalised recommendations