Mining Software Repositories for Evaluating Software Engineering Properties of Language Designs

By: Hridesh Rajan

PDF Download Download Paper

Abstract

Improved separation of concern is important for dealing with increasing complexity of today’s software systems. A number of language designs have been proposed in the last decade with the common goal to improve the separation of concerns by providing better modularization mechanisms e.g. mixins, units, roles, layers, hyperspaces, events, aspects, etc. To understand the benefits of a new modularization mechanism, it is important to apply it to real world large scale software systems, where there are real needs for separation of concerns. However, large scale software projects are generally managed very cautiously and adoption of a new technique in these projects is generally harder to achieve. Typically such adoption is driven by demonstrated success of the technique in other large scale projects, a catch-22 situation. In this position paper, I discuss a software repository mining-based technique to achieve the effect of adoption in a large scale software project in a controlled setting. Rich change history available in the version control systems for open source software projects, and advances in software repository mining enable this technique for empirical evaluation of a modularization mechanism.

ACM Reference

Rajan, H. 2008. Mining Software Repositories for Evaluating Software Engineering Properties of Language Designs. 2nd Workshop on Assessment of Contemporary Modularization Techniques (ACoM.08) (Oct. 2008).

BibTeX Reference

@inproceedings{rajan2008mining,
  author = {Hridesh Rajan},
  title = {Mining Software Repositories for Evaluating Software Engineering Properties of Language Designs},
  booktitle = {2nd Workshop on Assessment of Contemporary Modularization Techniques (ACoM.08)},
  year = {2008},
  month = {October},
  location = {Nashville, TN},
  entrysubtype = {workshop},
  abstract = {
    Improved separation of concern is important for dealing with increasing
    complexity of today's software systems. A number of language designs have been
    proposed in the last decade with the common goal to improve the separation of
    concerns by providing better modularization mechanisms e.g. mixins, units,
    roles, layers, hyperspaces, events, aspects, etc. To understand the benefits of
    a new modularization mechanism, it is important to apply it to real world large
    scale software systems, where there are real needs for separation of concerns.
    However, large scale software projects are generally managed very cautiously and
    adoption of a new technique in these projects is generally harder to achieve.
    Typically such adoption is driven by demonstrated success of the technique in
    other large scale projects, a catch-22 situation. In this position paper, I
    discuss a software repository mining-based technique to achieve the effect of
    adoption in a large scale software project in a controlled setting. Rich change
    history available in the version control systems for open source software
    projects, and advances in software repository mining enable this technique for
    empirical evaluation of a modularization mechanism.
  }
}