TL;DR: An attempt to turn the software maintenance craft into a more disciplined activity, by mining for frequently applied changes in a version control system, is made.
Abstract: Today, programmers are forced to maintain a software system based on their gut feeling and experience. This paper makes an attempt to turn the software maintenance craft into a more disciplined activity, by mining for frequently applied changes in a version control system. Next to some initial results, we show how this technique allows to recover and study successful maintenance strategies, adopted for the redesign of long–lived systems.
TL;DR: Experiments with mining natural language text (requirements documents) suggest that: (a)mining natural language is not too difficult, so software repositories should routinely be augmented with all the natural languageText used to develop that software.
Abstract: Software compiles and therefore is characterized by a parseable grammar. Natural language text rarely conforms to prescriptive grammars and therefore is much harder to parse. Mining parseable structures is easier than mining less structured entities. Therefore, most work on mining repositories focuses on software, not natural language text. Here, we report experiments with mining natural language text (requirements documents) suggesting that: (a) mining natural language is not too difficult, so (b) software repositories should routinely be augmented with all the natural language text used to develop that software.