@article {thomas2014studying,
	title = {Studying software evolution using topic models},
	journal = {Science of Computer Programming},
	volume = {80},
	year = {2014},
	pages = {457{\textendash}479},
	publisher = {Elsevier},
	abstract = {Topic models are generative probabilistic models which have been applied to information
retrieval to automatically organize and provide structure to a text corpus. Topic models
discover topics in the corpus, which represent real world concepts by frequently cooccurring
words. Recently, researchers found topics to be effective tools for structuring
various software artifacts, such as source code, requirements documents, and bug reports.
This research also hypothesized that using topics to describe the evolution of software
repositories could be useful for maintenance and understanding tasks. However, research
has yet to determine whether these automatically discovered topic evolutions describe the
evolution of source code in a way that is relevant or meaningful to project stakeholders, and
thus it is not clear whether topic models are a suitable tool for this task.
In this paper, we take a first step towards evaluating topic models in the analysis of
software evolution by performing a detailed manual analysis on the source code histories
of two well-known and well-documented systems, JHotDraw and jEdit. We define and
compute various metrics on the discovered topic evolutions and manually investigate how
and why the metrics evolve over time. We find that the large majority (87\%{\textendash}89\%) of topic
evolutions correspond well with actual code change activities by developers. We are thus
encouraged to use topic models as tools for studying the evolution of a software system.},
	keywords = {Latent Dirichlet allocation, mining software repositories, software evolution, topic model},
	url = {http://sail.cs.queensu.ca/publications/pubs/Thomas-2012-SCP.pdf},
	author = {Stephen W. Thomas and Adams, Bram and Hassan, Ahmed E. and Blostein, Dorothea}
}
@article {bettenburg2013management,
	title = {Management of community contributions},
	journal = {Empirical Software Engineering},
	year = {2013},
	pages = {1{\textendash}38},
	publisher = {Springer},
	abstract = {In recent years, many companies have realized that collaboration with a thriving user or developer community is a major factor in creating innovative technology driven by market demand. As a result, businesses have sought ways to stimulate contributions from developers outside their corporate walls, and integrate external developers into their development process. To support software companies in this process, this paper presents an empirical study on the contribution management processes of two major, successful, open source software ecosystems. We contrast a for-profit (ANDROID) system having a hybrid contribution style, with a not-for-profit (LINUX kernel) system having an open contribution style. To guide our comparisons, we base our analysis on a conceptual model of contribution management that we derived from a total of seven major open-source software systems. A quantitative comparison based on data mined from the ANDROID code review system and the LINUX kernel code review mailing lists shows that both projects have significantly different contribution management styles, suited to their respective market goals, but with individual advantages and disadvantages that are important for practitioners. Contribution management is a real-world problem that has received very little attention from the research community so far. Both studied systems (LINUX and ANDROID) employ different strategies and techniques for managing contributions, and both approaches are valuable examples for practitioners. Each approach has specific advantages and disadvantages that need to be carefully evaluated by practitioners when adopting a contribution management process in practice.},
	keywords = {android, contribution, linux, management},
	url = {http://link.springer.com/article/10.1007/s10664-013-9284-6},
	author = {Bettenburg, Nicolas and Hassan, Ahmed E. and Adams, Bram and Daniel M. German}
}
@article {1399,
	title = {The evolution of Java build systems},
	journal = {Empirical Software Engineering},
	volume = {17},
	year = {2012},
	month = {8/2012},
	pages = {578 - 608},
	abstract = {Build systems are responsible for transforming static source code artifacts into executable software. While build systems play such a crucial role in software development and maintenance, they have been largely ignored by software evolution researchers. However, a firm understanding of build system aging processes is needed in order to allow project managers to allocate personnel and resources to build system maintenance tasks effectively, and reduce the build maintenance overhead on regular development activities. In this paper, we study the evolution of build systems based on two popular Java build languages (i.e., ANT and Maven) from two perspectives: (1) a static perspective, where we examine the complexity of build system specifications using software metrics adopted from the source code domain; and (2) a dynamic perspective, where the complexity and coverage of representative build runs are measured. Case studies of the build systems of six open source build projects with a combined history of 172 releases show that build system and source code size are highly correlated, with source code restructurings often requiring build system restructurings. Furthermore, we find that Java build systems evolve dynamically in terms of duration and recursive depth of the directory hierarchy. },
	keywords = {ant, build, maven, scm, source code analysis},
	issn = {1573-7616},
	doi = {10.1007/s10664-011-9169-5},
	author = {McIntosh, Shane and Adams, Bram and Hassan, Ahmed E.}
}
@conference {951,
	title = {The evolution of ANT build systems},
	booktitle = {2010 7th IEEE Working Conference on Mining Software Repositories (MSR 2010)2010 7th IEEE Working Conference on Mining Software Repositories (MSR 2010)},
	year = {2010},
	pages = {42 - 51},
	publisher = {IEEE},
	organization = {IEEE},
	address = {Cape Town, South Africa},
	abstract = {Build systems are responsible for transforming static source code artifacts into executable software. While build systems play such a crucial role in software development and maintenance, they have been largely ignored by software evolution researchers. With a firm understanding of build system aging processes, project managers could allocate personnel and resources to build system maintenance tasks more effectively, reducing the build maintenance overhead on regular development activities. In this paper, we study the evolution of ANT build systems from two perspectives: (1) a static perspective, where we examine the build system specifications using software metrics adopted from the source code domain; and (2) a dynamic perspective where representative sample build runs are conducted and their output logs are analyzed. Case studies of four open source ANT build systems with a combined history of 152 releases show that not only do ANT build systems evolve, but also that they need to react in an agile manner to changes in the source code.},
	keywords = {ant, argouml, build, eclipse, jboss, maintenance, metrics, source code, tomcat},
	isbn = {978-1-4244-6802-7},
	doi = {10.1109/MSR.2010.5463341},
	attachments = {https://flosshub.org/sites/flosshub.org/files/42msr2010_mcintosh.pdf},
	author = {McIntosh, Shane and Adams, Bram and Hassan, Ahmed E.}
}
@conference {967,
	title = {Should I contribute to this discussion?},
	booktitle = {2010 7th IEEE Working Conference on Mining Software Repositories (MSR 2010)},
	year = {2010},
	pages = {181 - 190},
	publisher = {IEEE},
	organization = {IEEE},
	address = {Cape Town},
	abstract = {Development mailing lists play a central role in facilitating communication in open source projects. Since these lists frequently host design and project discussions, knowledgeable contribution to these discussion threads is essential to avoid mis-communication that might slow-down the progress of a project. However, given the sheer volume of emails on these lists, it is easy to miss important discussions. To find out how developers are able to deal with mailing list discussions, we study the main factors that encourage developers to contribute to the development mailing lists. We develop personalized models to automatically identify discussion threads that a developer would contribute to based on his previous contribution behavior. Case studies on development mailing lists of three open source projects (Apache, PostgreSQL and Python) show that the average accuracy of our models is 89-85\% and that the models vary significantly between different developers.},
	keywords = {apache, contributions, developers, email, email archives, mailing lists, postgresql, python},
	isbn = {978-1-4244-6802-7},
	doi = {10.1109/MSR.2010.5463345},
	attachments = {https://flosshub.org/sites/flosshub.org/files/181ibrahim-msr2010.pdf},
	author = {Ibrahim, Walid M and Bettenburg, Nicolas and Shihab, Emad and Adams, Bram and Hassan, Ahmed E.}
}
@conference {923,
	title = {MapReduce as a general framework to support research in Mining Software Repositories (MSR)},
	booktitle = {2009 6th IEEE International Working Conference on Mining Software Repositories (MSR)2009 6th IEEE International Working Conference on Mining Software Repositories},
	year = {2009},
	pages = {21 - 30},
	publisher = {IEEE},
	organization = {IEEE},
	address = {Vancouver, BC, Canada},
	abstract = {Researchers continue to demonstrate the benefits of Mining Software Repositories (MSR) for supporting software development and research activities. However, as the mining process is time and resource intensive, they often create their own distributed platforms and use various optimizations to speed up and scale up their analysis. These platforms are project-specific, hard to reuse, and offer minimal debugging and deployment support. In this paper, we propose the use of MapReduce, a distributed computing platform, to support research in MSR. As a proof-of-concept, we migrate J-REX, an optimized evolutionary code extractor, to run on Hadoop, an open source implementation of MapReduce. Through a case study on the source control repositories of the Eclipse, BIRT and Datatools projects, we demonstrate that the migration effort to MapReduce is minimal and that the benefits are significant, as running time of the migrated J-REX is only 30\% to 50\% of the original J-REX{\textquoteright}s. This paper documents our experience with the migration, and highlights the benefits and challenges of the MapReduce framework in the MSR community.},
	keywords = {hadoop, mapreduce},
	isbn = {978-1-4244-3493-0},
	doi = {10.1109/MSR.2009.5069477},
	attachments = {https://flosshub.org/sites/flosshub.org/files/21MSR2009-MSR-0114-Shang-Weiyi.pdf},
	author = {Weiyi Shang and Zhen Ming Jiang and Adams, Bram and Hassan, Ahmed E.}
}
