Calendrier

Software Build Systems --- Enabling the Rapid Release Cycle of Modern Software Systems

Software Build Systems --- Enabling the Rapid Release Cycle of Modern Software Systems

Modern software is developed at a breakneck pace. While the software
releases of the past would take several months or even years to prepare,
modern software organizations like Google, LinkedIn, Amazon, and
Facebook release several times daily. Indeed, contemporary techniques
like continuous delivery hasten the tempo at which software
organizations can produce official releases by automatically packaging
and deploying changes to the source code of a software system that
satisfy automated testing criteria.

At the heart of the rapid release cycle of modern software systems is
the build system, i.e., the system that specifies how source code is
translated into deliverables (e.g., makefiles, Maven pom.xml files). An
efficient build system that quickly produces updated versions of a
software system is required to keep up with competitors. The rapid
release cycle fueled by continuous delivery would be error-prone (and
thus, too risky) without a robust and reliable build system.

However, the benefits of an efficient build system come at a cost ---
build systems introduce overhead on the software development process.
For example, maintenance overhead is generated by the need to keep the
build system in sync with other software artifacts, such as the source
code and testing infrastructure. Furthermore, execution overhead is
introduced by the slow nature of using the build system to generate (or
regenerate) system deliverables.

In this talk, I will discuss the findings of our empirical analysis of
3,872 open source build systems. Our results indicate that there are
concrete steps that software organizations can take to mitigate the
overhead introduced by build systems. I will also show that build
systems provide a unique source of information about a software system.
For example, in recent work, we use a graph derived from build systems
to detect license compliance inconsistencies that prompted rapid
reactions from three open source systems.


BIO

Shane McIntosh is an Assistant Professor in the Department of Electrical
and Computer Engineering at McGill University. He received his
Bachelor's degree from the University of Guelph and his MSc and PhD
degrees from Queen's University, where he held an NSERC Vanier
Scholarship. In his research, Shane uses empirical software engineering
techniques to study software build systems, release engineering, and
software quality. His research has been published at several top-tier
software engineering venues, such as the International Conference on
Software Engineering (ICSE), the International Symposium on the
Foundations of Software Engineering (FSE), and the Springer Journal of
Empirical Software Engineering (EMSE). Shane actively collaborates with
academics in Canada, the Netherlands, Singapore, Brazil, and Japan, as
well as industrial practitioners in Germany and the USA. More about
Shane and his work is available online at http://shanemcintosh.org/

Date

Thursday September 24, 2015
Starts at 12:30

Contact

1-514-340-4711 #4233

Place

Polytechnique Montréal - Pavillon principal
2500, chemin de Polytechnique
Montréal
QC
Canada
H3T 1J4
L-4812

Categories