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:
- Reusability (component and service-based approach, reverse engineering, etc.);
- Maintainability (requirements engineering, adaptation, etc.);
- Reliability (more generally included in operational safety, which goes beyond the scope of software engineering: hardware, networks, etc.);
- Security (also extending well beyond software engineering);
- Scalability (i.e., ability to scale up);
- 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 |
|
Mcf |
Pau | |
|
Mcf |
Pau | |
|
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
Formal Specification and Analysis of Cloud Computing Environments
The aim of this project is to propose an extensible model defined by a sound and judicious combination of bigraphs and the Maude language in order to provide a rigorous framework for formally describing service-oriented architectures, particularly those based on the cloud. The goal is to define a formal framework that provides the semantic and abstract foundations necessary for reasoning about cloud architectures, particularly the dynamics and elasticity of resources.
2) European Projects
MegaM@RT : MegaModelling at RunTime
The objective of this project is to develop model-based methods and tools for continuous software development between the design and execution phases, including verification, testing, monitoring, and tracing of the system during execution. These methods and tools aim to improve quality and productivity in the development of complex industrial systems.
3) National Projects
ecoCode (now Creedengo)
On January 29, 2020, the Senate Committee on Regional Planning and Sustainable Development launched a fact-finding mission to assess the environmental impact of digital technology in France. It was against this backdrop of digital sobriety that the ecoCode research project (formerly known as CleanApps) was born. Its goal is to offer developers innovative solutions for the eco-design of their mobile applications (Android/iOS). Millions of mobile applications in circulation consume too much energy due to design flaws. ecoCode aims to provide tools to (a) detect these flaws and (b) correct them.
The project, launched at the end of 2019, reached a crucial first milestone in 2020: the launch of a collaborative platform (http://www.ecocode.io/) for all mobile developers to share their best (and worst) practices in terms of energy efficiency. Based on this knowledge base, it will be possible to build tools for the automatic analysis and repair of Android and iOS programs.
Platforms, demos, and software
- Olivier Le Goaer & al. https://github.com/powdroid-project/powdroid
- 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
Publications
C