Au sujet de la cognification de l'ingénierie des modèles pour le génie logiciel

par Takwa Kochbati

Projet de thèse en Informatique

Sous la direction de Sébastien Gérard et de Shuai Li.

Thèses en préparation à Paris Saclay , dans le cadre de École doctorale Sciences et technologies de l'information et de la communication (Orsay, Essonne ; 2015-....) , en partenariat avec Institut CEA LIST (laboratoire) et de Université Paris-Sud (établissement de préparation de la thèse) depuis le 22-10-2018 .


  • Résumé

    It is hard to imagine anything that would “change everything” as much as cheap, powerful, ubiquitous intelligence and exploitation of knowledge. Even a very tiny amount of useful intelligence embedded into an existing process boosts its effectiveness to a whole other level [1]. This process is known as cognification. Cognification can be defined as the application of knowledge to boost the performance and impact of a process. It does not restrict itself to what we typically refer to as artificial intelligence, with Deep Learning as its latest and hottest technique. Cognification includes as well the combination of past and current human intelligence (i.e. all current humans online and the actions they do). Under this definition, collective intelligence and crowdsourcing [29] are valid cognification tools. Cognification does not imply either the existence of a super AI but the availability of highly specialized intelligences that can be plugged in depending on the needs of the problem to be solved. Several initiatives aim to cognify specific tasks in Software Engineering, for in- stance, using machine learning (ML) for requirements prioritization [25], for estimat- ing the development effort of a software system [30] or the productivity of individual practitioners [22] or to predict defect-prone software components [26]. This trend is also happening at the tool level, e.g., the recent Kite IDE claims to “augment your coding environment with all the web's programming knowledge”. MDSE should join this ongoing trend. Moreover, we know the limited adoption of MDSE is due to a variety of social and technical factors [14] but we can summarize them all in one: its benefits do not outweigh its costs. We believe cognification could drastically improve the benefits and reduce the costs of adopting MDSE. Besides the advantages that cognification can bring to MDSE, the reverse is also true: MDSE techniques can be used to improve knowledge-aware technologies. As in any other domain, the use of models (and its abstraction power) can help simplify, interoperate and unify a fragmented technological space, as it is the case right now in AI, with plenty of competing and partially overlapping libraries and components for all kinds of knowledge processing tasks. The topic of the work will be the Cognification of model-driven engineering. Cognification is the application of knowledge (inferred from large volumes of information using machine learning and other artificial intelligence techniques) to boost the performance and impact of an engineering process. The work will evaluate and adapt cognification to Model-Driven Engineering (and Systems and Software Engineering in general) as a way to improve current software development processes. One way would be the creation of smart bots that assist the engineers. A first example could be the creation of modeling bot playing the role of virtual modeling assistant able to suggest modeling improvements based on its knowledge of previous models for the same domain, ontologies or learned modeling best practices. A second example could be a process bot (e.g., an ISO26262 bot) that will assist engineers to design complex systems conforming certification processes such as ISO26262 in the automotive system domain (See other examples in [2]). Concrete implementation of the results will take place in the context of the Papyrus open-source project [3]. [1] Kelly, : The inevitable: understanding the 12 technological forces that will shape our fu- ture. Viking (2016) [2] https://modeling-languages.com/cognifying-model-driven-software-engineering/ [3] www.eclipse.org/papyrus

  • Titre traduit

    On the cognification of model-driven software engineering


  • Résumé

    It is hard to imagine anything that would “change everything” as much as cheap, powerful, ubiquitous intelligence and exploitation of knowledge. Even a very tiny amount of useful intelligence embedded into an existing process boosts its effectiveness to a whole other level [1]. This process is known as cognification. Cognification can be defined as the application of knowledge to boost the performance and impact of a process. It does not restrict itself to what we typically refer to as artificial intelligence, with Deep Learning as its latest and hottest technique. Cognification includes as well the combination of past and current human intelligence (i.e. all current humans online and the actions they do). Under this definition, collective intelligence and crowdsourcing [29] are valid cognification tools. Cognification does not imply either the existence of a super AI but the availability of highly specialized intelligences that can be plugged in depending on the needs of the problem to be solved. Several initiatives aim to cognify specific tasks in Software Engineering, for in- stance, using machine learning (ML) for requirements prioritization [25], for estimat- ing the development effort of a software system [30] or the productivity of individual practitioners [22] or to predict defect-prone software components [26]. This trend is also happening at the tool level, e.g., the recent Kite IDE claims to “augment your coding environment with all the web's programming knowledge”. MDSE should join this ongoing trend. Moreover, we know the limited adoption of MDSE is due to a variety of social and technical factors [14] but we can summarize them all in one: its benefits do not outweigh its costs. We believe cognification could drastically improve the benefits and reduce the costs of adopting MDSE. Besides the advantages that cognification can bring to MDSE, the reverse is also true: MDSE techniques can be used to improve knowledge-aware technologies. As in any other domain, the use of models (and its abstraction power) can help simplify, interoperate and unify a fragmented technological space, as it is the case right now in AI, with plenty of competing and partially overlapping libraries and components for all kinds of knowledge processing tasks. The topic of the work will be the Cognification of model-driven engineering. Cognification is the application of knowledge (inferred from large volumes of information using machine learning and other artificial intelligence techniques) to boost the performance and impact of an engineering process. The work will evaluate and adapt cognification to Model-Driven Engineering (and Systems and Software Engineering in general) as a way to improve current software development processes. One way would be the creation of smart bots that assist the engineers. A first example could be the creation of modeling bot playing the role of virtual modeling assistant able to suggest modeling improvements based on its knowledge of previous models for the same domain, ontologies or learned modeling best practices. A second example could be a process bot (e.g., an ISO26262 bot) that will assist engineers to design complex systems conforming certification processes such as ISO26262 in the automotive system domain (See other examples in [2]). Concrete implementation of the results will take place in the context of the Papyrus open-source project [3]. [1] Kelly, : The inevitable: understanding the 12 technological forces that will shape our fu- ture. Viking (2016) [2] https://modeling-languages.com/cognifying-model-driven-software-engineering/ [3] www.eclipse.org/papyrus