Algebraic software development concepts for module and configuration families

  • Hartmut Ehrig
  • Werner Fey
  • Horst Hansen
  • Michael Löwe
  • Dean Jacobs
Software Technology
Part of the Lecture Notes in Computer Science book series (LNCS, volume 405)


Configuration families are the means of keeping track of structural and historical relationships between the components of a system as they evolve over time. Thus they form a kernel of a configuration management system. In this paper, we study configuration families within a formal semantic framework for modules and their interconnection operations. Our goal is to formulate and prove formally fundamental ideas in this area to serve as a guide to the design of methodologies and tools for software engineering.

The module concept we use is based on abstract data types and algebraic specifications and includes a set of fundamental operations on interface and module specifications for horizontal structuring, vertical development steps, which refine abstract specifications into more concrete ones, and realization of interface specifications by module specifications. In the paper we study the construction and evolution of module families, i.e., collections of conceptually related modules, usually revisions and variants, which have developed over time. We show how horizontal structuring operations can be applied to entire module families to produce configuration families, and explain how vertical refinement steps of underlying modules induce refinements of configurations. The construction of modules, module families, and configuration families is illustrated by a simple desk calculator.

CR classification

D.2.1 Specification D.2.2 Modules and interfaces D.2.7 Version control D.2.9 Software configuration management D.2.10 Design methodologies D.3.3 Abstract data types modules F.3.1 Specification techniques 


modules module families configuration families algebraic specifications formal specification development software engineering 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

5. References

  1. [ADJ 76]
    Goguen, J.A., Thatcher, J.W., Wagner, E.G.: ”An Initial Algebra Approach to the Specification, Correctness and Implementation of Abstract Data Types”, IBM Research Report RC 6487, 1976. Also: Current Trends in Programming Methodology IV: Data Structuring (R. Yeh, ed.), Prentice Hall, 1978, pp. 80–144Google Scholar
  2. [BEP 87]
    Blum, E.K., Ehrig, H., Parisi-Presicce, F.: “Algebraic Specification of Modules and Their Basic Interconnections”, JCSS Vol. 34, 1987, pp. 293–339Google Scholar
  3. [BHK 86]
    Bergstra, J.A., Heering, J., Klint, P.: “Module Algebra”, Centre for Mathematics and Computer Science, Amsterdam, Report CS-R 8617, 1986Google Scholar
  4. [EFHJL 89]
    Ehrig, H., Fey, W., Hansen, H., Jacobs, D., Löwe, M.: Algebraic Concepts for the Evolution of Module Families, in Proc. AMAST (International Conference on Algebraic Methodology and Software Technology), Iowa City (USA), May 22–24, 1989, pp. 85–88Google Scholar
  5. [EFHJLLP 88]
    Ehrig, H., Fey, W., Hansen, H., Jacobs, D., Langen, A., Löwe, M., Parisi-Presicce, F.: ”Algebraic Specification of Modules and Configuration Families”, Research Report No. 88-17, Department of Computer Science, TU Berlin, 1988Google Scholar
  6. [EFHLP89]
    Ehrig, H., Fey, W., Hansen, H., Löwe, M., Parisi-Presicce, F.: ”Categories for the Development of Algebraic Module Specifications”, in Ehrig, H., Herrlich, M., Kreowski, H.-J., Preuß, G. (eds.): ”Categorical Methods in Computer Science with Aspects from Topology”, LNCS 393, 1989, Springer VerlagGoogle Scholar
  7. [EM85]
    Ehrig, H., Mahr, B.: ”Fundamentals of Algebraic Specification 1”, Springer Verlag, Berlin, 1985Google Scholar
  8. [EW86]
    Ehrig, H., Weber, H.: ”Programming in the Large with Algebraic Module Specifications”, Proc. IFIP Congress '86, Dublin, September 1986, pp. 675–684Google Scholar
  9. [GM 82]
    Goguen, J.A., Messeguer: ”Universal Realization, persistent Interconnection and Implementation of Abstract Modules”, Proc. 9th ICALP, LNCS 140, 1982, pp. 265–281, Springer VerlagGoogle Scholar
  10. [HJ 87]
    Hull, R., Jacobs, D.: ”Towards a Formalism for Module Interconnection and System Evolution”, Proceedings of’ First Workshop on Database Programming Languages', Roscoff, 1987Google Scholar
  11. [LZ 74]
    Liskov, B., Zilles, S.: ”Programming with Abstract Data Types”, SIGPLAN Notices 9, 1974, pp. 55–59Google Scholar
  12. [NS 87]
    Narayanaswamy, K., Scacchi, W.: ”Maintaining Configurations of Evolving Software Systems”, IEEE Transactions on Software Engineering, Vol. SE-13, March 1987, pp. 324–334Google Scholar
  13. [Par 72]
    Parnas, D. L.: ”A Technique for Software Module Specification with Examples”, Communications of the ACM, Vol. 15, No. 5, 1972, pp. 330–336CrossRefGoogle Scholar
  14. [Par 76]
    Parnas, D. L.: ”On the Design and Development of Program Families”, IEEE Transactions on Software Engineering, Vol. SE-2, 1976, pp. 1–9Google Scholar
  15. [PN 82]
    Prieto-Diaz, R., Neighbors, J.: ”Module Interconnection Languages: A Survey”, ICS Technical Report 189, University of California, Irvine, 1982; also in: The Journal of Systems and Software, Vol. 6, 1986, pp. 307–334Google Scholar
  16. [Rei 85]
    Reichel, H.: ”Behavioural Program Specification”, Proc. Category Theory and Computer Programming, Guildford, September 1985, LNCS 240, pp. 390–411, Springer VerlagGoogle Scholar
  17. [ST 85]
    Sannella, D., Tarlecki, A.: ”Extended ML: an institution-independent framework for formal program development” Proc. Category Theory and Computer Programming, Guildford, September 1985, LNCS 240, pp. 364–389, Springer VerlagGoogle Scholar
  18. [TWW 78]
    Thatcher, J.W., Wagner, E.G., Wright, J.B.: ”Data Type Specification: Parameterization and the Power of Specification Techniques”, 10th Symp. Theory of Computing, 1978, pp. 119–132 Trans. Prog. Languages and Systems 4, 1982, pp. 711–732Google Scholar
  19. [WE 86]
    Weber, H., Ehrig, H.: ”Specification of Modular Systems”, IEEE Transaction on Software Engineering, Vol. SE-12, 1986, pp. 786–798Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1989

Authors and Affiliations

  • Hartmut Ehrig
    • 1
  • Werner Fey
    • 1
  • Horst Hansen
    • 1
  • Michael Löwe
    • 1
  • Dean Jacobs
    • 2
  1. 1.Institut für Software und Theoretische InformatikTechnische Universität BerlinBerlin 10
  2. 2.Computer Science DepartmentUniversity of Southern CaliforniaLos Angeles

Personalised recommendations