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

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.

En savoir plus

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.

En savoir plus

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.

En savoir plus

Platforms, demos, and software

Publications

C