Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs

  • Authors:
  • Yannis Smaragdakis;Don Batory

  • Affiliations:
  • Georgia Institute of Technology, Atlanta, GA;The University of Texas at Austin, Austin, TX

  • Venue:
  • ACM Transactions on Software Engineering and Methodology (TOSEM)
  • Year:
  • 2002

Quantified Score

Hi-index 0.01

Visualization

Abstract

A "refinement" is a functionality addition to a software project that can affect multiple dispersed implementation entities (functions, classes, etc.). In this paper, we examine large-scale refinements in terms of a fundamental object-oriented technique called collaboration-based design. We explain how collaborations can be expressed in existing programming languages or can be supported with new language constructs (which we have implemented as extensions to the Java language). We present a specific expression of large-scale refinements called mixin layers, and demonstrate how it overcomes the scalability difficulties that plagued prior work. We also show how we used mixin layers as the primary implementation technique for building an extensible Java compiler, JTS.