On the test-driven development of emerging modularization mechanisms

By: Rakesh Setty

PDF Download Download Paper

Abstract

Emerging modularization techniques such as aspects and their precursors such as events in implicit invocation languages aim to provide a software engineer with better facilities to separate conceptual concerns in software systems. To facilitate adoption of these techniques in real world software projects, seamless integration into well-accepted practices such as a test-driven development process is essential. To that end, the main contribution of this thesis is an analysis (both pragmatic and theoretical) of the impact of a class of such techniques on the efficiency of a test-driven development process, which involves frequently compiling and testing programs in a process commonly known as the edit-compile- test cycle. I study two variants: the popular model of aspects as in the AspectJ-like languages, and a recently suggested alternative based on quantified, typed events embodied in the Ptolemy language. I present a case study analyzing two variants of the aspect-based model on two open source projects and a theoretical analysis of the quantified, typed event-based model. My results show that a seamless adoption of the aspect-based model requires careful balancing of competing parameters to ensure efficiency of a test-driven development process, whereas a quantified, typed event-based model naturally supports separate compilation thus decreasing the time spent in the edit-compile-test cycle.

ACM Reference

Setty, R. 2008. On the test-driven development of emerging modularization mechanisms. Iowa State University.

BibTeX Reference

@mastersthesis{setty2008test,
  title = {On the test-driven development of emerging modularization mechanisms},
  author = {Setty, Rakesh},
  year = {2008},
  school = {Iowa State University},
  abstract = {
    Emerging modularization techniques such as aspects and their precursors such as
    events in implicit invocation languages aim to provide a software engineer with
    better facilities to separate conceptual concerns in software systems. To
    facilitate adoption of these techniques in real world software projects,
    seamless integration into well-accepted practices such as a test-driven
    development process is essential.  To that end, the main contribution of this
    thesis is an analysis (both pragmatic and theoretical) of the impact of a class
    of such techniques on the efficiency of a test-driven development process, which
    involves frequently compiling and testing programs in a process commonly known
    as the edit-compile- test cycle.  I study two variants:  the popular model of
    aspects as in the AspectJ-like languages, and a recently suggested alternative
    based on quantified, typed events embodied in the Ptolemy language. I present a
    case study analyzing two variants of the aspect-based model on two open source
    projects and a theoretical analysis of the quantified, typed event-based model.
    My results show that a seamless adoption of the aspect-based model requires
    careful balancing of competing parameters to ensure efficiency of a test-driven
    development process, whereas a quantified, typed event-based model naturally
    supports separate compilation thus decreasing the time spent in the
    edit-compile-test cycle.
  }
}