Software Engineering Team#SE

Presentation

Research in software engineering focuses on model-driven engineering and specification for designing and modifying software systems, including large-scale computing contexts such as cloud computing. The adaptation of executable models, for example by modifying the model during execution, involves reasoning about reflexive and adaptive modeling languages and building libraries and dedicated tools for different domains: reactive and discrete event systems (embedded systems, mobile apps, video games, etc.) using appropriate computer formalisms, from the most formal (Petri nets, Bigraphs, Statecharts, etc.) to semi-formal ones (Unified Modeling Language, Object Constraint Language, etc.).

Software engineering focuses on software quality. The most well-known quality factors are:

  1. Reusability (component and service-based approach, reverse engineering, etc.);
  2. Maintainability (requirements engineering, adaptation, etc.);
  3. Reliability (more generally included in operational safety, which goes beyond the scope of software engineering: hardware, networks, etc.);
  4. Security (also extending well beyond software engineering);
  5. Scalability (i.e., ability to scale up);
  6. And usability.

Members of this ambition are interested in specialized concepts, techniques, methods, and tools: modeling languages, specification formalisms, and Model-Driven Engineering to produce formal (i.e., mathematically interpretable) and/or executable (e.g., “libraries” in ad hoc code) models to increase the quality of software in general. Qualities 1 (reusability) and 2 (maintainability) are considered intrinsic to modeling (see “Research Directions” section). Qualities 3 (reliability) and 5 (“scalability”) are addressed by proving properties (e.g., absence of deadlocks during execution, connectivity/interoperability by construction, etc.) when the models are backed by mathematical theory. The guarantee of absence of bugs (proof, testing, etc.) is characteristic of a reliability problem, while “scalability” focuses on how software systems should be composed to avoid design flaws and execution failures, including performance, resilience, frugality, etc. 

Members

FirstName LastName 

Position

Site

Olivier Le Goaer

Mcf

Pau

Nabil Hameurlain

Mcf

Pau

Jawher Jerray

Mcf

Pau

Johann Bourcier

Pr

Anglet

Ahang Zuo

Mcf

Pau

mail:  firstname.lastname@univ-pau.fr

Non-permanent

FirstName LastName

Position

Site

Léa BRUNSCHWIG

Ater

Pau

Riad HELAL

Doctorant

Pau

Topics

  • Software Technologies
  • Software science and technology
  • Software design, deployment, and execution using models
  • Adaptation
  • System of Systems (SoS) approach
  • Green Software Engineering (GSE)

Projects

1) International Projects

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.

En savoir plus

2) European Projects

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.

En savoir plus

3) National Projects

ecoCode (now Creedengo)

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.

En savoir plus

Platforms, demos, and software

Publications

C