UML T. Libourel Autour des objets T. Libourel [email protected].
-
Upload
honore-marques -
Category
Documents
-
view
110 -
download
3
Transcript of UML T. Libourel Autour des objets T. Libourel [email protected].
UML T. Libourel
PLANPLAN
Introduction– Modèles mathématiques versus modèles objets
– Systèmes et objets
– Pourquoi des méthodes ?
Approche objet – Atouts
– Historique
Concepts objet et formalisme UML– Concepts généraux
– Modèle fonctionnel
– Modèle structurel
– Modèle dynamique
Discussion
UML T. Libourel
PLANPLAN
Introduction– Modèles mathématiques versus modèles objets
– Systèmes et objets
– Pourquoi des méthodes ?
Approche objet – Atouts
– Historique
Concepts objet et formalisme UML– Concepts généraux
– Modèle fonctionnel
– Modèle structurel
– Modèle dynamique
Discussion
UML T. Libourel
Modèles mathématiques versus modèles objetsModèles mathématiques versus modèles objets
L'approche mathématique
– Représentation de types, de variables et de fonctions.
– Culture scientifique
L'approche objet
– Représentation abstraite d'entités ayant une existence matérielle
(arbre, personne) ou virtuelle (sécurité sociale, compte bancaire, ...).
– Culture implicite et philosophique
– Confluent de plusieurs disciplines informatiques
UML T. Libourel
Systèmes et objetsSystèmes et objets
Taille et complexité des systèmes
importantes et croissantes– les besoins et les fonctionnalités augmentent
– la technologie évolue rapidement
– les architectures se diversifient
Problèmes des spécifications– parfois imprécises, incomplètes, ou incohérentes
– assurer l’interface avec le métier (domaine d’application)
UML T. Libourel
Systèmes et objetsSystèmes et objets
Évolution des applications– évolution des besoins des utilisateurs
– réorientation de l'application
– évolution de l'environnement technique (matériel et logiciel)
Problèmes liés à la gestion des équipes– taille croissante des équipes
– spécialisation technique
– spécialisation métier
UML T. Libourel
• Besoin de méthodologie
Entreprise
Outils Informatiques
Pourquoi des méthodes ?Pourquoi des méthodes ?
Rien ne dicte a priori comment modéliserun système de manière pertinente
UML T. Libourel
Pourquoi des méthodes ?Pourquoi des méthodes ?
Démarche reproductible pour obtenir des
résultats fiables– Construire des modèles à partir d'éléments (concepts)
– Possibilité de représenter à partir de formalismes
– Mise en œuvre
UML T. Libourel
Pourquoi des méthodes ?Pourquoi des méthodes ?
Démarche qui distingue les étapes du
développement dans le cycle de vie du
logiciel – Modularité, réduction de la complexité, réutilisabilité,
abstraction
– Un formalisme de représentation qui facilite la
communication, l’organisation et la vérification
– Production de documents (modèles) qui facilitent les retours
sur conception et l’évolution des applications
UML T. Libourel
PLANPLAN
Introduction– Modèles mathématiques versus modèles objets
– Systèmes et objets
– Pourquoi des méthodes ?
Approche objet – Atouts
– Historique
Concepts objet et formalisme UML– Concepts généraux
– Modèle fonctionnel
– Modèle structurel
– Modèle dynamique
Discussion
UML T. Libourel
AtoutsAtouts
Universalité de l’Objetla notion d’objet, plus proche du monde réel, est compréhensible
par tous et facilite la communication entre tous les intervenants
d’un projet.
Omniprésence technique de l’Objetdans les langages de programmation, les bases de données, les
interfaces graphiques, ... et les méthodes d’analyse et de
conception.
UML T. Libourel
HistoriqueHistorique
Plus de 50 méthodes objet sont apparues durant la période 90-95: Booch, Classe-Relation, OMT, OOA, OOD, OOM, OOSE...
– Grady Booch : OOD, BOOCH'93 (Société RATIONAL) • 1987 pour ADA,
• 1990 générale
– James Rumbaugh : OMT 1990-1991 • "Object Modeling Techniques"
• General Electric
– Ivar Jacobson : Objectory 1992, • Ericsson,
• suite de OOSE "Object Oriented Software Engineering"
Regroupement de BOOCH-OMT puis Objectory
UML T. Libourel
http://www.omg.org
HistoriqueHistorique
Recherche d’un langage commun unique utilisable
par toute méthode objet– dans toutes les phases du cycle de vie,
– compatible avec les techniques de réalisation actuelles.
UML (Unified Modeling Language)
UML T. Libourel
PLANPLAN
Introduction– Modèles mathématiques versus modèles objets
– Systèmes et objets
– Pourquoi des méthodes ?
Approche objet – Atouts
– Historique
Concepts objet et formalisme UML– Concepts généraux
– Modèle fonctionnel
– Modèle structurel
– Modèle dynamique
Discussion
UML T. Libourel
Concepts générauxConcepts généraux
Un modèle est une représentation abstraite d’une réalité,
Il fournit une image simplifiée du monde réel.
Il permet – de comprendre et visualiser (en réduisant la complexité)
– de communiquer (à partir d ’un « langage » commun à travers un nombre restreint de concepts)
– de valider (contrôle de la cohérence, simuler, tester …)
UML T. Libourel
Les modèles d'UML
modèle des classes statique
modèle des états dynamique des objets
modèle des cas d'utilisation besoins utilisateur
modèle d'interaction scénarios et flots de messages
modèle de réalisation unités de travail
modèle de déploiement répartition des processus
Concepts générauxConcepts généraux
UML T. Libourel
La perception des modèles Les vues graphiques (diagrammes )
diagrammes de classesdiagrammes d'objets
diagrammes de séquencesdiagrammes de collaboration
diagrammes états-transitionsdiagrammes d'activités
diagrammes de cas d'utilisationdiagrammes de composantsdiagrammes de déploiement
Concepts générauxConcepts généraux
UML T. Libourel
VueCas d ’utilisation
Vue structurelle
Vue Architecture
(déploiement)
Vue dynamique
Définir une architecture ……. divers points de vue sur le système
Vue Implémentation
<------- Logique Physique ------>
Concepts générauxConcepts généraux
UML T. Libourel
Analyse
Tests - Maintenance Réalisation
Même formalisme lors de toutes les phases du cycle de vie
Conception
Processus incrémental
Concepts générauxConcepts généraux
UML T. Libourel
Modèle fonctionnelModèle fonctionnel
Modèles descriptifs du point de vue des utilisateurs
Scénarios fonctionnels
Focus
La manière d’utiliser le système
Les « USE CASE »
UML T. Libourel
Deux concepts
Acteur
Use case
Acteur (rôle 1)
Acteur (rôle 2)
Modèle fonctionnelModèle fonctionnel
Ex: distributeur CB
UML T. Libourel
Acteur (rôle 1)
Acteur (rôle 2)
« use »« extend »
Modèle fonctionnelModèle fonctionnel
Les cas d’utilisation peuvent être liés par
des relations– d’utilisation « use » (décomposition)
– de raffinement « extend » (traitement d’exceptions)
UML T. Libourel
En UML, le modèle structurel ou statique est décrit à
l'aide de deux sortes de diagrammes
– Diagrammes de classes
• description de tout ou d'une partie du système d'une
manière abstraite, en termes de classes, de structure et
d'associations.
– Diagrammes d'objets
• description d'exemples de configuration de tout ou partie
du système, en termes d'objets, de valeurs et de liens.
Modèle structurelModèle structurel
UML T. Libourel
Objets du monde réel Objets informatiques
État Internecaché
Comportementvisible
Les objets
Modèle structurelModèle structurel
UML T. Libourel
Comportement influe sur l'étatEtat reflète les comportements passés
Objet
Etat évolue au cours du temps
Comportement actions et réactions
Identité essence
Modèle structurelModèle structurel
UML T. Libourel
Sophie
Alain
Système
BD
Luc
: Professeur
: Discipline
Deux objetsou instances
Modèle structurelModèle structurel
UML T. Libourel
Première abstraction
Une classe peut être vue
– la description en intension d'un groupe d'objets
• ayant même structure (même ensemble d'attributs),
• ayant même comportement (mêmes opérations),
• ayant une sémantique commune.
– la « génitrice » des objets ou instances
– le « conteneur » (extension) de toutes ses instances
Modèle structurelModèle structurel
UML T. Libourel
Classe
Attributs (propriétés)
Voiture
type : stringmarque : stringcouleur : string
titine :Voiture
type =205Peugeotrouge
Instance
Valeurs d'attributs (État)
« Est-instance-de »
Modèle structurelModèle structurel
UML T. Libourel
Voiture
type : stringmarque : stringcouleur : string
repeindre(c: Couleur)déplacer (d : longueur)
Opérations et méthodes
Méthodes
Implémentations
nom de la classe
attributs
opérations
Modèle structurelModèle structurel
UML T. Libourel
Représentation graphique : « les boites » (à
différents niveaux de détail)
Les types sont optionnels et ne figent pas les
choix d'implémentation
La description des opérations sera complétée
dans les phases de conception
NomClasse2nomAttribut1 : type1nomAttribut2 : type2
nomOpération1()nomOpération2()
NomClasse1
Modèle structurelModèle structurel
UML T. Libourel
Un objet est instance d'une (seule) classe :– il se conforme à la description que celle-ci fournit,
– il admet une valeur pour chaque attribut déclaré à son attention dans la classe,
– il est possible de lui appliquer toute opération définie à son attention dans la classe.
Tout objet admet une identité qui le distingue pleinement des autres objets :
– il peut être nommé et être référencé par un nom (mais son identité ne se limite pas à ça).
Modèle structurelModèle structurel
UML T. Libourel
Association / Lien (analogie Classe / Instance)
Pays Ville
nom nom
a-pour-capitale
Association
: Paysnom=France
:Villenom = Paris
a-pour-capitale
Lien
Modèle structurelModèle structurel
UML T. Libourel
Association en général binaire (degré = 2) mais ..
Adhérent Exemplaireemprunte
DispositifDeLecture
lire
nom d'association
association binaire association ternaire
Modèle structurelModèle structurel
UML T. Libourel
Multiplicité et rôles d'une association
Société Personne
nomadresse
nomdate de nais.n°SSadresse
emploie
travaille-pour
employeur employé
chef
travailleur
encadre
* 1..*
1..*
0..1
Modèle structurelModèle structurel
UML T. Libourel
exactement 1
Classe1
0..1
Classe0..*
Classe1..*
Classe2..4
Classe2,4
au plus 1
aucun, 1 ou plusieurs (défaut)
au moins 1
de 2 à 4
2 ou 4
Multiplicité
Classe
Modèle structurelModèle structurel
UML T. Libourel
Entreprise Personne
nomadresse
nomdate de nais.adresse
quantité
Possède-des-actions
capital actionnaire
Classe association
PossessionLigne de
portefeuille
* 1..*
Modèle structurelModèle structurel
UML T. Libourel
Utilisateur Station de travail
nom nom
Autorisation
Autorisé sur
prioritédroits
Répertoire
répertoire de rattachement
1..*1..*
1..*
Modèle structurelModèle structurel
Classe association
UML T. Libourel
D ’autres « abstractions »
Modèle structurelModèle structurel
associations particulières – (composition / agrégation)
spécialisation / généralisation
UML T. Libourel
Association particulière Tout /partie
Barre titre Fond Barre AscenseurFrontière
IndicateurTitre Bouton Ferm Flèche
Fenêtre
0..2
2
Composition
Modèle structurelModèle structurel
UML T. Libourel
Agrégation
Sémantique Collection/Élément
Arbre
Département
Forêt1
1..n
Région
Pays
1
1..n
1
1..n
Modèle structurelModèle structurel
UML T. Libourel
Composition / Agrégation
Contraintes
- Exclusivité / Partage
- Dépendance / Indépendance
Propagation / Diffusion
Modèle structurelModèle structurel
UML T. Libourel
Généralisation / Spécialisation
Mécanismes d’inférences intellectuelles de
caractéristiques– Soit on affine (spécialisation)
– Soit on abstrait (généralisation)
Sémantique– Point de vue ensembliste
– Point de vue logique
Modèle structurelModèle structurel
UML T. Libourel
Personne
nom adresse
Enseignant
grade adresse enseigner
{disjoint}
Étudiant
num_carte adresse
Modèle structurelModèle structurel
Généralisation / Spécialisation
UML T. Libourel
Pompe Échangeur Réservoir
Pompe Cent. Pompe Imm. Réservoir Press.
Équipement
...
Type d'équipement
...
Type de pompe
...
Type de réservoir
Modèle structurelModèle structurel
Généralisation / Spécialisation
UML T. Libourel
Véhicule terrestre Véhicule aquatique
Auto Véhicule amphibie Bateau
Véhicule
Modèle structurelModèle structurel
Généralisation / Spécialisation multiple
UML T. Libourel
Composition/Agrégation ou généralisation ?
Modèle structurelModèle structurel
Agrégation – lien entre instances
– un arbre d'agrégation est composé d'objets qui sont parties d'un objet composite
Généralisation – lien entre classes
UML T. Libourel
Une sous-classe “hérite” des descriptions de sa super-classe :
– les déclarations d'attributs,
– les définitions d'opérations,
– les associations définies sur la super-classe,
– les contraintes (on en parle plus tard).
Une sous-classe peut redéfinir de façon plus spécialisée une partie ou la totalité de la description « héritée ».
Modèle structurelModèle structurel
Généralisation / Spécialisation
UML T. Libourel
Les contraintes
Les contraintes sont des prédicats, pouvant porter sur plusieurs éléments du modèle statique, qui doivent être vérifiés à tout instant.
Les contraintes permettent de rendre compte de détails à un niveau de granularité très fin dans un diagramme de classe. Elles peuvent exprimer des conditions ou des restrictions.
En UML, les contraintes sont exprimées sous forme textuelle, entre accolades et de préférence en OCL (Object Constraint Language).
Les contraintes sont héritées.
Modèle structurelModèle structurel
UML T. Libourel
Les contraintes: Exemples de contraintes sur associations
Chemin
Arête
*
1..*
Personne Comitépréside *1
membreDe**
{subset}
{ordered} contrainte sur extrémité
d'association
contrainte entre 2 associations
Modèle structurelModèle structurel
UML T. Libourel
actif : Real {value 0}passif : Real
Les contraintes: Exemple de contraintes à différents niveaux
contrainte sur classe
Personne
chef
subordonné
<dirige
Société
{ actif = passif }
{ Personne.employeur = Personne.chef.employeur }
employeur
* 1..* 0..10..1
contrainte sur attribut
contrainte sur 2 associations
Modèle structurelModèle structurel
UML T. Libourel
Décrit les interactions entre objets et les changements au cours du temps
- Aspects temporels, comportementaux : Contrôle
- Stimuli des objets et leurs réponses
Modèle Modèle dynamiquedynamique
UML T. Libourel
Modèle dynamiqueModèle dynamique
diagrammes de collaboration
diagrammes de séquences
diagrammes états-transitions
diagrammes d'activités (non traités)
UML T. Libourel
La communication
Systèmes informatiques : Société d'objets travaillant en synergie pour réaliser les fonctions de l'application
Communication
Client
Serveur
message
Acteur
Modèle Modèle dynamiquedynamique
UML T. Libourel
constructeursdestructeurs
sélecteursmodificateursitérateurs
Types Synchronisation
Les messages
Modèle Modèle dynamiquedynamique
asynchrone
synchrone
retour
UML T. Libourel
Diagramme de collaboration
B
C
message
A
1: M12: M2
3: M3
4: M4
6: M6
5: M5
Modèle Modèle dynamiquedynamique
UML T. Libourel
Diagramme de séquence
B CA
M1
M2
M3
M4
M6M5
Modèle Modèle dynamiquedynamique
TEMPS
UML T. Libourel
La ligne de vie
« create »
Création par le message «create»
Activation de l’objet qui exécute une opération op
Destruction par un autre objet
:C1
« destroy »
op
Modèle Modèle dynamiquedynamique
UML T. Libourel
Modèle Modèle dynamiquedynamique
Poitou:Région
France:Pays
4: m4
Bretagne:Région
LR:Région
Gard: Départ
Hérault: DépartAude:Départ
Pays
Région
Départ
….
1:Population()
1.2:Population()
1.3:Population()
1.1:Population()
1.3.1:Population() 1.3.2:Population()
1.3.3:Population()
UML T. Libourel
Modèle Modèle dynamiquedynamique
France Poitou Bretagne LR
tem
ps
A H G
Popul()
Popul()
Popul() Popul()
Popul()
Popul()
Popul()
UML T. Libourel
Événement et État
Modèle dynamiqueModèle dynamique
État d'un objet– valeurs de ses attributs et de ses liens
– au cours du temps un objet peut changer d'état
Événement– stimuli d'un objet vers un autre objet
UML T. Libourel
État 1faire : Activité 1
Événement 1 [Cond1] / Action1 (attrib) État 2
...
Diagramme d’état
Modèle Modèle dynamiquedynamique
Graphe : Nœuds (Etat) Arcs (Transitions)
UML T. Libourel
Modèle Modèle dynamiquedynamique
Initial
Final
Simple
Complexe
Créditeur
Nom état
entry/op1exit/ op2
on evt1/ op3on evt2/ op4do/ activité
au débutà la finlors d’evt
tout le temps
Activités internes
Notation des états
UML T. Libourel
Notation des arcs
Modèle Modèle dynamiquedynamique
étiquette
étiquette• événement(paramètres)• [condition]• /action
UML T. Libourel
Modèle Modèle dynamiquedynamique
Action opération instantanée, non interruptible,souvent utilisée pour faire des mises à jour de valeurs,attachée à une transition.
Envoyer un événement est une action
Activitéopération qui prend du temps, interruptible par un événement,perpétuelle ou finie,nécessairement attachée à un état.
Opération elle peut être attachée à une transition ou à un état. elle est exécutée en réponse à l'événement ou à l'état.
UML T. Libourel
Modèle Modèle dynamiquedynamique
Diagrammes d'ÉtatsEtats d’un compte bancaire
transitions gardéessous-état
Ouvert FermédemandeCréat()
Débiteuron retrait/ agioson dépôt/ augmenter solde
fermer()
Créditeuron retrait/ debiter soldeon dépôt/ augmenter solde
[Solde >=0]
[Solde < 0]
ouvert
UML T. Libourel
Modèle Modèle dynamiquedynamique
Généralisation
- permet une meilleure structuration des diagrammes d'états
Un objet dans un état du diagramme général doitêtre dans un des états du diagramme imbriqué
(relation ou entre les états)E1
E2
E5
E4E3
E6
UML T. Libourel
Modèle Modèle dynamiquedynamique
Agrégation
une classe "agrégat" aura un état défini par l'agrégation des états de ses composants.
Agrégation concurrente (relation et)
Arrêt
Portière
Marche point mort
Moteur
Ouverte
Fermée
gonflée
Marche avant
Marche arrière
Roue
crevée
Auto
Moteur portière roue
UML T. Libourel
Les packages
Modèle d’implémentationModèle d’implémentation
Un package ou sous-système est un regroupement logique de classes, associations, contraintes ..
Un sous-système est généralement défini par les services qu’il rend
Les liens entre sous-systèmes sont des liens de dépendance
Les « packages » servent à structurer une application
Ils sont utilisés dans certains LPO (Java) ce qui assure une bonne « traçabilité » de l ’analyse à l ’implémentation
UML T. Libourel
Les packages
Classes avec fort couplage « sémantique »
Liens de dépendance
Modèle Modèle d’implémentationd’implémentation
UML T. Libourel
PLANPLAN
Introduction– Modèles mathématiques versus modèles objets
– Systèmes et objets
– Pourquoi des méthodes ?
Approche objet – Atouts
– Historique
Concepts objet et formalisme UML– Concepts généraux
– Modèle fonctionnel
– Modèle structurel
– Modèle dynamique
Discussion
UML T. Libourel
Des bienfaits de l ’encapsulation ….
Proposer un service et réagir aux messages
Opérations
Données
MessagesEncapsulation
DiscussionDiscussion
UML T. Libourel
La méta-modélisation
Meta-Meta Modèle
Meta-Modèle
Modèle
Objets utilisateur
Meta-Class, Meta-Attribut, etc
Class, Attribut, etc
Parcelle, Surface, etc
A120, 50, etc
Langage pour spécifiertout métamodèle
Langage pour spécifierun modèle
Langage pour spécifierun domaine d’information
Définition spécifiqued’un domaine
DiscussionDiscussion
UML T. Libourel
UML et Merise UML et Merise
UML n’est pas une méthode comme Merise
– Ne dit rien sur le processus de mise en œuvre ; chaque
société peut proposer son processus:
• RUP « Rational Unified Process » (Rational)
• EAI (Valtech)
• MEGA Process (MEGA)
UML cible toute application informatique, alors que Merise cible les SI
DiscussionDiscussion
UML T. Libourel
Les outilsLes outils
Langages JAVA, C++, ..
Modèles UML, ...AGL
Environnement de développement:
Visual Age (IBM), Delphi, Visual J++, J Builder, VisualWorks,
Objets
SGBD-Rou
SGBD-OO
re-engineering
Squelette de code
Schéma de la base relationnelle ou objet
DiscussionDiscussion
UML T. Libourel
Outil de dialogue :– langage de représentation des modèles
– graphique et simple
– formel et normalisé (OMG)
Outil ouvert– Indépendant des langages de programmation
– Pas un processus d'élaboration des modèles
– Adaptable (stéréotype)
DiscussionDiscussion
UML T. Libourel
Livres UML (1)Livres UML (1)
Booch Grady, Rumbaugh James, and Jacobson Ivar, The
Unified Modeling Language User Guide, 0-201-57168-4,
Addison Wesley, Fall 1998, traduit : Le guide de l'utilisateur
UML, Eyrolles 2000.
Jacobson Ivar, Booch Grady and Rumbaugh James, The
Unified Software Development Process, 0-201-57169-2, Addison
Wesley, Fall 1998, traduit : Le processus unifié de
développement logiciel, Eyrolles 2000.
Rumbaugh James, Jacobson Ivar, and Booch Grady, The
Unified Modeling Language Reference Manual, 0-201-30998-X,
Addison Wesley, Fall 1998
UML T. Libourel
Livres UML (2)Livres UML (2)
– Conallen Jim, Concevoir des applications Web avec UML, Eyrolles , 2000.
– Douglass Bruce Powell, Doing Hard Time : Developping Real-Time Systems with UML, Addison Wesley, 1999.
– Eriksson , UML Toolkit, Wiley, 1997
– Fowler Martin, UML Distilled, Applying the Standard Object Modeling Language Addison Wesley, 1997
– Kettany N et al, De Merise à UML,Eyrolles , 1998
– Larman Craig, Applying UML and Patterns,Prentice Hall, 1998
– Lee R, Tepfenhart W, UML et C++, Simon et Schuste , 1998
– Lopez N, Intégrer UML dans vos projets, Eyrolles, 1997
– Muller Pierre-Alain, Modélisation objet avec UML, Eyrolles, 1997
– Roques Pascal, Vallée Franck, UML en action, Eyrolles, 2000.
– Roques Pascal, UML par la pratique, Eyrolles, 2001.
– Schmuller Joseph, Teach Yourself UML in 24 Hours, Sams Publishing, 1999
– Texel Williams, Uses cases combined with Booch/OMT/UML, Prentice Hall, 1998