Reference number : GC-2017-Q1-01650, amendment number : , agreement type : G, recipient legal name : Robillard, Martin (McGill University)|Robillard, Martin (Université McGill), recipient country : CA, recipient province : nan, recipient city : Quebec|Québec, recipient postal code : nan, program name english : Discovery Grants Program - Individual, program name french : Programme de subventions à la découverte - individuelles, program purpose english : 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., program purpose french : 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., agreement title english : Checkable Representations of Design Decisions, agreement title french : Checkable Representations of Design Decisions, agreement number : RGPIN, agreement value : 170000.0, agreement start date : 2017-05-10, agreement end date : nan, description english : nan, description french : nan, expected results english : nan, expected results french : nan, additional information english : Grant or Award spanning more than one fiscal year. (2017-2018 to 2022-2023), additional information french : Subvention ou bourse octroyée s'appliquant à plus d'un exercice financier. (2017-2018 à 2022-2023), owner organization : nserc-crsng, owner organization title : Natural Sciences and Engineering Research Council of Canada | Conseil de recherches en sciences naturelles et en génie du Canada