Understanding the Nature of Feature Evolution in Open Source Software

This study aims to develop an understanding of how features evolve in software systems and the correlation between growth in a software system as it evolves and the introduction of new and novel features in the software system. In particular, the approach focuses on the lexicon of the software and how it is evolving to support functional growth.

Do software developers make use of Model Separated Code?

This study aims to investigate the use of MVC in open source Java projects, the implications of using (or not using) it, and whether, during the evolution of a software system, the components of the system start to blend the lines and lose their MVC structure. Also of interest is whether MVC is resistant to evolution or software entropy and whether it supports the developer's task of structuring a software system's design to alleviate the overall complexity and increase the understanding of system they are trying to build.

The Myth of Refactoring

This study aims to determine the adherence of Java developers in the context of open source software development against the 'recommended' maintenance practice of refactoring. In this case, refactoring is explored from the evolutionary releases of systems that make up Helix, to be subjected to reverse engineering, data extraction, and a series of elimination processes in an attempt to wring out refactoring type changes to be quantified.