Académique Documents
Professionnel Documents
Culture Documents
1
Introduction : Rappel sur
les concepts orientés objet
2
1-Approches de conception
3
2-Concepts des Objets
Boîte de
moteur
vitesse
4
2-Concepts orientés objet
L’OBJET
Est un élément du réel à modéliser :
Posséde sa propre identité : OID (Object Identifier) :
OID : est une valeur indépendante des valeurs des prorpriétés de
l’objet
Attribuée par le système et elle est totalement transparante à
l’utilisateur
Peut avoir plusieurs états durant son cycle de vie :
Etat d’un objet : situation significative que peut prendre un objet,
déterminée en fonction des valeurs des différents attributs et liens
de l’objet
Cycle de vie : les états que peut prendre un objet, entre sa création
et sa suppression (et les conditions de passage d’un état à un
autre).
Exemples :
La facture 100567 : {100567, 27/1/2005, ...}
Les états que peut prendre la facture : {saisie, livrée, en attente de
livraison, soldée, …}
5
2-Concepts orientés objet
La CLASSE
Regroupe un ensemble d'objets semblables :
les mêmes propriétés structurelles (attributs);
le même comportement (opérations, méthodes);
les mêmes liens avec les autres objets;
et ayant un intérêt pour l'application.
Encapsule les données et les traitements :
La classe Facture : {NumFacture, DateFacture, …,
Imprimer(), Solder(), ...}
6
2-Concepts orientés objet
L’ENCAPSULATION
Est un principe qui consiste à :
cacher les données et les détails d'implantation (algorithmes) et
laisser visible la partie interface (signatures des opérations
publiques) des classes
Inte rfac e
7
2-Concepts orientés objet
L’HERITAGE
Est un mécanisme permettant le partage des caractéristiques
d’une classe (généralisation) par une ou plusieurs autres classes
(spécialisations).
Personne Nom, Prénom, Adresse, ...
Héritage simple
Héritage multiple
Etudiant_Enseignant Numéro, TD, ...
8
3-Démarche Orientée objet
Principales étapes de conception objet
Le cycle de vie du logiciel suivant une approche objet est Itératif et
Incrémental.
Itératif : l’architecture subit plusieurs cycles d’analyse, de conception et
d’implémentation.
Incrémental : les décisions sont raffinées à chaque cycle d’analyse /
conception / implémentation, menant à un système qui répond plus aux
exigences.
Dans chaque itération, on s’intéresse aux activités suivantes :
Identifier les classes et les objets à un niveau donné d’abstraction
Identifier les relations entre classes
Spécifier l’interface des classes.
Phase Conception
9
4-Démarche Orientée objet
10
4-Démarche Orientée objet
Les différents points de perception d’un système :
La vision statique :
Description des entités représentant l’univers de discours et de leurs
relations.
De quoi est fait le système ?
La vision dynamique :
Description des évolutions, dans le temps, des entités représentant
l’univers de discours.
Comment il peut évoluer ?
La vision fonctionnelle :
Description du fonctionnement (des différentes fonctionnalités) du
système.
Comment il fonctionne ?
11
4-Démarche Orientée objet
Modèle statique
13
6-UML - Le langage Objet unifié
Historique
UML est un langage de modélisation objet
et non une méthode
2005 UML 2.0
UML 1.4
01/ 99
révision 1.3 UML 1.3
Booch 93 OMT-2
14
7-Les différents diagrammes du langage UML
Spécifications de besoins
- Diagramme de cas d’utilisation,
- Diagramme d’activités.
Le modèle structurel
- Le diagramme de classes,
- Le diagramme d’objets.
15
7-Les différents diagrammes du langage UML
Le modèle dynamique
- Le diagramme de cas d’utilisation,
- Le diagramme d’interaction (collaboration,
séquence),
- Le diagramme d’états.
Architecture
- le diagramme de composants,
- le diagramme de déploiement.
16
8-Ateliers UML
Critères de sélection
• Nombre de diagrammes supportés
• Génération automatique de diagrammes
• Génération de code - langages supportés
• Rétro ingénierie (reverse engineering)
• Prototypage
• Synchronisation du code avec modifications extérieures
• API
• Echanges avec d’autres AGL UML ou IDE
• Utilisation pratique (schémas de qualité, convivialité, générer des images, ... )
• Patterns de conception - et création de patterns
• ...
17
8-Ateliers UML
Quelques AGL :
• StarUML : http://staruml.io/
•Together ( Togethersoft) http://www.togethersoft.com
• Rational ROSE (Rational corp.) http://www.rational.com
• Paradigm (Platinium) http://www.platinium.com
• Magic Draw UML (NoMagic) http://www.nomagic.com
• DOM (ObjetDirect) http://www.objetdirect.com
• Objecteering (SoftTeam) http://www.objecteering.com
• Aonix Life Cycle Desktop (Aonix) http://www.aonix.com, .fr
• UML Studio (Pragsoft) http://www.pragsoft.com
18
Bibliographie
Livres :
Sur le Web :
http://www.omg.org/uml/
http:// www.rational.com
http://www.uml.free
Sous google :
UML
Français
19
MOO (UML)
Chapitre 1: Le diagramme de
cas d’utilisation
20
Chapitre 1: Le diagramme de cas d’utilisation
21
1-Définitions
Définition 1:
Un cas d’utilisation (use case) modélise une interaction entre
le système informatique à développer et un utilisateur ou
acteur interagissant avec le système.
Définition 2:
Un cas d’utilisation décrit un ensemble d’actions réalisées par
le système qui produit un résultat observable pour un acteur.
Spécifications
Use Cases
Analyse Tests
22
Définitions
Les cas d’utilisation :
servent de base à la traçabilité des exigences d'un système
dans un processus de développement intégrant UML.
se limitent aux préoccupations "réelles" des utilisateurs :
ne présentent pas de solutions d'implémentation et
ne forment pas un inventaire fonctionnel du système.
Un cas d’utilisation avec UML :
est la solution pour représenter au niveau conceptuel, les
besoins des utilisateurs (Merise ne permet pas cette
modélisation).
permet de structurer les besoins des utilisateurs et les objectifs
(fonctionnalités) correspondants d'un système.
identifie les utilisateurs du système (acteurs) et leurs interactions
avec le système.
permet de classer les acteurs et structurer les objectifs du
système. 23
Définitions
Les cas d’utilisation :
Recentrent l’expression des besoins sur les utilisateurs
ne doivent pas chercher l'exhaustivité, mais clarifier, filtrer et
organiser les besoins
Partitionnent l’ensemble des besoins d’un système.
Les besoins:
définissent le contour du système à modéliser
ils précisent le but à atteindre,
permettent d'identifier les fonctionnalités principales (critiques)
du système.
24
2-Intérêt des cas d’utilisation
Utilisateur C
Utilisateur A Utilisateur B
26
4-Grandes catégories d’acteurs
27
5-Concepts de base : les cas d’utilisation
Définition 1 :
Un ensemble d'actions réalisées par le système, en réponse à
une action d'un acteur
Définition 2 :
Modélise une fonctionnalité d’un système ou d’une classe
28
Concepts de base : les cas d’utilisation
Un cas d’utilisation :
Regroupe une famille de scénarios d’utilisation
Est une abstraction du dialogue système/utilisateurs
29
Concepts de base : les cas d’utilisation
30
Concepts de base : relations entre cas
d’utilisation
Association (relation de communication):
Relation entre un acteur et un cas d’utilisation
Un acteur déclenche un cas d’utilisation :
CasUtilisation
Acteur
<<inclut>>
Relation d’inclusion :
Entre cas d'utilisation CasUtilisation1
CasUtilisation2
L’instance du CU source contient aussi le
comportement décrit par le CU destination.
31
Concepts de base : relations entre cas
d’utilisation
Relation d’inclusion (suite) :
La relation d’inclusion a un caractère obligatoire:
La source doit indiquer à quel endroit le CU cible doit être inclus
Permet de :
Décomposer les comportements et
Définir des comportements partageables entre plusieurs CU.
Relation d’extension :
Entre cas d'utilisation
L’instance du CU source ajoute son comportement au CU destination (si la
condition est réalisée).
Le CU destination étend son comportement par l’ajout de celui du CU
source, si la condition est vérifiée.
<<étend>>
[condition d'extension]
CasUtilisation1 CasUtilisation2
32
Concepts de base : relations entre cas
d’utilisation
Relation d’extension (suite) :
Peut être soumise à une condition :
Le comportement ajouté est inséré au niveau d’un point d’extension
Ce point d’extension est défini dans le CU destination
Permet de modéliser des variantes de comportement d’un CU
Selon les interactions des acteurs et l’environnement du système
la condition d’extension peut être spécifiée
à côté du mot-clés <<étend>>
Point d’extension :
Possède un nom
Décrit :
Un emplacement dans le CU destination où le comportement du
CU source sera inséré.
UML ne définit aucun format de description de point d’extension
33
Concepts de base : relations entre cas
d’utilisation
Relation de généralisation :
Entre cas d'utilisation
Le cas d’utilisation Fils est une spécialisation du cas d’utilisation Parent
CasUtilisationParent
Virement
CasUtilsationEnfant
VirementParInternet
34
Exemple
VirementInternet
Identification Vérification solde compte
35
Exemple
Virement
Points d’extension
• Vérification supplémentaire:
après identification
36
MOO (UML)
Description des cas d’utilisation
(Suite Chapitre I)
37
Description des cas d’utilisation
Il n’existe pas de norme (UML) établie pour la description textuelle
des cas d’utilisation.
38
Description des cas d’utilisation
Sommaire d’identification
Titre : ……………….. Type : …………………
Résumé :………………………………………………………………………………
Acteurs :
Date de création : Date de mise à jour :…………………………………
Version : Auteur(s) :
Sommaire d’identification
Titre : Traiter le passage en caisse
Résumé : un client arrive à une caisse avec des articles à acheter. Le caissier enregistre
les achats et récupère le paiement. A la fin de l’opération, le client part avec les articles.
Acteurs : Caissier (P), Client (S), Gestion des stock (S)
Date de création : Date de mise à jour :…………………………………
Version : 1 Auteur(s) : Etudiants 2ème année
Description des Enchaînements :
Pré conditions : La caisse est en service : un caissier y est connecté
Scénario nominal :
Représente le déroulement normal d’un cas d’utilisation : les différentes interactions
utilisateur / système permettant l’exécution réussie du traitement
(voir suite)
40
Exemple de Cas d’utilisation
2. Le caissier enregistre chaque article. S’il y a 3. La caisse détermine le prix de l’article et ajoute
plus d’un exemplaire par article, le caissier des informations sur l’article à la vente en cours.
indique également la quantité. La caisse affiche la description et le prix de
l’article en question.
4. Après avoir enregistré tous les articles, le 5. La caisse calcule et affiche le montant total de
caissier indique que la vente est terminée. la vente.
Exemple:
Numéro d’identification d’un article est inconnu
42
Exemple de Cas d’utilisation
Enchaînement d’erreur :
Quand l’enchaînement précisé par le scénario nominal ne peut
pas se dérouler :
Le cas d’utilisation se termine par un échec.
Exemple:
Client ne pouvant payer (ou le centre d’autorisation refuse le
payement)
l’enchaînement démarre au point 6 du scénario nominal.
7. Le client ne peut pas payer le total avec aucun des moyens
autorisés.
8. Le caissier annule l’ensemble de la vente et le cas d’utilisation
se termine en échec :
la vente ne peut pas avoir lieu
43
Fonctionnement des caisses enregistreuses d’un super marché :
Un client arrive à la caisse avec des articles à payer.
Le caissier enregistre le numéro d’identification de chaque article,
ainsi que la quantité si elle est > 1.
La caisse affiche le prix de chaque article et son libellé.
Quand tous les achats sont enregistrés, le caissier signale la fin de la
vente.
La caisse affiche alors la fin des achats et le prix total à payer.
Après la saisie des articles, le client peut présenter des coupons de
réduction pour certains articles
Le client choisit son mode de paiement :
Liquide : le caissier encaisse l’argent reçu, la caisse indique le
montant à rendre au client.
Chèque : le caissier vérifie la solvabilité du client en transmettant
une requête à un centre d’autorisation via la caisse.
Carte de crédit : un terminal bancaire fait partie de la caisse et
transmet une demande d’autorisation en fonction du type de la
carte.
La caisse enregistre la vente et imprime le ticket.
Le caissier donne le ticket au client.
Quand le paiement est terminé, la caisse transmet l’information sur le
nombre d’articles vendus au système de gestion des stocks.
chaque matin, le responsable du magasin initialise les caisses pour la
44
journée.
Exemple de Cas d’utilisation
<<étend>>
Client <<Acteur>>
Traiter le Paiement Centre autorisation
cartes
<<Acteur>>
Centre autorisation
chèques
Paiement Liquide Paiement Chèque Paiement Carte
45
MOO (UML)
Chapitre II: Diagramme de
classes
46
Chapitre 2 : Les diagrammes de classes
Les diagrammes de classes expriment la structure statique d’un système en
termes :
De classes et de relations entre elles et
Un ensemble d’interfaces et de paquetages ainsi que leurs relations.
Une classe décrit un ensemble d’objets, une association décrit un ensemble
de liens
Les objets sont instances des classes et les liens sont instances des
associations
Un diagramme de classes décrit de manière abstraite les liens potentiels
d’un objet vers d’autres objets. Est une instance de
1,N 0,N
Lien Objet Relation Classe
1, N 1, N
Est une instance de
47
1- Concepts de base
AVEC UML, UNE CLASSE :
est un type abstrait avec des caractéristiques communes à un
ensemble d'objets.
permet de créer des objets ayant ces caractéristiques
Est représentée par un rectangle avec:
Propriétés Nom de Classe
Méthodes et Propriétés
Exceptions / Conditions. Méthodes
Nom de Classe
NomAttribut [: type = valeur
initiale]
Opération ()
Remarques :
L’ordre opération / attribut = attribut / opération
Opération = méthode = fonction-membre, …
Attribut = propriété = donnée-membre, …
49
Concepts de base
La syntaxe de description des attributs est :
50
2- Les relations entre classes
Association
Agrégation
Composition Remarque : par rapport au modèle E/A de base
Héritage RC UML + riches sémantiquement et + proches de la réalité
Les associations :
Une association exprime une connexion sémantique
bidirectionnelle entre n classes (n>=1).
Une association est instanciable dans un diagramme d'objets ou
de collaboration sous forme de liens entre objets issus des
classes associées.
ADHERENT
Nom emprunter
EXEMPLAIRE
Prénom
Adresse
51
2- Les relations entre classes
LES ASSOCIATIONS :
représentent des relations statiques/conceptuelles entre objets
et à longue durée de vie (n’est pas un lien instantané ni
passager).
Relient une ou plusieurs classes : arité 1 ou plus
Par rapport au modèle Entité / Association :
Entité 1 Entité 2
Card1 Card2
Diag. Entité / P11, Ass P21,
Association P12 P22
… …
Card2 Card1
Diag. De CEntité1 CEntité2
classes 52
2- Les relations entre classes
Arités des associations :
Une association peut être binaire ou naire.
Exemple : on désire représenter le fait suivant : un
Professeur enseigne dans une salle des étudiants.
PROFESSEUR
Enseigner
SALLE ETUDIANT
Si on veut matérialiser le cours
COURS
Association porteuse de données
53
2- Les relations entre classes
Les associations : Nommage
Une association peut être nommée
[ Nom Association ]
Classe1 Classe2
Client Parents
HÔTEL PERSONNE PERSONNE
Directeur Enfants
55
2- Les relations entre classes
La notion de rôle :
[ Nom Association ]
Classe1 Classe2
[Rôle1] [Rôle2]
Professeur Etudiant
Enseigne Est Enseigné
56
2- Les relations entre classes
LES ASSOCIATIONS : CARDINALITÉS
précisent le nombre d'instances qui participent à une relation.
Combien d’objets de la classe considérée peuvent être liés à
un objet de l’autre classe?
1 Un et un seul
0 .. 1 Zéro ou un
N N (entier naturel)
M .. N De M à N (entiers naturels)
* De 0 à plusieurs
0 .. * De 0 à plusieurs
1 .. * De 1 à plusieurs
57
Un exemple illustratif
58
2- Les relations entre classes
L’agrégation :
Est une association non symétrique,
Exprime un couplage fort et une relation de subordination.
Représente une relation de type "ensemble/élément".
Peut notamment (mais pas nécessairement) exprimer :
qu'une classe (un "élément") fait partie d'une autre
("l'agrégat"),
qu'un changement d'état d'une classe, entraîne un
changement d'état d'une autre,
qu'une action sur une classe, entraîne une action sur une
autre.
Une instance d'élément agrégé peut :
être liée à plusieurs instances d'autres classes :
l'élément agrégé peut être partagé (dans le temps)
exister sans agrégat (et inversement)
les CV de l'agrégat et de ses éléments agrégés peuvent être
indépendants :
La création de l’un n’implique pas celle de l’autre
59
2- Les relations entre classes
Composition :
La composition est une agrégation forte.
Les cycles de vie des éléments (les "composants") et du
composé coïncident :
si le composé est détruit (ou copié), ses composants le sont
aussi.
une instance de composant ne peut être liée qu'à un seul
composé.
Les "objets composites" sont des instances de classes
composées.
Agrégation Composition
Remarque : toutes les conventions relatives aux cardinalités restent
valables pour les Agrégations et les compositions
60
Propriétés de la composition
La composition implique une contrainte sur la valeur de
la multiplicité du côté de l’agrégat : elle ne peut prendre
que les valeurs 0 ou 1.
La composition et les attributs sont sémantiquement
équivalents.
Cylindre
Immeuble Chambre
Voiture Moteur
Cercle
Carburateur
Point
Rectangle
61
2- Les relations entre classes
LA GÉNÉRALISATION :
L’héritage, avec UML, est désigné par GENERALISATION
Elle représente une relation de classification entre élément plus
général et un élément plus spécifique.
Elle peut être appliquée aux classes, aux paquetages et aux cas
d’utilisations
La généralisation peut être
Simple ou
GENARALISATION
SPECIALISATION
63
LES DEUX
2- Les relations entre classes
{incomplet}
COOSI IA GL BDA
64
2- Les relations entre classes
LES ASSOCIATIONS : CONTRAINTES
La multiplicité représente un exemple de contrainte sur le nombre de
liens qui peuvent exister entre deux objets.
permettent d'étendre ou de préciser la sémantique
permettent de restreindre le nombre d'instances visées
peuvent s'exprimer en :
Langage Naturel ou
graphiquement avec un {texte} ou
En OCL (Object Constraint Language)
Les types de contraintes exprimables sur les associations :
Ordonné;
Sous-ensemble;
Ou-exclusif, …
65
2- Les relations entre classes
Les associations : Contraintes
Ordonné :
Sous-ensemble :
SERVICE 1 affecter 1..* EMPLOYE
Numéro_S Numéro
{sous-ensemble} Nom
Nom_S
... ....
0..1 diriger 1
66
2- Les relations entre classes
Les associations : Contraintes
Ou-exclusif :
Indique que pour un objet donné, une seule association est valide
BATTERIE
PORTABLE {Ou-exclusif}
Alimenter SECTEUR
Alimenter ENERGIE
PORTABLE
SECTEUR BATTERIE
67
2- Les relations entre classes
Classe d'association :
est une classe qui réalise la navigation entre les instances d'autres
classes.
représente les associations porteuses de données.
Passe >
ETUDIANT EXAMEN
NOTE
69
Complément du Chapitre II :
Du modèle de classes au
modèle relationnel
Conception du stockage de données
Diagrammes structurels schémas de BD
Diagrammes dynamiques requêtes et traitements
applicatifs divers
Table Adresse
Exemple:
Un hôte habite dans une et une seule chambre
Une chambre héberge un et un seul hôte
Personne Adresse
N°
CIN {unique} 1 habite à 1 Rue
Nom CP
Ville
Personne (CIN, Nom, Id_adr#)
Adresse (Id_adr, N°, Rue, CP, Ville)
Table Personne
Exemple:
Etudiant(ID_Etudiant, nom, prenom)
Enseignant(ID_Enseignant, nom, prenom)
Enseignement(ID_Etudiant#, ID_Enseignant#, heure, durée)
Transformation d’une association N-N
Personne Bibliothèque
0..* adhère >0..* Nom
CIN{unique
…
}
...
Adhésion
Date Personne (CIN, …)
Type Bibliothèque(Id_bib, …)
Adhésion(CIN#, Id_bib#, Date, Type)
Table Adhésion
Colonne Domaine Non Null
Clé primaire CIN String(13) Oui
OiD de Bibliothèque Id_bib Identifiant Oui
Date Date Oui
Type String(13) Oui
Transformation de l’héritage
Héritage Les sous classes ont la même clé primaire que la
superclasse
Personne Remarque: Un attribut « type » est
ajouté à la superclasse dans le cas
CIN d’une spécialisation complète
Nom Il existe trois choix :
Prénom
• Aplatir vers le haut
83
CHAPITRE 4 : DIAGRAMME D’OBJETS
Servent durant la phase exploratoire de l’analyse
Représentent la structure statique du système modélisé.
Montrent :
des objets (instances de classes) dans un état
particulier et
des liens (relations sémantiques) entre ces objets.
Position des diagrammes objets dans un processus de
modélisation :
Use Cases Spécifications
Diag. objet
:Personne
86
Concepts de base
Représentation des liens entre objets :
Les liens entre objets sont :
Des instances des associations entre les classes
des objets participants
Permettent une représentation plus concrète que
celle produite par les diagrammes de classes.
Exemple :
V1:Voiture :Moteur 1 1
Voiture Moteur
1
4
R1:Roue R3:Roue R2:Roue R4:Roue Roue
: Salle : Etudiant
On peut indiquer les noms des objets et des liens :
Ahmed : ADHERENT
Nom = Mohamed emprunter
UML en Action : EXEMPLAIRE
Prénom = Ahmed
Adresse = Sfax
88
1- Concepts de base
Représentation des objets composites :
Un objet composite est composé d’autres objets (sous-objets)
Le nombre d’instances du composant peut être spécifié
Un Composite
:Partie1 :Partie2
Exemple:
: Fenêtre
: Zone de dessin
: ascHorizontal
Remarque :
Ces diagrammes ne sont utiles que durant la phase exploratoire d’un
domaine.
Ils deviennent vite compliqués et illisibles
89
MOO (UML)
Chapitre IV: Diagramme de
Collaboration
90
CHAPITRE 4: DIAGRAMME DE
COLLABORATION (DCO)
Les diagrammes de collaboration :
représentent :
Une extension des diagrammes d’objets
le contexte d'une interaction en y précisant les états des
objets en collaboration (interaction).
présentent :
des rôles joués par des objets dans un contexte particulier et
les liens entre ces objets.
montrent :
des interactions entre objets (instances de classes et
acteurs).
les interactions entre ces objets par des envois de
messages
91
1-Sémantique
Les diagrammes de collaboration :
permettent :
une représentation (structure) spatiale des objets, des liens
et des interactions (graphe dont les nœuds = intervenants et
les arcs = les interactions).
Une dimension temporelle (ordre de déclenchement) par
l’ajout de numéros de séquence des messages échangés
(on ne représente pas le t de déclenchement ni la durée).
Autrement :
Décrire le comportement collectif d’un ensemble d’objets
En vue de réaliser une opération
en décrivant leurs interactions modélisées par des envois
(éventuellement numérotés) de messages
92
Sémantique
Dans un diagramme de collaboration :
les interactions sont représentées par les échanges de
messages.
l’ordre des messages peut être indiqué par leur énumération.
Plusieurs types de messages existent : simples, synchrones,
asynchrones et minutés.
Conventions graphiques :
les objets sont représentés par un rectangle dont le nom et la
classe sont soulignés.
93
Sémantique
Représentation Générale :
3: opération (paramètre)
2 : opération
1 : événement
4 : opération
5 : opération (paramètres)
94
2-Concepts de base
Une collaboration :
Est la réalisation d’une opération ou d’un cas d’utilisation dans
un contexte particulier.
Possède deux types de descriptions :
PA Muller, N. Gaertner
95
Concepts de base
La notion de rôle :
Les objets et les associations jouent des rôles particuliers dans
une collaboration.
Exemples :
96
Concepts de base
Représentation au niveau spécification:
Forme un graphe de rôles des intervenants (nœuds) liés à des
rôles d’association (arcs)
Exemple :
Collaboration représentant le fait qu’une maison peut être
louée à un ou plusieurs locataires pour un loyer donné.
/Locataire : Personne
* +habitant
1 +habitation
/Maison : Logement *
1 1
1 + adresse 1 +loyer 1 +loueur
:Lieu :Coût /Propriétaire : Personne
97
Concepts de base
Représentation au niveau instance :
Forme un graphe d’instances qui se conforment aux rôles des
intervenants et des associations définis au niveau spécification
On peut y ajouter des instances de messages échangés
Les objets et les liens utiles pour réaliser une action sont ajoutés
Exemple :
Une instance du diagramme précédent avec :
Un acteur qui déclenche l’opération et des
Stimuli (communication entre objets)
1: revenuDeLocation(pourLesMaisons)
Loueur / Propriétaire :
Personne
:Client
1.1 *[i:=1..n]:loyer()
1:total:=valeurStock()
:Entreprise
1.1.1 : Créer(0,0) :SRéel
:Client
2:afficher(total)
1.1.2.i : ajout(p)
1.1 : calculValeur()
:Stock :Produit
:Afficheur
1.1.2 * [i:=1..n]:p:=ValeurP()
99
Concepts de base
Les messages :
Le terme Stimulus désigne :
Une communication entre objets invoquant une opération ou
L’émission d’un signal ou
la création et destruction d’un objet
Le terme message :
Un message est la spécification d’un stimulus définissant :
Le rôle des objets émetteur et récepteur
L’action qui envoie un stimulus quand elle s’exécute.
Un message est l’avènement d’une communication permettant :
La transmission de certaines informations et
Éventuellement avoir des résultats.
Un envoi de message entre un émetteur et un récepteur
nécessite que le dernier puisse réaliser l’activité définie par le
message.
100
3.2 : afficher (liste)
1.3 : afficher("autorisé")
4 : retrait des cassettes obtenues 1.2 : afficher ("refus", raison)
2. référence_film(titre_film)
3.6 : recherche_film(titre)
3.4 : réserver (adh_id, boutique)
Ens
Films 2.2.1 :*[i=mes_cassettes] dispo : = dispo(boutiq_id)
: Catalogue
général
Ens
:Empr
Cassette
unt
2.4.1 : créer (adh_id, cass_id, bouti_id)
101
Diagramme de collaboration emprunt – club vidéo
Remarques
102
MOO (UML)
Chapitre V: Diagramme de
Séquences
103
CHAPITRE 5 :DIAGRAMME DE
SEQUENCES (DES)
Les diagrammes de cas d’utilisation ont permis :
aux utilisateurs d’exprimer leurs besoins.
De dresser une première liste des objets et des
acteurs constituant le système.
105
2-Sémantique
Les diagrammes de séquence :
permettent de représenter des collaborations entre objets selon
un point de vue temporel :
on s’occupe de la chronologie des envois de messages (durée
et instant).
on n'y décrit pas le contexte ou l'état des objets : la
représentation se concentre sur l'expression des interactions
servent à illustrer un cas d'utilisation.
Représentent les aspects dynamiques d’un système.
Représentation Générale :
End loop
[non x] opération 3 106
3-Concepts de base
Remarques :
Les objets étudiés sont placés sur la première ligne
Tout objet a une ligne de vie : une barre verticale en pointillée
L’axe temps, dans chaque diagramme, est représenté
(implicitement) de haut vers le bas
L'ordre d'envoi d'un message est déterminé par sa position sur
l'axe vertical du diagramme
Les messages sont représentés par des flèches orientées :
émetteur – destinataire.
La disposition des objets sur l'axe horizontal n'a pas de
conséquence pour la sémantique du diagramme.
Les branchements conditionnels sont indiqués par un pseudo-
code ou par [ ]
On peut aussi placer en pseudo –code les boucles d’itération.
107
Exemple
Appelant Ligne Appelé
Téléphonique
décrocher
tonalité
Numérotation
Indication de sonnerie
Sonnerie
décroche
allô
108
4- Les activations et envois de messages
Activation
Durée d’activation
109
Envois de messages
Objet émetteur Objet
destinataire
procédure
une sous-procédure
B récupère le contrôle après que C a fini sa tâche
110
envois de messages
retour explicite
Message synchrone
Message asynchrone
Message réflexif
112
6-Complément sur le DSE
Création et destruction d’objet
Si un objet est crée au cours de l’exécution d’un scénario,
celui-ci n’apparaît qu’au moment où il est créé. Si l’objet
est détruit dans un scénario, la destruction se présente
par X.
Objet 1
Objet 2
113
6-Complément sur le DSE
Contrainte temporelle
Des contraintes de chronologie entre les messages
peuvent être spécifiés. De plus lorsque l’émission d’un
message a besoin d’une certaine durée, il se représente
sous la forme d’un trait oblique.
Un message
114
6-Complément sur le DSE
Lorsque le diagramme de séquence est utilisé pour représenter un
sous-ensemble du logiciel à réaliser, il est possible d’indiquer le
pseudo-code exécuté par un objet pendant le déroulement d’une
opération.
Le diagramme de séquence est dit diagramme de séquence
système quand il met en jeu acteurs et système. Le système reste
une boîte noire (voir exemple (Nouvelle entrée).
Système
: Magasinier
nouvelleEntrée(prod,qté)
vérifier_référence(prod)
entréeRefusée sinon
finsi
115
7- Exemple : Diagramme de séquence
retour – club vidéo
F.Gestion des Cassette Emprunt Ens.
: Adhérent Statistiques
prêts
retour de cassettes(adh_id)
Pour chaque
vérifier_réservation(adh_id)
cassette rendue
afficher(mnt
saisie(cass_id)
réservé_pour(adh_id)
^(existe)
^(confirme)
si confirme alors
date_emprunt_et_tarif
calcul(date_e,tarif_j)
calculer_prix_à_payer()
[non_nul(stat)]ajouter(stat)
supprimer()
disponible(ma_boutiq, aujourd'hui)
fin_saisie finsi
mt:=calculer_prix_total()
afficher(mt)
116
MOO (UML)
Chapitre VI: Diagramme
d’états transitions
117
Chapitre 7- Diagramme d’états
transitions (DET)
Les objets d’une classe ne sont pas figés :
Ils peuvent évoluer et changer d’états au cours de leur CV.
CV : cycle de vie = durée de vie : depuis sa création jusqu’à sa
suppression
Un DET d’une classe est une description des évolutions possibles
de ses objets donnant :
la liste des états que peut prendre l’objet durant son CV ;
les événements déclenchant les changements d’états;
les éventuelles conditions qu’il doit vérifier avant de changer
d’états et
les opérations qui le font passer d'un état à un autre.
Un DET est une description des changements d'états d'un objet (ou
d'un composant) :
en réponse aux interactions avec d'autres objets/composants ou
avec des acteurs.
118
1 Etat-transition et événement
Evt([Att]) [Condition(s)]/Action
Etat i Etat j
120
Etat d’un objet
Un état :
se caractérise par sa durée et sa stabilité,
est une conjonction instantanée des valeurs des
caractéristiques d'un objet.
Dans un DET, on distingue trois états :
121
2- Action et activité
122
3- Émission d’événement
Après exécution d’une opération
déclenchée par l’arrivée d’un événement,
un nouvel résultat peut être émis vers un
objet cible.
Le formalisme de représentation de
l’émission d’un événement est le suivant :
Etat 1 transition [condition]/action ^cible.événement Etat 2
123
4-Représentation du diagramme état-
transition d’un objet
124
Exemple
paiement
Client en
contentieux
Client
une année sans commande
inactif Client
supprimé
Fin du contentieux
125
5- Super-Etat (ou généralisation d’états)
état composite
Dans le cas où une succession d’états peut se répéter
plusieurs fois dans un même diagramme, il est
possible de considérer cette succession d’états comme
un super-état qui ne sera décrit qu’une seule fois dans
le détail et utilisé dans sa globalité plusieurs fois.
Un état composite est décomposé en sous-états,
chaque sous-état peut également être un composite.
Super-état
état 1 état 2
état 3
126
6- Exemple
ordre de récrutement d'un personnel [date prévisionnelle > date du jour] crée() En prévision
d'arrivée
prise en fonction
do/ renseigner la date d'arrivée à l'agence do/ renseigner la date de départ de la personne
127
Chapitre VII:
Diagrammes d’activités
129
Introduction
Le DA est une variante du DET :
Les DA utilisent beaucoup d’éléments du DET.
130
Introduction
Un diagramme d’activités peut être rattaché à un CU, à
la réalisation d’une opération, ou à un processus
impliquant l’utilisation d’un ou de plusieurs objets.
En théorie, tous les mécanismes dynamiques pourraient
être décrits par un diagramme d'activités, mais seuls les
mécanismes complexes ou intéressants méritent d'être
représentés (faisant intervenir plusieurs objets, créant ou
modifiant divers objets, …).
Exemples d’états
d’action
132
Les transitions
Une transition peut être automatique ou gardée.
Une transition automatique est :
franchie quand l’activité précédente est finie.
Une transition gardée est franchie :
quand l’activité précédente est finie et
si la condition est vérifiée.
Activité
Autre Activité
Transitions
automatiques 133
Les transitions
Demande
dossier
Recevoir
dossier
Compléter
dossier
Enregistrer
Transitions
automatiques 134
Les transitions
Transitions gardées
Afficher(i)
[rejetée] [retenue] [i<10]/ i=i+1
[sinon]
Rédiger lettre Envoyer
de refus convocation
(I) (II)
136
Synchronisation
On ne franchit une barre de synchronisation qu'après
réalisation de toutes les transitions qui s'y rattachent.
Activité 1 Activité 2 Le début de A3 ne se fait que si
A2 et A1 soient terminées
Activité 3
Exemples :
Vérifier Dossier
Vérifier situation Enregistrer
assuré commande
137
Les travées
Les diagrammes d’activités peuvent être découpés en travées
(ou couloirs d’activité) pour montrer les responsabilités au
sein d’un mécanisme ou d’une organisation.
Chaque activité appartient à une seule travée même si les
transitions peuvent passer d’une travée à l’autre.
Les travées permettent d'organiser un diagramme d'activités
Exemple
138
couloirs d’activité
Commander produit
Traiter commande
Sortir articles
Expedier commande
Payer Facture
Cloturer
commande
139
Flot d’objets
Il est possible de faire apparaître les objets dans un DA.
Les objets représentés sont ceux qui:
initient les actions,
utilisés par les actions ou
modifiés par les actions
Un objet utilisé par une action est visualisé par une flèche en
pointillés pointant vers l’état d’action.
Un objet modifié par une action est visualisé par une flèche en
pointillés orientée de l’état d’action vers l’objet.
Il est possible de montrer l’état d’un objet et les valeurs de ses
attributs modifiés.
140
Client Vendeur Magasinier
Commander produit
Traiter commande
Sortir articles
c:COMMANDE
[en cours] Expédier commande
f:FACTURE
Payer Facture [due]
Cloturer
f:FACTURE
commande
[payée]
Demander retour
Attribuer num
retour
Expedier article
Restocker article
Créditer
a: ARTICLE
compte
[disponible]
144
Les DA pour la modélisation des
opérations
Pour modéliser une opération, il faut
Rassembler les abstractions impliquées dans cette opération
(paramètres, attributs de la classe d’appartenance de
l’opération, et certaines classes voisines.
Identifier les préconditions à l’état initial de l’opération et les
postconditions à son état final, ainsi que les invariants qui
doivent se maintenir pendant l’exécution de l’opération.
en commençant par l’état initial, spécifier les activités et les
actions.
Lorsque cela est nécessaire, utiliser les branchements
conditionnels pour les chemins conditionnels et les itérations.
Si l’opération appartient à une classe qui peut en activer
d’autres, utiliser la synchronisation. 145
Les DA pour la modélisation
des opérations
[pente=l.pente]
[sinon]
x= (l.delta-delta)/(pente-l.pente)
y=(pente*x)+delta
Retourner Point(x, y)
Retourner Point(0,0)
146
DET versus DA
DET DA
Représente l’évolution des Représente l’évolution de
objets l’exécution d’une opération
(CU)
147
Chapitre VIII
Diagrammes de composants et de
déploiement
Introduction
Les CU sont créés pour réfléchir au comportement
souhaité du système.
Etudiant
150
Définition
Un composant peut être :
Un document quelconque (<<document>>)
Un programme exécutable (<<exécutable>>)
Un document contenant du code source ou des données
(<<fichier>>)
Une bibliothèque statique ou dynamique
(<<bibliothèque>>)
Une table d’une base de données relationnelle (<<Table>>)
151
Différences entre composants
et classes
Les composants sont similaires aux classes :
Ils ont un nom
Ils réalisent un ensemble d’interfaces
Ils participent à des relations de dépendance, de
généralisation et d ’association et à des interactions.
Ils peuvent être emboîtés et avoir des instances.
152
Différences entre composants
et classes
Il existe des différences importantes entre les composants et
les classes :
Les classes représentent des abstractions logiques alors
que les composants représentent des éléments physiques.
Un composant est l’implémentation physique d’un
ensemble d’éléments logiques, tels que les classes et les
collaborations.
Les classes peuvent avoir directement des attributs et des
opérations. En général, les composants comportent
seulement des opérations que l’on peut atteindre
uniquement par leur interface.
153
Composants et interfaces
Rappel : une interface est un ensemble d’opérations qui servent à
spécifier les services d’une classe ou d’un composant.
L’implémentation physique du système est décomposée en :
Interfaces qui représentent les principaux points de soudure du
système.
Composants qui réalisent les interfaces
Composants qui ont accès aux services à travers leurs interfaces.
Ce mécanisme permet de déployer un système dont les services sont
indépendants de l’emplacement et remplaçables.
Une interface réalisée par un composant s’appelle une interface
export.
Un composant peut fournir plusieurs interfaces exports
L’interface utilisée par un composant s’appelle une interface import.
154
Composants et interfaces
Exemple
Compte
Identificatio
n
Consultatio
n
Remarque :Il est possible d’avoir une interface utilisée ou
réalisée par un composant et retrouver la même interface
utilisée ou réalisée par les classes implémentées par le
composant.
Les composants d’un composant ainsi que les classes qu’il
réalise sont représentés dans le composant.
155
Diagramme de composants
Un diagramme de composants montre un ensemble de
composants et leurs relations.
Relation de dépendance entre composants :
Elle indique qu’un élément d’un composant fait appel
aux services offerts par les éléments d’un autre
composant.
Elle permet d’identifier les contraintes de compilation
Les composants peuvent être organisés en paquetages
définissant des sous-systèmes.
Un diagramme de composants traduit l’aspect
implémentation en proposant une structure en
composants et paquetages.
156
Diagramme de composants
Buts :
Structurer l’application - Architectures
(fonctionnelle/logicielle)
Regrouper des éléments à forte cohérence dans des
«conteneurs» faiblement couplés (encapsulation de
haut niveau)
Faciliter la maintenance (évolution - adaptation -
debug)
Construction de frameworks (réutilisation)
157
Diagramme de composants
Représente les concepts connus de l’exploitant pour
installer et dépanner le système :
Librairies dynamiques, instances de BD,
applications, progiciels, objets distribués,
exécutables, etc.
158
Concepts de base
Programmation
Cours
Cours
Professeur Etudiant
Diagramme de Composants
159
Exemple
DiceSystem Dice
DicePersist Displayable Vizualization
HighScore
Observable
PersistKit
Observer
Randomizer
Random
system
160
Diagramme de déploiement
Localisation des composants sur le réseau physique, et
structure des postes de travail
ingénieur d'exploitation, chargés d'installer les
modules du syst. et d'identification des causes
potentielles de pannes.
Ex. en C/S, on évaluera la répartition locale,
départementale et centrale.
déf. des postes de travail, des serveurs, connexions,
composants logiciels pour mesurer les échanges du
systèmes
161
Diagramme de déploiement
<<3090>>
Serveur <<UNIX>>
pont filtrant Serveur
Comptabilité
WEB
Référence
DNS
<<LAN>> <<LAN>>
émulation SNA ethernet export
<<NT>> <<UNIX>>
<<LAN>> Serveur central <<LAN>> * PC
Serveur Central
ethernet central ethernet central Central
Bureautique SIVEx
<<WAN>>
internet Firewall
<<NT>>
Serveur Agence <<UNIX>>
Bureautique <<LAN>> Serveur Agence <<LAN>> * PC
ethernet agence SIVEx ethernet agence Agence
162
Diagramme de déploiement
Terminal X Serveur
<<TCP/IP>>
Imprimante
<<RNIS>>
PC
163
Chapitre IX
Méthode de développement (AGILE)
Méthodologie…Méthode Agile
Définir la méthodologie du travail est une étape
décisive pour l’élaboration d’une application
informatique.
165
Le processus Agile permet de s’orienter vers
l’opérationnel plutôt qu’accumuler une masse
d’informations difficile à traiter et qui fait perdre de
vue l’essentiel. Aussi, il cherche la collaboration avec le
client.
166
Scrum
« Scrum signifie mêlée au rugby. Scrum utilise les
valeurs et l'esprit du rugby et les adapte aux projets de
développement. Comme le pack lors d'un ballon porté
au rugby, l'équipe chargée du développement travaille
de façon collective, soudée vers un objectif précis.
Comme un demi de mêlée, le Scrum Master guide les
membres de l'équipe, les repositionne dans la bonne
direction et donne le tempo pour assurer la réussite du
projet. » [réf Scrum guide]
167
Scrum se caractérise par deux notions principales : le
backlog et les sprints.
168
Mécanisme de fonctionnement du Scrum
169
Scrum définit trois rôles dans l'équipe du travail. Nous
citons :
171