Parameterized programming and software architecture

  • Authors:
  • J. A. Goguen

  • Affiliations:
  • -

  • Venue:
  • ICSR '96 Proceedings of the 4th International Conference on Software Reuse
  • Year:
  • 1996

Quantified Score

Hi-index 0.00

Visualization

Abstract

The paper discusses an approach to software architecture based on concepts from parameterized programming, particularly its language of "module expressions". A module expression describes the architecture of a system as an interconnection of component modules, and executing the expression actually builds the system. Language features include: modules parameterized by theories, which declare interfaces; a number of module composition operations; views for binding modules to interfaces; and both vertical and horizontal composition. Modules may involve information hiding, theories may declare semantic restrictions with axioms, and views assert behavioral satisfaction of axioms by a module. Some "laws of software composition" are given, showing how various module composition operations are related. We also show how a variety of architectural styles can be supported, and how this approach can be extended to support evolution and traceability. All this is intended to ease the development of large systems, and in particular, to make reuse more effective in practice.