Software Generators, Architectures, and Reuse

Don Batory
Department of Computer Sciences
University of Texas
Austin, Texas 78712

Vision

Next generation of software engineering tools will include component-based, domain-specific software generators. These generators are among the pinnacle of results on software reuse: they are implementations of domain models (or reference architectures) that define how software systems of a domain can be assembled by composing components from reuse libraries. The primary goal of generators is to maximize the value of reuse: i.e., eliminate the mundane aspects of software construction and to permit the expenditure of proportionally more effort on the critical parts of target systems.

Audience for Tutorial

This tutorial is aimed at researchers and practitioners who are faced with the problem of building families of software systems economically, and/or who are interested in assembling customized and evolvable software systems from reuse libraries. It assumes rudimentary knowledge of OO concepts, but no experience with the tutorial's subject.

The Tutorial

GenVoca is scalable model of software generation that has been distilled from independently conceived and implemented generators for the domains of databases, compilers, communication protocols, file systems, data structures, and avionics [2-4,6]. This tutorial presents practical concepts and lessons learned from these projects so that others may benefit from them and avoid their pitfalls and reinvention. Summaries of all lectures are given below.

The tutorial notes come with an extensive bibliography.

The Instructor

Don Batory holds the David Bruton Jr Centennial Professorship Chair in the Department of Computer Sciences at the University of Texas at Austin and is an industry consultant on component-based software generators. He was a member of the ACM Software Systems Award Committee, where in 1993 he was the Committee Chairman. He also was an Associate Editor of ACM Transactions on Database Systems from 1986 to 1992, and an Associate Editor of IEEE Database Engineering from 1981 to 1984. Dr. Batory was the Program Chairman for the 3rd International Conference on Software Reuse (1994) and is the Program Chairman for the 1999 International Workshop on Software Reuse. His experience with the GenVoca model and software system generators is extensive. He and his students built Genesis (1985-1990), the first software system generator for database systems [1]. He co-authored the GenVoca paper [2] with Dr. Sean O’Malley. He and his students built P1, P2, and P3 (1991-1997), the first scalable generators for data structures [3]. He was a member of ADAGE, a project to develop a domain-specific software architecture environment for generating avionics software. His role was to apply GenVoca concepts to create a reference architecture for avionics software [4].

References

  1. D. Batory, “Concepts for a DBMS Synthesizer”, in Domain Analysis and Software Systems Modeling, R. Prieto-Diaz and G. Arango, Editors, IEEE Computer Society Press, 1991.
  2. D. Batory and S. O’Malley, “The Design and Implementation of Hierarchical Software Systems with Reusable Components”, ACM Transactions on Software Engineering and Methodology, October 1992.
  3. D. Batory, V. Singhal, M. Sirkin, and J. Thomas, “Scalable Software Libraries”, ACM SIGSOFT, December 1993.
  4. D. Batory, L. Coglianese, M. Goodwin, and S. Shafer, “Creating Reference Architectures: An Example from Avionics”, 1995 Symposium on Software Reuse (Seattle, Washington).
  5. D. Batory and B. Geraci, “Validating Compositions and Subjectivity and GenVoca Generators”, IEEE Transactions on Software Engineering, February 1997.
  6. D. Batory, B. Lofaso, and Y. Smaragdakis, “JTS: A Tool Suite for Building GenVoca Generators”, 5th International Conference on Software Reuse, June 1998..
  7. J.A. Goguen, “Reusing and Interconnecting Software Components”, IEEE Computer, February 1986.
  8. R. Harrison and H. Ossher, “Subject-Oriented Programming (A Critique of Pure Objects)”, OOPSLA 1993, 411-428.
  9. N. Hutchinson and L. Peterson, “The x-kernel: an Architecture for Implementing Network Protocols”, IEEE Trans. Software Engineering, January 1991.
  10. D. Perry, “The Logic of Propagation in The Inscape Environment”, ACM SIGSOFT 1989.
  11. D. Garlan and M. Shaw, “An Introduction to Software Architecture”, in Advances in Software Engineering and Knowledge Engineering, Volume I, World Scientific Publishing Company, 1993.