Reference number : GC-2017-Q1-02421, amendment number : , agreement type : G, recipient legal name : Ali, Karim (University of Alberta), recipient country : CA, recipient province : nan, recipient city : Alberta, recipient postal code : nan, program name english : Discovery Grants Program - Individual, program name french : Programme de subventions à la découverte - individuelles, program purpose english : Program-analysis tools can help detect, and possibly fix, many software bugs. However, empirical research has shown that, in practice, software developers refrain from using most program-analysis tools, because the tools do not scale to modern software systems, report many false positives, or disrupt the workflow of developers. 
 
Many of the complaints that software developers have made about program-analysis tools are due to the underlying impractical assumptions that these tools make. In particular, for ultra-large-scale software systems, it is not feasible to analyze the whole program. Additionally, modern software systems are built on top of many libraries that are hard to analyze precisely, because they exhibit complicated dependencies between the application code and the library code. 
 
The proposed research aims at discovering a comprehensive solution to scaling precise program analysis to modern software systems through two main research activities: (1) developing a pragmatic approach to construct abstractions of existing libraries and frameworks that make them more amenable to program analysis, and (2) devising a proactive approach to create library abstractions during the development process of the library. 
 
The findings of the proposed research will be useful for both researchers and software developers. The proposed partial-program analyses will enable researchers to explore analyses for ultra-large-scale frameworks and modern software systems. They will also enable wider deployment of program-analysis tools in real-world settings, which helps software developers detect software bugs and security vulnerabilities as early as possible in the development process. Early detection of software bugs will improve the overall productivity of software developers using these tools, and help software companies, such as BioWare, save billions of dollars that are lost due to software failures every year., program purpose french : Program-analysis tools can help detect, and possibly fix, many software bugs. However, empirical research has shown that, in practice, software developers refrain from using most program-analysis tools, because the tools do not scale to modern software systems, report many false positives, or disrupt the workflow of developers. 
 
Many of the complaints that software developers have made about program-analysis tools are due to the underlying impractical assumptions that these tools make. In particular, for ultra-large-scale software systems, it is not feasible to analyze the whole program. Additionally, modern software systems are built on top of many libraries that are hard to analyze precisely, because they exhibit complicated dependencies between the application code and the library code. 
 
The proposed research aims at discovering a comprehensive solution to scaling precise program analysis to modern software systems through two main research activities: (1) developing a pragmatic approach to construct abstractions of existing libraries and frameworks that make them more amenable to program analysis, and (2) devising a proactive approach to create library abstractions during the development process of the library. 
 
The findings of the proposed research will be useful for both researchers and software developers. The proposed partial-program analyses will enable researchers to explore analyses for ultra-large-scale frameworks and modern software systems. They will also enable wider deployment of program-analysis tools in real-world settings, which helps software developers detect software bugs and security vulnerabilities as early as possible in the development process. Early detection of software bugs will improve the overall productivity of software developers using these tools, and help software companies, such as BioWare, save billions of dollars that are lost due to software failures every year., agreement title english : Scalable and Precise Program Analysis for Modern Software Systems, agreement title french : Scalable and Precise Program Analysis for Modern Software Systems, agreement number : RGPIN, agreement value : 125000.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