Genericity - a "Missing in Action" Key to Software Simplification and Reuse

  • Authors:
  • Stan Jarzabek

  • Affiliations:
  • National University of Singapore

  • Venue:
  • APSEC '06 Proceedings of the XIII Asia Pacific Software Engineering Conference
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

In controlled lab experiments and industrial projects, we observed 50%-90% rates of repetitions that deliberately recurred in newly developed, well-designed programs. Most often, recurring program structures represented an important concept from software requirements or design spaces. Repetitions increased conceptual complexity and physical size of programs, and also signified unexploited reuse opportunities. Despite potential benefits, avoiding or explicating repetitions with conventional programming techniques was either impossible or would require developers to compromise other important design goals. We believe these problems are common in many program situations. We hypothesize that they have their roots in much similarity that is inherent in software, and not strong enough generic design mechanisms to represent repetitions in a unified, generic way. We discuss mixed-strategy approach that strengthens generic design capabilities of conventional programming techniques with help of a generative meta-programming technique.