1 PAGE D'ACCUEIL DU COURS La version finalisée, largement enrichie et corrigée
1 PAGE D'ACCUEIL DU COURS La version finalisée, largement enrichie et corrigée de cette première ébauche de cours est parue, dans la collection Info+ chez les éditions Ellipses, sous le titre UML 2 - de l'apprentissage à la pratique (cours et exercices) (FNAC, amazon.fr) UML 2 Laurent AUDIBERT Avant-propos Les techniques de programmation n’ont cessé de progresser depuis l’époque de la programmation en langage binaire (cartes perforées, switch) à nos jours. Cette évolution a toujours été dictée par le besoin de concevoir et de maintenir des applications toujours plus complexes. La programmation par cartes perforées, switch ou câblage (de 1800 à 1940) a ainsi fait place à des techniques plus évoluées, comme l’assembleur (1947), avec l’arrivée de l’ordinateur électronique né des besoins de la guerre. Des langages plus évolués ont ensuite vu le jour comme Fortran en 1956 ou Cobol en 1959. Jusque là, les techniques de programmation étaient basées sur le branchement conditionnel et inconditionnel (goto) rendant les programmes importants extrêmement difficiles à développer, à maîtriser et à maintenir. La programmation structurée (Pascal en 1970, C en 1972, Modula et Ada en 1979, …) a alors vu le jour et permis de développer et de maintenir des applications toujours plus ambitieuses. L’algorithmique ne se suffisant plus à elle seule à la fin des années 1970, le génie logiciel est venu placer la méthodologie au cœur du développement logiciel. Des méthodes comme Merise (1978) se sont alors imposées. La taille des applications ne cessant de croître, la programmation structurée a également rencontré ses limites, faisant alors place à la programmation orientée objet (Simula 67 en 1967, Smalltalk en 1976, C++ en 1982, Java en 1995, …). La technologie objet est donc la conséquence ultime de la modularisation dictée par la maîtrise de la conception et de la maintenance d’applications toujours plus complexes. Cette nouvelle technique de programmation a nécessité la conception de nouvelles méthodes de modélisation. UML (Unified Modeling Language en anglais, soit langage de modélisation objet unifié) est né de la fusion des trois méthodes qui s’imposaient dans le domaine de la modélisation objet au milieu des années 1990 : OMT, Booch et OOSE. D’importants acteurs industriels (IBM, Microsoft, Oracle, DEC, HP, Rational, Unisys etc.) s’associent alors à l’effort et proposent UML 1.0 à l’OMG (Object Management Group) qui l’accepte en novembre 1997 dans sa version 1.1. La version d’UML en cours en 2008 est UML 2.1.1 qui s’impose plus que jamais en tant que langage de modélisation standardisé pour la modélisation des logiciels. Ce document constitue le support du cours d’UML 2 dispensé aux étudiants du département d’informatique de l’institut universitaire de technologie (IUT) de Villetaneuse en semestre décalé. Ce support a été réalisé en utilisant les ouvrages cités en bibliographie. Il est en partie basé sur le livre de [7] qui constitue une bonne introduction au langage UML. Aomar Osmani est à l’origine du cours d’UML dans notre IUT. 2 [27], [5], [3] [26] et [16] ont également été largement utilisés. [27] est un ouvrage de référence assez complet et contient un dictionnaire détaillé de la terminologie UML 2.0. [5], également écrit par les créateurs du langage UML, est un guide d’apprentissage complétant bien le premier ouvrage. [16] est un cours d’UML 2.0 bien expliqué et plus complet et détaillé que [7] mais, en contrepartie, moins accessible. [3] constitue une approche pratique et critique d’UML très intéressante. [25] constitue une excellente approche concrète d’UML comportant des exercices corrigés de très bonne facture que nous reprenons parfois dans les travaux dirigés de ce cours. Pascal Roques est probablement l’un des auteurs les plus prolifique [23, 26, 24, 25] et compétant concernant la mise en œuvre d’UML. Agréable à lire, [28] s’intéresse à la place de l’informatique dans notre société et plus particulièrement dans l’entreprise. Enfin, diverses sources trouvées sur Internet, inépuisable source d’information en perpétuel renouvellement, m’ont également été d’un grand secours. Parmi ces dernières, certaines sont incontournables, comme le cours de [21] ou encore le site [9]. Table des matières Chapitre 1 Introduction à la modélisation objet o 1.1 Le génie logiciel 1.1.1 L’informatisation 1.1.2 Les logiciels 1.1.3 Le génie logiciel 1.1.4 Notion de qualité pour un logiciel o 1.2 Modélisation, cycles de vie et méthodes 1.2.1 Pourquoi et comment modéliser ? 1.2.2 Le cycle de vie d’un logiciel 1.2.3 Modèles de cycles de vie d’un logiciel 1.2.4 Méthodes d’analyse et de conception o 1.3 De la programmation structurée à l’approche orientée objet 1.3.1 Méthodes fonctionnelles ou structurées 1.3.2 L’approche orientée objet 1.3.3 Approche fonctionnelle vs. approche objet 1.3.4 Concepts importants de l’approche objet 1.3.5 Historique la programmation par objets o 1.4 UML 1.4.1 Introduction 1.4.2 Histoire des modélisations par objets 1.4.3 UML en œuvre 1.4.4 Comment présenter un modèle UML ? Chapitre 2 Diagramme de cas d’utilisation o 2.1 Introduction o 2.2 Éléments des diagrammes de cas d’utilisation 2.2.1 Acteur 2.2.2 Cas d’utilisation 2.2.3 Représentation d’un diagramme de cas d’utilisation o 2.3 Relations dans les diagrammes de cas d’utilisation 2.3.1 Relations entre acteurs et cas d’utilisation 2.3.2 Relations entre cas d’utilisation 2.3.3 Relations entre acteurs 3 o 2.4 Notions générales du langage UML 2.4.1 Paquetage 2.4.2 Espace de noms 2.4.3 Classeur 2.4.4 Stéréotype 2.4.5 Note o 2.5 Modélisation des besoins avec UML 2.5.1 Comment identifier les acteurs ? 2.5.2 Comment recenser les cas d’utilisation ? 2.5.3 Description textuelle des cas d’utilisation 2.5.4 Remarques Chapitre 3 Diagramme de classes o 3.1 Introduction o 3.2 Les classes 3.2.1 Notions de classe et d’instance de classe 3.2.2 Caractéristiques d’une classe 3.2.3 Représentation graphique 3.2.4 Encapsulation, visibilité, interface 3.2.5 Nom d’une classe 3.2.6 Les attributs 3.2.7 Les méthodes 3.2.8 Classe active o 3.3 Relations entre classes 3.3.1 Notion d’association 3.3.2 Terminaison d’association 3.3.3 Association binaire et n-aire 3.3.4 Multiplicité ou cardinalité 3.3.5 Navigabilité 3.3.6 Qualification 3.3.7 Classe-association 3.3.8 Agrégation et composition 3.3.9 Généralisation et Héritage 3.3.10 Dépendance o 3.4 Interfaces o 3.5 Diagramme d’objets 3.5.1 Présentation 3.5.2 Représentation 3.5.3 Relation de dépendance d’instanciation o 3.6 Élaboration et implémentation d’un diagramme de classes 3.6.1 Élaboration d’un diagramme de classes 3.6.2 Implémentation en Java 3.6.3 Implémentation en SQL Chapitre 4 Object constraint langage (OCL) o 4.1 Expression des contraintes en UML 4.1.1 Introduction 4.1.2 Écriture des contraintes 4.1.3 Représentation des contraintes et contraintes prédéfinies o 4.2 Intérêt d’OCL 4.2.1 OCL – Introduction 4.2.2 Illustration par l’exemple o 4.3 Typologie des contraintes OCL 4 4.3.1 Diagramme support des exemples illustratifs 4.3.2 Contexte (context) 4.3.3 Invariants (inv) 4.3.4 Préconditions et postconditions (pre, post) 4.3.5 Résultat d’une méthode (body) 4.3.6 Définition d’attributs et de méthodes (def et let…in) 4.3.7 Initialisation (init) et évolution des attributs (derive) o 4.4 Types et opérations utilisables dans les expressions OCL 4.4.1 Types et opérateurs prédéfinis 4.4.2 Types du modèle UML 4.4.3 OCL est un langage typé 4.4.4 Collections o 4.5 Accès aux caractéristiques et aux objets 4.5.1 Accès aux attributs et aux opérations (self) 4.5.2 Navigation via une association 4.5.3 Navigation via une association qualifiée 4.5.4 Navigation vers une classe association 4.5.5 Navigation depuis une classe association 4.5.6 Accéder à une caractéristique redéfinie (oclAsType()) 4.5.7 Opérations prédéfinies sur tous les objets 4.5.8 Opération sur les classes o 4.6 Opérations sur les collections 4.6.1 Introduction : «.», «->», «::» et self 4.6.2 Opérations de base sur les collections 4.6.3 Opération sur les éléments d’une collection 4.6.4 Règles de précédence des opérateurs o 4.7 Exemples de contraintes Chapitre 5 Diagramme d’états-transitions o 5.1 Introduction au formalisme 5.1.1 Présentation 5.1.2 Notion d’automate à états finis 5.1.3 Diagrammes d’états-transitions o 5.2 État 5.2.1 Les deux acceptions du terme état 5.2.2 État initial et final o 5.3 Événement 5.3.1 Notion d’évènement 5.3.2 Événement de type signal (signal) 5.3.3 Événement d’appel (call) 5.3.4 Événement de changement (change) 5.3.5 Événement temporel (after ou when) o 5.4 Transition 5.4.1 Définition et syntaxe 5.4.2 Condition de garde 5.4.3 Effet d’une transition 5.4.4 Transition externe 5.4.5 Transition d’achèvement 5.4.6 Transition interne o 5.5 Point de choix 5.5.1 Point de jonction 5.5.2 Point de décision 5 o 5.6 États composites 5.6.1 Présentation 5.6.2 Transition 5.6.3 État historique 5.6.4 Interface : les points de connexion 5.6.5 Concurrence Chapitre 6 Diagramme d’activités o 6.1 Introduction au formalisme 6.1.1 Présentation 6.1.2 Utilisation courante o 6.2 Activité et Transition 6.2.1 Action 6.2.2 Activité 6.2.3 Groupe d’activités 6.2.4 Nœud d’activité 6.2.5 Transition o 6.3 Nœud exécutable 6.3.1 Nœud d’action 6.3.2 Nœud d’activité structurée uploads/Litterature/ cour-uml2-pdf.pdf
Documents similaires










-
31
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 22, 2021
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 3.5032MB