View
112
Download
0
Category
Preview:
Citation preview
11/04/23 05:001
Jean-Marc JézéquelIRISA/CNRS
et
Yves Le Traon IRISA/Ifsic
Unified Modeling LanguageUnified Modeling Language
11/04/23 05:002
PLANPLAN
Introduction à la modélisation selon UMLIntroduction à la modélisation selon UML– historique, intérêts de la modélisationhistorique, intérêts de la modélisation– cycles de viecycles de vie
Les 9 vues d’un modèle UMLLes 9 vues d’un modèle UML– Use CasesUse Cases, diagrammes de classes, modèles dynamiques, , diagrammes de classes, modèles dynamiques,
packages...packages...
Processus de développement avec UMLProcessus de développement avec UML– Expression des besoins Expression des besoins (étude de cas télécom : (étude de cas télécom : serveur SMDSserveur SMDS))
– Analyse (Technique de découverte des classes...)Analyse (Technique de découverte des classes...)– Conception (Systémique, notion de Conception (Systémique, notion de Design Patterns)Design Patterns)– Réalisation et ValidationRéalisation et Validation
11/04/23 05:003
Généalogie deGénéalogie de UMLUML
OOA(P. Coad)
OMT(J. Rumbaugh et al.)
Data-FlowSADT/SA-SD(De Marco)
OOA - OODLE(Schlaer & Mellor)
DiagrammesEtat-Transition
(HAREL)
FUSION(HP-Labs)
UML(Rumbaugh, Booch, Jacobson)
Use-Case(I.Jacobson)
Entite-RelationMerise(Chen)
OOA-OOD(G.Booch)
CLASSE-RELATION(P. Desfray)
CRC(R. Wirf-Brooks)
JSD(M. Jackson)
11/04/23 05:004
De OMT à UMLDe OMT à UML 1990 : Object-oriented Modeling Technique 1990 : Object-oriented Modeling Technique ((Rumbaugh et al., G.E.)Rumbaugh et al., G.E.)
– Succès de la méthode du aux qualités de la notation :Succès de la méthode du aux qualités de la notation :– Concise, assez précise, simple à utiliser et à outillerConcise, assez précise, simple à utiliser et à outiller– Rien de fondamentalement nouveauRien de fondamentalement nouveau
» Inspirée “ entité-relation ” pour la modélisation des objetsInspirée “ entité-relation ” pour la modélisation des objets» Notation de Harel pour la dynamique des objetsNotation de Harel pour la dynamique des objets» De Marco/Yourdon flots de données & transformationsDe Marco/Yourdon flots de données & transformations
1995 : Version préliminaire de UML1995 : Version préliminaire de UML
– extensions et améliorations, publications extensions et améliorations, publications JOOPJOOP, ..., ...– inspirées par les auteurs eux-mêmes et par Boochinspirées par les auteurs eux-mêmes et par Booch
1997 : UML version 1.01997 : UML version 1.0– Intégration de la méthode OOSE de Jacobson (Intégration de la méthode OOSE de Jacobson (use-casesuse-cases), et ), et
des remarques de grandes sociétés informatiques des remarques de grandes sociétés informatiques – Standardisée à l’OMG. 2Q99 =>Version 1.4Standardisée à l’OMG. 2Q99 =>Version 1.4
11/04/23 05:005
La consécration des méthodes La consécration des méthodes fondées sur la modélisationfondées sur la modélisation
L’approche par modélisation faciliteL’approche par modélisation facilite– Communication (et sa précision)Communication (et sa précision)
» avec donneur d’ordreavec donneur d’ordre» entre différentes phases de développement et de maintenanceentre différentes phases de développement et de maintenance
– Capacité de vérificationCapacité de vérification» CohérenceCohérence» ComplétudeComplétude
– Continuité entre les différentes phases du cycle de vieContinuité entre les différentes phases du cycle de vie» cf. Jackson et JSDcf. Jackson et JSD» N.B.: continuité <> isomorphique ou plongement/projectionN.B.: continuité <> isomorphique ou plongement/projection
11/04/23 05:006
Un peu de Méthodologie...Un peu de Méthodologie...
Une méthode de développement de logiciels, c’est :Une méthode de développement de logiciels, c’est :– Une notationUne notation
» La syntaxe --- graphique dans le cas de UMLLa syntaxe --- graphique dans le cas de UML
– Un méta-modèleUn méta-modèle» La sémantique --- paramétrable dans UML La sémantique --- paramétrable dans UML (stéréotypes(stéréotypes))
– Un processusUn processus» Détails dépendants du domaine d’activité :Détails dépendants du domaine d’activité :
Informatique de gestionInformatique de gestion Systèmes réactifs temps-réelsSystèmes réactifs temps-réels Shrink-wrapShrink-wrap software (PC) software (PC)
11/04/23 05:007
Activités du développement de logicielsActivités du développement de logiciels
Définir ce qui sera développé
Définir comment il sera développé
Développer undes composants
Assembler lescomposants
Valider le logiciel
L’organisation de ces activités et leur L’organisation de ces activités et leur enchaînement définit le enchaînement définit le cycle de développementcycle de développement du logicieldu logiciel
11/04/23 05:008
Processus «classique»Processus «classique»
• Expression du besoin
Analyse
• Analyse détaillée
• Codage • Mise au point
Réalisation
• Tests unitaires
• Validation
Validation
• Mise en œuvre
• Etude technique préalable • Conception préliminaire
Conception
• Conception détaillée
• Intégration
Intégration
• Tests d'Intégration
Cycle de vie normalisé AFNORCycle de vie normalisé AFNOR
Variante US : Cycle en « cascade »
9
Problèmes avec le processus classique...Problèmes avec le processus classique...
Ce que l’analyste a spécifié
Ce que le programmeur a écrit
Ce que la mise au point a fait
Ce que l’utilisateur n’a pas su exprimer
Ce que demande l’utilisateur
Ce que prévoit le concepteur
11/04/23 05:0010
Problèmes du processus classiqueProblèmes du processus classique Organisation « industrielle » héritée du XIXOrganisation « industrielle » héritée du XIXème ème sièclesiècle
– rassurant pour les managersrassurant pour les managers– hiérarchie malsaine dans les rôleshiérarchie malsaine dans les rôles– antinomie : Coplien ’s organizational pattern antinomie : Coplien ’s organizational pattern
» Architects Also ImplementArchitects Also Implement
cycle management <> cycle développementcycle management <> cycle développement linéarité implicitelinéarité implicite
– temps d ’approbation des documents => effet tampontemps d ’approbation des documents => effet tampon– coût de la (non-) modification d ’un document « final »coût de la (non-) modification d ’un document « final »– irréaliste pour un projet innovant, donc à risquesirréaliste pour un projet innovant, donc à risques
11/04/23 05:0011
Cycle de vie en « spirale »Cycle de vie en « spirale »
Intégration
Réalisation
Conception
Analyse détaillée
Analyse préliminaire « (de risque) »
V1 V2
Validation
Synergie avec approche par objets
11/04/23 05:0012
Cycle de vie en « spirale »Cycle de vie en « spirale » Bien adapté au développements innovantsBien adapté au développements innovants
– les progrès sont tangibles : c ’est du logiciel qui « tourne » les progrès sont tangibles : c ’est du logiciel qui « tourne » et pas seulement des kilos de documentset pas seulement des kilos de documents
– possibilité de s ’arrêter « à temps », i.e. avant que possibilité de s ’arrêter « à temps », i.e. avant que l ’irréalisabilité du projet ait crée un gouffre financierl ’irréalisabilité du projet ait crée un gouffre financier
Moins simple à managerMoins simple à manager– difficile à gérer en situation contractuelledifficile à gérer en situation contractuelle– mal contrôlé => on retombe dans le mal contrôlé => on retombe dans le hackinghacking
Production des incréments asservie sur 2 parmi 3 :Production des incréments asservie sur 2 parmi 3 :– période (e.g. release toutes les 2 semaines)période (e.g. release toutes les 2 semaines)– fonctionnalités (releases découpés suivant use-cases)fonctionnalités (releases découpés suivant use-cases)– niveau de qualité (problème de la mesure)niveau de qualité (problème de la mesure)
11/04/23 05:0013
Vision «générique» d’un cycle UMLVision «générique» d’un cycle UML
INCEPTION
• Cas d'utilisation• Modèle des objets du domaine• Interfaces• Maquettes
VALIDATION
• Validation technique
• Validation par les utilisateurs
ELABORATION
• Architecture • Modèles des objets et scénarios• Règles de transformation (Design patterns)
CONSTRUCTION• Modèle détaillé des objets• Scénarios détaillés• Algorithmes• Codage - Mise au point• Intégration
UML
Modèle utilisateurModèle statique
Modèle dynamiqueModèle d’implantation
11/04/23 05:0014
Modélisation UMLModélisation UML Modélisation selon 4 points de vue principaux :Modélisation selon 4 points de vue principaux :
– Vision utilisateur du systèmeVision utilisateur du système» Cas d’utilisationCas d’utilisation
– Aspects statiques du systèmeAspects statiques du système» Description des données et de leurs relationsDescription des données et de leurs relations» Structuration en paquetagesStructuration en paquetages
– Aspects dynamiques du système (comportemental)Aspects dynamiques du système (comportemental)» Diagramme de séquences (scénarios)Diagramme de séquences (scénarios)» Diagramme de collaborations (entre objets)Diagramme de collaborations (entre objets)» Diagramme d’états-transitions (Harel)Diagramme d’états-transitions (Harel)» Diagramme d’activitésDiagramme d’activités
– Vision implantation Vision implantation » Diagramme de composants et de déploiementDiagramme de composants et de déploiement
11/04/23 05:0015
Température des diagrammes UMLTempérature des diagrammes UML
Besoins Conception V & V Analyse Réalisation
Diagramme de cas d’utilisationsDiagramme de cas d’utilisations Diagramme de classesDiagramme de classes Diagramme de paquetagesDiagramme de paquetages Diagramme de séquencesDiagramme de séquences Diagramme de collaborationsDiagramme de collaborations Diagramme d’états-transitionsDiagramme d’états-transitions Diagramme d’activitésDiagramme d’activités Diagramme d’implantationDiagramme d’implantation
«Température»
11/04/23 05:0016
Modélisation UMLModélisation UML Modélisation selon 4 points de vue principaux :Modélisation selon 4 points de vue principaux :
– Vision utilisateur du systèmeVision utilisateur du système» Cas d’utilisationCas d’utilisation
– Aspects statiques du systèmeAspects statiques du système» Description des données et de leurs relationsDescription des données et de leurs relations» Structuration en paquetagesStructuration en paquetages
– Aspects dynamiques du système (comportemental)Aspects dynamiques du système (comportemental)» Diagramme de séquences (scénarios)Diagramme de séquences (scénarios)» Diagramme de collaborations (entre objets)Diagramme de collaborations (entre objets)» Diagramme d’états-transitions (Harel)Diagramme d’états-transitions (Harel)» Diagramme d’activitésDiagramme d’activités
– Vision implantation Vision implantation » Diagramme de composants et de déploiementDiagramme de composants et de déploiement
11/04/23 05:0017
Sujet longtemps négligé (e.g. OMT)Sujet longtemps négligé (e.g. OMT) Question de l'expression des besoins pourtant Question de l'expression des besoins pourtant
fondamentalefondamentale– Et souvent pas si facile Et souvent pas si facile (cible mouvante)(cible mouvante)
» cf. syndrome de la balançoirecf. syndrome de la balançoire
Object-Oriented Software Engineering (Ivar Object-Oriented Software Engineering (Ivar Jacobson et al.)Jacobson et al.)– Principal apport : la technique des acteurs et des cas Principal apport : la technique des acteurs et des cas
d'utilisationd'utilisation– Cette technique est intégrée a UMLCette technique est intégrée a UML
Expression des besoins et OOADExpression des besoins et OOAD
11/04/23 05:0018
Se comprendreSe comprendre
Représenter le systèmeReprésenter le système
Exprimer le service renduExprimer le service rendu
Décrire la manière dont le système est perçuDécrire la manière dont le système est perçu
Quatre objectifsQuatre objectifs
11/04/23 05:0019
Les moyensLes moyens
Les acteurs UMLLes acteurs UML
Les Les use-casesuse-cases UML UML
Utilisation d’un dictionnaire du domaineUtilisation d’un dictionnaire du domaine
11/04/23 05:0020
Outil de dialogueOutil de dialogue Informel, évolutif, simple a réaliserInformel, évolutif, simple a réaliser Etablir et figer la terminologieEtablir et figer la terminologie
– Permet de figer la terminologie du domaine d'application.Permet de figer la terminologie du domaine d'application.– Constitue le point d'entrée et le référentiel initial de Constitue le point d'entrée et le référentiel initial de
l'application ou du système.l'application ou du système.
Intérêt du dictionnaireIntérêt du dictionnaire
11/04/23 05:0021
Exemple de dictionnaireExemple de dictionnaire
– Dictionnaire d'un simulateur de volDictionnaire d'un simulateur de vol
Notion Définition Nom informatiqueTraduit en ...
Pilotage Action de piloter un avion en enchaînant des manoeuvres élémentaires
PilotagePackage
Manette des gaz
Instrument qui permet d'agir sur la quantité de carburant injectée dans le moteur
Classe abstraite
Manette_gazClasse
InstrumentInstrument Organe d'interaction entre le pilote et l'avion ou entre l'avion et le pilote
Mettre_a_fondOpérationMettre les gaz à fond
Action qui permet d’injecter le maximum de carburant pour atteindre la vitesse maximale
Action Définition Nom informatiqueTraduit en ...
11/04/23 05:0022
ActeursActeurs
Entité externe au système et amenée à interagir Entité externe au système et amenée à interagir avec lui. Un acteur «joue un rôle» vis-a-vis du avec lui. Un acteur «joue un rôle» vis-a-vis du systèmesystème
Un acteur est une classeUn acteur est une classe Un acteur peut représenter un être humain, un Un acteur peut représenter un être humain, un
autre système, ...autre système, ... L'identification des acteurs permet de délimiter le L'identification des acteurs permet de délimiter le
systèmesystème
11/04/23 05:0023
Acteurs : notationsActeurs : notations
«Actor»SUPERVISEUR
CLIENT
«Actor»
EXPEDITEUR
Système de vente par correspondance (VPC)
11/04/23 05:0024
Les cas d'utilisation (use-cases)Les cas d'utilisation (use-cases) Un cas d'utilisation est une manière particulière Un cas d'utilisation est une manière particulière
d'utiliser le systèmed'utiliser le système– séquence d'interactions entre le système et un ou séquence d'interactions entre le système et un ou
plusieurs acteursplusieurs acteurs– Ils s’expriment par des diagrammes de séquences Ils s’expriment par des diagrammes de séquences
La compilation des cas d'utilisation décrit de La compilation des cas d'utilisation décrit de manière informelle le service rendu par le systèmemanière informelle le service rendu par le système– fournissent une expression "fonctionnelle" du besoinfournissent une expression "fonctionnelle" du besoin– peuvent piloter la progression d ’un cycle en spiralepeuvent piloter la progression d ’un cycle en spirale
Les cas d'utilisation sont nommes en utilisant la Les cas d'utilisation sont nommes en utilisant la terminologie décrite dans le dictionnaireterminologie décrite dans le dictionnaire
11/04/23 05:0025
Cas d'utilisation : exemple et notationCas d'utilisation : exemple et notation
CLIENT
EXPEDITEUR
Traiter commande
MAJ catalogue
Etablir crédit
SUPERVISEUR
Commander
Consulter
VPC
11/04/23 05:0026
Relations sur les Relations sur les use-casesuse-cases
CommunicationCommunication– Lien entre le use case et l’acteur. Lien entre le use case et l’acteur. – De type « association »De type « association »
Utilisation Utilisation («uses»)(«uses»)– Utilisation d’autres use-cases pour en préciser la Utilisation d’autres use-cases pour en préciser la
définitiondéfinition
Extension Extension («extends») : utilisation « optionnelle » (attention («extends») : utilisation « optionnelle » (attention au sens des flèches.au sens des flèches.
Inclusion (« includes ») : utilisation systématiqueInclusion (« includes ») : utilisation systématique
Héritage (« Generalization »Héritage (« Generalization »
11/04/23 05:0027
Relations sur les Relations sur les use-casesuse-cases : notation : notation
Commander Commander échantillon
«extends»
Organiser paiement
Lire données client
Sélectionner produit
«includes»
«includes»
«includes»
Consulter Catalogue
11/04/23 05:0028
Exprimer le service renduExprimer le service rendu
Besoins fondamentaux : manières d'utiliser le systèmeBesoins fondamentaux : manières d'utiliser le système– Représentation globale par cas d'utilisationReprésentation globale par cas d'utilisation taille du système, seulement de 3 à 10 Use Casestaille du système, seulement de 3 à 10 Use Cases
Besoins opérationnels : interactions avec le systèmeBesoins opérationnels : interactions avec le système– Représentation détaillée par raffinement des cas d'utilisationReprésentation détaillée par raffinement des cas d'utilisation– Début de décomposition fonctionnelle : ne pas aller trop loinDébut de décomposition fonctionnelle : ne pas aller trop loin
11/04/23 05:0029
Besoins fondamentaux et opérationnelsBesoins fondamentaux et opérationnels
Besoin fondamental :Besoin fondamental :– Conduire une voitureConduire une voiture
Besoins opérationnelsBesoins opérationnels– Ouvrir la porteOuvrir la porte– Mettre le contactMettre le contact– AccélérerAccélérer– Tourner le volantTourner le volant– ......
conduire une voiture{fondamental}
conduire une voiture{fondamental}
ouvrir la porte{opérationnel}
mettre le contact{opérationnel}
accélérer{opérationnel}
tourner le volant{opérationnel}
«includes»
«includes»
«includes»
«includes»
11/04/23 05:0030
Utiles pour l’établissement de scénariosUtiles pour l’établissement de scénarios
Modélisation d’exemples issus des use-casesModélisation d’exemples issus des use-cases
Domaine de l’application
Utilisateur 1
Utilisateur 2
besoin1
besoin2
besoin3
besoin4
service1() service3()
service1() service2() service3()
service5() service6() service1()
service6()
service2()
Objet1 Objet2 Objet3
service1
service2
service3
service4
service5
service3 scénario du use case«besoin 2»
service4() service5()
11/04/23 05:0031
Modélisation UMLModélisation UML Modélisation selon 4 points de vue principaux :Modélisation selon 4 points de vue principaux :
– Vision utilisateur du systèmeVision utilisateur du système» Cas d’utilisationCas d’utilisation
– Aspects statiques du systèmeAspects statiques du système» Description des données et de leurs relationsDescription des données et de leurs relations» Structuration en paquetagesStructuration en paquetages
– Aspects dynamiques du système (comportemental)Aspects dynamiques du système (comportemental)» Diagramme de séquences (scénarios)Diagramme de séquences (scénarios)» Diagramme de collaborations (entre objets)Diagramme de collaborations (entre objets)» Diagramme d’états-transitions (Harel)Diagramme d’états-transitions (Harel)» Diagramme d’activitésDiagramme d’activités
– Vision implantation Vision implantation » Diagramme de composants et de déploiementDiagramme de composants et de déploiement
11/04/23 05:0032
Notations UML pour classes et objetsNotations UML pour classes et objets
Représentation d’une classeReprésentation d’une classe
CL805699 : Compte
Représentation simplifiée
Nom de la classe
Compartiment des Attributs
Compartiment des Opérations
CompteCompte
solde: Sommeplancher: Somme
créditer (Somme)débiter (Somme)
Représentation des objets
Nom de l’objet
11/04/23 05:0033
Constituants d’une classeConstituants d’une classe
Concept représenté (nom)Concept représenté (nom) Classes héritées (concepts précisés)Classes héritées (concepts précisés) Relations avec autres classesRelations avec autres classes Attributs (classe, nom, visibilité)Attributs (classe, nom, visibilité) Opérations (paramètres)Opérations (paramètres) Contraintes, invariantsContraintes, invariants Généricité (classes paramétrées)Généricité (classes paramétrées) StéréotypesStéréotypes
11/04/23 05:0034
Représentation des attributsReprésentation des attributs
Caractérisation des attributsCaractérisation des attributs
Nom de l'attribut
Type de l'attributATTRIBUTS
Compte
solde: Sommeplancher: Somme
créditer (Somme)débiter (Somme)
11/04/23 05:0035
Attributs dérivésAttributs dérivés Attributs dont la valeur peut être déduite d ’autres Attributs dont la valeur peut être déduite d ’autres
éléments du modèleéléments du modèle– e.g. e.g. âgeâge si l ’on connaît la date de naissance si l ’on connaît la date de naissance– notation : /agenotation : /age
En termes d ’analyse, indique seulement une En termes d ’analyse, indique seulement une contraintecontrainte entre valeurs et non une indication de entre valeurs et non une indication de ce qui doit être calculé et ce qui doit être mémorisé ce qui doit être calculé et ce qui doit être mémorisé
11/04/23 05:0036
Représentation des opérationsReprésentation des opérations Vues graphiquesVues graphiques
Nom de l’opération
Nom de paramètreClasse du paramètre
Compte
solde: Sommeplancher: Somme
créditer (montant: Somme)débiter (montant: Somme)
11/04/23 05:0037
Représentation des invariantsReprésentation des invariants
Des contraintes peuvent être ajoutées aux éléments Des contraintes peuvent être ajoutées aux éléments du modèle UML du modèle UML – notation entre notation entre { }{ }
Invariants = Propriétés vraies pour l'ensemble des Invariants = Propriétés vraies pour l'ensemble des instances de la classeinstances de la classe– dans un état stable, chaque instance doit vérifier les dans un état stable, chaque instance doit vérifier les
invariants de sa classeinvariants de sa classe– exprimés à l ’aide d ’OCL exprimés à l ’aide d ’OCL
» Object Constraint LanguageObject Constraint Language
– e.g. e.g. {solde >= plancher} {solde >= plancher}
Compte{solde>=plancher}
solde: Sommeplancher: Somme
créditer (Somme)débiter (Somme)
11/04/23 05:0038
Représentation des pré/post conditionsReprésentation des pré/post conditions
PréconditionsPréconditions– {«precondition» {«precondition» expression booléenneexpression booléenne OCL} OCL}– Abrégé en: {pre: Abrégé en: {pre: expression booléenneexpression booléenne OCL} OCL}
PostconditionsPostconditions– {«postcondition» {«postcondition» expression booléenneexpression booléenne OCL} OCL}– Abrégé en: {post: Abrégé en: {post: expression booléenneexpression booléenne OCL} OCL}– Operateur « valeur précédente » (idem Operateur « valeur précédente » (idem oldold Eiffel): Eiffel):
» expression OCL expression OCL @pre @pre
11/04/23 05:0039
Etre abstrait Etre abstrait etet précis avec UML précis avec UML
Compte{solde>=plancher}
solde: Sommeplancher: Somme
créditer (montant : Somme) {pre: montant > 0} {post: solde = solde @pre + montant}débiter (s: Somme) {pre: montant > 0 and montant<=solde-plancher} {post: solde = solde @pre - montant}
Analyse précise ou “analyse par contrat”
11/04/23 05:0040
Relation entre classesRelation entre classes
Deux points de vue :Deux points de vue :– Une relation met en correspondance des éléments Une relation met en correspondance des éléments
d’ensemblesd’ensembles
– Une relation permet la description d'un concept à l’aide Une relation permet la description d'un concept à l’aide d’autres conceptsd’autres concepts
Une contrainte :Une contrainte :– Une relation est un lien stable entre deux objetsUne relation est un lien stable entre deux objets
11/04/23 05:0041
Relation entre classesRelation entre classes
Personne Voiture
Possession
Personne Voiturepropriétaire propriétépossession
NotationNotation
Vue ensembliste = Graphe de la relationVue ensembliste = Graphe de la relation
Une association met en correspondance des éléments d’ensembles
1 *
11/04/23 05:0042
Représentation des relationsReprésentation des relations
RôleNom de relation
Cardinalité précisée
Relation, direction, rôle, cardinalitéRelation, direction, rôle, cardinalité
Voiture Personne*
passager
moyen_de_transport
transporte
direction de relation
Rôle
11/04/23 05:0043
**
Cardinalité d'une relationCardinalité d'une relation
Classe Exactement une
Classe Plusieurs (0 à n)
Classe Optionnelle (0 ou 1)
Classe1,2,4
Classe1-10
0,1
1
Cardinalité spécifiée
Intervalle
11/04/23 05:0044
Cas particuliers de relationsCas particuliers de relations
Une relation réflexive lie des objets de même classe
encadre
sous-fifre
chef1
Relations réflexivesRelations réflexives
Personne1..*
11/04/23 05:0045
Cas particuliers de relations :Cas particuliers de relations :– Notion de Notion de touttout et et partiesparties
Composition et AgrégationComposition et Agrégation
1
4,6Roue
Voiture Personne*
passager
moyen_de_transport
transporte
Chassis1
Composition
Agrégation
1 1
roulement >
structure >
11/04/23 05:0046
Différentes formes suggérant Différentes formes suggérant l’inclusionl’inclusion
Autre vues de la Autre vues de la composition/agrégationcomposition/agrégation
Voiture
roulement[4-6]: Rouestructure: Chassis
Voiture
Roue
Chassis
roulement 4-6
structure 1
11/04/23 05:0047
Relations n-airesRelations n-aires
Relations entre plus de 2 classes Relations entre plus de 2 classes (à éviter si possible)(à éviter si possible)
MATIERE
CLASSE
Enseignement1..*
1..*
Enseignant Enseignée
Destinataire
PROFESSEUR*
1..*
Enseignant Enseignée1..*
Destinataire
1PROFESSEUR MATIEREEnseignement
CLASSE
1..*
1..*
0..*
11/04/23 05:0048
L'attribut porte sur le lienL'attribut porte sur le lien
Relations attribuéesRelations attribuées
Etudiant Matièrecandidat
objet_épreuve
n..k
Note
épreuve
11/04/23 05:0049
Qualifieurs de relationsQualifieurs de relations
Un qualifieur est un attribut spécial qui permet, Un qualifieur est un attribut spécial qui permet, dans le cas d'une relation 1-vers-plusieurs ou dans le cas d'une relation 1-vers-plusieurs ou plusieurs-vers-plusieurs, de réduire la cardinalité. plusieurs-vers-plusieurs, de réduire la cardinalité. Il peut être vu comme une clé qui permet de Il peut être vu comme une clé qui permet de distinguer de façon unique un objet parmi distinguer de façon unique un objet parmi plusieurs.plusieurs.
FichierRépertoire FichierNom du fichierRépertoire
Relation non qualifiée
Nom du fichier
Relation qualifiée
Un répertoire + un nom de fichier identifient de façon unique un fichier
0..*0..*
11/04/23 05:0050
Représentation de la généralisation Représentation de la généralisation (héritage)(héritage)
AVION
Héritage simple Héritage multiple
AEROPLANE AEROPLANE VEHICULE_DE_TRANSPORT
AVION
Héritage simple et multipleHéritage simple et multiple
11/04/23 05:0051
Interfaces et « lollipop »Interfaces et « lollipop »
AVION
MOBILE
Raffinement AVION
MOBILE« interface »
11/04/23 05:0052
Héritage des relationsHéritage des relations
REPERTOIRE1..*
DRIVER FICHIER_TEXTE FICHIER_BINAIRE
FICHIERlien logique
Les relations sont héritées par les sous classes :Les relations sont héritées par les sous classes :
VEHICULE MOTEUR1..2
VOITURE CAMION
motorisation
*
11/04/23 05:0053
Représentation de classes abstraitesReprésentation de classes abstraites
Classes sans instances immédiatesClasses sans instances immédiates
Une instance de «Forme» est obligatoirement une instance de la classe Carre ou de la classe Cercle
CercleCarre
Forme{abstract}
11/04/23 05:0054
Représentation des opérations Représentation des opérations abstraitesabstraites
Opération sans corps d’une classe abstraiteOpération sans corps d’une classe abstraite
calculer_surface () {abstract}
Forme {abstract}
calculer_surface()
Carre Cercle
calculer_surface()
11/04/23 05:0055
VisibilitéVisibilité
Différentes visibilités des membres d'une classeDifférentes visibilités des membres d'une classe
Interface
corpsimplémenteur
usager
héritier
privé = -
protégé = #
public = +
11/04/23 05:0056
VisibilitéVisibilité
#m1 (p1,P2,p3)
+a1 : T1-a2 : T2
+m2 (p1,P2,p3)
Classe
ReprésentationReprésentation
Pas de sens en analyse...Pas de sens en analyse...
11/04/23 05:0057
Classes paramétrées (Généricité)Classes paramétrées (Généricité)
Tableau
element : Ttaille : Entier
T , Entier : Integer
Tableau
<<bind>> <Point, 3>
Classe générique
Classe effective
paramètres génériques
paramètres effectifs
11/04/23 05:0058
Les relations en tant que classesLes relations en tant que classes
Pratique dans certains casPratique dans certains cas– Relations ternaires.Relations ternaires.– La relation a des opérations appelées : La relation a des opérations appelées : classe de liaisonclasse de liaison
utilisateur station detravail
autorisation
prioritéprivilègessession dedémarrage
répertoire
home directory
autorisation sur* *
*
11/04/23 05:0059
Les stéréotypesLes stéréotypes Nouveaux éléments de modélisation instanciant Nouveaux éléments de modélisation instanciant
– Des classes du méta modèle UML (pour les stéréotypes Des classes du méta modèle UML (pour les stéréotypes de base UML)de base UML)
– Des extensions de classes du méta modèle UML (pour Des extensions de classes du méta modèle UML (pour les stéréotypes définis par l’utilisateur)les stéréotypes définis par l’utilisateur)
Peuvent être attachés aux éléments de Peuvent être attachés aux éléments de modélisations et aux diagrammes :modélisations et aux diagrammes :– Classes, objets, opérations, attributs, généralisations, Classes, objets, opérations, attributs, généralisations,
relations, acteurs, uses-cases, événements, diagrammes relations, acteurs, uses-cases, événements, diagrammes de collaboration ...de collaboration ...
11/04/23 05:0060
Notations pour les stéréotypesNotations pour les stéréotypes
«persistent» CLIENT
nom : stringadresse : string
«persistent» CLIENT
nom : stringadresse : string
CLIENT
CLIENT
nom : stringadresse : string
stéréotype
11/04/23 05:0061
Les notesLes notes
Compléments de modélisationCompléments de modélisation– Attachés à un élément du modèle ou libre dans un Attachés à un élément du modèle ou libre dans un
diagrammediagramme– Exprimés sous forme textuelleExprimés sous forme textuelle– Elles peuvent être typées par des stéréotypesElles peuvent être typées par des stéréotypes
modèle réalisépar John Doe
PERSONNE ENTREPRISE* 0..1
employé employeur
0..1
chef
{PERSONNE.employeur = PERSONNE.chef.employeur}
11/04/23 05:0062
Conseils pratiques Conseils pratiques Réfléchir au problème avant de commencerRéfléchir au problème avant de commencer
– Soigner le nommage, insister sur le nommage des Soigner le nommage, insister sur le nommage des relations et des rôlesrelations et des rôles
Faire simple!Faire simple!– ««Things must be as simple as possible, but no simplerThings must be as simple as possible, but no simpler». ».
A. EinsteinA. Einstein– éviter toute complication nuisibleéviter toute complication nuisible
» utiliser les qualifieurs utiliser les qualifieurs » éviter les relations ternaires, quaternaires (trop complexe)éviter les relations ternaires, quaternaires (trop complexe)» se dégager de l’implémentation : raisonner objets, classes, se dégager de l’implémentation : raisonner objets, classes,
messages, relations, attributs, opérationsmessages, relations, attributs, opérations
– ne pas s’inquiéter si les possibilités de la notation ne sont ne pas s’inquiéter si les possibilités de la notation ne sont pas toutes exploitéespas toutes exploitées
11/04/23 05:0063
Conseils pratiques (suite)Conseils pratiques (suite) Approche incrémentaleApproche incrémentale
– ItérerItérer– Confronter ses modèles aux autresConfronter ses modèles aux autres– Savoir s'arrêter avant d’atteindre la perfection...Savoir s'arrêter avant d’atteindre la perfection...
» prise en compte qualité (niveau de précision), coûts, délais...prise en compte qualité (niveau de précision), coûts, délais...» asservissement au processus de développementasservissement au processus de développement
Faire simple (encore)Faire simple (encore)– Un bon modèle n’est pas un modèle où l’on ne peut plus Un bon modèle n’est pas un modèle où l’on ne peut plus
rien ajouter, mais un modèle où on ne peut plus rien rien ajouter, mais un modèle où on ne peut plus rien enleverenlever. . (d’après A. de St-Exupéry)(d’après A. de St-Exupéry)
11/04/23 05:0064
Modélisation UMLModélisation UML Modélisation selon 4 points de vue principaux :Modélisation selon 4 points de vue principaux :
– Vision utilisateur du systèmeVision utilisateur du système» Cas d’utilisationCas d’utilisation
– Aspects statiques du systèmeAspects statiques du système» Description des données et de leurs relationsDescription des données et de leurs relations» Structuration en paquetagesStructuration en paquetages
– Aspects dynamiques du système (comportemental)Aspects dynamiques du système (comportemental)» Diagramme de séquences (scénarios)Diagramme de séquences (scénarios)» Diagramme de collaborations (entre objets)Diagramme de collaborations (entre objets)» Diagramme d’états-transitions (Harel)Diagramme d’états-transitions (Harel)» Diagramme d’activitésDiagramme d’activités
– Vision implantation Vision implantation » Diagramme de composants et de déploiementDiagramme de composants et de déploiement
11/04/23 05:0065
Notion de packageNotion de package
Élément structurant les classesÉlément structurant les classes– Modularisation à l'échelle supérieureModularisation à l'échelle supérieure– Un package partitionne l'application :Un package partitionne l'application :
» Il référence ou se compose des classes de l’applicationIl référence ou se compose des classes de l’application» Il référence ou se compose d’autres packagesIl référence ou se compose d’autres packages
– Un package réglemente la visibilité des classes et des Un package réglemente la visibilité des classes et des packages qu’il référence ou le composepackages qu’il référence ou le compose
– Les packages sont liés entre eux par des liens d'utilisation, Les packages sont liés entre eux par des liens d'utilisation, de composition et de généralisationde composition et de généralisation
– Un package est la représentation informatique du contexte Un package est la représentation informatique du contexte de définition d’une classede définition d’une classe
11/04/23 05:0066
Représentation d’un packageReprésentation d’un package
Vue graphique externeVue graphique externe
Vue graphique externe et interneVue graphique externe et interne
P1
P2
P3
C1 C2
P1
11/04/23 05:0067
Définition de vues partielles d'une applicationDéfinition de vues partielles d'une application
Partitionnement d’une applicationPartitionnement d’une application
ENSEMBLE DES CLASSES DE L'APPLICATION
SYNTHÈSE EN PACKAGES
N.B.: une classe appartient à un et un seul package
11/04/23 05:0068
Réglementation de la visibilité des classesRéglementation de la visibilité des classes– Classes de visibilité publiqueClasses de visibilité publique : :
» classes utilisables par des classes d’autres packagesclasses utilisables par des classes d’autres packages
– Classes de visibilité privéeClasses de visibilité privée : : » classes utilisables seulement au sein d’un packageclasses utilisables seulement au sein d’un package
Représentation graphiqueReprésentation graphique
Visibilité dans un packageVisibilité dans un package
CLASSE D'INTERFACE CLASSE DE CORPS CLASSE EXTERNE
{public }
Classe{private }
Package::Classe
11/04/23 05:0069
Utilisation entre packagesUtilisation entre packages Définition Définition
– Il y a utilisation entre packages si des classes du package Il y a utilisation entre packages si des classes du package utilisateur accèdent à des classes du package utiliséutilisateur accèdent à des classes du package utilisé
– Pour qu’une classe d’un package p1 puisse utiliser une Pour qu’une classe d’un package p1 puisse utiliser une classe d’un package p2, il doit y avoir au préalable une classe d’un package p2, il doit y avoir au préalable une déclaration déclaration expliciteexplicite de l’utilisation du package p2 par le de l’utilisation du package p2 par le package p1package p1
Représentation graphiqueReprésentation graphique
P2P1
Vue externe du package P1
11/04/23 05:0070
Utilisation entre packagesUtilisation entre packages
Exemple (vue externe du package livraisons)Exemple (vue externe du package livraisons)
LIVRAISONS
VEHICULES
COLIS
LIVREURS
11/04/23 05:0071
Héritage entre packagesHéritage entre packages
ExemplesExemples
JeuPlateau
JeuDameJeuEchec
Windowing System
Motif MicrosoftWindows
11/04/23 05:0072
Utilité des packagesUtilité des packages
Réponses au besoinRéponses au besoin– Contexte de définition d'une classeContexte de définition d'une classe– Unité de structurationUnité de structuration– Unité d'encapsulationUnité d'encapsulation– Unité d'intégrationUnité d'intégration– Unité de réutilisationUnité de réutilisation– Unité de configurationUnité de configuration– Unité de productionUnité de production
11/04/23 05:0073
Structuration par packages Structuration par packages (vs)(vs)
décomposition hiérarchiquedécomposition hiérarchique Pour les grands systèmes, il est nécessaire de
disposer d’une unité de structuration : À un niveau supérieur,
Plus souple que :
La composition de classe
Le référençage de packages
=> domaines de structuration :Packages décomposables en packages
11/04/23 05:0074
Exemple : Package entrepriseExemple : Package entreprise
Exemple de compositionExemple de composition
ENTREPRISE
COMPTABILITÉ COMMERCIAL
LIVRAISON
11/04/23 05:0075
Exemple : Package entrepriseExemple : Package entreprise
Ensemble des packages terminaux de l’applicationEnsemble des packages terminaux de l’application
Véhicules
Personnel
Colis
Clientèles
LivraisonsFacturation
Bilan
Livreurs
Commerciaux
TenueComptes
11/04/23 05:0076
Exemple : Package entrepriseExemple : Package entreprise
Composition des packages en sous-packagesComposition des packages en sous-packages
COMMERCIAL
ENTREPRISE
COMPTABILITÉ
Facturation
TenueComptes Personnel
Bilan
LIVRAISONS
Véhicules
Livreurs
Livraisons
Colis
Clientèles Commerciaux
11/04/23 05:0077
Modélisation UMLModélisation UML Modélisation selon 4 points de vue principaux :Modélisation selon 4 points de vue principaux :
– Vision utilisateur du systèmeVision utilisateur du système» Cas d’utilisationCas d’utilisation
– Aspects statiques du systèmeAspects statiques du système» Description des données et de leurs relationsDescription des données et de leurs relations» Structuration en paquetagesStructuration en paquetages
– Aspects dynamiques du système (comportemental)Aspects dynamiques du système (comportemental)» Diagramme de séquences (scénarios)Diagramme de séquences (scénarios)» Diagramme de collaborations (entre objets)Diagramme de collaborations (entre objets)» Diagramme d’états-transitions (Harel)Diagramme d’états-transitions (Harel)» Diagramme d’activitésDiagramme d’activités
– Vision implantation Vision implantation » Diagramme de composants et de déploiementDiagramme de composants et de déploiement
11/04/23 05:0078
Aspects dynamiques du systèmeAspects dynamiques du système Jusqu’ici, système décrit Jusqu’ici, système décrit statiquementstatiquement::
– Décrivent les messages (méthodes ou opérations) que Décrivent les messages (méthodes ou opérations) que les instances des classes peuvent recevoir mais ne les instances des classes peuvent recevoir mais ne décrivent pas l’émission de ces messagesdécrivent pas l’émission de ces messages
– Ne montrent pas le lien entre ces échanges de messages Ne montrent pas le lien entre ces échanges de messages et les processus généraux que l’application doit réaliseret les processus généraux que l’application doit réaliser
Il faut maintenant décrire comment le système Il faut maintenant décrire comment le système évolue dans le tempsévolue dans le temps
11/04/23 05:0079
Modélisation UMLModélisation UML Modélisation selon 4 points de vue principaux :Modélisation selon 4 points de vue principaux :
– Vision utilisateur du systèmeVision utilisateur du système» Cas d’utilisationCas d’utilisation
– Aspects statiques du systèmeAspects statiques du système» Description des données et de leurs relationsDescription des données et de leurs relations» Structuration en paquetagesStructuration en paquetages
– Aspects dynamiques du système (comportemental)Aspects dynamiques du système (comportemental)» Diagramme de séquences (scénarios)Diagramme de séquences (scénarios)» Diagramme de collaborations (entre objets)Diagramme de collaborations (entre objets)» Diagramme d’états-transitions (Harel)Diagramme d’états-transitions (Harel)» Diagramme d’activitésDiagramme d’activités
– Vision implantation Vision implantation » Diagramme de composants et de déploiementDiagramme de composants et de déploiement
11/04/23 05:0080
Diagrammes de séquences (scénarios)Diagrammes de séquences (scénarios) Dérivés des scénarios de OMT :Dérivés des scénarios de OMT :
– Montrent des exemples de coopération entre objets dans Montrent des exemples de coopération entre objets dans la réalisation de processus de l’applicationla réalisation de processus de l’application
– Illustrent la dynamique d’enchaînement des traitements à Illustrent la dynamique d’enchaînement des traitements à travers les messages échangés entre objetstravers les messages échangés entre objets
– le temps est représenté comme une dimension explicitele temps est représenté comme une dimension explicite» en général de haut en basen général de haut en bas
Les éléments constitutifs d’un scénario sont :Les éléments constitutifs d’un scénario sont :– Un ensemble d’objets (et/ou d’acteurs)Un ensemble d’objets (et/ou d’acteurs)– Un message initiateur du scénario Un message initiateur du scénario – La chronologie des messages échangés La chronologie des messages échangés
subséquemmentsubséquemment– Les contraintes de temps (aspects temps réel)Les contraintes de temps (aspects temps réel)
11/04/23 05:0081
Syntaxe graphiqueSyntaxe graphique
Objets et messagesObjets et messages
Nom Objet1:NomClasse1Nom Objet:NomClasse
Objets = Instances de classes
nom message (paramètres)
Message nom message émis par Nom Objet
vers Nom Objet1
Tem
ps
11/04/23 05:0082
Ligne de vie et activationLigne de vie et activation
La «ligne de vie» représente l’existence de l’objet à La «ligne de vie» représente l’existence de l’objet à un instant particulierun instant particulier– Commence avec la création de l’objetCommence avec la création de l’objet– Se termine avec la destruction de l’objetSe termine avec la destruction de l’objet
L’activation est la période durant laquelle l’objet L’activation est la période durant laquelle l’objet exécute une action lui-même ou via une autre exécute une action lui-même ou via une autre procédureprocédure
11/04/23 05:0083
NotationNotation
objet1:Classe1
objet2:Classe2
objet3:Classe3
Client
op ( )
m1 ( )m2 ( )
m3 ( )
Objet créé dans le scénario
Activité de l’objet
Objet existant avant et après l’activation du scénario
Ligne de vie
11/04/23 05:0084
MessagesMessages
Communication entre objetsCommunication entre objets– Des paramètresDes paramètres– Un retourUn retour
Cas particuliersCas particuliers– Les messages entraînant la construction d’un objetLes messages entraînant la construction d’un objet– La récursionLa récursion– Les destructions d’objetsLes destructions d’objets
11/04/23 05:0085
NotationsNotations
objet1:Classe1op ( )
objet2:Classe2
m1 ( par )
Création d’objet
Destruction d’objetRetour d’opération
Envoi de message avec paramètre
m2 ( )
Récursion
11/04/23 05:0086
Aspects asynchrones et temps réelAspects asynchrones et temps réel
Lecture du scénario et chronologieLecture du scénario et chronologie– Un scénario se lit de haut en bas dans le sens Un scénario se lit de haut en bas dans le sens
chronologique d’échange des messages.chronologique d’échange des messages.– Des contraintes temporelles peuvent être ajoutées au Des contraintes temporelles peuvent être ajoutées au
scénarioscénario
:Nom classe2Nom Objet1:
demande
réponse
a
b
{b-a< 5 sec.}
:Nom classe2Nom Objet1:
demanded
d’
{d’-d< 1 sec.}
11/04/23 05:0087
Représentation de conditionnellesReprésentation de conditionnelles
objet1:Classe1op ( )
objet2:Classe2
[x<0] m1 ( x )
[x>0] m2 ( x )
Branchement conditionnel
Branchement conditionnel
11/04/23 05:0088
Modélisation UMLModélisation UML Modélisation selon 4 points de vue principaux :Modélisation selon 4 points de vue principaux :
– Vision utilisateur du systèmeVision utilisateur du système» Cas d’utilisationCas d’utilisation
– Aspects statiques du systèmeAspects statiques du système» Description des données et de leurs relationsDescription des données et de leurs relations» Structuration en paquetagesStructuration en paquetages
– Aspects dynamiques du système (comportemental)Aspects dynamiques du système (comportemental)» Diagramme de séquences (scénarios)Diagramme de séquences (scénarios)» Diagramme de collaborations (entre objets)Diagramme de collaborations (entre objets)» Diagramme d’états-transitions (Harel)Diagramme d’états-transitions (Harel)» Diagramme d’activitésDiagramme d’activités
– Vision implantation Vision implantation » Diagramme de composants et de déploiementDiagramme de composants et de déploiement
11/04/23 05:0089
Diagrammes de collaborationDiagrammes de collaboration
Les scénarios et diagrammes de collaboration:Les scénarios et diagrammes de collaboration:– Montrent des exemples de coopération des objets dans la Montrent des exemples de coopération des objets dans la
réalisation de processus de l’applicationréalisation de processus de l’application
Les scénarios :Les scénarios :– Illustrent la dynamique d’enchaînement des traitements Illustrent la dynamique d’enchaînement des traitements
d’une application en introduisant la dimension temporelled’une application en introduisant la dimension temporelle
Les diagrammes de collaborationLes diagrammes de collaboration– Dimension temporelle représentée par numéros de Dimension temporelle représentée par numéros de
séquence : définition d’un ordre partiel sur les opérationsséquence : définition d’un ordre partiel sur les opérations– Représentation des objets et de leurs relationsReprésentation des objets et de leurs relations– Utilisent les attributs et opérationsUtilisent les attributs et opérations
11/04/23 05:0090
Utilisation des diagrammes de Utilisation des diagrammes de collaborationcollaboration
Ils peuvent être attachés à :Ils peuvent être attachés à :– Une classeUne classe– Une opérationUne opération– Un use-caseUn use-case
Ils s’appliquentIls s’appliquent– En spécificationEn spécification– En conception (illustration de En conception (illustration de design patternsdesign patterns))
11/04/23 05:0091
Eléments constitutifsEléments constitutifs
Un contexte contenant les éléments mis en jeu Un contexte contenant les éléments mis en jeu durant l’opération :durant l’opération :– Un acteurUn acteur– Un ensemble d’objets, d’attributs et de paramètresUn ensemble d’objets, d’attributs et de paramètres– Des relations entre ces objetsDes relations entre ces objets
Des interactionsDes interactions– Des messagesDes messages– Un message initiateur du diagramme provenant d’un Un message initiateur du diagramme provenant d’un
» Acteur de l’application,Acteur de l’application,» Objet de l’application.Objet de l’application.
– Les numéros de séquence des messages échangés entre Les numéros de séquence des messages échangés entre les objets de cet ensemble suite au message initiateurles objets de cet ensemble suite au message initiateur
11/04/23 05:0092
Fred
MariePierre
père mère1: cashRequest($25)
2: cashReceived($25)
Représentation d’une collaboration Représentation d’une collaboration (niveau instance)(niveau instance)
11/04/23 05:0093
Equivalent au diagramme de séquence:Equivalent au diagramme de séquence:
cashRequest($25)
cashReceived($25)
MarieFred
11/04/23 05:0094
Syntaxe graphiqueSyntaxe graphique
Les messagesLes messages» OpérationsOpérations» Réception d’événementsRéception d’événements
Le séquencementLe séquencement» Les séquences consécutivesLes séquences consécutives» Les séquences imbriquéesLes séquences imbriquées
:Segment:Carréafficher ( )
4
origine:Point
1 *(i=1..4):afficher ( )
destination:Point
1.1: position ( )
1.2: position ( )
séquence imbriquée
message initiateur
numéro de séquence
opération
boucle
11/04/23 05:0095
Questions auxquelles répondent les Questions auxquelles répondent les collaborationscollaborations
Quel est l’objectif ?Quel est l’objectif ?
Quels sont les objets ?Quels sont les objets ?
Quelles sont leurs responsabilités ?Quelles sont leurs responsabilités ?
Comment sont-ils interconnectés ?Comment sont-ils interconnectés ?
Comment interragissent-ils ?Comment interragissent-ils ?
11/04/23 05:0096
Collaboration : Niveau Spécification Collaboration : Niveau Spécification DéfinitionDéfinition du du ClassifierRoleClassifierRole
• A ClassifierRole is a named slot for an object participating in a Collaboration.
• Object behavior is represented by its participation in the overall behavior of the Collaboration.
• Object identity is preserved through this constraint:
"In an instance of a collaboration, each ClassifierRole maps onto at most one object."
11/04/23 05:0097
Collaboration de Niveau SpécificationCollaboration de Niveau Spécification un exemple simpleun exemple simple
/ Enfant
/ Mère/ Père
père mère
1: cashRequest($25)
2: cashReceived($25)
11/04/23 05:0098
Modélisation UMLModélisation UML Modélisation selon 4 points de vue principaux :Modélisation selon 4 points de vue principaux :
– Vision utilisateur du systèmeVision utilisateur du système» Cas d’utilisationCas d’utilisation
– Aspects statiques du systèmeAspects statiques du système» Description des données et de leurs relationsDescription des données et de leurs relations» Structuration en paquetagesStructuration en paquetages
– Aspects dynamiques du système (comportemental)Aspects dynamiques du système (comportemental)» Diagramme de séquences (scénarios)Diagramme de séquences (scénarios)» Diagramme de collaborations (entre objets)Diagramme de collaborations (entre objets)» Diagramme d’états-transitions (Harel)Diagramme d’états-transitions (Harel)» Diagramme d’activitésDiagramme d’activités
– Vision implantation Vision implantation » Diagramme de composants et de déploiementDiagramme de composants et de déploiement
11/04/23 05:0099
Les diagrammes d’étatsLes diagrammes d’états
Attachés à une classe Attachés à une classe – Généralisation des scénariosGénéralisation des scénarios– Description systématique des réactions d'un objet aux Description systématique des réactions d'un objet aux
changements de son environnementchangements de son environnement
Décrivent les séquences d’états d’un objet ou d’une Décrivent les séquences d’états d’un objet ou d’une opération :opération :– En réponse aux «stimulis» reçusEn réponse aux «stimulis» reçus– En utilisant ses propres actions (transitions déclenchées)En utilisant ses propres actions (transitions déclenchées)
Réseau d’états et de transitionsRéseau d’états et de transitions– Automates étendusAutomates étendus– Essentiellement Essentiellement Diagrammes de HarelDiagrammes de Harel (idem OMT) (idem OMT)
11/04/23 05:00100
Syntaxe graphique: diagramme d’étatsSyntaxe graphique: diagramme d’états
Evt1 [cond] / m() ^Evt2E1 E2
état transition
événement reçuévénement émisactioncondition de garde
Syntaxe :EvénementReçu (param : type, ...) [condition de garde] / Action
^EvénementsEmis
Syntaxe :EvénementReçu (param : type, ...) [condition de garde] / Action
^EvénementsEmis
11/04/23 05:00101
Notion d’événementsNotion d’événements Stimulis auxquels réagissent les objetsStimulis auxquels réagissent les objets
– Occurrence déclenchant une transition d’étatOccurrence déclenchant une transition d’état
Abstraction d'une information instantanée échangée Abstraction d'une information instantanée échangée entre des objets et des acteursentre des objets et des acteurs– Un événement est instantanéUn événement est instantané– Un événement correspond à une communication Un événement correspond à une communication
unidirectionnelleunidirectionnelle– Un objet peut réagir à certains événements lorsqu'il est Un objet peut réagir à certains événements lorsqu'il est
dans certains états.dans certains états.– Un événement appartient à une Un événement appartient à une classe d'événementsclasse d'événements
(classe stéréotypée «signal»).(classe stéréotypée «signal»).
11/04/23 05:00102
Les événementsLes événements
«signal»IO_EVENT
time
«signal»USER_INPUT
device«signal»
NETWORK_EVENT
«signal»MOUSE_EV
«signal»KEYBD_EV
Les événements sont considérés comme des objetsLes événements sont considérés comme des objets
location character
... ... ...
11/04/23 05:00103
Typologie d’événementsTypologie d’événements Réalisation d’une condition arbitraireRéalisation d’une condition arbitraire
– transcrit par une condition de garde sur la transitiontranscrit par une condition de garde sur la transition
Réception d’un signal issu d’un autre objet Réception d’un signal issu d’un autre objet – transcrit en un événement déclenchant sur la transitiontranscrit en un événement déclenchant sur la transition
Réception d’un appel d’opération par un objetRéception d’un appel d’opération par un objet– transcrit comme un événement déclenchant sur la transcrit comme un événement déclenchant sur la
transitiontransition
Période de temps écouléePériode de temps écoulée– transcrit comme une expression du temps sur la transitiontranscrit comme une expression du temps sur la transition
11/04/23 05:00104
Notion d ’actionNotion d ’action
Action : opération Action : opération instantanéeinstantanée (conceptuellement) (conceptuellement) et et atomiqueatomique (ne peut être interrompue) (ne peut être interrompue)
Déclenchée par un événementDéclenchée par un événement– Traitement associé à la transitionTraitement associé à la transition
– Ou à l ’entrée dans un état ou à la sortie de cet étatOu à l ’entrée dans un état ou à la sortie de cet état
User_input / mise_sous_tension
délai_mise_en_veille /passage_en_mode_veille
Veille Allumé
action
action
11/04/23 05:00105
Notion d’étatsNotion d’états
Etat : situation stable d’un objet parmi un ensemble Etat : situation stable d’un objet parmi un ensemble de situations pré-définiesde situations pré-définies– conditionne la réponse de l’objet à des événements conditionne la réponse de l’objet à des événements
» programmation réactive / « temps réel »programmation réactive / « temps réel »
– Intervalle entre 2 événements, il a une duréeIntervalle entre 2 événements, il a une durée
Peut avoir des variables internesPeut avoir des variables internes– attributs de la classe supportant ce diagramme d’étatsattributs de la classe supportant ce diagramme d’états
11/04/23 05:00106
Structuration en sous-étatsStructuration en sous-états
Problème d'un diagramme d'états platsProblème d'un diagramme d'états plats– Pouvoir d'expression réduit, inutilisable pour de grands Pouvoir d'expression réduit, inutilisable pour de grands
problèmesproblèmes– Explosion combinatoire des transitions.Explosion combinatoire des transitions.
Structuration à l ’aide de super/sous états (+ Structuration à l ’aide de super/sous états (+ hiérarchies d ’événements)hiérarchies d ’événements)– représentés par imbrication graphiquereprésentés par imbrication graphique
11/04/23 05:00107
Notion d ’activité dans un étatNotion d ’activité dans un état Activité : opération se déroulant continuement tant Activité : opération se déroulant continuement tant
qu ’on est dans l ’état associéqu ’on est dans l ’état associé– do/ do/ actionaction
Une activité peut être interrompue par un Une activité peut être interrompue par un événement.événement.
TéléphoneN° invalide Téléphone raccroché Invalide
do / passer message
activité
11/04/23 05:00108
Exemple de diagramme d'étatsExemple de diagramme d'états un téléphone :un téléphone :
Actif
En composition
connecté
décrochecombiné
Repos
Appelé raccroche
Dialogue Sonneriedo/ sonneRéponse de l’appelé/
autorise parole
Compose numéro (n)
Appelant raccroche/déconnexion
Tonalitédo/ joue tonalité
Occupédo/ tonalité occupée
occupé
15 sec
Invalidedo/ dit message
Compose numéro (n) [n.isInvalid]
Timeoutdo/ timeout tone 15 sec
Composenuméro (n)
Etablissement
OccupéLibre
Derniernuméro
11/04/23 05:00109
Émission d’événementsÉmission d’événements Automate d’états d’une télécommande double : Automate d’états d’une télécommande double :
– TV + MAGNETOSCOPETV + MAGNETOSCOPE
Contrôle distantMAGNETOSCOPE
TVcontrôle
TVcontrôle
MAGNETO
bouton marche^signal ON/OFF
Télévision
Arrêt Marche
signal ON/OFF
11/04/23 05:00110
Diagrammes d'états concurrentsDiagrammes d'états concurrents
Utilisation de sous-états concurrents pour ne pas à Utilisation de sous-états concurrents pour ne pas à avoir à expliciter le produit cartésien d ’automatesavoir à expliciter le produit cartésien d ’automates– si 2 ou plus aspects de l ’état d ’un objet sont si 2 ou plus aspects de l ’état d ’un objet sont
indépendants indépendants – Activités parallèlesActivités parallèles
Sous-états concurrents séparés par pointillésSous-états concurrents séparés par pointillés– « « swim lanesswim lanes » »
11/04/23 05:00111
Exemple de concurrenceExemple de concurrence
Préparation d'un avion
Remplissage Plein
Maintenance
Réservoir pleinpréparation Avion
prêt
Chargementnourriture
Nourriturechargée
Approvisionnement
Compartiment plein
Equipageabsent
Vérificationavion
Equipage
Montée
vérification OK
11/04/23 05:00112
Etat-transition (résumé)Etat-transition (résumé) Format : Format :
– événement (arguments) [conditions] / action ^événements provoquésévénement (arguments) [conditions] / action ^événements provoqués
Déclenchement :Déclenchement :– par un événement (peut être nul).par un événement (peut être nul).
» Peut avoir des arguments.Peut avoir des arguments.
– Conditionné par des expressions booléennes sur l'objet Conditionné par des expressions booléennes sur l'objet courant, l'événement, ou d'autre objets.courant, l'événement, ou d'autre objets.
Tir de la transition :Tir de la transition :– Exécute certaines actions instantanément.Exécute certaines actions instantanément.– Provoque d'autres événements ; globaux ou vers des Provoque d'autres événements ; globaux ou vers des
objets cibles.objets cibles.
11/04/23 05:00113
Modélisation UMLModélisation UML Modélisation selon 4 points de vue principaux :Modélisation selon 4 points de vue principaux :
– Vision utilisateur du systèmeVision utilisateur du système» Cas d’utilisationCas d’utilisation
– Aspects statiques du systèmeAspects statiques du système» Description des données et de leurs relationsDescription des données et de leurs relations» Structuration en paquetagesStructuration en paquetages
– Aspects dynamiques du système (comportemental)Aspects dynamiques du système (comportemental)» Diagramme de séquences (scénarios)Diagramme de séquences (scénarios)» Diagramme de collaborations (entre objets)Diagramme de collaborations (entre objets)» Diagramme d’états-transitions (Harel)Diagramme d’états-transitions (Harel)» Diagramme d’activitésDiagramme d’activités
– Vision implantation Vision implantation » Diagramme de composants et de déploiementDiagramme de composants et de déploiement
11/04/23 05:00114
Les diagrammes d’activitéLes diagrammes d’activité
Traitements effectués par une opérationTraitements effectués par une opération– Description d’un flot de contrôle procéduralDescription d’un flot de contrôle procédural
» Réseau d’actions et de transitions : automate dégénéréRéseau d’actions et de transitions : automate dégénéré» La transition s’effectue lorsque l’opération est terminéeLa transition s’effectue lorsque l’opération est terminée
– Pas de déclenchement par événement asynchronePas de déclenchement par événement asynchrone» Sinon utilisation diagrammes d’états classiquesSinon utilisation diagrammes d’états classiques
Attachés à Attachés à – une classe, une classe, – une opération,une opération,– ou un ou un use-case (workflow)use-case (workflow)
11/04/23 05:00115
Etat-action et décisionEtat-action et décision Etat-action = raccourci pour un état où il y a :Etat-action = raccourci pour un état où il y a :
– une action interneune action interne– au moins une transition sortanteau moins une transition sortante
» production d’un événement implicite : action accomplieproduction d’un événement implicite : action accomplie
– Pas de production/réaction à des événements explicitesPas de production/réaction à des événements explicites
Modélisation d’une étape dans l'exécution d’un Modélisation d’une étape dans l'exécution d’un algorithmealgorithme– Notation :Notation :
Décision = branchement sur plusieurs transitionsDécision = branchement sur plusieurs transitions– Notation : Notation :
obtenir un gobelet
[coût<50][coût>=50]
11/04/23 05:00116
Exemple de diagramme d’activitéExemple de diagramme d’activité
déterminer boisson
mettre le cafédans le filtre
mettre le filtredans la machine
obtenir une canettede soda
boireverser café
infuser
obtenir un gobeletajouter de l’eau
dans le réservoir
[demande café]
[pas de café]
[demande soda]
[pas de soda]
opération PréparerBoisson de la classe Personne
11/04/23 05:00117
Stéréotypes optionnelsStéréotypes optionnels
Emission de signalEmission de signal
Réception de signalRéception de signal
On obtient une syntaxe graphique proche de SDLOn obtient une syntaxe graphique proche de SDL
– langage de description de spécificationslangage de description de spécifications
– populaire dans le monde télécompopulaire dans le monde télécom
Allumer cafetière
Voyant s’éteint
11/04/23 05:00118
Liens modèles statiques/dynamiquesLiens modèles statiques/dynamiques
Le modèle dynamique définit des séquences de Le modèle dynamique définit des séquences de transformation pour les objets transformation pour les objets – Diagramme d'état généralisant pour chaque classe ayant Diagramme d'état généralisant pour chaque classe ayant
un comportement réactif aux événements les scénarios et un comportement réactif aux événements les scénarios et collaborations de leurs instancescollaborations de leurs instances
» Les variables d'état sont des attributs de l'objet courantLes variables d'état sont des attributs de l'objet courant» Les conditions de déclenchement et les paramètres des actions Les conditions de déclenchement et les paramètres des actions
exploitent les variables d'état et les objets accessiblesexploitent les variables d'état et les objets accessibles
– Diagrammes d’activités associés aux Diagrammes d’activités associés aux opérations/transitions/méthodesopérations/transitions/méthodes
Les modèles dynamiques d'une classe sont Les modèles dynamiques d'une classe sont transmis par héritage aux sous-classestransmis par héritage aux sous-classes
11/04/23 05:00119
Modélisation UMLModélisation UML Modélisation selon 4 points de vue principaux :Modélisation selon 4 points de vue principaux :
– Vision utilisateur du systèmeVision utilisateur du système» Cas d’utilisationCas d’utilisation
– Aspects statiques du systèmeAspects statiques du système» Description des données et de leurs relationsDescription des données et de leurs relations» Structuration en paquetagesStructuration en paquetages
– Aspects dynamiques du système (comportemental)Aspects dynamiques du système (comportemental)» Diagramme de séquences (scénarios)Diagramme de séquences (scénarios)» Diagramme de collaborations (entre objets)Diagramme de collaborations (entre objets)» Diagramme d’états-transitions (Harel)Diagramme d’états-transitions (Harel)» Diagramme d’activitésDiagramme d’activités
– Vision implantation Vision implantation » Diagramme de composants et de déploiementDiagramme de composants et de déploiement
11/04/23 05:00120
Diagrammes d’implantationDiagrammes d’implantation
Diagrammes de composantsDiagrammes de composants– Dépendances entre composants logicielsDépendances entre composants logiciels
» code sourcecode source» binaires, DLLbinaires, DLL» exécutablesexécutables
Diagrammes de déploiementDiagrammes de déploiement– Configuration des composantsConfiguration des composants– Localisation sur les noeuds d’un réseau physiqueLocalisation sur les noeuds d’un réseau physique
11/04/23 05:00121
Exemples de composantsExemples de composants
Dictionnaire
Planner
GUI
Vérificateur
Synonymes
Interfaces
Composants
11/04/23 05:00122
Exemple de déploiementExemple de déploiement
GUI
Dictionnaire
Planner
MachineServeur
MachineClient1
MachineClient2
Noeuds
11/04/23 05:00123
Modélisation UMLModélisation UML Modélisation selon 4 points de vue principaux :Modélisation selon 4 points de vue principaux :
– Vision utilisateur du systèmeVision utilisateur du système» Cas d’utilisationCas d’utilisation
– Aspects statiques du systèmeAspects statiques du système» Description des données et de leurs relationsDescription des données et de leurs relations» Structuration en paquetagesStructuration en paquetages
– Aspects dynamiques du système (comportemental)Aspects dynamiques du système (comportemental)» Diagramme de séquences (scénarios)Diagramme de séquences (scénarios)» Diagramme de collaborations (entre objets)Diagramme de collaborations (entre objets)» Diagramme d’états-transitions (Harel)Diagramme d’états-transitions (Harel)» Diagramme d’activitésDiagramme d’activités
– Vision implantation Vision implantation » Diagramme de composants et de déploiementDiagramme de composants et de déploiement
11/04/23 05:00124
Processus de développement avec UMLProcessus de développement avec UML
?
Recommended