Model-Based Software Engineering : Methodologies for Model-Code Synchronization in Reactive System Development

2018 
Model-Based Software Engineering (MBSE) a ete propose comme une methodologie prometteuse de developpement de logiciels pour surmonter les limites de la methodologie traditionnelle basee sur la programmation pour faire face a la complexite des systemes embarques. MBSE favorise l’utilisation de langages de modelisation pour decrire les systemes d’une maniere abstraite et fournit des moyens pour generer automatiquement de differents artefacts de developpement, p.ex. code et documentation, a partir de modeles. Le developpement d’un systeme complexe implique souvent de multiples intervenants qui utilisent differents outils pour modifier les artefacts de developpement, le modele et le code en particulier dans cette these. Les modifications apportees aux artefacts evoquent le probleme de coherence qui necessite un processus de synchronisation pour propager les modifications apportees dans l’un artefact aux autres artefacts. Dans cette etude, le probleme de la synchronisation des modeles d’architecture bases sur les elements UML composite structure (UML-CS) et UML state machine (UML-SM) du langage de l’Unified Modeling Language (UML), et le code oriente objet est presente. UML-CSs sont utilises pour decrire l’architecture du logiciel basee sur les composants et UML-SMs pour les comportements discrets lies aux evenements des systemes reactifs. Le premier defi est de permettre une collaboration entre les architectes de logiciels et les programmeurs produisant de modele et de code, en utilisant differents outils. Il souleve le probleme de synchronisation ou il existe de modifications simultanees des artefacts. En fait, il existe un ecart de perception entre les langages a base de diagramme (langages de modelisation) et les langages textuels (langages de programmation). D’une part, les programmeurs preferent souvent utiliser la combinaison familiere d’un langage de programmation et d’un environnement de developpement integre. D’autre part, les architectes logiciels, travaillant a des niveaux d’abstraction plus eleves, favorisent l’utilisation des modeles et preferent donc les langages a base de diagramme pour decrire l’architecture du systeme. Le deuxieme defi est qu’il existe un ecart d’abstraction significatif entre les elements du modele et les elements du code: les elements UML-CS et UML-SM sont au niveau d’abstraction plus eleve que les elements du code. L’ecart rend la difficulte pour les approches de synchronisation actuelles car il n’y a pas de facon facile de reflecter les modifications du code au modele. Cette these propose une approche automatisee de synchronisation composee de deux principales contributions correlees. Pour aborder le premier defi, on propose un patron methodologique generique de synchronisation entre modele et code. Il consiste en des definitions des fonctionnalites necessaires et plusieurs processus qui synchronisent le modele et le code en fonction de plusieurs scenarios definis ou les developpeurs utilisent differents outils pour modifier le modele et le code. Cette contribution est independante de UML-CSs et UML-SMs. La deuxieme contribution traite du deuxieme defi et est basee sur les resultats de la premiere contribution. Dans la deuxieme contribution, un mapping bidirectionnel est presentee pour reduire l’ecart d’abstraction entre le modele et le code. Le mapping est un ensemble de correspondances entre les elements de modele et ceux de code. Il est utilise comme entree principale du patron methodologique generique de synchronisation entre modele et code. Plus important, l’utilisation du mapping fournit les fonctionnalites definies dans la premiere contribution et facilite la synchronisation des elements de UML-CS et UML-SM et du code. L’approche est evaluee au moyen de multiples simulations et d’une etude de cas.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    0
    References
    0
    Citations
    NaN
    KQI
    []