Modélisation Objet avec Modélisation Objet avec
UML UML
La genèse d’UML La genèse d’UML Un survol d’UML Un survol d’UML La notation UML La notation UML
D’après le cours de Pierre D’après le cours de Pierre--Alain MullerAlain Muller
Genèse : Complexité des logiciels Genèse : Complexité des logiciels
Les tendances Les tendances
Programmation sans programmer Programmation sans programmer Micro
Micro--architectures (architectures (patternspatterns)) Importance de l’architecture Importance de l’architecture Informatique distribuée Informatique distribuée Multimédia
Multimédia
De quoi a
De quoi a--tt--on besoin ? on besoin ?
Un langage de modélisation Un langage de modélisation
Notation claire Notation claire Sémantique précise Sémantique précise
Un processus de génie logiciel Un processus de génie logiciel
Langage de modélisation Langage de modélisation
Générique Générique Expressif Expressif
Flexible (configurable, extensible) Flexible (configurable, extensible) Syntaxe et sémantique
Syntaxe et sémantique
Unification par convergence aujourd’hui Unification par convergence aujourd’hui
Processus Processus
Générique Générique
Impossible à standardiser Impossible à standardiser
Personnes, applications, cultures...
Personnes, applications, cultures...
Cadre configurable Cadre configurable
Unification par convergence dans le futur Unification par convergence dans le futur
Comment modéliser ? Comment modéliser ?
La manière de modéliser influence fortement La manière de modéliser influence fortement
La compréhension du problème La compréhension du problème La solution
La solution
Il n’existe pas de modèle universel Il n’existe pas de modèle universel
Jeux de modèles faiblement couplés Jeux de modèles faiblement couplés Multiplicité des niveaux d’abstraction Multiplicité des niveaux d’abstraction
Les meilleurs modèles sont en prise sur le monde réel Les meilleurs modèles sont en prise sur le monde réel
Evolution des méthodes Evolution des méthodes
D’abord des méthodes structurées D’abord des méthodes structurées
A partir des années 80 émergence des méthodes A partir des années 80 émergence des méthodes orientées
orientées--objetsobjets
Les principales méthodes objets convergent Les principales méthodes objets convergent
Différences superficielles Différences superficielles Notation, terminologie Notation, terminologie
L’expérience permet de séparer le bon grain de L’expérience permet de séparer le bon grain de l’ivraie
l’ivraie
La prolifération des méthodes La prolifération des méthodes
objet objet
Une cinquantaine de méthodes objet dans les Une cinquantaine de méthodes objet dans les cinq dernières années
cinq dernières années Confusion, attentisme Confusion, attentisme
Consensus autour d’idées communes Consensus autour d’idées communes
Objets, classes, associations, sous
Objets, classes, associations, sous--systèmes, cas systèmes, cas d’utilisation
d’utilisation
Rapprochement de Booch et OMT Rapprochement de Booch et OMT
Booch’93 et OMT
Booch’93 et OMT--2 sont plus ressemblantes que 2 sont plus ressemblantes que différentes
différentes
Booch’93 adopte les associations, les diagrammes Booch’93 adopte les associations, les diagrammes d'Harel, les traces d’événements
d'Harel, les traces d’événements OMT
OMT--2 introduit les flots de messages et retire les 2 introduit les flots de messages et retire les diagrammes de flot de données
diagrammes de flot de données Booch
Booch--93 construction93 construction OMT
OMT--2 analyse et abstraction2 analyse et abstraction
L’unification des méthodes L’unification des méthodes
La guerre des méthodes ne fait plus avancer la La guerre des méthodes ne fait plus avancer la technologie des objets
technologie des objets
Recherche d’un langage commun unique Recherche d’un langage commun unique
Utilisable par toutes les méthodes Utilisable par toutes les méthodes
Adapté à toutes les phases du développement Adapté à toutes les phases du développement Compatible avec toutes les techniques de Compatible avec toutes les techniques de réalisation
réalisation
Différentes sortes de systèmes Différentes sortes de systèmes
Logiciels Logiciels
Ingénierie des logiciels Ingénierie des logiciels Logiciels et matériels Logiciels et matériels
Ingénierie des systèmes Ingénierie des systèmes Personnes
Personnes
Ingénierie des affaires Ingénierie des affaires
Unification sur plusieurs domaines Unification sur plusieurs domaines d’applications
d’applications
La notation unifiée La notation unifiée
Basée sur les méthodes de BOOCH, OMT et OOSE Basée sur les méthodes de BOOCH, OMT et OOSE Influencée par les bonnes idées des autres Influencée par les bonnes idées des autres méthodes
méthodes
Mûrie par le travail en commun Mûrie par le travail en commun
Principales influences Principales influences
Souvent une histoire imbriquée Souvent une histoire imbriquée Booch
Booch Catégories et sousCatégories et sous--systèmessystèmes Embley
Embley Classes singletons et objets compositesClasses singletons et objets composites Fusion
Fusion Description des opérations, numérotation des messagesDescription des opérations, numérotation des messages Gamma, et al.
Gamma, et al.FrameworksFrameworks, , patternspatterns, et notes, et notes Harel
Harel Automates (Automates (StatechartsStatecharts)) Jacobson
Jacobson Cas d’utilisation (Cas d’utilisation (use casesuse cases)) Meyer
Meyer PréPré-- et postet post--conditionsconditions Odell
Odell Classification dynamique, éclairage sur les événementsClassification dynamique, éclairage sur les événements OMT
OMT AssociationsAssociations Shlaer
Shlaer--MellorMellorCycle de vie des objetsCycle de vie des objets Wirfs
Wirfs--Brock Brock Responsabilités (CRC)Responsabilités (CRC)
Portée de la notation unifiée Portée de la notation unifiée
Standardiser les artefacts du développement Standardiser les artefacts du développement
Modèles, notation et diagrammes Modèles, notation et diagrammes Ne pas standardiser le processus Ne pas standardiser le processus
Dirigé par les cas d’utilisation Dirigé par les cas d’utilisation Centré sur l’architecture Centré sur l’architecture Itératif et incrémental Itératif et incrémental
Les objectifs Les objectifs
Représenter des systèmes entiers Représenter des systèmes entiers
Etablir un couplage explicite entre les concepts et Etablir un couplage explicite entre les concepts et les artefacts exécutables
les artefacts exécutables
Prendre en compte les facteurs d’échelle Prendre en compte les facteurs d’échelle Créer un langage de modélisation utilisable à la Créer un langage de modélisation utilisable à la fois par les humains et les machines
fois par les humains et les machines
Approche retenue Approche retenue
Identifier la sémantique des concepts de base Identifier la sémantique des concepts de base Classer les concepts
Classer les concepts Construire un métamodèle Construire un métamodèle Choisir une notation graphique Choisir une notation graphique
Regrouper par niveau d’abstraction, complexité Regrouper par niveau d’abstraction, complexité et domaine
et domaine
Métamodèle Métamodèle
Identification des concepts fondamentaux Identification des concepts fondamentaux
Définition de la sémantique de ces concepts Définition de la sémantique de ces concepts Choix d’une représentation graphique Choix d’une représentation graphique Métamodélisation d’UML avec UML Métamodélisation d’UML avec UML
Description formelle des éléments de modélisation Description formelle des éléments de modélisation Austère, pas pédagogique
Austère, pas pédagogique Méthodologistes Méthodologistes Constructeurs d’outils Constructeurs d’outils
Les modèles et les vues Les modèles et les vues
Un modèle est un quanta de développement Un modèle est un quanta de développement
Cohérence interne forte Cohérence interne forte
Couplage faible avec les autres modèles Couplage faible avec les autres modèles Relié à une phase de développement Relié à une phase de développement Une vue est une projection au travers des Une vue est une projection au travers des éléments de modélisation
éléments de modélisation Graphique
Graphique
Peut englober plusieurs modèles Peut englober plusieurs modèles
Exemples de modèles Exemples de modèles
Un système possède plusieurs modèles Un système possède plusieurs modèles
Les étapes Les étapes
Octobre 95 Octobre 95
Unified Method Unified Method V0.8V0.8 Octobre 96
Octobre 96 UML V0.91 (
UML V0.91 (The Unified Modeling Language for ObjectThe Unified Modeling Language for Object-- Oriented Development
Oriented Development)) Janvier 97
Janvier 97
UML 1.0 est soumise à l’OMG UML 1.0 est soumise à l’OMG Septembre 97
Septembre 97
Approbation par le comité technique de l’OMG Approbation par le comité technique de l’OMG
Evolution de UML
Evolution de UML Acceptation de UML Acceptation de UML
UML est dans le domaine public UML est dans le domaine public Soutenue par le marché Soutenue par le marché
Microsoft, HP, IBM, Oracle...
Microsoft, HP, IBM, Oracle...
Successeur naturel des méthodes de Booch, OMT Successeur naturel des méthodes de Booch, OMT et OOSE
et OOSE
UML est le fruit de l’expérience et des besoins de UML est le fruit de l’expérience et des besoins de la communauté des utilisateurs
la communauté des utilisateurs
Les partenaires Les partenaires
Courant 96 UML devient un enjeu stratégique Courant 96 UML devient un enjeu stratégique Consortium de partenaires
Consortium de partenaires DEC, HP, i
DEC, HP, i--Logix, Intellicorp, IBM, ICON Logix, Intellicorp, IBM, ICON Computing, MCI Systemhouse, Microsoft, Oracle, Computing, MCI Systemhouse, Microsoft, Oracle, Rational Software, TI et Unisys
Rational Software, TI et Unisys
IBM, Platinum, Data Access Technologies, Reich IBM, Platinum, Data Access Technologies, Reich Technologies, Softeam, Taskon A/S
Technologies, Softeam, Taskon A/S
Domaines d’application Domaines d’application
Applicable à tout développement logiciel (à objets)
Systèmes d’information, SIG...
Systèmes temps réels, embarqués...
Interfaces, simulateurs, calcul Applications diverses
Couverture complète du cycle de développement.
Analyse des besoins
En résumé En résumé
UML est une notation, pas une méthode UML est une notation, pas une méthode UML est un langage de modélisation objet UML est un langage de modélisation objet UML convient pour toutes les méthodes objet UML convient pour toutes les méthodes objet UML est dans le domaine public
UML est dans le domaine public
Survol : Eléments de modélisation Survol : Eléments de modélisation
Briques pour capturer la sémantique des Briques pour capturer la sémantique des applications
applications
Pas accessibles directement aux utilisateurs Pas accessibles directement aux utilisateurs Représentation interne (outils)
Représentation interne (outils)
Représentation externe (échange entre outils) Représentation externe (échange entre outils)
Eléments de modélisation Eléments de modélisation
Les objets Les objets
Une entité d’un monde réel ou virtuel Une entité d’un monde réel ou virtuel Les classes
Les classes
La description d’un ensemble d’objets La description d’un ensemble d’objets Les états
Les états
Une étape de la vie d’un objet Une étape de la vie d’un objet Les tâches
Les tâches
Un flot de contrôle indépendant Un flot de contrôle indépendant
Eléments de modélisation Eléments de modélisation
Les cas d’utilisation Les cas d’utilisation
Une manière dont un acteur utilise le système Une manière dont un acteur utilise le système Les collaborations
Les collaborations
La réalisation d’un cas d’utilisation par une société La réalisation d’un cas d’utilisation par une société d’objets collaborants
d’objets collaborants Les micro
Les micro--architectures (architectures (patternspatterns))
Un générateur pour la structure et l’interaction Un générateur pour la structure et l’interaction d’une société d’objets
d’une société d’objets
Eléments de modélisation Eléments de modélisation
Les composants Les composants
Un module contenant des entités d’implémentation Un module contenant des entités d’implémentation Les noeuds
Les noeuds
Un dispositif matériel capable d’exécuter du logiciel Un dispositif matériel capable d’exécuter du logiciel Les paquetages
Les paquetages
Une partition du modèle Une partition du modèle Les notes
Les notes
Un commentaire, une explication ou une annotation Un commentaire, une explication ou une annotation
Relations Relations
L’association L’association
Une connexion sémantique entre instances Une connexion sémantique entre instances La généralisation
La généralisation
Une relation de classification Une relation de classification La dépendance
La dépendance
L’utilisation d’un élément par un autre L’utilisation d’un élément par un autre La trace
La trace
Dépendance inter Dépendance inter--modèlesmodèles
Mécanismes communs Mécanismes communs
Les stéréotypes <<stéréotype>>
Les stéréotypes <<stéréotype>>
Extension des classes du métamodèle Extension des classes du métamodèle Les étiquettes
Les étiquettes Paire (nom, valeur) Paire (nom, valeur) Les notes
Les notes
Commentaire textuel Commentaire textuel Les contraintes {contrainte}
Les contraintes {contrainte}
Relation sémantique entre éléments Relation sémantique entre éléments
Types primitifs Types primitifs
Notation UML Notation UML
Manipulée par les utilisateurs Manipulée par les utilisateurs
Simple, intuitive, expressive, cohérente Simple, intuitive, expressive, cohérente Vues graphiques (multiples) des éléments de Vues graphiques (multiples) des éléments de modélisation
modélisation
Les diagrammes d’UML Les diagrammes d’UML
9 types de diagrammes 9 types de diagrammes
Diagrammes Diagrammes
Les diagrammes de classes Les diagrammes de classes
Les classes et les relations statiques Les classes et les relations statiques Les diagrammes d’objets
Les diagrammes d’objets Les objets et les liens Les objets et les liens Les diagrammes de séquence Les diagrammes de séquence
Vision temporelle des interactions Vision temporelle des interactions Les diagrammes de collaboration Les diagrammes de collaboration
Vision spatiale des interactions Vision spatiale des interactions
Diagrammes (suite) Diagrammes (suite)
Les diagrammes de cas d’utilisation Les diagrammes de cas d’utilisation Les acteurs et l’utilisation du système Les acteurs et l’utilisation du système Les diagrammes d’états
Les diagrammes d’états--transitionstransitions Le comportement des objets Le comportement des objets Les diagrammes d’activités Les diagrammes d’activités
Le flot de contrôle interne aux opérations Le flot de contrôle interne aux opérations
Diagrammes (suite) Diagrammes (suite)
Les diagrammes de composants Les diagrammes de composants
Les composants d’implémentation et leurs relations Les composants d’implémentation et leurs relations Les diagrammes de déploiement
Les diagrammes de déploiement
La structure matérielle et la distribution des objets La structure matérielle et la distribution des objets et des composants
et des composants