Subventions et des contributions :

Titre :
A framework for rapid software application evolution
Numéro de l’entente :
RGPIN
Valeur d'entente :
210 000,00 $
Date d'entente :
10 mai 2017 -
Organisation :
Conseil de recherches en sciences naturelles et en génie du Canada
Location :
Québec, Autre, CA
Numéro de référence :
GC-2017-Q1-02767
Type d'entente :
subvention
Type de rapport :
Subventions et des contributions
Informations supplémentaires :

Subvention ou bourse octroyée s'appliquant à plus d'un exercice financier. (2017-2018 à 2022-2023)

Nom légal du bénéficiaire :
Antoniol, Giuliano (École Polytechnique de Montréal)
Programme :
Programme de subventions à la découverte - individuelles
But du programme :

The long-term goal of this research program is to leverage software analytics, deep learning and search based approaches for rapid software evolution. In a 2012 blog post by IBM titled “Why Big Companies Are Embracing Open Source,” the reduction of cost is cited as one of the most important factors that prompts companies to integrate open source code into their systems. Similarly, Black Duck conducted a survey that reinforced the rapid and increasing commercial adoption of open source software. In their 2016 survey “Future of Open Source,” 90% of the companies responded that they use open source code, and this number has more than doubled from Black Duck’s 2010 survey. However, software reuse and rapid evolution is still quite problematic. Indeed, in a recent study by Bauer et al. on reuse at Google, developers identified the following three main problems impairing software reuse: difficulty to adapt the component to developers’ needs, explosion of dependencies and license incompatibility. Developers also highlighted the ripple effects caused by changes in reused artifacts as problematic.

The problem is: given an application and the new version of a component causing incompatibility, find a set of replacing components that implement needed functionalities while minimize the adaptation effort, minimize the set of added dependencies and are compatible with the application license and architecture. The program short term goal is to develop a framework to facilitate the rapid evolution of software applications. It combines three components: i) a repository analytic/mining platform; ii) an application recommendation engine ; and iii) a user guided search optimization approach. Our platform is more complex than the single components and it requires three different research thrusts. It is neither simply a code search engine, nor a data mining or data analytics engine or a recommendation engine. From a high-level user perspective, the framework takes sample code or natural language queries regarding a component or a component desired functionality and, if available, an existing application. It will extract the application as-is architecture and relevant information; it will use the query input and extracted information to query against a database of mined applications. The user can also specify constraints and preferences so that the output is more relevant to the user’s goals. Our framework will be instantiated for Java, C, C++ and mixed (Java, C and C++) systems. It will promote software reuse and reduce software evolution costs. In fact, given an application and a to be replaced component it will reduce manual search, verification and adaptation effort; it will support the user in the search of components matching constraints, preferences and a query, thus alleviating the daunting task to manually search for and inspect unlikely applications/components combinations.