Projet NEPTUNE : Vrification statique de modles - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

Projet NEPTUNE : Vrification statique de modles

Description:

Pour chaque collaboration C du mod le tel que Acteur(C) v rifier ... Chaque acteur interagit au moins dans un sc nario avec l'entit 'Syst meAEtudier' ... – PowerPoint PPT presentation

Number of Views:55
Avg rating:3.0/5.0
Slides: 22
Provided by: thierry92
Category:

less

Transcript and Presenter's Notes

Title: Projet NEPTUNE : Vrification statique de modles


1
Projet NEPTUNE Vérification statique de modèles
  • Thierry Millan Christian Percebois -
  • Hervé Leblanc - Pierre Bazex
  • Institut de Recherche en Informatique de Toulouse
  • Université Paul Sabatier
  • 118, route de Narbonne
  • F-31062 Toulouse Cedex 4
  • Tél.  (33-0)5 61 55 86 32
  • Fax. (33-0)5 61 55 67 82
  • e-mail  (millan, perceboi, leblanc,
    bazex)_at_irit.fr

2
Plan de la présentation
  • Vérification statique de modèles
  • Métamodèle UML
  • Exemple de règles
  • Outil et expérimentation

3
Vérification Statique de Modèles (1)
  • Modélisation UML
  • Elaborer des modèles avec des intervenants
    spécialisés
  • Exprimer la vision des composants du système au
    travers des multiples vues
  • Définir un ensemble de modèles exprimés dans
    divers formalismes
  • Problème de la cohérence de la modélisation

4
Vérification Statique de Modèles (2)
  • Exemple

5
Métamodèle UML (1)
  • UML Notation Graphique Langage de
    Spécification OCL
  • Notation graphique
  • Différents diagrammes décrivant
  • Aspects statiques
  • Aspects dynamiques
  • ...
  • Définition d'un métamodèle
  • Modélisation des notions présentes dans UML
  • Représenté par un diagramme de classes

6
Métamodèle UML (2)
  • Langage de spécification OCL
  • Langage fonctionnel
  • Langage basé sur la logique du premier ordre
  • Personne.allInstances-gtisUnique(p Personne
    p.nom)
  • Langage de spécification du métamodèle
  • Spécification de la syntaxe et de la sémantique
    des éléments de modélisation
  • Class.allInstances-gtisUnique(c Class c.name)
  • Définition de règles de bonne formation sur le
    métamodèle pour restreindre l'ensemble des
    instances valides

7
Exemples de vérification de modèles Tout
scénario est initié par un acteur (1)
Algorithme Pour chaque collaboration C du
modèle tel que Acteur(C) ? ? vérifier ? A?
Acteur(C) tel que A sender "SystèmeAEtudier" ?
Stimulus(C) et prédécesseur(A sender
"SystèmeAEtudier") ? Fin pour
8
Exemples de vérification de modèles Tout
scénario est initié par un acteur (2)
package Behavioral_ElementsCollaborations contex
t Collaboration inv FirstStimulusFromAnActor
let interactionFromActor Set(Message)
self.ownedElement-gtselect(m ModelElement
m.oclIsKindOf(Message)). oclAsType(Message)-gtsel
ect(m Message m.conformingStimulus.send
er.classifier-gt exists(c Classifier
c.oclIsKindOf(Actor)))-gtasSet in self.ownedEleme
nt-gtselect(m ModelElement m.oclIsKindOf(Actor)
)-gtnotEmpty implies self.interactionFromActor-gte
xists(m1 Message m1.allPredecessors-gt
reject(m2 Message m2.conformingStimul
us.senderm2.conformingStimulus.receiver and
m2.conformingStimulus.sender.classifier.stereotype
.name-gt exists(n String
n"SystemeAEtudier" ))-gtisEmpty) endpackage
9
Exemples de vérification de modèles Tout
scénario est initié par un acteur (3)
Evaluation de la Fonction let
Evaluation du corps de la règle
10
Exemples de vérification de modèles Chaque
acteur interagit au moins dans un scénario avec
lentité SystèmeAEtudier (1)
Algorithme Envoyés Stimuli consommés par le
SystèmeAEtudier" Reçus Stimuli reçus par
le SystèmeAEtudier Pour chaque acteur A du
modèle vérifier A Envoyés Reçus Fin pour
11
Exemples de vérification de modèles Chaque
acteur interagit au moins dans un scénario avec
lentité SystèmeAEtudier (2)
  • package Behavioral_ElementsUse_Cases
  • context Actor inv AnyPassiveActor
  • Stimulus.allInstances-gtselect(s Stimulus
  • (s.receiver.classifier.stereotype.name-gtexist
    s(nString
  • n"SystèmeAEtudier"))).sender.classifier-gt
  • union(
  • Stimulus.allInstances-gtselect(s Stimulus
  • (s.sender.classifier.stereotype.name-gtexists(n
    String
  • n"SystèmeAEtudier"))).receiver.classifier)-
    gtincludes(self)
  • endpackage

12
Exemples de vérification de modèles Chaque
acteur interagit au moins dans un scénario avec
lentité SystèmeAEtudier (3)
Influence de la navigabilité des associations
dans l'expression des règles
13
Exemples de vérification de modèles Le graphe
dassociations des classes est acyclique (1)
Algorithme Pour chaque sommet S du graphe
orienté G (Classes, participants) vérifier S
DescendantsG(S) Fin pour
14
Exemples de vérification de modèles Le graphe
dassociations des classes est acyclique (2)
  • package FoundationCore
  • context Class inv AssCircularityClosure
  • let participants Set(Class)
    self.allOppositeAssociationEnds-gt
  • select(ae AssociationEnd ae.isNavigable).par
    ticipant.
  • oclAsType(Class)-gtasSet() in
  • self.participants-gtclosure(cl Class
    cl.participants)-gtexcludes(self)
  • endpackage

15
Exemples de vérification de modèles Le graphe
dassociations des classes est acyclique (3)
Evaluation de la Fonction let
Evaluation de la fermeture transitive
16
Exemples de vérification de modèles Lhéritage
entre classes est simple (1)
Algorithme Pour chaque sommet S du graphe
orienté G (Classes, generalization)
vérifier Cardinal(AscendantsDirectsG(S))
1 Fin pour
package FoundationCore context Class inv
NoMultipleClassInheritance self.generalization.
parent-gtselect(c  Class c.oclIsKindOf(Class))-gt
size lt 1 endpackage
17
Exemples de vérification de modèles Lhéritage
entre classes est simple (2)
18
Outil et expérimentation (1)
  • L'outil NEPTUNE de validation

Export XMI
Outils UML
Modèle UML1.4 au format XMI 1.1
Diagnostic
19
Outil et expérimentation (2)
  • Contexte de lexpérimentation
  • Génie Logiciel
  • Implantation des contraintes "métier" pour les
    phases d'analyse et de conception
  • Vérification des règles qualités sur des projets
    aéronautiques déjà audités
  • 100 classes, 30 règles méthodologiques, 10
    règles de mise en uvre, 10 règles de métrique
  • Modélisation des processus d'affaire
  • Echanges administratifs au sein de l'Université
    Polytechnique de Catalogne (Barcelone)
  • 50 classes, 20 processus, 200 règles
    spécifiques à ce domaine

20
Outil et expérimentation (3)
  • Résultat dépendant du contexte
  • Génie Logiciel
  • Découverte d'incohérences même sur des projets
    audités par des experts
  • Gain de temps
  • Processus d'affaire
  • Existence d'autres solutions plus simples à
    utiliser
  • Guide à la réalisation de modèles pour des non
    spécialistes
  • Plus généralement
  • Navigation au sein du métamodèle ? Ecriture des
    règles complexes
  • Certains modèles de règles sont génériques

21
Conclusion et perspectives
  • En conclusion
  • Validation utilisant un ensemble conséquent de
    règles
  • Nécessité denrichir les modèles UML par des
    spécifications OCL
  • Nécessité détendre ces expérimentations à
    dautres domaines
  • Perspectives
  • Définition d'un langage de navigation plus
    abordable pour lanalyste
  • Utilisation de la logique temporelle pour
    contrôler la dynamique des diagrammes
    états-transitions
  • Intégration des nouveautés de la norme UML 2.0
    (SDL)
Write a Comment
User Comments (0)
About PowerShow.com