Funding Announcement: Large-scale Software Composition (NSERC)
On May 1st, 2020, the project titled A Compositional Approach to Support Developers in Developing Ultra-large-scale Systems was awarded $174,000 to support the development of composition operators, helping the modularization of large-scale software. This project is funded by the Natural Sciences and Engineering Research Council of Canada, as part of the Discovery Grant program.
This project started before the begining of the jPipe adventure, but was essential in driving the architectural decisions to put composition operators as one of the keystone of jPipe, supporting the definition of large scale justification models.
Abstract
Our society relies on software to deal with every part of our daily lives. Software engineering supports the definition of such pieces of software, e.g., by answering to questions like “how to build the right product in the right way?”. But the complexity of the pieces of software involved nowadays on our society is constantly growing and, in this context, scale changes everything for software developers. The notion of Ultra-large-scale Systems (ULSSs) was coined by Northop et al. in 2006 to identify a new class of systems, characterized by their intrinsic complexity and large-scale aspect according to any possible dimensions (e.g., source code, requirements, number of users, stored data), and constant evolution. Separation of concerns is essential to divide such large-scale systems into manageable units to wich developers can contribute. Academia and industry invested many efforts to address the research challenges associated with these systems. However, they addressed the different challenges in isolation. Furthermore, these efforts targeted various stakeholders (e.g., product owners, architects) and were not focused on the software developers. This isolation and lack of focus led to a situation in which software developers are involved in the emergent design of ULSSs but are not supported in their daily tasks. The long-term objective of my research program is then to investigate and to measure how software developers design ULSSs by identifying the core elements that support developers designing and implementing ULSSs. I define three short-term objectives: (i) the modelling of ULSSs from the developer’s point of view, (ii) the definition of compositional models to support developers and (iii) the empirical analysis of ULSSs to gather requirements and validate the obtained results. To address these objectives, I consider three families of research tasks relevant to ULSSs from the software developer’s point of view: (i) the development of ultra-large-scale source-code, (ii) the management of evolving requirements, and (iii) the role of the software developer in the design, implementation and maintenance of ULSSs. The results of my program will be made available as open-source data and software, and we also rely on open-source systems to measure the benefits of the contribution applied to real-life ULSSs.
Consortium
- McMaster Centre for Software Certification (McSCert)
- Sébastien Mosser