Projet NEPTUNE : Vérification statique de modèles

Slides:



Advertisements
Présentations similaires
UML EPITECH 2009 UML1 - Introduction UML – Définition – Historique – UML en entreprise – Couverture Concepts – Objet – Classe –
Advertisements

Croquis animé pour l'enseignement de l'Anatomie Après le sketch-based modeling de formes : Quentin Doussot, equipe Evasion LJK et INRIA Montbonnot Encadrants:
LE SUPPORT D'ORDINATEUR PORTABLE. Problématique Oh, j'ai chaud aux jambes ! Et moi, j'ai chaud à mon processeur !
1 Programmation Orientée Objet ● Qu'est-ce qu'un objet ● Collaboration des objets ● Les classes ● Relations entre les classes – “Utilise”, “Contient”,
RMLL 2008 Isis-FISH/Gesi Benjamin Poussin Code Lutin
2 Conception objet et UML 3 Sources ● Cours de Martine Gauthier ● Cours de François Charoy ● Slides de Lou Franco ●
UML2 : Panorama de la notation Laurent Henocque Enseignant Chercheur ESIL/INFO France
Refonte du portail eaufrance Présentation du cadre de référence pour avis GCIB – 14/10/2014 – Anne Macaire.
Que faire? La recherche découverte. Dans une recherche découverte Sensibilisation ; Discussion ; Préparation-projet ; Opération-activités ; Réflexion.
Analyses des situations didactiques I - Notions théoriques de base.
Plan Présentation de 2TUP 2TUP, un processus UP 2TUP et UML Les apports de 2TUP 2TUP en détail 2TUP dans la pratique.
DIAGRAMME DE DEPLOIEMENT Exposé de: MBALLA MEKONGO Michèle MBOUNA FEUZE William SIEYADJEU Alex Lionel CHOPGWE Leonard NDUMATE Landry TIDJON Lionel.
MINISTERE DE L’ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE Université d’Adrar Diagramme d’états-transitions Présenté par Sbai Omar Benothman.
Proposition de stratégie
Les rôles de la MOA et de la MOE sur le Système d'Information
Acquisition Rapide Multivoies
LES PRATIQUES D’EVALUATION EN SVT DEFINITIONS OBJECTIFS MODALITES
L’activation des réseaux informatique des lycées
Banques – 26 mai 2016.
Anti-Patterns pour la modélisation des processus de développement
Expérimenter le projet « Graphite »
Formation BTS CG – Parc Chabrières
Ch.1 : Modélisation des systèmes par SysML
Chapitre 2 : Principe de la dynamique
Evaluation du standard SPEM de représentation des processus
Méthode générale de conception et de réalisation
MOT Éditeur de modèles de connaissances par objets typés
Les histoires de vie en formation
- PREPARATION ou SYNTHESE => garder la mention utile.
Formation Classe Inversée
MORCEAUX CHOISIS DU RAPPORT d’EQUISTRATIS
JAVA et POO : Notion d'héritage
Centre Européen pour les Langues Vivantes et Commission Européenne
Virtualisation d’applications mobiles dans un réseau de Cloudlets
Langage de Modélisation UML
Démarche de conception. Démarche didactique.
Développement d’un réseau social de collaboration destiné aux médecins radiologues Soutenance de projet de fin d’étude En vue de l’obtention du diplôme.
Notion De Gestion De Bases De Données
Module M3202 Démarche d’amélioration
Modélisation avec UML 2.0 Partie II Diagramme de classes.
Langage de modélisation graphique de système
Contexte A2 - Diagnostic Activité Tâches associées Compétences
Programmation Orientée Objet
Plan du chapitre Diagramme de classes Les extensions syntaxiques
Développement d’applications interactives
Integrated Business intelligence
Diagrammes UML 420-KE2-LG.
5 Analyse avec Designer d'Oracle
1 1.
Modélisation objet avec UML
Épreuve écrite E4.1 BTS CG Session /02/2017.
TraAM Le 11/12/2017 Réunion 2 (visioconférence) (travaux académiques mutualisés) Processus d’expérimentation des TraAM Orléans -Tours.
Base de donnée de support
Programme financé par l’Union européenne
L’analyse fonctionnelle
30/03/16 Page de présentation de la première intervention.
Explorer le monde Se repérer dans le temps et dans l'espace
EPITECH 2009 UML EPITECH 2009
Un Mécanisme d‘Adaptation Guidé par le Contexte en Utilisant une Représentation par Objets Manuele Kirsch Pinheiro Laboratoire LSR – IMAG, Équipe SIGMA.
Mathématiques.
État d’avancement REGARDS
Points de vue et sémantiques ad hoc
Design, innovation et créativité
Modélisation des SI et de la connaissance
Présentation générale
PAF Guillaume Martin - Fabrice Cizeron - Xavier Roulot
UC : Diagramme des cas d’utilisation Req : Diagramme d’exigence
MOT Éditeur de modèles de connaissances par objets typés
spécialité mathématiques Première
Transcription de la présentation:

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)@irit.fr Journée NEPTUNE 2004 - Paris - 24 juin 2004

Plan de la présentation Vérification statique de modèles Métamodèle UML Exemple de règles Outil et expérimentation Journée NEPTUNE 2004 - Paris - 24 juin 2004

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 Un modele UML comprend plusieurs vues d'un systeme ainsi que plusieurs raffinements d'une meme vue. Verifier la correction d'un modele UML regroupe donc plusieurs problematiques: - la verification de la consistence d'une vue. Ceci suppose la definition d'interpretations du sous langage utilise pour representer cette vue et de conditions necessaires a l'exitence d'interpretations. - la verification de la coherence entre differentes vues exprimees dans des sous-langages differents. Il faut alors definir un domaine semantique commun sur lequel sont definies les interpretations des sous-langages. - la verification de relations de raffinement permettant de deriver a partir d'une vue abstraite une vue plus detaillee. Verifier la coherence de ces vues suppose la definition d'un ordre partiel sur les vues exprimees dans un meme formalisme. Ces verifications doivent etre aussi automatiques que possible et ne peuvent donc etre que partielles en ne testant que des conditions necessaires, d'ordre syntaxique, et donc exprimables par des contraintes sur le metamodele UML. Une etape ulterieure prenant en compte des criteres semantiques conduirait a la production d'obligations de preuve devant etre verifiees a l'aide d'outils de preuve assistee. Journée NEPTUNE 2004 - Paris - 24 juin 2004

Vérification Statique de Modèles (2) Exemple Lucie: Personne Louis: Personne Jean: Personne Anne: Personne parents Personne 0..2 enfants * Détection tardive Retour en phase de conception Génération de Code Génération de plans de tests Tests Journée NEPTUNE 2004 - Paris - 24 juin 2004

UML = Notation Graphique + Langage de Spécification OCL 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 Journée NEPTUNE 2004 - Paris - 24 juin 2004

Métamodèle UML (2) Langage de spécification OCL Langage fonctionnel Langage basé sur la logique du premier ordre Personne.allInstances->isUnique(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->isUnique(c : Class | c.name) Définition de règles de bonne formation sur le métamodèle pour restreindre l'ensemble des instances valides Journée NEPTUNE 2004 - Paris - 24 juin 2004

Exemples de vérification de modèles Tout scénario est initié par un acteur (1) : SysAEtu : Classe 2 : Acteur Cas d'utilisation 1 : SysAEtu : Classe 2 : Acteur Cas d'utilisation 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 Journée NEPTUNE 2004 - Paris - 24 juin 2004

Exemples de vérification de modèles Tout scénario est initié par un acteur (2) package Behavioral_Elements::Collaborations context Collaboration inv FirstStimulusFromAnActor : let interactionFromActor : Set(Message) = self.ownedElement->select(m : ModelElement | m.oclIsKindOf(Message)). oclAsType(Message)->select(m : Message | m.conformingStimulus.sender.classifier-> exists(c : Classifier | c.oclIsKindOf(Actor)))->asSet in self.ownedElement->select(m : ModelElement | m.oclIsKindOf(Actor))->notEmpty implies self.interactionFromActor->exists(m1 : Message | m1.allPredecessors-> reject(m2 : Message | m2.conformingStimulus.sender=m2.conformingStimulus.receiver and m2.conformingStimulus.sender.classifier.stereotype.name-> exists(n : String | n="SystemeAEtudier" ))->isEmpty) endpackage Journée NEPTUNE 2004 - Paris - 24 juin 2004

Exemples de vérification de modèles Tout scénario est initié par un acteur (3)   Namespace ( from core) + namespace * 0..1 ownedElement Collaboration from Collaborations) ModelElement name : Name Actor useCases) Instance Common_ Behavior) conformingStimulus playedRole Stimulus Common_Behavior ) Classifier 1 sender +classifier 1..* Message Stereotype ( from Extension Mechanisms) icon : Geometry baseClass Name [*] + extendedElement stereotype * 1 receiver predecessor successor   Evaluation de la Fonction let    Evaluation du corps de la règle    Journée NEPTUNE 2004 - Paris - 24 juin 2004

Envoyés = {Stimuli consommés par le “SystèmeAEtudier"} Exemples de vérification de modèles Chaque acteur interagit au moins dans un scénario avec l’entité “SystèmeAEtudier” (1) : SysAEtu : Acteur 1 Cas d'utilisation 1 : Acteur 2 Cas d'utilisation 1 : Acteur 2 : Acteur 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 Journée NEPTUNE 2004 - Paris - 24 juin 2004

Exemples de vérification de modèles Chaque acteur interagit au moins dans un scénario avec l’entité “SystèmeAEtudier” (2) package Behavioral_Elements::Use_Cases context Actor inv AnyPassiveActor: Stimulus.allInstances->select(s : Stimulus | (s.receiver.classifier.stereotype.name->exists(n:String | n="SystèmeAEtudier"))).sender.classifier-> union( (s.sender.classifier.stereotype.name->exists(n:String | n="SystèmeAEtudier"))).receiver.classifier)->includes(self) endpackage Journée NEPTUNE 2004 - Paris - 24 juin 2004

(from Common_Behavior) Exemples de vérification de modèles Chaque acteur interagit au moins dans un scénario avec l’entité “SystèmeAEtudier” (3)      1 * +classifier 1..* Classifier (from core) Instance (from Common_Behavior) Stimulus +receiver +sender Actor (from UseCases)   Influence de la navigabilité des associations dans l'expression des règles Journée NEPTUNE 2004 - Paris - 24 juin 2004

Exemples de vérification de modèles Le graphe d’associations des classes est acyclique (1) +rCl1 Classe 1 Classe 3 * Classe 2 +rCl31 +rCl32 +rCl2 +rCl33 +rCl4 Algorithme : Pour chaque sommet S du graphe orienté G = (Classes, participants) vérifier S DescendantsG(S) Fin pour Journée NEPTUNE 2004 - Paris - 24 juin 2004

Exemples de vérification de modèles Le graphe d’associations des classes est acyclique (2) package Foundation::Core context Class inv AssCircularityClosure : let participants : Set(Class)= self.allOppositeAssociationEnds-> select(ae : AssociationEnd | ae.isNavigable).participant. oclAsType(Class)->asSet() in self.participants->closure(cl : Class | cl.participants)->excludes(self) endpackage Journée NEPTUNE 2004 - Paris - 24 juin 2004

Exemples de vérification de modèles Le graphe d’associations des classes est acyclique (3)  1 * Classifier (from core) +participant +specification AssociationEnd (from Core) isNavigable : Boolean ordering : OrderingKind aggregation : AggregationKind +associaiton +specifiedEnd Class   Evaluation de la Fonction let Evaluation de la fermeture transitive Journée NEPTUNE 2004 - Paris - 24 juin 2004

Exemples de vérification de modèles L’hé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 Foundation::Core context Class inv NoMultipleClassInheritance: self.generalization.parent->select(c : Class | c.oclIsKindOf(Class))->size <= 1 endpackage Journée NEPTUNE 2004 - Paris - 24 juin 2004

Exemples de vérification de modèles L’héritage entre classes est simple (2)  * 1 GeneralizaleElement (from core) +specialization +generalization Generalization (from Core) discriminator : Name +parent +child Classifier isRoot : Boolean isLeaf : Boolean isAbstract : Boolean Class isActive : Boolean  Journée NEPTUNE 2004 - Paris - 24 juin 2004

Outil et expérimentation (1) L'outil NEPTUNE de validation Métamodèle au format XMI Règles OCL Export XMI Analyseur XMI API Vérificateur Outils UML Modèle UML1.4 au format XMI 1.1 Diagnostic Journée NEPTUNE 2004 - Paris - 24 juin 2004

Outil et expérimentation (2) Contexte de l’expé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 Journée NEPTUNE 2004 - Paris - 24 juin 2004

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 Journée NEPTUNE 2004 - Paris - 24 juin 2004

Conclusion et perspectives En conclusion Validation utilisant un ensemble conséquent de règles Nécessité d’enrichir les modèles UML par des spécifications OCL Nécessité d’étendre ces expérimentations à d’autres domaines Perspectives Définition d'un langage de navigation plus abordable pour l’analyste 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) Journée NEPTUNE 2004 - Paris - 24 juin 2004