navigation

Changer la langue :

Langue / language

Rechercher

 

Software

First published : Tuesday 29 July 2008 by Sophie Pales

Digiteo addresses a variety of problems raised by software development, validation and verification. The common target is to make these activities safer, resulting in better quality and even certification of the resulting software, and easier, resulting in a more efficient production process.

Thank to the wide range of competencies of the involved groups, the researches on software led within Digiteo seamlessly spread from theoretical foundations (semantics, type systems,) to practical methods and tools. In all the cases the main challenge is how to scale up, both in size and quality.

Software specifications and models

It is now widely recognised that software development, verification and validation needs to be based on models. Various kinds of specifications and models are studied in Digiteo, mainly oriented to the description of embedded real-time systems and distributed systems. They include both pragmatic approaches (UML), and formal ones such as JML, or timed automata, or sophisticated process algebra (to cite just a few). The current orientation of Digiteo is more toward the use of these models for validation and verification (see next section), where a considerable amount of expertise has been developed and exploited, than in their use for development, even if some successful specialised projects are led in this area. An emerging and promising research theme in Digiteo is to take advantage of the variety of studied specifications and models to combine them in order to increase the expression power while managing their heterogeneity in a formal and effective way.

Safety and security

The production of safe and secure software-based systems is a challenge where much effort is devoted in Digiteo. Researches on validation and verification are led both at model level and at program level.
There is a kernel of works on powerful generic tools in the area of theorem provers, constraint solvers, model-checkers, cryptography, combinatorics that requires fundamental research in computer science and mathematics. More applied projects are devoted to static analysis and proof of programs, model-based or program-based testing, model-checking of probabilistic, timed, or symbolic models. As an example, among many, in this area, one can mention the static analysis of rounding errors propagation in programs using floating numbers. All these approaches are validated on significant case studies and industrial projects. Scaling-up is a major concern. Several works are exploring approximate verification methods, or statistical and probabilistic approaches with promising preliminary results.
Last but not least, fault-tolerant architectures and on-line diagnosis are the subject of some
fruitful collaboration.

Boundaries with hardware

Within Digiteo, a long lasting collaboration has taken place on compiler optimisations for high-performance general-purpose and embedded processors. Moreover, there is a strong body of knowledge on software tools for fast processor simulation. There is also some work on the development and certification of safe real-time operating systems.

Data and knowledge engineering, concepts and tools for data mining

Works led within Digiteo in this area cover research on data bases, data warehouses, knowledge modelling and the use of domain models, or ontologies, in information retrieval systems. Applications to web services, and algorithms and tools for data mining are also studied in conjunction with these topics.

Information integration systems have to provide easy and relevant accesses to sources. When these sources are numerous and heterogeneous, as Web sources, such systems rely on automatic tools to annotate and query documents, statistical analysis, or learning methods for data mining. Digiteo teams have developed strong competences in these complementary areas, and will take advantage of this.