Equipe Génie Logiciel#ScienceDuLogiciel
Présentation
L’activité de recherche en génie logiciel concerne l’Ingénierie Dirigée par les Modèles et la spécification pour penser (concevoir...) et changer (adapter...) des systèmes logiciels jusqu’à des contextes de calcul grande échelle comme le “cloud computing”. L’adaptation de modèles exécutables, en modifiant le modèle en cours d’exécution par exemple, consiste à raisonner sur des langages de modélisation réflexifs et adaptatifs, à bâtir des librairies et des outils dédiés pour différents domaines : systèmes réactifs et à événements discrets (systèmes embarqués, app. mobiles, jeux vidéo...) via les formalismes informatiques idoines, des plus formels (réseaux de Petri, Bigraphes, Statecharts…) en passant par ceux semi-formels (Unified Modeling Language, Object Constraint Language…).
Le génie logiciel s’intéresse à la qualité du logiciel. Les facteurs qualité les plus connus sont :
- Réutilisabilité (approche par composants et services, rétro-ingénierie...) ;
- Maintenabilité (ingénierie des exigences, adaptation...) ;
- Fiabilité (incluse de manière plus générale dans la sûreté de fonctionnement qui dépasse le spectre du génie logiciel : “hardware”, réseaux, etc.) ;
- Sécurité (s’étendant aussi largement au-delà du génie logiciel) ;
- “Scalabilité” (e., aptitude au passage à l’échelle) ;
- Et utilisabilité.
Les membres de cette ambition s’intéressent à des concepts, techniques, méthodes et outils spécialisés : les langages de modélisation, les formalismes de spécification et l’Ingénierie Dirigée par les Modèles pour produire des modèles formels (i.e., mathématiquement interprétables) et/ou exécutables (e.g., “bibliothèques” dans du code ad hoc) pour augmenter la qualité du logiciel en général. Les qualités 1 (réutilisabilité) et 2 (maintenabilité) sont considérées intrinsèques à la modélisation (cf. Section “Orientations de recherche”). Les qualités 3 (fiabilité) et 5 (“scalabilité”) sont traitées par la preuve de propriétés (e.g., absence de blocage à l’exécution, connectivité/interopérabilité par construction...) dès lors que les modèles sont adossés à une théorie mathématique. La garantie d’absence de bogues (preuve, test...) est caractéristique d’un problème de fiabilité alors que la “scalabilité” s’intéresse à la façon dont les systèmes logiciels doivent être composés pour éviter tout défaut à la conception et défaillance à l’exécution, incluant performance, résilience, frugalité, etc.
Membres
Nom Prénom |
Qualité |
Site |
Mcf |
Pau | |
Mcf |
Pau | |
Pr |
Pau | |
Jawher Jerray |
Mcf |
Pau |
mél: prénom.nom@univ-pau.fr
Doctorants
Nom Prénom |
MARIR Souad |
Léa BRUNSCHWIG |
Thématiques
- Software Technologies
- Sciences et technologies logicielles
- Conception, déploiement et exécution de logiciel par les modèles
- Adaptation
- Approche “système de système”
- Green Software Engineering (GSE)
Projets
1) Projets Internationaux
Projet 1 : Spécification Formelle et Analyse des environnements du Cloud Computing
Ce projet a pour objectif de proposer un modèle extensible défini par une combinaison saine et judicieuse des bigraphes et du langage Maude afin de fournir un cadre rigoureux pour décrire formellement les architectures orientées service, et plus particulièrement celles basées Cloud. Le but est de définir un cadre formel fournissant des fondements sémantiques et abstraits nécessaires pour raisonner sur les architectures Cloud et plus particulièrement sur la dynamique et l’élasticité des ressources.
2) Projets Européens
Projet 2 : MegaM@RT : MegaModelling at RunTime
Ce projet a pour objectif de développer des méthodes et outils basés sur des modèles pour le développement logiciel continu entre la conception et la phase d'exécution, incluant de la vérification, du test, du monitoring ou bien du traçage du système pendant son exécution. Ces méthodes et outils ont pour but d’améliorer la qualité et la productivité pour le développement de systèmes industriels complexes.
3) Projets Nationaux
Projet 3 : ecoCode
La commission de l'aménagement du territoire et du développement durable du Sénat a lancé ce 29 janvier 2020 une mission d'information pour évaluer les impacts environnementaux du digital en France. C’est dans ce contexte de sobriété numérique que le projet de recherche ecoCode est né (anciennement baptisé CleanApps). Son objectif est de proposer des solutions innovantes aux développeurs pour l’écoconception de leurs applications mobiles (Android / iOS). En effet, des millions d’applications mobiles en circulation sont trop gourmandes en énergie à cause de défauts de conception. ecoCode vise à offrir des outils pour (a) détecter ces défauts et (b) les corriger.
Le projet lancé fin 2019 a franchi une première étape cruciale en 2020 : l’ouverture de la plateforme collaborative (http://www.ecocode.io/) à destination de tous les développeurs mobiles, pour recueillir leurs meilleures (resp. mauvaises) pratiques du point de vue énergétique. A partir de cette base de connaissance, il sera possible de construire les outils d'analyse et de réparation automatique de programmes Android et iOS.
Plateformes, démos et logiciels
- Olivier Le Goaer & al. https://github.com/green-code-initiative/ecoCode-mobile
- Khaled Khebbeb, Nabil Hameurlain, "Elasticity strategies in Cloud systems: a queuing-based simulator", https://github.com/aanorlondo/Prototype, 2019, Open source
- Franck Barbier & Eric Cariou & Lea Brunschwig & Olivier Le Goaer, "PauWare Engine v2", https://pauware.univ-pau.fr/tech.html#pau-ware-engine, 2019, Open source
- Lea Brunschwig & Eric Cariou & Olivier Le Goaer, "Xmodeling Studio", https://pauware.univ-pau.fr/xmodeling/index.html, 2019
- Lea Brunschwig & Eric Cariou & Olivier Le Goaer, "Pauware Code Generator", https://pauware.univ-pau.fr/generator/, 2018
- Olivier Le Goaer, "World Wide Modeling", https://pauware.univ-pau.fr/tech.html#world-wide-modeling, 2016