Académique Documents
Professionnel Documents
Culture Documents
1
Introduction
2
Introduction
3
Les différents systèmes d’une organisation
Le système opérant :
Responsable de l’exécution des tâches
Détenteur "du métier" de l’organisation
Le « savoir faire »….
Le système de pilotage :
Décider
Planifier ,
…
Le système d’information :
Relation entre les deux autres systèmes
Faire circuler l’information,
…
4
Les différents systèmes d’une organisation
MATIERES PRODUITS
SYSTÈME ACTIVITE
PREMIERES FINIS
OPÉRANT
SYSTÈME
D’INFORMATION INFORMATION
SYSTÈME DE
PILOTAGE DECISION
5
Les différents systèmes d’une organisation
6
Les différents systèmes d’une organisation
Mode de fonctionnement:
Suivi :
DECISIONS Système de
PILOTAGE COMPTES RENDUS
ORDRES
BILAN
….
….
Système D’INFORMATION
Système OPÉRATIONNEL
7
FONDEMENTS SYSTEMIQUES
Le système :
C’EST QUELQUE CHOSE (n’importe quoi mais identifiable)
QUI FAIT QUELQUE CHOSE (activité, fonction)
QUI EST DOTE D’UNE STRUCTURE (structuré et non aléatoire)
QUI EVOLUE DANS LE TEMPS (n’est pas statique)
DANS QUELQUE CHOSE (environnement)
POUR QUELQUE CHOSE (finalités).
J.L. LEMOIGNE
Un système :
Est un ensemble d’éléments
En interaction dynamique
Organisés en fonction d’un but.
J. de ROSNY
8
FONDEMENTS SYSTEMIQUES
ENVIRONNEMENT
FINALITES
9
FONDEMENTS SYSTEMIQUES
- Salaires
-Règlement fournisseur,
-…
} Sortie 1
Flux PRODUITS
{- Acompte Client
- Règlements Client
} {
Flux PRODUITS
- Energie à distribuer FINIS - Energie distribuée
Entrée 2 Sortie 2
- Câbles électriques, … - Pylônes, …
- Contrôle opérationnel
DIRECTION DE
LA PRODUCTION { - Ordonnancement
- Approvisionnement
- Expédition, Livraison, …
DIRECTION
COMMERCIALE { - Conditions de distribution
- Action commerciale, …
DIRECTION
FINANCIERE { -Objectifs financiers
- Budgétisation
- Contrôle de gestion, …
Système de Pilotage
- Impayés - Ordonnancement Production
-Demande -Commandes
d’abonnement fournisseurs
- Règlements, ..
SYSTEME - Règlements, ..
12
Evolution des applications informatiques
13
Evolution des applications informatiques
14
Evolution des applications informatiques
Le Réel RI
Le Modèle L'implantation
H F
H(......)
F (......)
V(......)
Modélisation V Implantation
La RI :
- Réduit l'écart entre le réel à informatiser et son implantation informatique.
- Utilise un modèle(s) permettant un passage progressif : Réel vers Implantation.
15
Evolution des applications informatiques
Un modèle :
- est une abstraction du réel à informatiser.
- utilise un ensemble de concepts et un ensemble de règles
d’utilisation :
- Les concepts fournissent le moyen de représenter les entités du
monde réel et les relations qui existent entre elles.
- Les règles d’utilisation sont définies sur les concepts du modèle
et régularisent leurs utilisations.
Remarque:
Pour assister le concepteur afin d’élaborer le(s) modèle(s)
on a besoin d’une méthode.
16
Evolution des applications informatiques
Une méthode :
- Guide la transition du réel à sa perception (RI) et de cette dernière
vers l’implantation (Programmes).
- Composée de :
+ Un ensemble d’étapes successives : une démarche.
+ Un ensembles de modèles exprimant des points de vue
différents.
+ Un ensemble de concepts (et leurs règles d’utilisation)
permettant la représentation des modèles.
17
Historique des méthodes d’analyse et de conception
Inputs Outputs
....
Le SI
18
Historique des méthodes d’analyse et de conception
19
Historique des méthodes d’analyse et de conception
Points forts :
- Simplicité du processus de conception.
- Simplicité de la démarche intellectuelle.
- Affinage progressif.
- Répond plus vite aux besoins ponctuels des utilisateurs
(applications simples).
Points faibles :
- Pas de limites précises pour les décompositions.
- Concentration sur les traitements.
- Redondance possible des données.
- Non intégration des traitements.
20
Historique des méthodes d’analyse et de conception
D T
Points forts :
- Approche globale.
- Introduction des niveaux d'abstraction dans le processus de
conception :
- Conceptuel - Logique et - Physique.
- Bonne adaptation à la modélisation des données et la conception des
BD.
- Les étapes du processus de conception sont bien délimitées.
Points faibles :
- Double démarche de conception : les données et les traitements.
- MCD - MCT
- MLD - MLT, …
- Pas de règles précises pour la fusion des deux aspects.
22
Historique des méthodes d’analyse et de conception
D D
T T
D D
T T
23
Historique des méthodes d’analyse et de conception
24
Historique des méthodes d’analyse et de conception
25
UML
26
Concepts orientés objet
L’OBJET
Est un élément du réel à modéliser :
La facture 100567, la personne Faïez Gargouri, le cours COOSI
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, …}
27
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(), ...}
Exemple :
CLASSE Personne
Attributs
Nom : Chaîne; Prénom : Chaîne; Age : [1..132]
Opérations
Créer(); Supprimer()
FIN CLASSE Personne.
28
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
Approche classique Approche objets
Interface
Encapsulation Interface
Interface
29
Concepts orientés objet
Conséquences de L’ENCAPSULATION :
☺ Tout objet n'est accessible qu'à travers les opérations de l’interface de sa classe.
☺ Protéger les données et les codes des opérations.
☺ Dégager l’utilisateur des détails d’implémentation.
☺ Faciliter les MAJ du code des opérations.
Exemple :
Considérons la classe COMPTE suivante:
CLASSE Compte
PROPRIETES Programme utilisateur:
Numéro : Integer ... a = Lire(NuméroCompte);
Solde : Integer b = CalculerIntérêt(a);
METHODES Partie invisible à l’utilisateur:
Créer() CalculerIntérêt(x: integer){
CalculerIntérêt() return (x.solde*4%) }
FIN CLASSE Compte
En cas de changement du taux d’intérêt, le programme utilisateur reste identique
30
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).
Héritage multiple
Etudiant_Enseignant Numéro, TD, ...
31
Concepts orientés objet
Classe C
32
Concepts orientés objet
LE POLYMORPHISME
Est la capacité d’une méthode héritée à être appliquée sur des objets de
types différents.
Afficher() Objet
Personne Fenêtre
33
Démarche Orientée objet
Phase Conception
Phase aly se
e A n
Implémentation s
Pha
34
Démarche Orientée objet
35
Démarche Orientée objet
36
Démarche Orientée objet
Remarques :
Les interactions entre les classes doivent être réduites au stricte minimum.
Les liens par rapport à ceux du modèle E/A.
37
Démarche Orientée objet
38
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 ?
Exemple :
OMT utilise trois visions différentes et complémentaires du même SI
39
Démarche Orientée objet
Modèle statique
40
UML : Unified Modelling Language
Introduction à UML
Faïez GARGOURI
Maître de Conférences
ISIM – Sfax
41
PLAN
2. UML - l’historique
42
Introduction & Remarques Générales
43
Introduction & Remarques Générales
Investissement
(Homme-mois) Approche Classique
Approche Objet
Investissement initial
Taille ou fonctionnalité
44
Introduction & Remarques Générales
Durant les dernières décennies plus que cinquante méthodes objet ont
été proposées :
Les méthodes inspirées et dédiées à un langage de programmation :
HOOD [Heitz 1989] pour ADA.
OOD [Booch 1991] pour Smalltalk.
Les méthodes inspirées et dédiées aux applications temps réel :
OOAD [Shlear 1991].
OOSE [Jacobson 1992].
Les extensions de méthodes classiques :
OMT [Rumbaugh 1991].
OOM [Bouzeghoub 1994], [Morejon 1994].
Les méthodes purement orientées objets :
O* [Brunet 1993].
MCO [Castellani 1993].
45
Introduction & Remarques Générales
46
Introduction & Remarques Générales
Un besoin d’unification:
Unified …
Pour la modélisation :
Modelling …
UML
Remarque : Pourquoi langage et non méthode ?
47
Introduction & Remarques Générales
UML :
regroupe les plus récentes propositions dans :
Concepts de modélisation des données.
Modélisation des processus d’affaires (WorkFlow).
Modélisation objet.
Modélisation des composants.
peut être associé à toute démarche de conception :
à n’importe quelle étape de la démarche.
avec différents environnements de programmation.
48
Introduction & Remarques Générales
49
Introduction & Remarques Générales
50
La Genèse d’UML
Historique :
UML 2.0
51
Introduction & Remarques Générales
52
Introduction & Remarques Générales
53
Introduction & Remarques Générales
}
d'objets,
de classes,
de composants et de quoi est fait le système ?
de déploiement.
4 diagrammes comportementaux (Vue ou modèle dynamique) :
}
de collaboration,
de séquence,
d'états-transitions et comment se comporte le système ?
d'activités.
54
Introduction & Remarques Générales
55
Bibliographie
Livres :
Modélisation objet avec UML
JA Muller, N. Gaertner. Editions Eyrolles.
UML par la pratique
UML en action
De Merise à UML, …
Sur le Web :
http://www.omg.org/uml/
http:// www.rational.com
http://www.uml.free
Sous google :
UML
français
56
UML : Unified Modelling Language
Faïez GARGOURI
Maître de Conférences
ISIM – Sfax
57
Définitions
Les use cases (UC) ont été initialement proposé par OOSE de
Jacobson pour :
délimiter le système étudié,
améliorer la compréhension du fonctionnement du système et
définir les relations entre le système et son environnement.
Décrivent le comportement d’un système (action/réaction) du point de
vue utilisateurs :
L’user modélise ses besoins et non l’analyste (comme avec Merise
Position des UC dans un processus de modélisation :
Spécifications
Use Cases
Analyse Tests
58
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.
Constatations:
- Modélise : pas de détails (pas d’algorithme des interactions)
- les actions représentées par les CU sont automatisées et non
manuelles
59
Définitions
60
Définitions
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.
61
Définitions
62
Concepts de base : les acteurs
Définition 1 :
Représente un rôle joué par une entité externe (utilisateur humain,
dispositif matériel, ou autre système) qui interagit directement avec le
système étudié
Définition 2 :
Une entité externe agissant sur le système qui peut :
Échanger de l’information avec ce système
consulter ou modifier l'état du système,
Les acteurs sont :
Déterminés en examinant les :
Utilisateurs directs du système
Responsables de l’exploitation et/ou de la maintenance
Autres systèmes interagissant avec le système
Représentés sous forme de petits personnages ou sous forme de
rectangle avec le mot clé <<acteur>>
63
Concepts de base : les acteurs
64
Concepts de base : les acteurs
Les acteurs :
Doivent être décrits d’une manière simple et précise
Avec des phrases en langage naturel
Peuvent être reliés par des liens de généralisation/spécialisation
Utilisateur / Administrateur
Exemple d’acteurs :
Humains :
les utilisateurs du logiciel à travers son interface graphique
Logiciels :
déjà disponibles qui communiquent avec le système grâce à une interface
logicielle
Matériels :
robots et automates qui exploitent les données du système ou qui sont
pilotés par le système
65
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
66
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
67
Concepts de base : relations entre cas d’utilisation
Association :
Relation entre un acteur et un cas d’utilisation
Un acteur déclenche un cas d’utilisation :
CasUtilisation
Acteur
Relation d’inclusion :
Entre cas d'utilisation
L’instance du CU source contient aussi le comportement décrit par le CU
destination.
<<inclut>>
CasUtilisation1 CasUtilisation2
68
Concepts de base : relations entre cas d’utilisation
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
70
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
71
Exemple
VirementInternet
Identification Vérification solde compte
72
Exemple
Virement
Points d’extension
• Vérification supplémentaire:
après identification
73
Description des cas d’utilisation
74
Description des cas d’utilisation
Sommaire d’identification
Titre : ……………….. Type : …………………
Résumé :………………………………………………………………………………
Acteurs :
Date de création : Date de mise à jour :…………………………………
Version : Auteur(s) :
Quelques conseils :
Un cas d’utilisation doit être :
Simple
Décrit de manière claire et concise
Le nombre d’acteurs interagissant avec le CU doit être limité
Lors de la construction d’un CU, il faut se demander :
Quelles sont les tâches de l’acteur ?
Quelles informations l’acteur doit-il créer, sauvegarder, modifier, détruire
ou simplement lire ?
L’acteur devra-t-il informer le système des changements externes ?
Le système devra-t-il informer l’acteur des conditions internes ?
76
Exemple de Cas d’utilisation
77
Exemple de Cas d’utilisation
78
Exemple de Cas d’utilisation
<<étend>>
Client <<Acteur>>
Traiter le Paiement Centre autorisation
cartes
<<Acteur>>
Centre autorisation
Paiement Liquide Paiement Chèque Paiement Carte
chèques
79
Exemple de Cas d’utilisation
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) : FG
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)
80
Exemple de Cas d’utilisation
1. Ce CU commence quand un client arrive à la
caisse avec des articles qu’il veut acheter.
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.
81
Exemple de Cas d’utilisation
Enchaînement alternatif :
Quand l’enchaînement précisé par le scénario nominal ne peut pas se
dérouler comme prévu :
Le cas d’utilisation converge tout de même.
Exemple:
Numéro d’identification d’un article est inconnu
82
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
83
Conclusion
84
UML : Unified Modelling Language
Diagrammes de Collaboration
Faïez GARGOURI
Maître de Conférences
ISIM – Sfax
85
Introduction
Les besoins :
Un ensemble de traitements demandés par l’utilisateur
Il faut maintenant détailler ces besoins par les informaticiens
86
Sémantique
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
87
Sémantique
88
Sémantique
Conventions graphiques :
les objets sont représentés par un rectangle dont le nom et la classe sont
soulignés.
89
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)
90
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
91
Concepts de base
La notion de rôle :
Les objets et les associations jouent des rôles particuliers dans une
collaboration.
Exemples :
92
Concepts de base
/Locataire : Personne
* +habitant
1 +habitation
/Maison : Logement *
1 1
1 + adresse 1 +loyer 1 +loueur
:Lieu :Coût /Propriétaire : Personne
93
Concepts de base
94
Concepts de base
1:total:=valeurStock()
:Entreprise
1.1.1 : Créer(0,0) :SRéel
:C lie n t
2:afficher(total)
1.1.2.i : ajout(p)
1.1 : calculValeur()
:Stock :Produit
:Afficheur
1.1.2 * [i:=1..n]:p:=ValeurP()
95
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.
96
Exemple
<<Inclut>>
<<Inclut>>
<<Inclut>>
Affectation
lecteurs
97
Exemple
4 : Enregistrer()
7.1 : Evaluer
Lecteur RAPPORT
PAPIER 7.2 : Noter
98
Exemple
Remarques :
Les acteurs du diagramme de cas d’utilisation sont aussi présents au
niveau du diagramme de collaboration
Les cas d’utilisation se transforment en un ou plusieurs messages
échangés entre les intervenants du diagramme de collaboration
Il y a plus d’intervenants et de liens au niveau du diagramme de
collaboration qu’au niveau du diagramme de cas d’utilisation
99
UML : Unified Modelling Language
Diagrammes de Séquence
Faïez GARGOURI
Maître de Conférences
ISIM – Sfax
100
Introduction
101
Sémantique
End loop
[non x] opération 3
102
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.
103
Sémantique
104
Concepts de base
105
Concepts de base
Interaction :
est définie dans le contexte d’une collaboration.
Modélise un comportement dynamique entre objets
Se traduit par l’envoi de messages entre objets
Un message
Un autre message
106
Concepts de base
Période d’activation :
Correspond au temps pendant lequel un objet effectue une action
est représentée par une bande rectangulaire :
Le long de la ligne de vie de l’objet
Dont les extrémités représentent le début et la fin de l’activité.
Durée
d’activation
107
Concepts de base
Objet 1 Objet 2
t1 Message() Remarque:
t2 > t1 t2
à ti : envoi(Message()) =
réception (Message())
Opération(Arg.)
Temps
108
Concepts de base
Expéditeur Destinataire
FC Acquit.
FC : flot de contrôle à plat
109
Concepts de base
M. asynchrone Calculer()
Val
(A) (B)
111
Concepts de base
n!
VérifierSolde()
112
Concepts de base
X
{y-x < 2s}
Y
113
Concepts de base
: Ascenseur : Porte
:usager
Appel extérieur
Déplacement vers l’étage déplacement
d’appel (pas d’autres appels) a:ouverture
{b.TempsRéception- Ouvrir()
b:ouverte
a.TempsEnvoi < 5 s.}
L’usager peut prendre fermeture { < 8s }
l’ascenseur
Préciser l’étage fermée Fermer()
déplacement
114
Concepts de base
Un objet
115
Concepts de base
A B C D A B C D
(A) (B)
116
Concepts de base
A B C
Message1
x
Message2
(y-x <2s) y
Message3
(z-y<1s) z
Message4
t
(t’-t<2s) t’
117
Concepts de base
Expéditeur Destinataire
OU Expéditeur Destinataire
*[X] Message
118
Concepts de base
If X Message1
else
Message2
End If
OU A B C
[X] Message1
[non X] Message2
119
Conclusion & remaruqes
120
Exemple
Auteur Comité
1 : Appel à communication
d'organisation
3 : Adresser le papier
Comité
5 : Papier enregistré
programme
6 : Affecter Lecteur
7.1 : Evaluer
4 : Enregistrer
Lecteur RAPPORT
7.2 : Note
PAPIER
121
Exemple
Adresser le papier
Enreg_papier(true)
Papier enregistré
Affecter_lecteur( )
Evaluer( )
Noter( )
Papier évalué
122
UML : Unified Modelling Language
Diagrammes d’objets
Faïez GARGOURI
Maître de Conférences
ISIM – Sfax
123
Introduction
Diag. objet
124
Concepts de base
Un diagramme d’objets:
est une instance d’un diagramme de classes
Montre un contexte particulier (objet + lien)
facilite la compréhension des structures de données complexes.
Représentation des objets :
Un objet est représenté par un rectangle qui contient :
le nom de l'objet ou,
le nom et la classe de l'objet ou
la classe de l'objet.
Objet anonyme
125
Concepts de base
:Personne
126
Concepts de base
: Salle : Etudiant
Ahmed : ADHERENT
Nom = Mohamed emprunter
Soukaria : EXEMPLAIRE
Prénom = Ahmed
Adresse = Sfax
128
Concepts de base
Un Composite
:Partie1 :Partie2
Exemple:
Eau : Molécule
Hydrogène : Atome 2
Oxygène : Atome 1
Remarque :
Ces diagrammes ne sont utiles que durant la phase exploratoire d’un
domaine.
Ils deviennent vite compliqués et illisibles
129
UML : Unified Modelling Language
Diagrammes de classes
Faïez GARGOURI
Maître de Conférences
ISIM – Sfax
130
Introduction
1,N 0,N
Lien Objet Relation Classe
1, N 1, N
Les interfaces :
comment on voit/utilise le système modélisé
les paquetages :
comment on peut abstraire le système en macro-composants
Les classes :
classes réelles
classes paramétrables/génériques
classes abstraites
classes interfaces
Les relations :
associations binaires
associations n-aires
agrégation/composition
généralisation/spécialisation
132
Concepts de base
Méthodes
Exceptions
133
Concepts de base
134
Concepts de base
Nom de Classe
NomAttribut [: type = valeur
initiale]
Opération ()
135
Concepts de base
136
Concepts de base
La mutabilité :
Gelé : attribut non modifiable (const de C++)
Variable : propriété par défaut, précise que l’attribut est modifiable
Ajout Uniquement : seul l’ajout est possible (multiplicité >1)
137
Concepts de base
RECTANGLE RECTANGLE
OU
Longueur Longueur
Largeur Surface = Largeur
/Surface
longueur * largeur
Opérations Surface ()
Remarque générale :
Une opération : un service qu’une instance de la classe peut réaliser.
Une méthode est l’implémentation d’une opération.
Dans le cadre de ce cours : opération = méthode
138
Concepts de base
Exemple :
CANAL
}
TELEVISION
-on/off : BOUTON HAUT-
-couleur : énum {gris,noir} PARLEUR Classes
-marque :Chaîne
-télétexte : Boolean = Vrai
-chaînes [2..*] : CANAL
BOUTON
-prix : Réel
-hautparleur [2..6] : HAUT-PARLEUR <<énumération>>
-type : TypeTV{gelé} … TypeTV
- 16 / 9
- 3/4
Les stéréotypes : des mécanismes d’extension prévus par UML. Appliqués aux
classes, ils permettent d’avoir des classes particulières répondant à un besoin donné.
Exemples: énumération, interface, utilitaire, …
139
Concepts de base
Visibilité : +, -, #
Arguments :
Direction NomArgument : TypeArgument
[= ValeurDefaut]
140
Concepts de base
Propriété :
requête,
concurrence,
abstrait,
estFeuille,
estRacine
Visibilité et portée des attributs et des opérations:
Classe
+Attributpublic
#Attributprotégé Attribut de classe
-Attributprivé
AttributDeClasse Visibilité globale: l’attribut est
considéré comme un objet partagé
Idem pour les par les instances d’une classe
opérations
141
Concepts de base
{
Consultation de compte
Retraits et dépôts d’argent
Use cases Impression de relevé de compte
Exceptions
Carte non valide
Code secret incorrect
142
Concepts de base
Constatations :
Les cas d’utilisation nous ont permis de définir les acteurs du système
Lors de la construction des diagrammes d'interaction (séquences et/ou
collaboration) que les objets réels sont identifiés
Au niveau du diagramme de classes :
Les objets réels sont transformés en classes s'il y a des messages échangés
(si non en attribut)
Les opérations publiques des classes correspondent aux messages échangés
entre objets réels
143
Concepts de base
Les interfaces :
Décrivent le comportement visible de certaines classes :
fournit une vue totale ou partielle d'un ensemble de services offerts par une
classe, un paquetage ou un composant.
Une Classe
A DEPLACER
Une interface
144
Concepts de base
Exemple d’interface :
<<Interface>> CollectionOrdonnée
Comparable
contenu : liste de Un objet
L’interface SupérieurA() Comparable de type
InférieurA() interface
égaleA()
différentDe()
CollectionOrdonnée contient des objets comparables
CollectionOrdonnée
comparable contenir
EntierNaturel A DEPLACER
EntierNaturel implémente Comparable
145
Concepts de base
Paramètres
formels
146
Concepts de base
+Elément(ligne,colonne):Type
+Elément(t:Type, ligne,colonne)
<<lie>>(Case,8,8)
Un objet Tableau<Réel, 3, 3>
Une classe Echiquier
147
Concepts de base
ADHERENT
Nom emprunter
EXEMPLAIRE
Prénom
Adresse
149
Concepts de base
Constatations :
Association
Diagramme de classes C1 C2
Lien
:C1 :C2 :C1 :C2
150
Concepts de base
Les associations :
représentent des liens statiques/conceptuels 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
151
Concepts de base
Enseigner
SALLE ETUDIANT
152
Concepts de base
[ Nom Association ]
Classe1 Classe2
153
Concepts de base
Client Parents
HÔTEL PERSONNE PERSONNE
Directeur Enfants
154
Concepts de base
La notion de rôle :
[ Nom Association ]
Classe1 Classe2
[Rôle1] [Rôle2]
Professeur Etudiant
Enseigne Est Enseigné
155
Concepts de base
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
156
Concepts de base
157
Concepts de base
Sous-ensemble :
158
Concepts de base
Alimenter SECTEUR
Alimenter ENERGIE
PORTABLE
SECTEUR BATTERIE
159
Concepts de base
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
Remarque : classe d’association (Cde, Client, Facture)& attribut de lien
(Cde, produit, QteCdée)
Qualification :
permet de sélectionner un sous-{} d'objets, parmi ceux participant à une
association.
est définie par une clé, qui permet de sélectionner les objets ciblés.
Personne 0..1 E-mail Réseau
160
Concepts de base
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
161
Concepts de base
L’agrégation
Relation entre les CV des objets:
CV de l’agrégat1 CV de l’agrégat2
CV élément 1
CV élément 2
CV élément 3
CV élément 4
Temps
Créer() Supprimer()
162
Concepts de base
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
163
Concepts de base
La composition :
Relation entre les CV des objets:
CV du composé
CV composant 1
CV composant 2
CV composant 3
CV composant 4
Temps
Créer() Supprimer()
164
Concepts de base
La généralisation :
L’héritage, avec UML, est désigné par GENERALISATION
La généralisation peut être
Simple ou
GENARALISATION
Est Un
SPECIALISATION
Multiple :
La spécialisation a plus qu’une généralisation
165
Concepts de base
VEHICULE
Premier Deuxième
critère critère
Motorisation Milieu
{10/06} {chevauchement}
A VOILE A MOTEUR TERRSETRE MARIN
LES DEUX
166
Concepts de base
COURS
{incomplet}
COOSI IA GL BDA
167
Concepts de base
Les packages :
regroupent des éléments de modélisation (EM) : classes, associations et
packages.
encapsulent des EM correspondant à une fonctionnalité particulière.
servent de "briques" de base dans la construction d'une architecture
logicielle (par réutilisation)
représentent le bon niveau de granularité pour la réutilisation.
Client
Commande CLIENT FACTURATION
*
concerner 1
1 acheter
Facturation:: * Relation
Facture Produit d’utilisation
COMPTABILITE
Utiliser la classe Facture du package Facturation
168
UML : Unified Modelling Language
169
Introduction
Jusqu’à présent :
On a étudié le système comme « un tout » :
Cas d’utilisation du système
Diagrammes d’interaction du système
Diagramme des objets du système
Diagramme de classes du système
170
Introduction
171
Sémantique
Evt([Att]) [Condition(s)]/Action
Etat i Etat j
Ti Tj
A l’instant Ti, suite à l’arrivée d’un événement Evt, ayant les attributs
Att et sous certaines conditions, l’objet passe de l’Etat i à l’Etat j par
l’activation de l’action Action
172
Concepts de base
173
Concepts de base
174
Concepts de base
EVENEMNT
Permet les échanges de données entre les objets;
N'a pas de durée déterminée;
Les événements sont groupés par classes.
Typologie des événements :
Evénements externes
Evénements internes;
Evénements temporaires.
La spécification complète d’un événement comprend :
Le nom de l’événement
La liste des paramètres éventuels
L’objet expéditeur
L’objet destinataire
La description de la signification de l’événement.
175
Concepts de base
TRANSITION
représente le passage instantané d'un état vers un autre.
Evt([Att]) [Condition(s)]/Action
176
Concepts de base
TRANSITION
Une garde (ou condition de garde) :
Est une condition booléenne dont dépend le déclenchement d’une transition
lors de l’occurrence d’un événement.
Evt [Condition]
Etat A Etat B
Etat A
Il fait trop chaud Il fait trop chaud
[été] [hiver]
Climatiser Aérer
177
Concepts de base
TRANSITION
Les transitions composites :
Factorisent et partagent des connexions :
Plusieurs transitions peuvent se rejoindre puis partager des actions
Une transition peut se séparer en des connexions mutuellement
exclusives
Pré-traitement Pré-traitement
OU validation
Validation Validation
[nb-éléments=1] [nb-éléments>1]
[nb-éléments=1]
[nb-éléments>1]
TRANSITION
Les points de jonction statique :
Les gardes notées après le point d’interaction sont évaluées avant que la
transition ne soit empruntée
Les points de jonction dynamique :
Les gardes situées en aval du point de jonction sont évaluées quand le point
de jonction est atteint
Commande
Validation/ somme := Prix()
[somme=0] [sinon]
[somme<500]
179
Concepts de base
Nom de l’état
Super-état Marche
Sous-état 2 Deuxième
Gestion commerciale :
Quand on gère un stock de produits, il est nécessaire de prévoir, à tout
moment, les différents états possibles de notre stock et ce, pour chaque
produit stocké. Généralement, quand on crée un nouveau produit il est
automatiquement mis "en rupture de stock". Il ne sera disponible que s’il
y a une entrée (une livraison d’une commande de ce produit). Pour bien
gérer les commandes de ce produit en cas de rupture de stock, on se fixe
une quantité minimale (QteMin) au dessous de laquelle on commande
systématiquement le produit. QteMin servira à comparer la quantité
disponible (QteDispo) du produit et à lancer la commande du produit si
elle est inférieure à QteDispo. Une fois commandé, on doit attendre la
livraison du produit pour qu’il redevienne disponible. Quand un produit
est disponible, toute opération de retrait ou d’ajout ne le fait pas changer
d’état. Donner, en utilisant les conventions UML, le diagramme d’états-
transitions de l’objet Produit.
182
Exemple
Entrée Sortie
MAJProduit(QteDeMAJ)
CommanderProduit(QteCdée)
Livré Commandé
LivrerProduit(QteLivrée)
183
UML : Unified Modelling Language
Diagrammes d’activités
Faïez GARGOURI
Maître de Conférences
ISIM – Sfax
184
Introduction
185
Introduction
186
Concepts de base
187
Concepts de base
Remarques :
Une transition est déclenchée par la fin d‘une activité et provoque le
début immédiat d'une autre.
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, …).
Synchronisation :
Il est possible de synchroniser les transitions à l'aide de barres de
synchronisation (BS)
Une BS permet d'ouvrir et/ou de fermer des branches parallèles au sein
d'un flot d'exécution.
Les transitions qui partent d'une barre de synchronisation ont lieu en
même temps.
Activité 1
La fin de A1 engendre les
débuts simultanés de A2 et A3
Activité 2 Activité 3
188
Concepts de base
Synchronisation :
On ne franchit une barre de synchronisation qu'après réalisation de
toutes les transitions qui s'y rattachent.
189
Concepts de base
Conséquence :
les états représentent des calculs
view Start
Highscore turn=0
Etat final
Rol lDice
turn++
[true]
Turn<10
[false]
Source : Internet: WWW. …
Update
highscore
191
Concepts de base
Source : Internet …
192
Concepts de base
Couloirs d'activités :
Les diagrammes d’activités peuvent être découpés en couloirs d'activités.
Un couloir d'activité visualise la responsabilité des objets au sein du système
modélisé.
Les couloirs d’activité permettent d'organiser un diagramme d'activités
193
Concepts de base
194
Concepts de base
Ligne de vie :
On peut visualiser clairement les objets dans un diagramme d’activité
On peut associer à chaque objet :
Une ligne de vie et
Ses activités.
La manipulation d’un objet peut modifier son état.
Sur un diagramme d’activités, on peut :
Indiquer l’état d’un objet :
dans le symbole de l’objet avec des crochets [état]
Visualiser les objets créés par les activités
À travers une flèche en pointillé reliant :
L’objet à l’activité qui l’a crée. (l’a modifié ????)
195
Concepts de base
Demande service
D. ET + D. Séquence
Commander
Commande = D. Activités
[passée]
Facturer
Payer Commande
Livrer colis
[payée]
Bon de
livraison
196
Remarques
197
Remarques
Niveau global :
donne une vue macroscopique de l’enchaînement des fonctionnalités
correspond à la traditionnelle décomposition hiérarchique fonctionnelle
Niveau simple :
permet, pour un objet donné, d’exprimer graphiquement une activité du
diagramme d’états transitions sous forme d’un algorithme
traduction directe possible dans un langage de programmation OO (Java,
C++, …)
198