Our partners



Home page > English > Research Topics > Topic 7 - Reliable Software Development > ARGOS Team


Advancing RiGorous SOftware and System Engineering
Head : Ileana Ober

ARGOS (Advancing Rigorous Software and System Engineering) research team was created in Fall 2017 and gathers together researchers covering software development along the entire lifecycle, with a particular concern for using techniques allowing to develop high quality softwares and systems. For this, the team tackles challenges on software and system correctness, secure systems development and adapting and optimizing processes and designs.

These three working directions make use of models and design patterns and integrate formally specified properties. A particular attention is given to developing tools that support our research results, as well as to evaluating and experimenting our results.

Keywords: software engineering, systems engineering, formal specification and verification, model-based engineering, model validation, language engineering, dedicated (modeling) languages, patterns & best practices, agile methods, process management, empirical evaluation

Application fields: cyber-physical systems, robotics, cloud

Software and systems correctness

The scientific challenge here is the software and systems quality, in terms of the compliance with functional and non-functional requirements. The goal is to facilitate the correct development and the validation of software and systems, using rigorous specification and verification approaches derived from formal methods.

Our work is based on various formal specification techniques based on logical or operational models (temporal logic, automata, process algebras), as well as on different analysis methods for these models (model-checking, abstract interpretation, proof, test). Reasoning upstream on models of the systems to be developed makes it possible to abstract their complexity and to ensure, early in the development cycle, that these systems have the desired properties.

Particular attention is paid to integrating formal techniques into traditional development by making them accessible to field engineers, non-specialists in these techniques. A characteristic of our work is the use of model-based engineering (MDE) as well as of standard modeling languages commonly used in the industry (e.g., UML, SysML). We are interested in the semantics of these languages, in the integration of formal specifications through extensions of these languages, in the application of verification methods, in particular those based on model-checking, as well as in testing. The structural correctness of the models is enforced by rules written in a dynamically typed version of OCL. Beyond the system architecture and behavior of the systems, we are also interested in human-machine interfaces and in particular their correctness and ergonomics.

Rigorous development of secure architectures

The scientific challenge here is to tackle the two fold goal of building systems that are both resilient from a cyber-security point of view and functionally rich. The research aims to develop a methodological design framework allowing to manage and integrate both the functional architecture and the security aspects, while providing for a continuous validation of both aspects, thus guaranteeing functional correctness and resilience. The final goal is to build new development practices that increase reuse of secure design patterns, in order to reduce the cost of development while increasing the confidence in the developed systems.

Adapting and optimizing processes and designs

The scientific challenge here is that of accompanying the emergence of new processes and new architectures which support adaptation to change. At the level of processes, we are searching for means of controlling the development activities and ensuring their coherence and traceability. We also aim at applying best practices and techniques for making the development process more flexible and adaptive, with the goal of continuous improvement. We also look for ways to accompany the emergence of specific development processes within agile teams as well as for pattern languages that capture the emergent designs resulting from these approaches. Finally, we are working on optimizing the representation of models towards Model Base Management Systems (MBMS).

This section doesn't contain any article.