Grants and Contributions:

Title:
Checkable Representations of Design Decisions
Agreement Number:
RGPIN
Agreement Value:
$170,000.00
Agreement Date:
May 10, 2017 -
Organization:
Natural Sciences and Engineering Research Council of Canada
Location:
Quebec, CA
Reference Number:
GC-2017-Q1-01650
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:
Robillard, Martin (McGill University)
Program:
Discovery Grants Program - Individual
Program Purpose:

Design is a significant activity of the software development life cycle whose output is a set of decisions on how to structure a system, along with rationale for these decisions. In practice, the information that constitutes a design can become progressively lost, or invalidated from repeated changes that introduce gradual inconsistencies between a design document and the code. When design information is lost or becomes invalid, future changes to a system become increasingly effort-intensive and error-prone, two factors that contribute to poor software quality. Software quality problems make headline news on a weekly basis and can severely impact public safety and quality of life in Canada and elsewhere.

To mitigate the problem of design erosion in software systems, we propose to investigate new techniques for discovering, representing, and communicating low-level software design information. The goal of the research is to elaborate an approach that supports the efficient creation and use of checkable representations of design decisions in software development.

The proposed research will involve three complementary facets: design decision recovery, design decision representation, and effective communication of design decisions. For the design recovery facet, we will consider a knowledge-based approach that integrates features derived from both static analysis and text mining. As part of the representation facet, we will seek to develop a representation system that adequately balances expressiveness, usability, and checkability for design decisions. The communication facet will target the problem of effectively communicating both existing decisions and violations of specified design decisions.

An effective system for describing low-level design decisions in a checkable way has the potential to positively impact programming and other software development practices, lead to higher software quality, and improve software development efficiency. A programming system that explicitly supports asserting design decisions may also impact computing education by stimulating novice programmers to consciously consider design alternatives when implementing solutions.