Grants and Contributions:

Title:
Lightweight Formal Support for Software Design
Agreement Number:
RGPIN
Agreement Value:
$100,000.00
Agreement Date:
May 10, 2017 -
Organization:
Natural Sciences and Engineering Research Council of Canada
Location:
Quebec, CA
Reference Number:
GC-2017-Q1-02416
Agreement Type:
Grant
Report Type:
Grants and Contributions
Additional Information:

Grant or Award spanning more than one fiscal year. (2017-2018 to 2022-2023)

Recipient's Legal Name:
Famelis, Michail (Université de Montréal)
Program:
Discovery Grants Program - Individual
Program Purpose:

Software systems are at the heart of the infrastructure that our societies and economies depend on for their daily function. They are the accumulated product of the myriads of design decisions made by software developers every day. Their quality is thus highly dependent on the process by which they are designed. Despite decades of innovation, formal, mathematical engineering techniques often face high adoption barriers because of the inherently creative and collaborative character of software design and the unrelenting rate of change in the contemporary software industry. Software design remains as much a craft as an engineering discipline.

This research program aims to help the designers of software balance efficiency and quality in the face of the pressures in contemporary software engineering. The key lies in identifying niche design contexts in which formal techniques can be made "lightweight", i.e., with reduced demands on user skill and computational resources. This reduces adoption barriers, while, crucially, rich contextual information makes up for the lost expressiveness and/or analytical power.

Specifically, I aim to study the context of software design in order to judiciously apply formal techniques that robustly support designers' creativity. This context characterizes the design decisions that need to be made and determines the space of possible design solutions. Therefore the proposed research program has the following objectives: (a) identification and characterization of design decisions and their context using a "Design Dashboard", (b) creation of a "Lightweight Design Toolkit" of formal techniques for managing the space of design solutions, and (c) integration of the techniques within modern software development methodologies using "Flexible Modelling Tools".

Outcomes of this program will be context-specific theories of software design, lightweight formal techniques informed by these theories, and tools implementing them that can be deployed in various software design settings. These outcomes will benefit practitioners by allowing them to use robust engineering techniques in new development contexts. Additionally, it will further the scientific understanding of the tradeoffs involved in the creation and deployment of practical formal design and analysis techniques in modern software design settings. Ultimately, this research program will improve the state of the art in the production of quality software, while producing highly-qualified personnel with expertise in empirical, formal, and user-centered software engineering.