Software Reuse beyond Components with XVCL (Tutorial)

  • Authors:
  • Stan Jarzabek

  • Affiliations:
  • Department of Computer Science, School of Computing, National University of Singapore, Singapore 117543

  • Venue:
  • Generative and Transformational Techniques in Software Engineering II
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

The basic idea behind software reuse is to exploit similarities within and across software systems to avoid repetitive development work. Conventional reuse is based on components and architectures. We describe how reuse of structural similarities extends the benefits of conventional component reuse, and realization of the concept with a generative technique of XVCL. Structural similarities are repetition patterns in software of any type or granularity, from similar code fragments to recurring architecture-level component configuration patterns. We represent any significant repetition pattern in subject system(s) with a generic, adaptable, XVCL meta-structure. We develop, reuse and evolve software at the level of meta-structures, deriving specific, custom systems from their meta-level representations. Lab studies and industrial applications of XVCL show that by doing that, on average, we raise reuse rates and productivity by 60-90%, reducing cognitive program complexity and maintenance effort by similar rates. The approach scales to systems of any size. The benefits are proportional to system size, and to the extent of repetitions present in subject system(s). The main application of this reuse strategy is in supporting software Product Lines.