Shane McIntosh receives Early Researcher Award to develop self-sustaining software build systems

Wednesday, May 25, 2022

Professor Shane McIntosh was awarded $140,000 by the Ministry of Colleges and Universities Early Researcher Awards program for his proposal titled “Self-sustaining software build systems.” This amount is matched by an additional $50,000 from the University of Waterloo, bringing the total funding to $190,000.

Professor McIntosh, whose research encompasses empirical software engineering, with a specific focus on release engineering and software quality, was one of eight researchers at the University of Waterloo to receive an Early Researcher Award in this round of funding.

photo of Professor Shane McIntosh

Shane McIntosh leads the Software Repository Excavation and Build Engineering Labs — the Software REBELs for short — the mission of which is to enable the development, maintenance, and operation of intelligent release pipelines.

He and his students perform empirical studies that mine the historical data that is generated during the development of large-scale software systems. 

“Modern software development is multifaceted,” Professor McIntosh explains. “Source code describes how software systems should behave, but a collection of other software artifacts and tools are needed to create software that’s ready to be released. Each of these artifacts and tools manage part of the software release process, but it is the build system — the system that specifies how the source code is translated into deliverables — that weaves them together into a cohesive whole.”

Build systems are centrally important to modern software development. Developers run build system tools regularly to assess the impact their code changes have on software products. Modern software development simply would not be possible without a robust and reliable build system. But despite their importance, build systems also introduce complexity and overhead into the development process. Furthermore, they can be maintained haphazardly, leading to unreliable continuous integration and delivery services as well as defective software releases.

To mitigate this risk and lessen the burden of build maintenance, Professor McIntosh and his students will explore the extent to which build systems can sustain themselves by mining build logs from broken and clean builds to detect and derive maintenance changes to build system specifications when they are required. The goal of creating self-sustaining build systems comprises two research objectives — detecting when and classifying the build maintenance actions that might be needed, and formulating and implementing repair strategies when build maintenance is required.

“Self-sustaining build systems have the potential to change the way software is developed,” Professor McIntosh said. “By relieving software teams of the burden of maintaining build system specifications, more time and effort can be invested in developing new features of the software product, fixing defects that may affect users, and improving automated tests to assess usage patterns and deployment scenarios.”

This ERA funding will support four software engineering students in total — one PhD student and one undergraduate research assistant to detect and classify types of neglected build maintenance, and another PhD student and undergraduate research assistant to formulate and implement repair strategies.

“My ambition is not only to reduce the risk and effort associated with build maintenance, but also train the next generation of software engineering professionals who will contribute substantially to Ontario’s vibrant tech sector.”

  1. 2022 (60)
    1. November (6)
    2. October (6)
    3. September (6)
    4. August (1)
    5. July (3)
    6. June (7)
    7. May (8)
    8. April (7)
    9. March (6)
    10. February (6)
    11. January (4)
  2. 2021 (64)
    1. December (2)
    2. November (6)
    3. October (6)
    4. September (4)
    5. August (7)
    6. July (4)
    7. June (8)
    8. May (9)
    9. April (3)
    10. March (8)
    11. February (4)
    12. January (3)
  3. 2020 (73)
    1. December (7)
    2. November (6)
    3. October (4)
    4. September (5)
    5. August (4)
    6. July (7)
    7. June (4)
    8. May (11)
    9. April (13)
    10. March (3)
    11. February (3)
    12. January (6)
  4. 2019 (90)
  5. 2018 (82)
  6. 2017 (50)
  7. 2016 (27)
  8. 2015 (41)
  9. 2014 (32)
  10. 2013 (46)
  11. 2012 (17)
  12. 2011 (20)