Présentation de l'équipe

Il est bien admis aujourd’hui qu’un des problèmes critiques dans la conception et l’élaboration de
tout système logiciel complexe est son architecture, c’est-à-dire l’organisation des éléments
architecturaux qui le constituent. Une bonne architecture peut aider à exhiber les propriétés
cruciales d’un système (fiabilité, portabilité, interopérabilité). Au contraire, une mauvaise
architecture peut avoir des conséquences désastreuses sur le système.


Par ailleurs, une bonne architecture peut servir de "conscience" à un système au cours de son
évolution. En effet, elle guide le processus d’évolution d’un système en indiquant par exemple
quels aspects du système peuvent être modifiés sans compromettre son intégrité. Aujourd’hui,
les nouvelles applications d’ingénierie, en particulier celles dédiées à la conception et au
développement de systèmes d’information distribués à base de composants ont mis en évidence
le caractère évolutif des éléments architecturaux manipulés et des structures qui leur sont
associées. La pérennité, l’adaptabilité et l’évolutivité de tels systèmes deviennent un enjeu
économique très important. En effet, ces systèmes ont souvent nécessité plusieurs années
hommes mois de développement et de mise à jour qu’il devient impératif de leur assurer une
durée de vie conséquente et surtout de répondre aux évolutions de besoins des constructeurs
d’architectures logicielles, des constructeurs d’applications et des utilisateurs finaux.


Dans ce contexte, notre équipe s’intéresse essentiellement à l’étude et au développement de
nouvelles architectures logicielles ouvertes (c-a-d capables de dialoguer et de s’interfacer avec
d’autres architectures), adaptables (c’est-à-dire susceptibles d’être adaptées à des conditions
opératoires et à des domaines d’application différents) et évolutives (capables d’être
complétées/modifiées pour prendre en compte des services non prévus lors de leur conception).
Les modèles de langages d’architectures que nous préconisons doivent prendre en compte les
aspects suivants :
  • d’une part, ils doivent reposer sur des modèles formels et semi-formels des langages de description d’architecture :
    ADLs (Architecture Description Languages),
  • et d’autre part, ils doivent être capables d’être projetés sur des modèles d’architecture objets exécutables.

Axes de recherche

L’équipe MODAL a pour objectif l’élaboration de nouveaux langages de modélisation d’architectures
logicielles offrant un meilleur potentiel de réutilisation, d’évolution et limitant la distance
sémantique entre conception et implémentation, et in fine réduisant les coûts et les délais de
développement d’applications. Pour ce faire, l’équipe fédère ses activités autour de deux thèmes :
  • Modèles de Spécification et de conception d’architectures logicielles Il s’agit de développer
    de nouveaux modèles de description d’architectures logicielles permettant d’une part
    d’étendre les formalismes de modèles de description des ADLs pour la prise en compte
    d’éléments architecturaux complexes (composants composites, composants multi-vues,
    styles, connecteurs explicites actifs) et d’autre part de projeter ces modèles sur des modèles
    d’architecture objets exécutables.
  • Modèles d’évolutions structurale et comportementale d’architectures logicielles La préoccupation
    directrice est de permettre non seulement l’évolution d’un élément architectural (composant,
    connecteur) mais aussi de son architecture globale. Il s’agit par exemple d’ajouter un nouveau
    composant représentant une nouvelle fonctionnalité, de l’adapter, de modifier l’interface d’une
    configuration ou encore de réorganiser l’interaction entre les différents éléments architecturaux.