![Page 1: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/1.jpg)
Méthodologie objet
UML et RUP : un survolIUP GMI 2ième année
2005/2006
M Huchard T. [email protected] [email protected]
![Page 2: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/2.jpg)
Plan
• Cours 3Modèle dynamique Modèle d’implémentation
• Cours 1IntroductionPrésentation d’UMLModèle fonctionnel (utilisation)
• Cours 2Modèle structurel
• ANNEXESProjection vers les Bases de Données Projection vers la programmationMéthodologie (RUP)
![Page 3: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/3.jpg)
Plan
• Cours 1IntroductionPrésentation d’UMLModèle fonctionnel (utilisation)
![Page 4: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/4.jpg)
Introduction
Modélisation
Produire une représentation simplifiée du monde réel pour :
• accumuler et organiser des connaissances,
• décrire un problème,
• trouver et exprimer une solution,
• raisonner, calculer.
![Page 5: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/5.jpg)
Introduction
En informatique, Résoudre le hiatus entre :
le réel
le monde informatique
• Évolutif
• Ambiguïté
• Langages codifiés
• Sémantique unique
![Page 6: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/6.jpg)
Introduction Difficultés de la modélisation
Problèmes des spécifications parfois imprécises, incomplètes, ou incohérentes
Taille et complexité des systèmes importantes et croissantes
les besoins et les fonctionnalités augmentent
la technologie évolue rapidement les architectures se diversifient assurer l’interface avec le métier (domaine d’application)
![Page 7: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/7.jpg)
É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
Introduction Difficultés de la modélisation
![Page 8: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/8.jpg)
Introduction
Les méthodes = des guides structurants
• Décomposition du travail
• Organisation des phases
• Concepts fondateurs
• Représentations semi-formelles
Assurent une démarche reproductible pour obtenir des résultats fiables
![Page 9: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/9.jpg)
Introduction
Décomposition du travail
• Phases
analyse, conception, codage, validation, etc.
• Niveaux d’abstraction
conceptuel (besoins)
logique (solution informatique abstraite)
physique (solution informatique concrète)
![Page 10: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/10.jpg)
Introduction
Organisation du travail
• Processus de développement
Phases séquentielles
Itération sur les phases
![Page 11: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/11.jpg)
Introduction
Concepts fondateurs
• Fondent l’approche du problème et l’expression de la solution
Classe, signal, état, fonction, etc.
![Page 12: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/12.jpg)
Introduction
Représentations semi-formelles
• Représentations partiellement codifiées basées sur les concepts fondateurs
diagrammes, formulaires, etc.
• Support de différentes activités
réflexion, spécification, communication,
documentation, mémorisation (trace)
![Page 13: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/13.jpg)
Une méthode d’analyse et de conception propose une démarche qui distingue les étapes du développement dans le cycle de vie du logiciel (modularité, réduction de la complexité, réutilisabilité éventuelle, abstraction)
s’appuie sur un formalisme de représentation qui facilite la communication, l’organisation et la vérification
Le langage de modélisation produit des documents (modèles) qui facilitent les retours sur conception et l’évolution des applications
Introduction
Pour résumer …
![Page 14: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/14.jpg)
Plan
• Cours 1IntroductionPrésentation d’UMLModèle fonctionnel (utilisation)
![Page 15: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/15.jpg)
• Langage de modélisation véhiculant en particulier
les concepts des approches par objets
classe, instance, classification, etc.
mais intégrant d’autres aspects
associations, fonctionnalités, événements,
états, séquences, etc.
UML - Unified Modeling LanguageUML - Unified Modeling Language
![Page 16: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/16.jpg)
• Simplicité• Facilité pour coder et réutiliser• Modèle plus proche de la réalité
–description plus précise des combinaisons
(données, opérations)–décomposition basée sur “classification naturelle”
–facile à comprendre et à maintenir• Stabilité
–de petites évolutions peuvent être prises en compte sans changements massifs
UML = Bénéficier des qualités UML = Bénéficier des qualités des approches par objetsdes approches par objets
![Page 17: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/17.jpg)
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.
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.
La portée d’UML s’explique par La portée d’UML s’explique par l’importance de l’approche par objetsl’importance de l’approche par objets
![Page 18: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/18.jpg)
Au début des années 90, une cinquantaine de méthodes objet, liées uniquement par un consensus autour d’idées communes (objets, classes, sous-systèmes, ...)
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.
Genèse d’UMLGenèse d’UML
![Page 19: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/19.jpg)
UML (Unified Modeling Language)
OOD (Booch) OMT (Rumbaugh)OOSE (Jacobson)
OOPSLA
OMG
UML
Autres
![Page 20: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/20.jpg)
Autres méthodesBooch’91 OMT-1 OOSE Partenaires
Booch’93 OMT-2
OOPSLA’95Unified Method 0.8Commentaires du
public
UML 0.9 & 0.91Juin 96 puis OOPSLA’96
UML 1.0Soumission à l’OMG - Janvier 97
UML 1.1
UML 1.2
UML 1.3
Standardisation à l’OMG - Novembre 97
Version intermédiaire non publiée
Version béta - fin 99
UML 2.02003
![Page 21: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/21.jpg)
VueCas d’utilisation
Vue structurelle
Vue architecture(déploiement)
Vue dynamique
Points de vue sur le système
Concepts généraux
Vue implémentation
<------- Logique Physique ------>
![Page 22: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/22.jpg)
Modèle Implémentation
Modèle DynamiqueModèle structurel
Quatre modèles pour concrétiser ces points de vue
Types d'objets et leurs relations
Stimuli des objets et leurs réponses
Modèle d’utilisation
Concepts généraux
ComposantsFichiers BD
Projection sur lematériel
Fonctionnalités
![Page 23: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/23.jpg)
Chaque modèle est une représentation abstraite d ’une réalité, il fournit une image simplifiée du monde réel selon un point de vue.
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 …)
Concepts généraux
![Page 24: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/24.jpg)
Diagrammes (représentations graphiques de modèles)
de classesd’instan
ces
Diagrammes
de déploiementde composants
Diagrammes
Diagrammes
de collaborationde séquences
d'états, d’activités
Diagrammes
de cas d’utilisation
Concepts généraux
![Page 25: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/25.jpg)
Analyse Conception Implémentation
Démarche uniforme sur le cycle de vie
Même notation
Concepts généraux
![Page 26: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/26.jpg)
Les diagrammes sont majoritairement des graphes
Aspects du langage
Noeuds
Chaînes de caractères
Arcs
Notes
noms, étiquettes,
mots clefs << interface >>
Contraintes
Texte libre, lge prog. OCL, etc.
![Page 27: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/27.jpg)
Plan
• Cours 1IntroductionPrésentation d’UMLModèle fonctionnel (utilisation)
![Page 28: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/28.jpg)
Modèle d’utilisation
Les cas d’utilisation, ou « USE CASE »
• Fonctionnalités externes
• Modèles descriptifs du point de vue des utilisateurs
• Interactions avec les acteurs extérieurs
la manière d’utiliser le système
![Page 29: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/29.jpg)
Modèle d’utilisation
On part de l’analyse des besoins ….
Deux conceptsActeur toute entité extérieure au système et interagissant avec celui-ci.
acteurs humains, acteurs « machine » (système extérieur communiquant avec le système étudié)Cas d’utilisation
toute manière d’utiliser le système suite d’événements notable du point de vue de l ’utilisateur
![Page 30: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/30.jpg)
Modèle d’utilisation
Trois concepts
Acteur (rôle 1)
Acteur (rôle 2)
« communicate »
« communicate »
Acteur
Cas d’utilisation
<< actor >>
role
Frontière du système
![Page 31: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/31.jpg)
Modèle d’utilisation
Les cas d ’utilisation peuvent être liés par des relations :
- d’utilisation « include » (le cas origine contient obligatoirement l’autre)
- de raffinement « extend » (le cas origine peut être ajouté optionnellement )
Acteur (rôle 1)
Acteur (rôle 2)
« include »« extend »
- de généralisation/spécialisation « generalizes »
![Page 32: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/32.jpg)
Diagramme du « contexte statique »
système
Acteur (rôle 2)Acteur (rôle 1)
<< actor >>
role
association
0..1
0..1
0..*
Modèle d’utilisation
![Page 33: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/33.jpg)
Modèle d’utilisation
Client
GestionnaireDu stock
« include » « extend »
Commander
Décrireproduits
Procéder aupaiement
« include »
Livraison
Demandecatalogue
extension
![Page 34: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/34.jpg)
Modèle d’utilisation
Client
« include »
Commander
Décrireproduits
Procéder aupaiement
« include »
Paiement CB Paiement cash
« specializes »
![Page 35: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/35.jpg)
Modèle d’utilisation
Délimiter le système - ce qui est extérieur et qui communique avec le système- ce qui est interne au système
Définir les fonctionnalités du système du point de vue des utilisateurs
Donner une description cohérente de toutes les vues que l’on peut avoir du système
![Page 36: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/36.jpg)
Modèle d’utilisation
Descriptions complémentaires Textes, diagramme de séquences ou d’activités
Une proposition couranteSommaire d’identification
Titre, résumé, acteurs, dates création maj, version, auteurs
Description des enchaînements Pré-conditions, scénario nominal, alternatives, exceptions, post-conditions
Besoins IHMContraintes non fonctionnelles
Temps de réponse, concurrence, ressources machine, etc.
![Page 37: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/37.jpg)
Plan
• Cours 2
Modèle structurel
![Page 38: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/38.jpg)
Modèle structurel
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).
![Page 39: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/39.jpg)
Modèle structurel
Objets du monde réel Objets informatiques
État Internecaché
Comportementvisible
Les objets
![Page 40: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/40.jpg)
Modèle structurel
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
![Page 41: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/41.jpg)
Sophie
Alain
Système
BD
Luc
: Professeur
: Discipline
Deux objetsou instances
Modèle structurel
![Page 42: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/42.jpg)
Modèle structurel
Première abstraction
Une classe peut être vue comme
- la description en intension d'un groupe
d'objets ayant
• même structure (même ensemble d'attributs),
• même comportement (mêmes opérations),
• une sémantique commune.
- la « génitrice » des objets ou instances
- le « conteneur » (extension) de toutes ses
instances
![Page 43: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/43.jpg)
Classe
Attributs (propriétés)
Voiture
type : stringmarque : stringcouleur : string
titine :Voiture
type =205Peugeotrouge
Modèle structurel
Instance
Valeurs d'attributs (État)
« Est-instance-de »
![Page 44: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/44.jpg)
Classe et Attributs (propriétés)
Voiture
type : String {changeable}marque : Stringcouleur[1..*]: Couleur = blanc
Modèle structurel
[Visibilité] nom [[multiplicité]][:type][=valeur initiale][{propriétés}]
constant
addOnly
Nom de classe, expression
[0..1]
[n]
[2..*]
+ - ~ #
Couleur
blanc:Couleur
![Page 45: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/45.jpg)
ClasseAttributs de classe
Voiture
type : stringmarque : stringcouleur : stringnbrVoitures : intnbrRoues : int =4 {cst}
titine :Voiture
type =205Peugeotrouge
Modèle structurel
Instance Valeurs d'attributs (État) Sauf des attributs de classe
« Est-instance-de »
Attribut de classe ~ caractéristique partagéeRévèle souvent une modélisation à approfondir
![Page 46: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/46.jpg)
Classe
Attributs dérivés
Personne
dateNaissance : String/age : int
julie:Personne
08/05/8815
Modèle structurel
Instance
Valeurs d'attributs (État)
« Est-instance-de »
{age = date du jour – date de naissance} Peut-être une opération déguisée ? (stockage optionnel)
![Page 47: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/47.jpg)
Opérations et méthodes
Voiture
type : stringmarque : stringcouleur : string
repeindre(c: Couleur)déplacer(d : longueur) Méthodes
Implémentations
Modèle structurel
nom de la classe
attributs
opérations
Des attributs complémentaires peuvent être nécessaires
![Page 48: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/48.jpg)
Classe, opérations, méthodes
Modèle structurel
[Visibilité] nom [(paramètres)][:type retour][{propriétés}]
query
abstract[mode] param : type [=valeur défaut]
+ - ~ #
Couleur
blanc:Couleur
mode = in (par défaut), out, in/out
Voiture
repeindre(in c: Couleur=blanc)déplacer(in d : longueur)getCouleur():Couleur{query}
![Page 49: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/49.jpg)
Opérations et méthodes de classe
Modèle structurel
Datejour:intmois:intannee:intnomDesMois[12]:String={« janvier », « fevrier » ..}
getJour():int………getFormatEtendu():String……..getNomMois(in i:int)
Opération/méthode de classe
Elle ne s’applique pas à une instance
![Page 50: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/50.jpg)
Opérations et méthodes de classe
Modèle structurel
Produit
Référence : StringPrixHT : floatTauxTVA : float
setPrixHT(f:float)affichePrix()……..fixeTauxTVA(f:float)
Opération/méthode de classe
Elle ne s’applique pas à une instance
![Page 51: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/51.jpg)
Modèle structurel
Un objet est instance (propre) d'une 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).
![Page 52: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/52.jpg)
Association / Lien (analogie Classe / Instance)
Pays Ville
nom nom
a-pour-capitale
Association
: Paysnom=France
:Villenom = Paris
a-pour-capitale
Lien
Modèle structurel
![Page 53: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/53.jpg)
Association / Lien (analogie Classe / Instance)
Modèle structurel
Une association est l’abstraction d’un groupe de liensdont les caractéristiques sont communes
• même type d’origine• même type de destination• même attributs
![Page 54: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/54.jpg)
Modèle structurel
Association en général binaire (degré = 2) mais ..
Adhérent Exemplaireemprunte
DispositifDeLecture
lire
nom d'associatio
n
association binaire
association ternaire
![Page 55: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/55.jpg)
Multiplicités et rôles dans une association
Bassoc
Modèle structurel
nA
- n instances de B peuvent être en relation avec une instance fixée de A
- une instance de B joue le rôle rb pour une instance de A dans lecontexte de assoc
rb
![Page 56: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/56.jpg)
Multiplicité et rôles d'une association
Société Personne
nomadresse
nomdate de nais.n°SSadresse
emploie
travaille-pour
employeur employé
chef
travailleur
encadre
Modèle structurel
* 1..*
1..*
0..1
![Page 57: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/57.jpg)
Modèle structurel
exactement 1Classe
1
0..1
Classe0..*
Classe1..*
Classe 2..4
Classe 2,4
au plus 1
aucun, 1 ou plusieurs (défaut)
au moins 1
de 2 à 4
2 ou 4
Multiplicité
Classe
![Page 58: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/58.jpg)
Conseils pour la modélisation d'association
- verbes candidats possibles
- ne pas "dériver vers la conception" (pointeurs ou attributs référentiels)
Modèle structurel
![Page 59: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/59.jpg)
Voiture
type : String {changeable}marque : String
Modèle structurel
Couleur1..*
Un attribut à valeur multiple est souvent référentiel
![Page 60: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/60.jpg)
Entreprise Personne
nomadresse
nomdate de nais.adresse
quantité
Possède-des-actions
capital actionnaire
Modèle structurelClasse association
Ligne de portefeuille
* 1..*
![Page 61: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/61.jpg)
Classe association
Utilisateur Station de travail
nom nom
Autorisation
Autorisé sur
prioritédroits
Répertoire
répertoire de rattachement
Modèle structurel
1..*
1..*
1..*
![Page 62: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/62.jpg)
Classe d’association
Modèle structurel
Une classe d'association permet de modéliser une association par une classe, donc de disposer d’attributs et d’opérations spécifiques. Les liens d'une telle association sont alors des objets instances de cette classe.À ce titre, ils admettent une valeur pour tout attribut déclaré dans la classe d'association ; et on peut leur appliquer toute opération définie dans celle-ci.En tant que classe, une classe d'association peut à son tour être associée à d'autres classes (voire à elle-même par une association réflexive).
![Page 63: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/63.jpg)
Association qualifiée
Banque Personne
num_client
est_client
Modèle structurel
Dossier_C
1..*
1..*
Banque Personnenum_client
est_client
1..*
0..1
![Page 64: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/64.jpg)
Navigabilité (pour la conception)
Polygone Pointcontient
Modèle structurel
3..*
{ordered}
Exprime un chemin d’accès d’un objet à un autre
Un polygone « connaît ses points »
Par défaut = bidirectionnel
![Page 65: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/65.jpg)
Association dérivée
Société Département
Modèle structurel
1..*
1
Personne/travaillePourLaSociété1..*
0..1
dept
dept
structure
employeur
travaillePourLeDept
{Personne.employeur=Personne.dept.structure}
0..1
1..*
![Page 66: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/66.jpg)
D’autres « abstractions »
Modèle structurel
associations particulières (composition / agrégation)
spécialisation / généralisation
![Page 67: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/67.jpg)
Agrégation
Sémantique Collection/Élément
Arbre
Site
Forêt1
1..n
Région
Pays
1
1..n
1
1..n
Modèle structurel
![Page 68: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/68.jpg)
Association particulière tout /partie
L’existence du composant est assujettie à celle de l’objet composite
DeptEnseignementUniversité
Composition
Modèle structurel
*1
![Page 69: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/69.jpg)
Composition / Agrégation
Contraintes
- Exclusivité / Partage
- Dépendance / Indépendance
Propagation / Diffusion
Modèle structurel
![Page 70: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/70.jpg)
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 structurel
![Page 71: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/71.jpg)
Généralisation / Spécialisation
Elle relie deux éléments de modèle (classes, cas d’utilisation, méthodes)
Modèle structurel
A
B
B spécialise A ; A généralise B
Définition : L’extension de A (ses instances)contient l’extension de B
A
B
Conséquence : une instance de Bpossède les propriétés de Aéventuellement sous une forme affinée
![Page 72: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/72.jpg)
Personne
nom adresse
Chercheur
grade adresse Exposer()
{disjoint}
Gestionnaire
numadresse
Modèle structurel
Généralisation / Spécialisation
![Page 73: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/73.jpg)
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 structurel
Généralisation / Spécialisation
![Page 74: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/74.jpg)
Modèle structurelGénéralisation / Spécialisation
Le discriminant : exprime un critère de classification
Salarié Vacataire Cotisant NonCotisant
Employé
RetraiteComplémentaire
TypeContrat
TypeContrat
RetraiteComplémentaire
Salarié Vacataire Cotisant NonCotisant
Employé
TypeContrat RetraiteComplémentaire
![Page 75: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/75.jpg)
Modèle structurel
Généralisation / Spécialisation multiple
Véhicule terrestre Véhicule aquatique
Auto Véhicule amphibie Bateau
Véhicule
milieumilieu
![Page 76: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/76.jpg)
Composition/Agrégation ou généralisation ?
Modè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
![Page 77: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/77.jpg)
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 structurel
![Page 78: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/78.jpg)
Modèle structurelContraintes de généralisation / Spécialisation
SalariéCdiVacataire Cotisant NonCotisant
Employé
{complet,disjoint}{incomplet}
![Page 79: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/79.jpg)
Modèle structurelContraintes de généralisation / Spécialisation
Véhicule terrestre Véhicule aquatique
Auto Véhicule amphibie Bateau
Véhicule
milieumilieu
{incomplet,chevauchement}
![Page 80: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/80.jpg)
Les contraintes
Exemples de contraintes sur associations
SOL
Strates
1..*
Personne Comité
préside *1
membreDe**
{subset}
{ordered}contrainte sur
extrémité d'association
contrainte entre 2 associations
Modèle structurel
![Page 81: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/81.jpg)
actif : Real {value 0}passif : Real
Les contraintesExemple 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 structurel
![Page 82: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/82.jpg)
Quelques compléments de notation
relation de dépendance
Sémantique de la relation de dépendance« un changement dans la spécification de B peut affecter A » (appelle, crée, utilise, instance de, etc.)
Modèle structurel
A B
FenêtreGraphique Evénement
Consommer ChoixBoisson
![Page 83: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/83.jpg)
Quelques compléments de notation Un stéréotype est un label qui permet d'apporter une précision supplémentaire à un élément de notation (classe, relation, …)
Modèle structurel
Consommer ChoixBoisson« include »
« enumeration » NomMois
JanvierFévrier ….
Personne
« crée » + Personne()+ getNom():String
![Page 84: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/84.jpg)
Classes abstraites (notation italiques ou avec mot-clef {abstract})
Modèle structurel
Une classe abstraite est une classe non instanciable, c'est à dire qu'elle n'admet pas d'instances directes.Une classe abstraite est une description d'objets destinée à être « héritée » par des classes plus spécialisées.Pour être utile, une classe abstraite doit admettre des classes descendantes concrètes.La factorisation optimale des propriétés communes à plusieurs classes par généralisation nécessite le plus souvent l'utilisation de classes abstraites.
![Page 85: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/85.jpg)
Opérations abstraites
Modèle structurel
Une opération abstraite est une opération n'admettant pas d'implémentation : au niveau de la classe dans laquelle est déclarée, on ne peut pas dire comment la réaliser.Les opérations abstraites sont particulièrement utiles pour mettre en œuvre le polymorphisme.Toute classe concrète sous-classe d'une classe abstraite doit “concrétiser” toutes les opérations abstraites de cette dernière.
![Page 86: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/86.jpg)
Classes abstraites
Modèle structurel
FormeGéométrique
dessiner()déplacer(delta : Vecteur)
centre : Point
régulier : Boolean
PolygonegrandDiam : VecteurpetitDiam : Vecteur
dessiner()
opération abstraite
classe abstraite
classe abstraite
(dessiner() est héritée et non concrétisée)
opération concrétisée
classe concrète
Polygone utile si
spécialisée
Ellipse
![Page 87: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/87.jpg)
Interfaces
Modèle structurel
Une interface est une collection d'opérations utilisée pour spécifier un service offert par une classe.Une interface être vue comme une classe sans attributs et dont toutes les opérations sont abstraites.Une interface est destinée à être “réalisée” par une classe (celle-ci en hérite toutes les descriptions et concrétise les opérations abstraites).Une interface peut en spécialiser une autre, et intervenir dans des associations avec d'autres interfaces et d'autres classes.
![Page 88: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/88.jpg)
Interfaces
Modèle structurel
MenuPopUp
BlocDeChoixsetDefault(o : Option)getChoice() : Option Option
choix
1..*
setDefault(o : String)getChoice() : String
setDefault(o : Bouton)getChoice() : Bouton Bouton
choix
1..*
String
choix1..* opérations concrétisées
«interface» interfaceopérations abstraites
réalisation
MenuBouton
![Page 89: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/89.jpg)
Interfaces
Modèle structurel
Deux notations pour l'utilisation d'une interface
MenuPopUpsetDefault(o : Option)getChoice() : Option
«interface»
BlocDeChoix
MenuPopUp
ApplicationFenêtrée
«uses»
ApplicationFenêtrée«uses»
BlocDeChoix
interfaceinterfaceutilisationutilisation
réalise
classe utilisatriceclasse utilisatrice
![Page 90: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/90.jpg)
Heuristiques d’élaboration du modèle structurel
• Bien comprendre le problème • Faire simple • Bien choisir les noms • Bien expliciter les associations • Ne pas trop “généraliser” • Relire • Documenter
De nombreuses révisions sont nécessaires !
Modèle structurel
![Page 91: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/91.jpg)
• Cours 3
Modèle dynamiqueModèle d’implémentation
Plan
![Page 92: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/92.jpg)
Décrit les interactions entre objets et les changements au cours du temps
Modèle dynamique
-Le déroulement des actions, le contrôle
-Les états des objets et leurs interactions
- La survenue des événements
![Page 93: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/93.jpg)
Modèle dynamique
diagrammes de collaboration (ou de communication)
diagrammes de séquences
diagrammes états-transitions
diagrammes d'activités
![Page 94: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/94.jpg)
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 dynamique
![Page 95: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/95.jpg)
constructeursdestructeursappel de méthodes
Types Synchronisation
asynchrone
synchrone
retour
Les messages
Modèle dynamique
Expressions
[condition]*[condition d’itération] itération
![Page 96: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/96.jpg)
Diagramme de collaboration
Interaction entre objets pour la réalisation d’une fonctionnalité du système
:B
:C
message
:A
1: m12: m2
3: m3
4: m4
6: m6
5: m5
Modèle dynamique
L’accent est mis sur la collaboration entre objets
![Page 97: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/97.jpg)
Diagramme d’instance d’une roue de brouette
pneu:Piece
d:Piece
rdb:Piece
4: m4
Modèle dynamique
Chambre:Piece
Jante:Piece
r3:Piece
r2:Piecer1:Piece
Piece
![Page 98: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/98.jpg)
Diagramme de collaboration – calcul du prix
pneu:Piece
d:Piece
rdb:Piece
4: m4
Modèle dynamique
Chambre:Piece
Jante:Piece
r3:Piece
r2:Piecer1:Piece
1:getPrix()
2:getPrix()
3:getPrix()
3.4:getPrix() 3.3:getPrix()
3.2:getPrix()
3.1:getPrix()
![Page 99: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/99.jpg)
Diagramme de séquencesInteraction entre objets pour la réalisation d’une fonctionnalité du système
:B :C:A
m1
m2
m3
m4
m6m5
Modèle dynamique
L’accent est mis sur la chronologie des événements
![Page 100: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/100.jpg)
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 dynamique
![Page 101: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/101.jpg)
rdb pneu chambre jante
tem
psModèle dynamique
d r1 r2 r3
getPrix()
getPrix()
getPrix()getPrix()
getPrix()
getPrix()
getPrix()
![Page 102: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/102.jpg)
rdb pneu chambre jante
tem
psModèle dynamique
d r1 r2 r3
getPrix()
getPrix()
getPrix()getPrix()
getPrix()
getPrix()
getPrix()
![Page 103: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/103.jpg)
:Palmier :Feuille :Inflorescence :Régime
tem
psModèle dynamique
![Page 104: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/104.jpg)
Diagrammes d’états Événement et État
État d'un objetmoment de la vie d’un objet où Il accomplit une action Il satisfait une condition Il attend un événement
l’état est défini par la valeur instantanée des attributs et liens de l’objet
Modèle dynamique
![Page 105: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/105.jpg)
Événement et État
ÉvénementStimulus (sans durée) envoyé à un objet
une condition devient vraie appel d’une opération réception d’un signal fin d’une période de temps
Modèle dynamique
![Page 106: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/106.jpg)
• Graphe
Nœud ÉtatArc Transition nommées par événement
• Une séquence d'événements = chemin dans le graphe
Modèle dynamique
Diagrammes d'États
Ils servent à représenter les états par lesquels passeun objet d’une classe donnée
![Page 107: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/107.jpg)
• état et événement sont duaux
un événement sépare deux états un état sépare deux événements
Modèle dynamiqueDiagrammes d'États
![Page 108: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/108.jpg)
Modèle dynamiqueNotation des états
Initial
Final
Simple
Complexe
Créditeur
Typing password
entry/ set echo offexit/ set echo on
on type char/ handle charon help/ display helpdo/ curseur clignote
au débutà la finlors d’evt
tout le temps
Activités internes
Diagrammes d'États
![Page 109: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/109.jpg)
Modèle dynamique
Notation des transitions
étiquette
étiquette• événement(paramètres)• [condition]• /action• ^envoiMessage
Diagrammes d'États
![Page 110: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/110.jpg)
État 1do/ activité 1
Événement 1 [Cond1] / Action1État 2...
Opération Activité / Action
Modèle dynamique
![Page 111: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/111.jpg)
Avec inflorescence
création
e1
Avec régime
e2
[C]
Créé Avec feuille
Modèle dynamique
![Page 112: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/112.jpg)
Diagrammes d'ÉtatsEtats d’un compte bancaire transitions gardées
sous-é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]
Modèle dynamique
ouvert
![Page 113: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/113.jpg)
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.
Modèle dynamique
![Page 114: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/114.jpg)
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
Modèle dynamique
![Page 115: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/115.jpg)
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)
Modèle dynamique
marié
Age
célibataire
Statut familial
Enfant
Ado
Adulte
![Page 116: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/116.jpg)
Diagrammes d’activités Représentation du flot de contrôle
• Actions
• Données, objets
• nœuds de contrôle
• Etat initial
• Etat final
Modèle dynamique
signal
fork décision
![Page 117: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/117.jpg)
Diagramme d’activitésModèle dynamique
Réception
Expédier produits
Exécuter
Envoi facture
FacturePaiement
Accepter paiement
[acceptée]
[rejetée]
Clôturer
Bon de commande
Traiter Commande
![Page 118: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/118.jpg)
Heuristiques d’élaboration du modèle dynamique
• Chemins suivis lors des envois de messages : diag. de séquences ou de collaboration
• Point de vue d’un objet• diag d’états : pour les objets pour lesquels il est significatifde montrer les changements d’états• diag. d’activités : pour décrire un algorithme du point de vue d’un objet
• Contrôler la cohérence, structurer les diagrammes
• Accompagnement des diagrammes de cas d’utilisation• diag. de séquences• diag. d’activités (proches des workflows)
Modèle dynamique
![Page 119: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/119.jpg)
Les packages
Modè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
![Page 120: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/120.jpg)
Les packages
Classes avec fort couplage « sémantique »
Liens
de dép
endanc
e
Modèle d’implémentation
![Page 121: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/121.jpg)
VenteAutomobile
Voiture
Garage
Vendeur
![Page 122: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/122.jpg)
Modèle d’implémentation (UML 2.0)Diagramme de composants
dépendances entre composants logiciels(sources, binaires, exécutables, etc.)
Système de planification
Agenda
réservation
![Page 123: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/123.jpg)
:PC
Modèle d’implémentation (UML 2.0)Diagramme de déploiement
organisation matérielle des éléments de calcul et descomposants logiciels
Système de planification
Agenda
:server
![Page 124: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/124.jpg)
• ANNEXES
Projection vers les Bases de DonnéesProjection vers la programmationMéthodologie (RUP)Patrons de conception
Plan
![Page 125: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/125.jpg)
Persistance
• Classes vs Types persistants vs éphémères
• Points d’entrée (racine de persistance)
• Regroupements
Du modèle objet ... aux BDDu modèle objet ... aux BD
Adéquation aux BD « objet »
![Page 126: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/126.jpg)
LDD, LMD, L Hôte
• LDD, LMD, L Hôte équivalents LPO
• Langage de requête « like » SQL
• Transactions
Du modèle objet ... aux BDDu modèle objet ... aux BD
Adéquation aux BD « objet »
![Page 127: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/127.jpg)
Adéquation aux BD « classiques »
Traduction
comme précédemment
d. structurels --> schémas
d. dynamiques --> requêtes et
traitements applicatifs divers
Mais règles de « passage »
Du modèle objet ... aux BDDu modèle objet ... aux BD
![Page 128: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/128.jpg)
Classes
AttributsAjout de l’identifiant
Schéma relationnel
ADRESSE
N°RueCPVille
Attribut Domaine Non Null
Id_adresse Identifiant OuiN° Entier NonRue String(30) Non…..
Schéma AdresseClé primaireId_adresse
Du modèle objet ... aux BDDu modèle objet ... aux BD
![Page 129: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/129.jpg)
Classes
AttributsAjout de l’identifiant
Schéma relationnel
PERSONNE
NSS {unique}NomPrénomDate-naissance
Attribut Domaine Non Null
Id_Pers Identifiant OuiNSS String(13) OuiPrénom String(30) NonDate-nais Date Non
Schéma PersonneClés primairescandidates
Id_adresseNSS
On préfère NSS
Du modèle objet ... aux BDDu modèle objet ... aux BD
![Page 130: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/130.jpg)
Associations
PERSONNE ADRESSE
NSS....
N°RueCPVille
1 1a
Attribut Domaine Non Null
NSS String(13) ID OuiNom String(35) OuiId_adresse Identifiant Oui
Schéma PersonneClé primaireNSS
Clé étrangèreId_adresse
Du modèle objet ... aux BDDu modèle objet ... aux BD
![Page 131: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/131.jpg)
Associations
PERSONNE COMPTE
NSS....
N°Type
1 0..*possède
Attribut Domaine Non Null
Id_compte Identifiant OuiN° String(35) Id OuiNSS Identifiant Oui
Schéma CompteClé primaire
Id-compteN°
On choisit N°
Clé étrangèreNSS
Du modèle objet ... aux BDDu modèle objet ... aux BD
![Page 132: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/132.jpg)
Associations
PERSONNE BIBLIOTHEQUE
NSS....
nom0..*adhère->0..*
date adhésiontype adhésion (mensuelle, annuelle)
Schéma AdhèreClé primaireNSSId_bibliothèque
Rque :DateType
Attribut Domaine Non Null
NSS Id String(13) OuiId_bibliothèque Identifiant OuiDate_adhésion Date OuiType_adhésion String(10) Oui
Du modèle objet ... aux BDDu modèle objet ... aux BD
![Page 133: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/133.jpg)
Spécialisation
PERSONNE
NSS....
ETUDIANT
num....
ENSEIGNANT
grade....
Plusieurs choix
- « aplatir vers le haut »
Schéma PersonneClé primaireNSS
- « aplatir vers le bas »Schémas Etudiant, EnseignantClé primaireNSS
- conserver les niveaux
Du modèle objet ... aux BDDu modèle objet ... aux BD
![Page 134: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/134.jpg)
• ANNEXES
Projection vers les Bases de DonnéesProjection vers la programmationMéthodologie (RUP)Patrons de conception
Plan
![Page 135: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/135.jpg)
Du modèle objet ... à la programmationDu modèle objet ... à la programmationClasses
- adresse : String = 'adresse inconnue'- numeroINSEE[6] : Integer
# changeAdresse(nouvelleAdresse : String)+ cotisationAJour() : Boolean
Adhérent
note (peut contenir un complément de description, un
commentaire, …)
type d'attribut
valeur initiale
type de paramètretype du résultat
de l'opération
privé
protégé
public
adhérent de labibliothèquevaleurs
multiples
![Page 136: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/136.jpg)
Du modèle objet ... à la programmationDu modèle objet ... à la programmation
Classes
Attributs, Opérations ------> Champs, Méthodes
Et des méthodes particulières spécifiques à certains langages …
Accesseurs L/E (convention get/set en Java)
Constructeurs (Java, C++), Destructeurs (C++)
Proposer un service et réagir aux messages
![Page 137: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/137.jpg)
Classe Adhérent en Java (extrait)
public class Adherent{ private String adr = ``adresse inconnue``; private int[] numeroInsee; public Adherent(){numeroInsee=new int[6];} public Adherent(String na, int[] ni){adr=na;
numeroInsee=ni;}
public String getAdr(){return adr;} protected void setAdr(String nouvelleAdresse)
{adr=nouvelleAdresse;} public int[] getNumeroInsee(){return numeroInsee;} protected void setNumeroInsee(int[] ni)
{numeroInsee=ni;}
public boolean cotisationAjour(){…….}}
Constructeurs
Accesseurs
Méthodes
Champs
![Page 138: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/138.jpg)
Classe Adhérent en C++ (extrait)
//………. Adherent.h ……………………………………………………class Adherent{ private:
string adr; int* numeroInsee; public:
Adherent();Adherent(string na, int* ni);virtual ~Adherent();virtual string getAdr() const;virtual void setAdr(string nouvelleAdresse);virtual int* getNumeroInsee()const;virtual void setNumeroInsee(int* ni);virtual boolean cotisationAjour()const;
};
Constructeurs
Accesseurs
Méthodes
Champs
Destructeurs
![Page 139: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/139.jpg)
Classe Adhérent en C++ (extrait)
//……………. Adherent.cc …………………………………………………Adherent::Adherent() {adr = ``adresse inconnue``; numeroInsee=new int[6];}
Adherent::Adherent(string na, int* ni) {adr=na; numeroInsee=ni;}
Adherent::~Adherent(){delete[] numeroInsee;}
string Adherent:: getAdr()const{return adr;}void Adherent::setAdr(string nouvelleAdresse) {adr=nouvelleAdresse;}int* Adherent::getNumeroInsee()const{return numeroInsee;}
void Adherent::setNumeroInsee(int* ni){numeroInsee=ni;}
boolean Adherent:: cotisationAjour()const{…….}
![Page 140: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/140.jpg)
Du modèle objet ... à la programmationDu modèle objet ... à la programmation
Opérations
Données
MessagesEncapsulation
Objet
Retour sur la notion d’encapsulation
![Page 141: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/141.jpg)
Du modèle objet ... à la programmationDu modèle objet ... à la programmation
Liste GestionPersonnel
ajoute
retire
applique(fct)
Confiner les modifs de Liste dans la classe Liste …
Utilité de l’encapsulation
![Page 142: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/142.jpg)
Du modèle objet ... à la programmationDu modèle objet ... à la programmationEncapsulationConsensuel
privé ... implémentationpublic ... spécification
En pratique
à chaque langage ses particularismes
Smalltalk. attributs privés, méthodes publiques, ...Java. package, protected, ...C++. friends, protected,
protection sur le lien d’héritage, ...
Quelle philosophie adopter ?
![Page 143: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/143.jpg)
Protection en Java
public class Adherent{
private String adr = ``adresse inconnue``; private int[] numeroInsee; public Adherent(){numeroInsee=new int[6];} public Adherent(String na, int[] ni) {adr=a; numeroInsee=ni;} public String getAdr(){return adr;}
protected void setAdr(String nouvelleAdresse){adr=nouvelleAdresse;}
public int[] getNumeroInsee(){return numeroInsee;} protected void setNumeroInsee(int[] ni)
{numeroInsee=ni;}
public boolean cotisationAjour(){…….}}
Accessible aussi dans toute méthode du package et dans toute méthode d’une sous-classe C sur une variable dont le type statique est C ou une sous- classe de C
Accessible partout
Accessible seulement dans les autres méthodes de la classe
Du modèle objet ... à la programmationDu modèle objet ... à la programmation
![Page 144: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/144.jpg)
Variables et méthodes de classe (en Java)
public class Produit{ private static float tauxTVA; ……….. public static void fixeTauxTVA(float
f){…..}}
Produit
référence : StringprixHT : floattauxTVA : float
setPrixHT(f:float)affichePrix()……..fixeTauxTVA(f:float)
Du modèle objet ... à la programmationDu modèle objet ... à la programmation
![Page 145: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/145.jpg)
Du modèle objet ... à la programmationDu modèle objet ... à la programmationClasses abstraites, méthodes abstraites
abstract public class Figure{
abstract public void dessine();……..
}
Java
class Figure{ public:
virtual void dessine()const=0;……..
}
C++
![Page 146: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/146.jpg)
Du modèle objet ... à la programmationDu modèle objet ... à la programmation
Traduction des interfaces en Java
Héritage par réalisation
Spécification de services (sans implémentation)
![Page 147: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/147.jpg)
interface Ipolygon {float perimeter(); …}
interface Iquadrilateral ….{static const int sideNb = 4; ….}
interface Isquare ….{float getCote(); …..}
public class Square implements Isquare{public float getCote(){….} ….}
public class x{…. public void meth(Isquare i) {…} …..}
Du modèle objet ... à la programmationDu modèle objet ... à la programmationInterfaces en Java
Ipolygon
Iquadrilateral
Isquare
Square
![Page 148: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/148.jpg)
interface Ipolygon {float perimeter(); …}
interface Iquadrilateral ….{static const int sideNb = 4; ….}
interface Isquare ….{float getCote(); …..}
public class Square implements Isquare{public float getCote(){….} ….}
public class x{…. public void meth(Isquare i) {…} …..}
Du modèle objet ... à la programmationDu modèle objet ... à la programmationInterfaces en Java
méthodes abstraites etpubliques (par défaut)
variables de classe publiques et constantes
(par défaut)
type à implémenter
type de Java(écriture de code
générique)
![Page 149: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/149.jpg)
Du modèle objet ... à la programmationDu modèle objet ... à la programmation
Associations
PERSONNE ADRESSE
nom....
N°RueCPVille
1 1a
class PERSONNE{ private :
string nom; ADRESSE adr;
....}
rien de spécial dans ADRESSE
Attribut complexe
Navigabilité dans un seul sens
adr
Utilisationdu nom de rôle
![Page 150: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/150.jpg)
Du modèle objet ... à la programmationDu modèle objet ... à la programmation
Associations
PERSONNE COMPTE
nom....
N°Type
1 0..npossède
class PERSONNE{private :
string nom;list <COMPTE> comptes;....}
class COMPTE{private :
PERSONNE possesseur;....}
Conteneur
Référence
Navigabilité dans les deux sens
comptespossesseur
![Page 151: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/151.jpg)
Du modèle objet ... à la programmationDu modèle objet ... à la programmationAssociations
PERSONNE BIBLIOTHEQUE
nom....
nom0..nadhère
class PERSONNE {private : string nom;....}class BIBLIOTHEQUE {private : ....}
class ADHESION{private :
PERSONNE adhérent;BIBLIOTHEQUE biblio;DATE dateadhésion; String typeAdhesion; ....}
Réification
0..n
date adhésiontype adhésion (mensuelle, annuelle)
Classe d’association
![Page 152: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/152.jpg)
Personne
nom adresse
Gestionnaire
numadresse
Du modèle objet ... à la programmationDu modèle objet ... à la programmationL’héritage traduit la généralisation/spécialisation
C++class Personne{};class Gestionnaire
: virtual public Personne
Javapublic class Personne{}public class Gestionnaire
extends Personne {}
![Page 153: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/153.jpg)
Du modèle objet ... à la programmationDu modèle objet ... à la programmation
Héritage
• adéquation des deux relations
• représentation et traitement des conflits
• spécialisation des attributs
• représentation de la surcharge et du masquage
• utilisation de l’héritage à des fins d’implémentation ?
Implémentation de la relation de spécialisation par l’héritage, quelques problèmes ....
![Page 154: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/154.jpg)
Du modèle objet ... à la programmationDu modèle objet ... à la programmation
Héritage : adéquation des deux relations
Spécialisation multiple (possible en C++, impossible entre classes Java)
Flot
good()eof() ...
FlotEcriture
écrire(blocOctets)...
FlotLecture
lire(nbOctets)...
FlotLectureEcriture
![Page 155: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/155.jpg)
interface Ipolygon {float perimeter(); …}
interface Iquadrilateral extends Ipolygon{static const int sideNb = 4; ….}
interface Isquare extends Irectangle,Irhombus{float getCote(); …..}
public class Square implements Isquare{public float getCote(){….} ….}
public class x{…. public void meth(Isquare i) {…} …..}
Du modèle objet ... à la programmationDu modèle objet ... à la programmationAdéquation des deux relations (cas de Java)
héritage multipleentre interfaces
spécialisation
implémentation
![Page 156: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/156.jpg)
Cas de Java : héritage simple pour l’implémentation, multiple pour les interfaces ... côté classes, ...les méthodes de FlotLecture et FlotEcriture doivent être réécrites dans FlotLectureEcriture
Du modèle objet ... à la programmationDu modèle objet ... à la programmationHéritage : adéquation des deux relations (Java)
interface Flot
interface FlotEcritureinterface FlotLecture
interface FlotLectureEcritureclasse Flot
classe FlotLecture
classe FlotLectureEcriture
classe FlotEcriture
extendsimplements
![Page 157: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/157.jpg)
Du modèle objet ... à la programmationDu modèle objet ... à la programmationSpécialisation/Généralisation ....
Conflit portant sur le nom des propriétés
Il y a clairement deux propriétés
Objet
couleur (rouge, vert ...)
Elément de jeu
Pion DéCarte à jouer
couleur (coeur, trèfle, ...)
![Page 158: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/158.jpg)
Du modèle objet ... à la programmationDu modèle objet ... à la programmationSpécialisation/Généralisation .... multiplesConflit portant sur les valeurs
ou le domaine d’une propriété
Le pédalo n’a qu’une propriété zoneNav, mais quel sera son domaine ?
ObjetNautique
Bateau EnginPlage
Pedalo
zoneNav
{zoneNav sup. à 100}
{zoneNav inf. à 10}
{zoneNav ?}
![Page 159: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/159.jpg)
Du modèle objet ... à la programmationDu modèle objet ... à la programmation
Héritage : représentation et traitement d’un conflit de nom
Smalltalk
JavaC++
Désignation expliciteObjet::CouleurCarteAJouer::Couleur
Donner deux nomsdifférents
pas d’accès possibleà couleur d’objetautre qu’avec “super”(dans les méthodes)
mieux vaut donnerdeux noms différents
![Page 160: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/160.jpg)
Du modèle objet ... à la programmationDu modèle objet ... à la programmation
Héritage : spécialisation des attributs
Animal
nourriture (végétale, animale, minérale)
Herbivore
nourriture (végétale)
Relation
ensemblesImpliqués > 1
RelationBinaire
ensemblesImpliqués = 2
Aucune représentation, ni en C++, ni en Smalltalk, ni en Java
Seule issue : vérification des contraintes dans les méthodes (surtout accesseurs) ...
![Page 161: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/161.jpg)
Du modèle objet ... à la programmationDu modèle objet ... à la programmation
Héritage : surcharge statique et redéfinition
Redéfinitioncoexistence de méthodes de même nom dans des classes comparablesappel déterminé par le type de l’objet (dynamique)
Surcharge statiquecoexistence de méthodes de même nom dans des classes différentesappel déterminé par le type de la variable (statique)
![Page 162: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/162.jpg)
Du modèle objet ... à la programmationDu modèle objet ... à la programmationHéritage : redéfinitionJava
redéfinition seulement si les signatures sont strictement identiques,C++redéfinition si les types des paramètres sont identiques, le type de retour peut être spécialisé
Magnitude
<(Magnitude)
Time
<(Time)
heureminutesecondes
Date
<(Date)
jourmoisannée
Java, C++ : on ne peut pas représenter directement une spécialisation des paramètres
cas de surcharge statique
Magnitude
<(Magnitude)
Time
<(Magnitude)
heureminutesecondes
Date
<(Magnitude)
jourmoisannée
cas de redéfinition
![Page 163: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/163.jpg)
Du modèle objet ... à la programmationDu modèle objet ... à la programmation
Héritage : à chacun sa surcharge
Personne
Princesse
habiller(Vêtement)habiller(Vêtement, Chaussure)
habiller(Vêtement, Bijou)
VêtementChaussureBijou
QuiSePorte
En Java : correctement interprété comme de la surcharge statiqueEn C++ : habiller(Vêtement, Bijou) cache les deux autres
![Page 164: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/164.jpg)
Du modèle objet ... à la programmationDu modèle objet ... à la programmation
Héritage : l’utiliser pour des raisons d’implémentation ?
Liste
ajoutFin
Pile
pushpoptop
A éviter dans tous les cas ...même si les livres en sont pleins ...
![Page 165: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/165.jpg)
Du modèle objet ... à la programmationDu modèle objet ... à la programmation
Généricité paramétrique
Pile
push(t:T)pop():Ttop():T
En C++ : template
template<typename T>class Pile{… push(T element) …}
Pile<int> p;
En Java : simulé
class Pile{…. push(Object element) ….}
Pile p = new Pile();
problèmes :- contrôle des éléments insérés- cast des éléments retirés
T
T
![Page 166: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/166.jpg)
Du modèle objet ... à la programmationDu modèle objet ... à la programmationA partir du modèle dynamique - diagrammes de séquencejim:Etudiant
afficheResultats()
afficheMoyenneEtMention()
[moyenne<10]afficheModulesObtenus()
public class Etudiant{ public void afficheResultats()
{afficheMoyenneEtMention();if (getMoyenne()<10)
afficheModulesObtenus();}
}
![Page 167: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/167.jpg)
cnam03:Promotion
Du modèle objet ... à la programmationDu modèle objet ... à la programmationA partir du modèle dynamique - diagrammes de collaboration
:Etudiant
*[i:=0..nbEtudiants-1]:moyenne()
public class Promotion{
private Vector listeEtudiants;……….public float moyenneGenerale(){
double mg=0;for (int i=0; i<listeEtudiants.size(); i++
mg+=((Etudiant)(listeEtudiants.get(i))).moyenne();return mg/listeEtudiants.size();
}}
![Page 168: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/168.jpg)
• ANNEXES
Projection vers les Bases de DonnéesProjection vers la programmationMéthodologie (RUP)Patrons de conception
Plan
![Page 169: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/169.jpg)
Méthodologie
Méthode ou Processus de développement
acteurs nécessaires (qui)grands types d’activités (comment)
artefacts (quoi)organisation du travail (quand)
![Page 170: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/170.jpg)
Historique
• Méthodes cartésiennes
Jackson, SADT, Yourdon
• Méthodes systémiques
Merise, Axial, Information Engineering
• Méthodes objet
OOD, HOOD, OMT, OOSE, OOA/OOD, unifiées dans le RUP (Rational Unified Process)
![Page 171: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/171.jpg)
Concepts généraux
• Conceptualiser
obtenir un énoncé du problème (utilisateurs)
• Analyser
spécifier le problème
• Implémenter
réaliser la solution informatique
• Concevoir
une solution informatique
![Page 172: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/172.jpg)
Concepts généraux
Étapes Résultats
Planification Schéma directeur
Analyse des besoins Modèle des besoins
Spécification formelle ou analyse Modèle conceptuel
Spécification technique ou conception Modèle logique
Implémentation Modèle physique
Intégration et Tests Rapport de cohérence logique
Validation du système Rapport de conformité
Maintenance et évolution Documentation et trace
![Page 173: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/173.jpg)
Concepts généraux
• Cycles de développement
- en cascade
- en V
- en spirale
- tridimensionnel
![Page 174: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/174.jpg)
Analyse
Conception
Implémentation
Tests
Maintenance
Modèle de cycle en cascade
![Page 175: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/175.jpg)
Organisation séquentielle des phases du cycle de vie
Une phase est structurée en un ensemble d'activités pouvant s'exécuter en parallèle par plusieurs personnes
Le passage d'une phase à la suivante ne se fait que lorsque les sorties de la première ont été fournies
Modèle de cycle en cascade
![Page 176: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/176.jpg)
Modèle de cycle en cascade
Contre : Retours sur les phases précédentes difficiles (rupture entre les phases)
Visualisation et validation tardive
Pour : Organisation simple et directe
![Page 177: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/177.jpg)
Implémentation
Expressiondes besoins
Validationdes besoins
Validationfonctionnelle
Spécificationfonctionnelle
Conceptiondu système
Tests dusystème
Tests descomposants
Conceptiondes composants
Modèle de cycle en V
![Page 178: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/178.jpg)
Modèle de cycle en V
Approche descendante dans les phases précédant l’implémentation : on décompose le système au fur et à mesure qu’on le construit
Approche ascendante dans les phases suivantes : on recompose le système en testant les parties
Hiérarchie de tests : les différents tests provoquent un retour d’information directement sur la phase permettant de corriger les erreurs.
![Page 179: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/179.jpg)
Modèle de cycle en V
Pour : Décomposition du système en sous-systèmes
Hiérarchie de tests et retours facilités
Vérification ascendante
Contre : Validation en fin de cycle (erreurs d’analyse coûteuses)
![Page 180: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/180.jpg)
Conception
Analyse
Spécifications Besoins
Validation
Tests
Implémentation
Modèle de cycle en spirale
![Page 181: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/181.jpg)
Modèle de cycle en spirale
Modèle itératif On passe par toutes les phases du cycle de vie plusieurs fois
Modèle incrémental On améliore à chaque passage
Un passage peut aussi bien permettre d’évaluer un nombre réduit de fonctionnalités ou l’organisation générale du système de façon non détaillée
![Page 182: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/182.jpg)
Modèle de cycle en spiralePour :
Réalisation de plusieurs prototypes (versions) avant la réalisation du système réel (définitif)
Validation progressive et précoce Souplesse dans le choix des prototypes
Contre : Mise en œuvre parfois coûteuse Possibilité de divergence, nombre de prototypes difficile à déterminer
Le RUP est une réponse à ces critiques
![Page 183: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/183.jpg)
RUP (Rational Unified Process)
RUP
Objectory OMT BOOCH
![Page 184: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/184.jpg)
RUP (Rational Unified Process)
Mots-clefs :développement itératifdéveloppement incrémentalpilotage par les cas d’utilisation
centré sur l’architectureconfigurable
![Page 185: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/185.jpg)
RUP (Rational Unified Process)
1- Les grandes activités2- La notion d’architecture logicielle3- L’organisation itérative des activitésBibliographie
• « The RUP, an Introduction »P. Kruchten, Addison-Wesley 2000
• « The unified Software Developement Process »I. Jacobson, G. Booch, J. Rumbaugh, Addison-Wesley 1999
• « Modélisation Objet avec UML »P.-A. Muller, N. Gaertner, Eyrolles, 2002
![Page 186: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/186.jpg)
RUP (Rational Unified Process)1- Les grandes activités
Le RUP distingue 9 activités,à chacune correspond :
des artefacts
des métiers
des outils (cf. site de Rational)
![Page 187: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/187.jpg)
RUP (Rational Unified Process)1- Les grandes activités
activité 1. GESTION DE PROJET
PlannificationAllocation des tâches et des responsabilitésAllocation des ressourcesEtude de faisabilité et des risques
calendrier des tâcheschef de projet
![Page 188: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/188.jpg)
RUP (Rational Unified Process)1- Les grandes activités
activité 2. MODELISATION DE L’ORGANISATION
modélisation - de la structure- du fonctionnement
de l’organisation où le système sera déployé
cas d’utilisation de l’organisation (avec scenarii)
concepteur d’organisation
![Page 189: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/189.jpg)
RUP (Rational Unified Process)1- Les grandes activités
activité 3. ANALYSE DES BESOINS
détermination des besoins :- fonctionnels (ce que l’on attend du système)- non fonctionnels (fiabilité, temps de réponse,
environnement distribué, etc.)
cas d’utilisation du système à construire (avec scenarii)
documents descriptifsconception de l’interface utilisateuranalyste
![Page 190: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/190.jpg)
RUP (Rational Unified Process)1- Les grandes activités
activité 4. ANALYSE ET CONCEPTION
évoluer depuis la spécification des besoins
jusqu’à une solution informatique
analyse~besoins fonctionnelsconception~intègre aussi les besoins non
fonctionnels
diagrammes de classes, paquetages, sous-systèmesdiagrammes de collaboration, d’étatsdiagrammes de composantsarchitecte, concepteur
![Page 191: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/191.jpg)
RUP (Rational Unified Process)1- Les grandes activités
activité 5. IMPLEMENTATION
Transcription dans un langage de programmation
ou de base de donnéesUtilisation de composants existants
codeimplémenteur, développeur
![Page 192: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/192.jpg)
RUP (Rational Unified Process)1- Les grandes activités
activité 6. TEST
Estimer si les besoins sont satisfaitss’il y a des erreurs/défauts à
corriger
Renforcer et stabiliser l’architecture
modèles de test, scriptsconcepteur de test, testeur
![Page 193: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/193.jpg)
RUP (Rational Unified Process)1- Les grandes activités
activité 6. TEST
Différents niveaux de tests
• unitaires (test d’une classe, d’un module isolément)
• intégration (plusieurs modules ensembles)
• validation (les fonctionnalités du système sont
assurées)• recette (souvent contractualisés,
avec le client)
![Page 194: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/194.jpg)
RUP (Rational Unified Process)1- Les grandes activités
activité 6. TEST
Différents types de tests
• Benchmark (sur un ensemble de données type)
• Configuration/installation • Charge • Fiabilité, stress• Performance
![Page 195: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/195.jpg)
RUP (Rational Unified Process)1- Les grandes activités
activité 7. DEPLOIEMENT
Distribuer le logiciel dans son environnement
opérationnelInstallation, testFormation des utilisateursMigration des données
diagrammes de déploiementformateur, graphiste, rédacteur de documentation, testeur, implémenteur (scripts d’installation)
![Page 196: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/196.jpg)
RUP (Rational Unified Process)1- Les grandes activités
activité 8. MAINTENANCE ET EVOLUTION
Gérer pendant l’avancement du projet l’évolution :
des besoins des utilisateurs,du niveau des développeurs,de la technologie, etc.
plan de modificationtous les métiers !
![Page 197: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/197.jpg)
RUP (Rational Unified Process)1- Les grandes activités
activité 9. ENVIRONNEMENT
Activité de support du développementsélection des outils de travail,administration système et réseau,administration BD,formation de l’équipe de travail,
etc.
doc outils, doc installationadmin. S&R, formateur, admin. BD
![Page 198: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/198.jpg)
RUP (Rational Unified Process)2- L’architecture logicielle
• Analogie avec l’architecture dans le domaine dubâtiment
• Désigne un ensemble de descriptions de haut niveau (les « plans de construction »)
![Page 199: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/199.jpg)
RUP (Rational Unified Process)2- L’architecture logicielle
La vue de l’architecte est générale et sert à :
• contrôler l’intégrité du système
• identifier les éléments réutilisables
• baser le partage du travail
![Page 200: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/200.jpg)
RUP (Rational Unified Process)2- L’architecture logicielle
Plans de construction
Orientation des modèles par les cas d’utilisation
Cas d’utilisation
Logique Réalisation
ProcessusDéploiement
classes/dynamique composants
use case + scenarii
scenarii sur composantsconcurrencedistributiontolérance aux pannes
composantsprojetés sur le matériel
![Page 201: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/201.jpg)
RUP (Rational Unified Process)2- L’architecture logicielle
Une définition de la notion d’architecture
« vue limitée du système permettant de comprendre :• ce qu’il fait• comment il fonctionne• comment travailler sur une seule
partie• comment l’étendre• comment réutiliser certaines
parties »
Seules les grandes lignes de chaque diagramme
font partie de l’architecture
![Page 202: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/202.jpg)
RUP (Rational Unified Process)3- L’organisation itérative des activités
Pour répondre aux problèmes connus du développement en cascade :
• découverte tardive des défauts• intégration difficile des
modifications• contrôle temps et coûts délicat
![Page 203: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/203.jpg)
RUP (Rational Unified Process)3- L’organisation itérative des activités
Cycle de base
plannification
besoins analyseconceptionimplémentation
déploiementtestévaluation
![Page 204: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/204.jpg)
RUP (Rational Unified Process)3- L’organisation itérative des activités
Contrôle de la convergence : instauration de 4 PHASES
Etude d’opportunité
ElaborationConstructionTransition
• Chaque phase développe tout ou partie d’un ou plusieurs cycles• Des points de contrôle entre les phases permettent de vérifier l’avancement
Def. Projetobjectifsrisques, bénéfices
Plannificationarchitecture
versionbéta
versioncourante
![Page 205: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/205.jpg)
RUP (Rational Unified Process)3- L’organisation itérative des activités
A chaque itération
• la plannification est remise à jour et étendue
• les modèles sont approfondis
• un prototype est développé ou augmenté
• on teste (on re-teste parfois …) l’existant
![Page 206: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/206.jpg)
RUP (Rational Unified Process)3- L’organisation itérative des activités
Bénéfices
• résultats concrets précoces et réguliers • problèmes et évolutions sont intégrés au fur et à mesure• meilleure compréhension par les utilisateurs de ce qu’ils peuvent comprendre -> ils précisent mieux leur besoin• la faisabilité est objectivement mesurée, on a des points de mesure• tous les métiers sont en permanence sollicités, les problèmes remontent plus vite
![Page 207: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/207.jpg)
• ANNEXES
Projection vers les Bases de DonnéesProjection vers la programmationMéthodologie (RUP)Patrons de conception
Plan
![Page 208: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/208.jpg)
Patrons de conception
Recueillir l’expertise en conception
Définition
Un patron de conception est une solution de conceptiongénérique pour résoudre un problème de conception récurrent
Micro-architecture d’une application
Analogie avec les plans de construction détaillés d’un élément de bâtiment
![Page 209: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/209.jpg)
Patrons de conception
Un exemple :Résumé du patron « objets composite »
Problème
Nous désirons représenter des objets qui se décrivent par une hiérarchie d’objets, avec les deux particularités :
• la hiérarchie est une hiérarchie d’agrégation
• tous les objets jusqu’au plus haut niveau présentent un même comportement (on peut leur appliquer un même ensemble de méthodes)
![Page 210: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/210.jpg)
Patrons de conception
Résumé du patron « objets composite »Exemple 1
Dans un éditeur de dessin, une figure géométrique est simple ou se compose d’autres figures.Toutes les figures peuvent être dessinées, déplacées, effacées, agrandies, etc.
Exemple 2 Dans un système d’exploitation, les fichiers peuvent être ordinaires, ou bien des liens, ou encore des répertoires qui contiennent eux-mêmes d’autres fichiers.Tout fichier peut être déplacé, détruit, renommé, etc.
![Page 211: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/211.jpg)
Patrons de conceptionRésumé du patron « objets composite »Solution générique [E. Gamma et al. « design patterns », 94]
version dite « sécurité »
Composant
+ operation
abstraitesi pas de partie commune
Feuille
+ operation
Composite
+ operation+ ajout(c:Composant)
appliquer operationà tous les fils
fils
![Page 212: Méthodologie objet UML et RUP : un survol IUP GMI 2ième année 2005/2006 M HuchardT. Libourel huchard@lirmm.fr libourel@lirmm.fr](https://reader036.vdocuments.net/reader036/viewer/2022062511/551d9d81497959293b8bafb2/html5/thumbnails/212.jpg)
Patrons de conceptionRésumé du patron « objets composite »
Spécialisation du patron
Figure
+ dessine+ deplace
FigureSimple FigureGroupee
element
+ dessine+ deplace+ ajoute(f:Figure)
+ dessine+ deplace
Cercle Carré Trait