Conclusion. Perspectives
Validation des algorithmes en UML et OCL
H3882 v1 Article de référence

Conclusion. Perspectives
Validation des algorithmes en UML et OCL

Auteur(s) : Pierre BAZEX, Agusti CANALS

Date de publication : 10 août 2013 | Read in English

Logo Techniques de l'Ingenieur Cet article est réservé aux abonnés
Pour explorer cet article plus en profondeur Consulter l'extrait gratuit

Déjà abonné ?

Présentation

1 - Preuve de programmes. Processus IDM

2 - Logique de Hoare

3 - Processus IDM. Diagramme d'activité UML et SAM

4 - Conclusion. Perspectives

Sommaire

Présentation

RÉSUMÉ

Cet article traite de propriétés formelles des langages de programmation dont le but est de vérifier, voire prouver, que les programmes fonctionnent correctement. Dans un contexte de processus centré sur les modèles (processus IDM), ces propriétés peuvent être appliquées à des langages de modélisation pour garantir la qualité attendue de la part des modèles, et la cohérence entre les modèles et les programmes. Mais ces techniques de preuve, basées sur la logique des prédicats, peuvent-elles s'appliquer à des langages métiers tels que le langage «Structured Analysis Model» (SAM) développé pour modéliser des applications du domaine de l'aéronautique ?

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

Auteur(s)

  • Pierre BAZEX : Professeur émérite de l'Université Paul Sabatier, Toulouse III

  • Agusti CANALS : Directeur d'unité fonctionnelle (technique), CS Communication & Systèmes

INTRODUCTION

Placée en phase terminale d'un processus de développement IDM où les modèles représentent une certaine abstraction des exigences des applications à développer, la programmation est souvent considérée comme une simple activité de génération de codes issus des modèles.

Comment, dans ces conditions, peut-on prouver que tout programme fonctionne correctement et que les exigences des applications ont été bien prises en compte ?

Cette étude traite de propriétés formelles des langages de programmation dont le but est de raisonner sur des programmes pour chercher à vérifier et prouver qu'ils fonctionnent correctement. Le rajout de propriétés axiomatiques au niveau des langages de modélisation permet ainsi de vérifier que les modèles ont toutes les qualités que l'on peut en attendre de leur part. Les propriétés axiomatiques, appliquées dans le contexte d'un processus IDM vu comme une succession de transformations de modèles permettent donc de vérifier la cohérence de l'ensemble des modèles et des programmes.

Cette étude se situe dans la continuité de la sémantique opérationnelle des langages de programmation décrivant de manière précise et rigoureuse les aspects comportementaux de leurs constructions syntaxiques spécifiées à l'aide d'une grammaire. Elle prend donc toute son importance pour des applications ayant des exigences très critiques, telles qu'on en trouve aujourd'hui dans des domaines d'activités très variés, de l'aéronautique et de l'espace par exemple, ou pour des applications « grand public » de l'administration et de la banque devant gérer des masses de données personnelles et privées. La confiance que l'on doit accorder à ces logiciels est d'autant plus importante qu'ils doivent fonctionner comme des automates pour être réactifs en temps réel aux différents environnements qu'ils sont chargés de contrôler, de gérer et de superviser et pour être disponibles 24 h sur 24 aux sollicitations des usagers au travers de téléprocédures.

Après avoir rappelé comment on peut raisonner sur des programmes à l'aide de propriétés basées sur la logique (propriétés axiomatiques) pour vérifier et prouver qu'ils ont un fonctionnement correct, nous montrons ensuite comment on peut définir et appliquer de telles propriétés pour vérifier que les modèles situés en amont d'un processus de développement ont bien les qualités attendues. Comment, dès lors, appliquer de telles propriétés lors de la spécification des traitements d'un système ou d'un sous-système décrits à l'aide de langages de modélisation métier, tel que SAM dédié au développement d'applications de l'aéronautique ?

Peut-on contribuer à obtenir une meilleure continuité entre les modèles et les programmes d'un processus de développement en proposant d'appliquer les mêmes approches de raisonnement et de preuve basées sur la logique des prédicats ? C'est la question qui est en fait posée dans cet article.

Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés.
Il vous reste 94 % à découvrir.

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v1-h3882

Lecture en cours
Présentation

Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

(236 articles)

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

4. Conclusion. Perspectives

Cet exemple de modélisation métier (§ 3.2) confirme l'application des preuves présentée au niveau du diagramme d'activité (§ 3.1) : les preuves de programmes s'appliquent parfaitement à des modèles conformes à des métamodèles où l'on peut injecter des propriétés comportementales et axiomatiques pour modéliser des algorithmes et les vérifier. Sachant que l'on peut utiliser les diagrammes d'activité et les modèles SAM à différents niveaux d'abstraction, on peut définir ainsi différents niveaux d'abstraction des propriétés comportementales et axiomatiques, étendant ainsi les techniques d'interprétation abstraite aux modèles et aux processus IDM.

Cependant, l'expérience montre que pour certaines applications la prise en compte du parallélisme doit se faire à un niveau d'abstraction élevé, c'est-à-dire dès la description générale de l'ensemble des systèmes avant la prise en compte du découpage des systèmes en sous-systèmes. Modéliser du parallélisme et vérifier le bon comportement du système ne peut pas se faire dans le même esprit que les preuves de programmes séquentiels.

Pour répondre à cette question, il faut pouvoir donc d'abord reprendre les études réalisées sur la modélisation des systèmes parallèles. Il s'agit ensuite de voir à quel niveau on doit prendre en compte et combiner les exigences portant sur les aspects algorithmiques et sur les aspects parallélisme : à...

Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés.
Il vous reste 95 % à découvrir.

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


Lecture en cours
Conclusion. Perspectives

Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

(236 articles)

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) - AHO (A.), SETHI (S.), ULLMAN (J.) -   Compilateurs. Principes, techniques et outils.  -  InterÉditions (1989).

  • (2) - AHO (A.), ULLMAN (J.) -   Concepts fondamentaux de l'informatique.  -  Dunod (1993).

  • (3) - BLANC (X.) -   MDA en action. Ingénierie logicielle guidée par les modèles.  -  Eyrolles (2005).

  • (4) - BLANC (X.) -   UML2 pour les développeurs.  -  Eyrolles (2006).

  • (5) - BOOCH (G.), RUMBAUGH (J.), JACOBSON (I.) -   Le guide de l'utilisateur de UML.  -  Eyrolles (2001).

  • (6) - CANALS (A.), GABEL (G.), GAUFILLET (P.) -   Les composants SAM et OCL « Checker » du projet TOPCASED.  - 

  • ...

Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés.
Il vous reste 92 % à découvrir.

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

(236 articles)

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

Ressources documentaires

Langage UML : développement de logiciel et modélisation visuelle

Le langage UML (pour Unified Modeling Language) est un langage graphique de modélisation des systèmes ...

Spécifications fonctionnelles - Génération automatique de code

Cet article s’interroge sur l’aptitude des modèles de spécification à générer un code exécutable. Il ...

Entrepôts de données

Cet article traite des bases de données spécifiques, nommées entrepôts de données et utilisées par les ...