Avec l'évolution numérique et informatique, le produit logiciel est devenu de plus en plus complexe et son évolution n'à qu'accroître. Leur développement fait appel à plusieurs techniques et méthodes dont l'objectif est de respecter les délais de développement et de minimiser les coûts. En effet, depuis la crise de génie logiciel dans les années 60s, plusieurs efforts ont été inventés pour améliorer ces techniques et méthodes de développement. Toujours, dont le but de répondre aux critères imposés par le marché du logiciel. Les méthodologies Orientées objet, les langages de programmation, les outils formelles, les ateliers logiciels, sont des variantes des ces efforts.
Sommaire
ISOMMAIRE INTRODUCTION GENERALE........................................................................................................ 1 CHAPITRE I : ................................................................................................................................... 3 UML & GENIE LOGICIEL.............................................................................................................. 3 1. LE GENIE LOGICIEL .............................................................................................................. 4 1.1 DEFINITION ........................................................................................................................ 4 1.2 CRITERES DE QUALITE D'UN PRODUIT LOGICIEL ................................................... 4 1.3 CYCLE DE VIE D'UN LOGICIEL ..................................................................................... 5 1.4 MODELE DE CYCLE DE VIE D'UN PRODUIT LOGICIEL ........................................... 6 1.4.1 Modèle de cycle de vie en cascade ................................................................................ 6 1.4.2 Modèle de cycle de vie en V .......................................................................................... 6 1.4.3 Modèle de cycle de vie en spiral .................................................................................... 7 1.4.4 Modèle de cycle de vie par Incréments ......................................................................... 8 1.5 METHODES D'ANALYSE ET DE CONCEPTION ........................................................... 8 1.5.1 Méthodes fonctionnelle descendante : ........................................................................... 8 1.5.2 Méthodes orientées objet ............................................................................................... 9 2. L'APPROCHE OBJET .............................................................................................................. 9 2.1 L'OBJET ............................................................................................................................... 9 2.2 LES CLASSES .................................................................................................................... 10 2.3 L'INSTANCIATION ........................................................................................................... 10 2.4 LES RELATIONS ENTRE ASSOCIATIONS ................................................................... 10 2.5 LES MESSAGES & LA SYNCHRONISATION : ............................................................ 11 2.6 GENERALISATION ET SPECIALISATIONS ................................................................. 11 3. UNIFIED MODELING LANGUAGE.................................................................................... 12 3.1 DEFINITION ...................................................................................................................... 12 3.2 LES VUES D'UML ............................................................................................................ 13 3.3 LES ELEMENTS DU MODELE ....................................................................................... 14 3.4 MECANISMES GENERAUX ............................................................................................ 15 3.5 LES DIAGRAMMES ......................................................................................................... 16 3.5.1 Diagrammes structurels ............................................................................................... 17 3.5.2 Les diagrammes comportementaux ............................................................................. 21 3.5.3 Diagramme d'interaction (interaction diagram) .......................................................... 24 4. LE PROCESSUS UNIFIE ....................................................................................................... 28 4.1 DEFINITION ...................................................................................................................... 28 4.2 VIE DU PROCESSUS UNIFIE .......................................................................................... 29 4.3 LES TACHES D'UN CYCLE DE VIE D'UP .................................................................... 31 4.4 LES PHASES D'UN CYCLE DE VIE D'UP .................................................................... 32 CHAPITRE II : ................................................................................................................................ 34 DIAGRAMMES D'ETATS-TRANSITIONS & TRAVAUX DE FORMALISATION ................ 34 1. DIAGRAMME D'ETATS-TRANSITIONS........................................................................... 34 1.1 DEFINITION ...................................................................................................................... 34 1.2 ETATS ............................................................................................................................... 34 1.3 EVENEMENTS .................................................................................................................. 36 1.4 TRANSITIONS ................................................................................................................... 36 1.5 ETATS ET TRANSITIONS AVANCES ........................................................................... 38 1.5.1 Activités d'entrée/sortie ............................................................................................... 38 1.5.2 Transitions Internes ...................................................................................................... 38 1.5.3 Activités-Do ................................................................................................................. 38 1.5.4 Evénements déférés ..................................................................................................... 39 1.5.5 Sous-machine ............................................................................................................... 39 1.6 SOUS-ETATS ..................................................................................................................... 39 1.6.1 Sous-état séquentiel ..................................................................................................... 40 1.6.2 Sous-état Orthogonal ................................................................................................... 40 1.6.3 Etat Historique ............................................................................................................. 41 1.7 POINT DE CHOIX ............................................................................................................. 41 1.7.1 Point de Jonction .......................................................................................................... 41 1.7.2 Point de Décision ......................................................................................................... 42 1.8 TRANSITION COMPLEXES ............................................................................................ 42 1.9 SEMANTIQUE DE MACHINE D'ETAT .......................................................................... 43 2. TRAVAUX DE FORMALISATION DE DIAGRAMME D'ETATS TRANSITIONS. .... 44 2.1 LES MODELES MATHEMATIQUES .............................................................................. 44 2.2 LES SYSTEMES DE REECRITURE ................................................................................ 48 2.3 LES APPROCHES DE TRANSLATIONS ........................................................................ 50 CHAPITRE III : ............................................................................................................................... 54 LOGIQUE DE REECRITURE, MAUDE ET MODEL-CHECKING .......................................... 54 1. LES METHODES FORMELLES .......................................................................................... 54 1.1 PREUVE DE THEOREME ................................................................................................ 54 1.2 EXPLORATION DE L'ENSEMBLE DES ETATS ........................................................... 55 2. LOGIQUE DE REECRITURE ............................................................................................... 55 2.1 PRESENTATION ............................................................................................................... 55 2.2 CONCEPTS DE BASES DES THEORIES ........................................................................ 57 3. LANGAGE MAUDE ................................................................................................................ 66 3.1 PRESENTATION ............................................................................................................... 66 3.2 MODULES FONCTIONNELLES ..................................................................................... 67 3.3 MODULES SYSTEMES .................................................................................................... 68 3.4 SPECIFICATIONS ORIENTEES OBJET EN MAUDE ................................................... 68 3.5 EXECUTION DU MAUDE................................................................................................ 70 3.6 COMMANDES MAUDE ................................................................................................... 72 4. MODEL-CHECKING ET MAUDE LTL MODEL-CHECKER ........................................ 74 4.1 MODEL CHECKING ......................................................................................................... 74 4.2 STRUCTURE DE KRIPKE ET LTL .................................................................................. 74 4.3 MAUDE LTL MODEL-CHECKER ................................................................................... 76 CHAPITRE IV : ............................................................................................................................... 80 METHODE DE MODEL-CHECKING DES MODELES UML EN UTILISANT MAUDE ...... 80 1. PRESENTATION DE LA METHODE .................................................................................. 80 1.1 ELABORATION DU MODELE UML .............................................................................. 82 1.2 TRANSLATION DU MODELE UML ............................................................................... 83 1.3 DEFINITION DES PROPRIETES A VERIFIER .............................................................. 90 1.4 VERIFICATION DU MODELE ........................................................................................ 91 2. EXEMPLE I : PROBLEME DE DINER DES PHILOSOPHES ......................................... 93 2.1 MODELE UML POUR LE PROBLEME DE DINER DES PHILOSOPHES ................... 93 2.2 TRANSLATION DU MODELE UML ............................................................................... 96 2.3 DEFINITION DES PROPRIETES A VERIFIER .............................................................. 99 2.4 VÉRIFICATION DU MODÈLE ...................................................................................... 102 3. EXEMPLE II : ATM-BANK ................................................................................................. 106 3.1 MODÈLE UML ATM-BANK .......................................................................................... 106 3.2 TRANSLATION DU MODELE UML ............................................................................. 108 3.3 VERIFICATION DES COLLABORATIONS ................................................................. 110 CONCLUSION ............................................................................................................................... 114 REFERENCES .............................................................................................................................. 116 LISTE DES FIGURES FIGURE 1 MODELE EN CASCADE ........................................................................................... 6 FIGURE 2 MODELE EN V ........................................................................................................... 7 FIGURE 3 DEVELOPPEMENT EN SPIRAL ............................................................................... 7 FIGURE 4 MODELE PAR INCREMENTS .................................................................................. 8 FIGURE 5 REPRESENTATION GRAPHIQUE D'UNE APPROCHE FONCTIONNELLE ...... 9 FIGURE 6 LES VUES D'UML ................................................................................................... 13 FIGURE 7 EXEMPLES D'ELEMENTS DU MODELE ............................................................. 14 FIGURE 8 LES DIFFERENTS DIAGRAMMES D'UML 2.0 .................................................... 16 FIGURE 9 REPRESENTATION GRAPHIQUE DES CLASSES .............................................. 17 FIGURE 10 EXEMPLE DE QUELQUES RELATIONS .............................................................. 17 FIGURE 11 EXEMPLE D'UN DIAGRAMME DE CLASSE ...................................................... 17 FIGURE 12 REPRESENTATIONS GRAPHIQUES D'UN OBJET ............................................. 18 FIGURE 13 REPRESENTATION D'UN GROUPE D'OBJETS ................................................... 18 FIGURE 14 EXEMPLE D'UN DIAGRAMME D'OBJET ............................................................ 18 FIGURE 15 REPRESENTATION D'UN COMPOSANT ............................................................ 19 FIGURE 16 EXEMPLE DE DIAGRAMME DE COMPOSANTS ............................................... 19 FIGURE 17 EXEMPLE DE DIAGRAMME DE DEPLOIEMENT .............................................. 20 FIGURE 18 EXEMPLE DE DIAGRAMME DE PACKAGE ....................................................... 20 FIGURE 19 VUE INTERNE D'UN COMPOSANT ..................................................................... 21 FIGURE 20 REPRESENTATION D'UN ACTEUR ...................................................................... 21 FIGURE 21 REPRESENTATION D'UN CAS D'UTILISATION ................................................ 21 FIGURE 22 EXEMPLE D'UN DIAGRAMME DE USES CASE ................................................. 22 FIGURE 23 EXEMPLE D'UN DIAGRAMME D'ACTIVITE ..................................................... 23 FIGURE 24 EXEMPLE D'UN DIAGRAMME D'ETATS-TRANSITIONS ................................ 24 FIGURE 25 EXEMPLE D'UN DIAGRAMME DE SEQUENCE ................................................. 24 FIGURE 26 EXEMPLE D'UN DIAGRAMME DE COMMUNICATION ................................... 26 FIGURE 27 EXEMPLE D'UN DIAGRAMME DE TEMPS ......................................................... 26 FIGURE 28 EXEMPLE D'UN DIAGRAMME GLOBAL D'INTERACTION ............................ 27 FIGURE 29 DEPENDANCES ENTRE LES CAS D'UTILISATION ET LES DIFFERENTS MODELES DU PROCESSUS UNIFIE............................................ 28 FIGURE 30 UN CYCLE AVEC SES PHASES ET SES ITERATIONS ...................................... 30 FIGURE 31 LES 4 PHASES ET LES 5 WORKFLOW DANS LE PU......................................... 30 FIGURE 32 DEUX ETATS SIMPLES DANS UN DIAGRAMME D'ETATS-TRANSITIONS 35 FIGURE 33 LES TRANSITIONS .................................................................................................. 37 FIGURE 34 OPTIONS AVANCES D'ETATS-TRANSITION .................................................... 38 FIGURE 35 SOUS-ETATS SEQUENTIELS ................................................................................ 39 FIGURE 36 SOUS-ETATS CONCURRENTS .............................................................................. 40 FIGURE 37 ETAT HISTORIQUE ................................................................................................. 41 FIGURE 38 EXEMPLE D'UTILISATION DES POINTS DE JONCTION ................................. 42 FIGURE 39 EXEMPLE D'UTILISATION DE POINT DE DECISION ....................................... 42 FIGURE 40 TRANSITION COMPLEXE AVEC JOIN ET FORK .............................................. 43 FIGURE 41 CATEGORISATION DES APPROCHES SEMANTIQUES DU DIAGRAMME D'ETATS-TRANSITION .......................................................................................... 44 FIGURE 42 SESSION OUVERT DE MAUDE SOUS MS-DOS ................................................. 71 FIGURE 43 LES DIFFERENTES ETAPES DE LA METHODE DE VERIFICATION DU MODELE UML ......................................................................................................... 81 FIGURE 44 DIAGRAMMES UML UTILISES PAR LA METHODE DE VERIFICATION ..... 83 FIGURE 45 EXEMPLE DE TRANSLATION D'UNE CLASSE AU MAUDE ........................... 85 FIGURE 46 EXEMPLE DE TRANSLATION DES ETATS ........................................................ 86 FIGURE 47 EXEMPLE DE TRANSLATION DES EVENEMENTS .......................................... 87 FIGURE 48 EXEMPLE DE TRANSLATION DES TRANSITIONS .......................................... 88 FIGURE 49 PROBLEME DE DINER DES PHILOSOPHES ....................................................... 93 FIGURE 50 DIAGRAMME DE CLASSE DE PROBLEME DE DINER DES PHILOSOPHES 94 FIGURE 51 DIAGRAMME D'ETATS-TRANSITIONS DE LA CLASSE PHILOSOPHER ...... 94 FIGURE 52 DIAGRAMME D'ETATS-TRANSITIONS DE LA CLASSE FORK ...................... 94 FIGURE 53 DIAGRAMME DE COLLABORATION .................................................................. 95 FIGURE 54 DIAGRAMME DE COLLABORATION PRESENTANT UN DEADLOCK ........ 95 FIGURE 55 SPECIFICATION MAUDE POUR LA CLASSE PHILOSOPHER ET SON DIAGRAMME D'ETATS-TRANSITIONS .............................................................. 98 FIGURE 56 SPECIFICATION MAUDE QUI REPRESENTE LA CLASSE FORK ET SON DIAGRAMME D'ETATS-TRANSITIONS .............................................................. 99 FIGURE 57 SPECIFICATION GLOBALE AVEC LA PROPRIETE A VERIFIER ................. 101 FIGURE 58 RESULTAT DE MODEL-CHECKING DE QUELQUES PROPRIETES TEMPORELLES ..................................................................................................... 103 FIGURE 59 RESULTAT DE MODEL-CHECKING DE PROPRIETE D'EXCLUSION MUTUELLE ............................................................................................................ 103 FIGURE 60 RESULTAT DE MODEL-CHECKING DE PROPRIETE DE LA PRESENCE DE BLOCAGE (DEADLOCK) ..................................................................................... 103 FIGURE 61 RESULTAT DE MODEL-CHECKING DE PROPRIETE D'ABSENCE DE BLOCAGE (DEADLOCK) : UN CONTRE EXEMPLE ........................................ 104 FIGURE 62 RESULTAT DU MODEL-CHECKING DE PROPRIETE N° 8 ............................ 105 FIGURE 63 RESULTAT DU MODEL-CHECKING DE PROPRIETE N° 9 ............................ 105 FIGURE 64 DIAGRAMME DE CLASSE DU MODELE ATM / BANK................................106 FIGURE 65 DIAGRAMME D'ETAT-TRANSITION POUR LA CLASSE ATM ..................... 107 FIGURE 66 DIAGRAMME D'ETAT-TRANSITION POUR LA CLASSE BANK...............107 FIGURE 67 COLLABORATION PREVUE ............................................................108 FIGURE 68 COLLABORATION ERRONEE .........................................................108 FIGURE 69 SPECIFICATION MAUDE POUR LA CLASSE ATM ET SA MACHINE D'ETAT........................................................................................109 FIGURE 70 SPECIFICATION MAUDE POUR LA CLASSE BANK ET SA MACHINE D'ETAT........................................................................................110 FIGURE 71 SPECIFICATION MAUDE DU MODULE A VERIFIER............................111 FIGURE 72 RESULTAT DE LA VERIFICATION ...................................................112
Accédez gratuitement au plan de ce document en vous connectant.
Extraits
[...] Modular semantics for a UML statecharts diagrams kernel and its extension to multicharts and branching time model-checking. The Journal of Logic and Algebraic Programming, 51:43- D. Latella, I. Majzik, and M. Massink. Automatic verification of UML statechart diagrams using the SPIN model-checker. Formal Aspects of Computing, 11(6):637- D. Latella, I. Majzik, and M. Massink. Towards a formal operational semantics of UML statechart diagrams. In Proceedings of the 3rd International Conference on Formal Methods for Open Object-Based Distributed Systems (FMOODS'99), pages 331-347. Kluwer J. [...]
[...] Après la présentation du langage Maude. Nous s'intéressons dans la section suivante à la technique de model-checking avec Maude et au Maude LTL Model-checker CHAPITRE III Logique de réécriture, Maude et Model-Checking 4. Model-Checking et Maude LTL model-checker 4.1 Model checking Le Model-checking est une technique de vérification automatique des systèmes dynamiques. Il s'agit de construire un modèle du système à vérifier avec un formalisme donnée, généralement représenté par un automate à états fini. Ce modèle est vérifié s'il satisfait un ensemble de propriétés (une spécification) souvent formulées en logique temporelle [93]. [...]
[...] rl [marriage] : person(X, engaged) person(X, married) . Endm Les règles [birthday] et [successful-proposal] sont des exemples de règle conditionnelle de réécriture CHAPITRE III Logique de réécriture, Maude et Model-Checking 3. Langage Maude 3.1 Présentation Maude est un langage formel de spécification et de programmation déclarative basé sur une théorie mathématique de la logique de réécriture [81]. La logique de réécriture et le langage Maude sont développés par Jose meseguar et son groupe dans le laboratoire d'informatique en SRI Inetrnational. [...]
[...] eq s M + N = s + . eq max(0, = M . eq max(N, = N . eq max(s s = s max(N, . endfm une sorte une opération deux variables une équation 67 CHAPITRE III Logique de réécriture, Maude et Model-Checking 3.3 Modules Systèmes Les modules systèmes sont des théories de réécriture [83]. Ils permettent de spécifier le comportement d'un système concurrent. Les modules systèmes ajoutent à la définition des modules fonctionnels les règles de réécriture qui peuvent être conditionnels et inconditionnels. [...]
[...] Nous avons commencé le chapitre par la description syntaxique et sémantique du diagramme d'états-transitions, et nous l'avons terminé par un survol sur les travaux de formalisation de ce dernier. Nous nous somme intéressé dans le chapitre trois à la présentation de la logique de réécriture et son langage déclaratif Maude. Cette logique permet de spécifie formellement les systèmes concurrents. Nous avons donné les concepts de base de cette logique dans la deuxième partie du chapitre après la définition des méthodes formelles dans la première. La troisième partie était une description du langage Maude et son utilisation. [...]