Professional Documents
Culture Documents
Objectifs
OBJECTIFS
L'objectif principal de ce cours est de maîtriser la conception d'applications
logicielles d'envergure selon les principes fondamentaux du langage UML
en se basant sur les concepts de l’Orienté Objet.
Des outils de modélisation «EclipseUML» et «QSEE» sont utilisés pour
atteindre cet objectif.
9Les illustrations seront basées sur l’étude d’un système de gestion comptable.
1
Contenu (Conception d'applications logicielles par objets)
# Durée Date Observations
1 Gestion de projet logiciel.
2 Conception du cahier des charges,
spécification et exigences
• organisation de l'équipe de conception,
• planification des activités
activités,
• supervision du personnel de
conception et de l'avancement du
projet.
3 Outils facilitant la conception d'applications
logicielles
UML, OCL, design patherns, Methode
"Unifief sof tware process" de Jacobson ,
Booch et Rumbaugh.
4 Documentation
5 Contrôle et évaluation de la qualité
6 Vérification et validation
7 Entretien et modifications
Bibliographie
Craig Larman, "Applying UML and Patterns: An Introduction to
Object−Oriented Analysis and Design and Iterative Development", 3rd
Edition, Prentice Hall, ISBN: 0131489062, 736 pages, 2004.
Craig Larman, "UML 2 et les Design Patterns", 3e édition, Pearson
Education,, ISBN: 2744070904,, 850 pages,
p g , 2005.
Eric S. Raymond, "The Art of UNIX Programming", Addison−Wesley
Professional, ISBN: 0131429019, 512 pages, 2003.
Eric S. Raymond, "The Art of UNIX Programming",
http://www.catb.org/~esr/writings/taoup/
I. Sommerville, "Software Engineering", Addison−Wesley, 1995 (5e
Édition), 742 pages, ISBN 0−201−42765−6.
2
Projets (max 4 / projet)
# Sujets Equipe
1
2
3
4
5
6
7
8
Modalités d'évaluation
Partie % Date
Livrable : 100
Diagramme Gantt Chart – WBS
Diagramme de cas d’utilisation (use cases)
Diagramme de classes
Diagramme d’objets
Diagramme de collaboration
Diagramme de séquence
Diagramme d’états-transitions (state-charts)
Diagramme d’activités
Diagramme de composants
Diagramme de déploiement
Equipe projet:
1. chef d’équipe
2. architecte.
3. ingénieur de conception
4. responsable de la documentation
3
7
4
Robustesse
5
4
3
Exactitude Efficacité
2
1
‘Avr 2010
0
‘Oct 2010
Réutilisabilité Portabilité
Evolutivité
Emergence des TI
10
5
Définition de la gestion de projet
Académiquement par . J.R. Meredith et S. Mantel :
• «la gestion des interfaces entre la performance, le temps et les coûts»
12
6
Projet SI
• Projet TI
– Mise en place de l’infrastructure et les aspects technologiques de la
sécurité.
• Projet de développement de logiciels
– Basé sur le cycle de vie d’un logiciel: (spécification, analyse,
conception, codage (programmation si réalisation, paramétrage si
achat d’un ERP), test, intégration, validation, formation.
• Projet multimédia
– Réalisation d’un site web ou d’un CD
• Projet SI
– Source: réorganisation
réorganisation, privatisation
privatisation, fusion,
fusion nouveau processus de
fabrication, nouveau cadre réglementaire, nouveau modèle métier.
– Se compose de plusieurs projets TI et de projets fonctionnels
(gestion du changement: documentation, formation,
accompagnement…)
13
14
7
Les notions à bien maîtriser
Projet Contrainte
Délais Ressource
Jalon
Livrable
Phase
15
Phasing
GO or
NO GO
Contrôle
16
8
PMI : Processus et Disciplines de Gestion de Projet
Coûts Qualité
Délais Contenu
2
1 Démarrage Planification
Intégration Communication
3
Contrôle Réalisation
Approvisionnement
Clôture
4 RH
5
Risques
17
Normes et Référentiels
Norme Domaine
ISO 10.006 Management de la qualité dans les projets
ISO 12.207 Projets de développement de logiciels
ITIL Information Technology Infrastructure Library
Référentiel de bonnes pratiques dédiées à la fourniture
de services informatiques (surtout exploitation)
CMM Capability Maturity Model
Référentiels de bonnes pratiques en matière de
développement des logiciels
(puis CMMI – intégration: plus vaste)
Cobit Control Objectives for Business and related IT)
Référentiel d’audit et de maîtrise des SI
PMBOK Project Management Body Of Knowledge
PMP: Project Management Professional (Référentiel de
certification de management des projets)
Prince2 PRoject IN Control Environment
18
9
ISO 10.006 : management de la qualité dans les projets
(version 2003)
Domaine Sous-domaine
5 La responsabilité de la gestion. 5.2 Processus stratégique
6 Management des ressources 6.1 Processus liés aux Ressources
6.2 Processus liés au personnel
7 Réalisation du produit 7.2 Processus liés aux interdépendances
19
10
Cahier des Cycle de vie d’un logiciel
Charges
Maintenance
21
Temps
Dossier Dossier
Documents Schéma Dossier Code
d ’étude de de
directeur B vs B
préalable conception conception
fonctionnelle
détaillée V& V
Dossier
Etude d ’ de
opportunité planification Dossier de
Dossier
d’architecture
conception Manuels
technique utilisateurs
détaillée
Décisions
Accord sur Choix d’une Accord sur les
l’inscription procédures, Recette Réception
organisation logicielle système
du projet du projet l ’architecture ...
11
Cycle de vie de logiciel en cascade
Proposé par Royce au début des années 70.
– Dans ce modèle, chaque phase se termine à une
date précise par la production de certains documents
ou logiciels.
– on ne passe à la phase suivante que si les résultats
de l’étape précédente sont jugés satisfaisants
– D'autres activités interviennent, par exemple le
Spécification contrôle technique et la gestion de la configuration
sont présents tout au long du processus.
Analye des besoins
Conception préliminaire
Risques élevés et non contrôlés:
Conception détaillée •Identification tardive des
problèmes
Codage •Preuve tardive de bon
fonctionnement
Intégration
maintenance
23
Inscription Absences
b
0 Prof esseur
d
MEN Programm e Ecole
Contrat
Résultats
tdB
f
Directeur
Relev é Chèque
q
c
Banque
24
12
DFD Niveau 1
a e
Etudiant Parent
Inscription
Absences
2
Inscription 3
Génération
Message
6
d Ins
Résultats Ev aluation Abs
MEN
4
Ev al f
Elaboration tdB
Programm e Directeur
de TdB
1 Direction Pédagogique
Pgm
Analy se des
Programmes
b Résultat des Analy ses
tres
Prof esseur Contrat
5
Com ptabilité
Relev é Chèque
c
Banque
25
26
13
Cycle en V dans le développement d’un SI
28
14
Logiciel et Génie logiciel
Evaluer les alternatives;
Déterminer Identifier et résoudre les
Les objectifs, Analye risques
Les alternatives Des risques
et les contraintes
Analye
y
Des risques
Analye
Des risques
Analye Prototype
des risques Prot Prot opérationnel
Revue 2
prototype1 3
Planification
Simulation, modèles et
Des besoins et Concept Tests de performance
Du cycle de vie De l’opération
Conception
Plan de détaillée
Validation
développement Des besoins code
Plan de test et Test
D’intégration Test unitaire
Test D’intégration
Mise en Développer
D’acceptation
Planification de la service
Et vérifier le produit
Prochaine phase De prochain niveau
29
Exercice d’Application
• Il s’agit de concrétiser la méthode en spirale pour la
réalisation d’un système d’information Comptable.
• Il est demandé de spécifier ce qui suit:
1 Les membres de l’équipe
1. l équipe projet
– Ressources
– Fonctions (au sein du projet)
– Compétences (pour le projet)
2. Les étapes du projet
30
15
Merise: 3 Niveaux d’abstraction
Axe d’abstraction et 2 Domaines
Statique Dynamiqu
e
Niveau Quoi, Pourquoi
conceptuel MCD MCT
Niveau Comment
physique Base de Données Codes de Programme
Exercice
• Préciser les différents traitements et données cités ci-
dessous:
– Un client lance une commande, en se basant sur le catalogue
f
fournii par l’l’entreprise
t i d de di
distribution;
t ib ti ett en précisant
é i t lles quantités
tité
d’articles. Sachant que le prix est déterminé selon la quantité en
stock.
Informations: Traitement:
32
16
Exercice
• Préciser les différents traitements et données cités ci-
dessous:
– Un client lance une commande, en se basant sur le catalogue
f
fournii par l’l’entreprise
t i d de di
distribution;
t ib ti ett en précisant
é i t lles quantités
tité
d’articles. Sachant que le prix est déterminé selon la quantité en
stock.
Données: Traitement:
9 Article 9 Consulter catalogue
9 Client 9 Déterminer prix
9 Commande 9 Commander
33
34
17
35
Quelques réalités
• Réalité de l’utilisateur:
– Une définition insuffisante des besoins des usagers est la cause majeure d'un
logiciel de mauvaise qualité et en retard.
– Les coûts pour un changement au logiciel pour corriger une erreur augmente
dramatiquement dans les dernières phases de la vie d'un
d un logiciel.
logiciel
• Réalité du développeur
– 50%-70% de l'effort consacré à un programme se produit après qu'il a été livré à
l'usager.
– Les revues de logiciel peuvent être plus efficaces pour détecter les erreurs que
les jeux d'essais.
– Une configuration de logiciel inclut de la documentation, des fichiers de
régénération,
g , des données d'entrée pour
p des tests,, et les résultats des tests sur
ces données
• Réalité du gestionnaire
– Les standards sont-ils utilisés, appropriés et complets.
– Il faut plus que des outils pour réaliser de la qualité. Il faut une meilleure pratique.
– Le développement du logiciel n ’est pas une activité mécanique.
36
18
Besoins
Un besoin est toute expression sur le comportement du système dans
l’environnement organisationnel de son fonctionnement, tels que:
- Une exigence usager
- Une contrainte fonctionnelle
- Une contrainte non fonctionnelle
- Un but organisationnel
19
Problèmes d’expression des besoins
• Les problèmes liés à l’expression des besoins peuvent être
source de litiges entre le MOE et le MOA.
Question a se poser :
– Les besoins formalisés par le MOA sont-ils exhaustifs ?
– Sont ils compréhensibles par le MOE?
– Le MOA à t-il les moyens nécessaires pour valider la solution ?
• Les solutions :
– Utilisation de méthodes d’analyse et de spécification des besoins
– Adaptation du cycle de développement du projet aux caractéristiques du
domaine
– Utilisation d’un langage commun fondé sur les modèles
– Adoption d’un langage commun et par une participation accrue des 2
parties.
39
20
Expression des besoins et cahier des charges
1- Recherche, identification et expression du besoin
Réunir le maximum d'informations sur le système d’information actuels et futur, pour bien
définir la cible. L'expression du besoin nécessite de répondre aux questions suivantes :
9 Quelles sont les fonctionnalités du système ?
9 Quels sont les documents et les données manipulés ?
9 Quelles sont les procédures utilisées ?
41
Les Comptes-rendus
Compte-rendu de développement Compte-rendu concernant les
¾Fournitures relatives au domaine cible procédures d’assurance qualité
¾États d’avancement ¾Enregistrement des procédures
¾Effectifs utilisés et coûts d’assurance qualité
¾Ressource du MOA impliquées ¾Fourniture concernée
¾Ressources du MOE impliquées ¾Protocole des p
procédures
d’assurance qualité
¾Infrastructure utilisée
¾Évaluation de l’assurance qualité
¾Description des procédures
d’assurances qualité
¾Déviation par rapport au plan de Compte-rendu de gestion des
développement configurations
¾Proposition d’actions correctives ¾Fourniture relatives au domaine cible
concerné
¾Propositions de modification du plan
de développement
pp ¾Demande de modification concernant
ces fournitures
f it
42
21
UML: Orientée Objet et ses 9 diagrammes
(puis 13 en version UML 2.x)
43
• UML se base sur une sémantique précise et sur une notation graphique
expressive. Il permet de modéliser de manière claire et précise la
structure et le comportement d'un système indépendamment de toute
méthode ou de tout langage de programmation
44
22
Exercice
• Préciser les différents objets avec les actions associées
cités ci-dessous:
– Un client lance une commande, en se basant sur le catalogue
f
fournii par l’l’entreprise
t i d de di
distribution;
t ib ti ett en précisant
é i t lles quantités
tité
d’articles. Sachant que le prix est déterminé selon la quantité en
stock.
45
Exercice
• Préciser les différents objets avec les actions associées
cités ci-dessous:
– Un client lance une commande, en se basant sur la catalogue
f
fournii par l’l’entreprise
t i d de di
distribution;
t ib ti ett en précisant
é i t lles quantités
tité
d’articles. Sachant que le prix est déterminé selon la quantité en
stock.
Objets (Actions)
9 Article (gérer, déterminer_prix, scanner)
9 Client (gérer, contacter, editer_stat, commander)
9 Commande (gérer, valider, livrer, suivre)
9 Société de distribution (gérer, fournir)
46
23
47
UML
Unified Modeling Language
Outil d’Analyse et de
Modélisation
des Systèmes
y d’Information
S. Gourram
gourram@yahoo.fr
48
24
UML: définition
• UML est un langage formel basé sur des concepts
orienté-objets
– gain de précision
– encourage l'utilisation d'outils
• UML est un support de communication performant
– Il cadre l'analyse
– Il facilite la compréhension de représentations abstraites
complexes
• Dans le cadre de la modélisation d'une application
informatique, les auteurs d'UML préconisent
d'utiliser une démarche :
– itérative et incrémentale,
– guidée par les besoins des utilisateurs du système,
– centrée sur l'architecture logicielle.
49
Définition des versions par l’OMG 13 diagrammes UML 2.0 Oct 2004
(Object Management Group)
9 diagrammes UML 1.x 1999-2002
OOPSLA’95
OOPSLA 95 Méthode unifiée
nifiée 0
0.8
8 Octobre 1995
Booch’93 OMT-2
50
25
Exercice: Définir les aspects statique et dynamique des objets
Aspect Statique Objet Aspect Dynamique
Écriture
Comptable
Salarié
Article en Stock
51
9 Nom 9 Gérer
9 Adresse 9 Affecter travail
9 ID 9 Affecter prime
Salarié
9 Date Recrutement 9 Former
9 CIN 9 Licencier
9 CNSS 9 Départ
9 Salaire de Base …
9 Référence 9 Gérer
9 Désignation 9 Stocker
9 Quantité en stock 9 Commander
9 Prix Article en Stock 9 Livrer
9 Qualité 9 Facturer
9 Scanner …
52
26
Axes de modélisation d’un système
Statique (ce que le système EST)
• diagramme de classes
• diagramme d’objets
• diagramme de
composants
• diagramme de
Dynamique déploiement
(comment le système
EVOLUE) Fonctionnel
(ce que le système FAIT)
• diagramme de séquence
• diagramme de collaboration • diagramme de cas d’utilisation
• diagramme d’états- • diagramme de collaboration
transitions
• diagramme d’activités
53
Diagrammes et Vues
Use Case
Class Diagrams
Diagrams Deployment
Diagrams
Objects
Diagrams
Structure Implémentation
Utilisateur
Collaboration Component
Diagrams Diagrams
Activity
Statechart Diagrams
Diagrams
54
27
Les diagrammes UML
1. Le diagramme de cas d’utilisation (use cases):
représentation des fonctions du système du point de vue de l’utilisateur
(acteurs)
2. Le diagramme de classes :
représentation de la structure statique en terme de classes et de relations
3. Le diagramme d’objets :
représentation des objets et de leurs relations, correspond à un diagramme
de collaboration simplifié, sans représentation des envois de message
4. Le diagramme de collaboration :
représentation spatiale des objets, des liens et des interactions. Il montre
les interactions entre les objets en insistant sur la structure spatiale statique
qui permet la mise en collaboration d’un
d un groupe d’objets
d objets.
5. Le diagramme de séquence :
représentation temporelle des objets et de leurs interactions. Il montre les
objets participants à l’interaction par leur « lignes de vie » et les messages
qu’ils échangent, ordonnancés dans le temps. Il ne montre pas les
associations entre objets.
55
7. Le diagramme d’activités :
représentation du comportement d’une opération en terme d’action. Il
représente l’état d’exécution d’une méthode sous la forme d’un
déroulement d’étapes.
8. Le diagramme de composants :
représentation des composants d’implémentation et leurs relations. Il
s’attache à l’architecture logicielle d’une application en termes de
modules.
9. Le diagramme de déploiement :
représentation du déploiement des composants sur les dispositifs
matériels.
Il s’attache à l’architecture physique et matérielle.
56
28
Nouveaux diagrammes UML 2.x
• Diagramme des paquetages (cf. Package Diagram) : un paquetage étant un
conteneur logique permettant de regrouper et d'organiser les éléments dans
le modèle UML, le Diagramme de paquetage sert à représenter les
dépendances entre paquetages, c’est-à-dire les dépendances entre
ensembles de définitions.
57
Diagramme étape
1. Diagramme de cas d'utilisation
2. Diagramme de séquence Spécification, cahier des charges
3 Diagramme d'activité
3. d'acti ité (processus
(process s métiers)
4. Diagramme d'activité
5. Diagramme de classe
6. Diagramme d'objet
Conception Architecturale
7. Diagramme de communication
8. Diagramme de déploiement
9 Diagramme de composant
9.
58
29
59
Package
Client
«utilise»
Nom de la relation
Un cas
d’utilisation
«étend»
Nom de l’acteur
Nom du cas d’utilisation
60
30
Exemple de Cas d’utilisation
Gestion Commerciale
Recevoir Bon de
Commande F Commander
Fournisseur
Client
Vérifier Régler
le Stock
Controleur
Imputation
Gérer le Comptable Packages Gestion
Stock Comptable
Livreur
Traiter les
Saisie des Livraisons
Sorties
Exécutées
61
+ Présentation Evaluation
+ Evaluation + Oral
+ Binome
<<extend>>
+ TP
+ Correction
+ Directeur
+ Informer absence
+ Parents
+ Tableau de Bord
+ Informer Résultat
+ Commission d'Orientation
+ Présentation Dossiers + MEN
+ Orientation
Dossier
62
31
Relation « Include »
• Découpage fonctionnel d’un cas d’utilisation en plusieurs « sous
cas d’utilisation ».
• Objectif : mise en facteur d’un cas d’utilisation (commun à
d’autres cas d’utilisation).
• Comme
C il n’a
’ pas d’
d’acteur dé
déclencheur
l h ou receveur
d’évènement, le cas d’utilisation inclus n’est pas un vrai cas
d’utilisation
+ Présenter Support
<<include>>
<<include>>
+ Présenter Evaluation
63
Relation « Extend »
• Extend présente une sémantique métier (alors que
include et généralisation sont des artifices
d’informaticiens).
• X étend Y si X est appelé lors de l’exécution
l exécution de Y
(on dit X est un complément facultatif du Y.
Y X
64
32
Exercice: Paiement de Chèque
Élaborer le Diagramme d’utilisation décrivant le processus suivant:
• Un guichetier d’une banque a pour activité l’accueil et le traitement des
chèques émis par sa banque.
• A la rencontre du client, le guichetier présente les informations d’ordre
organisationnel et jamais d’ordre décisionnel pour lesquelles, il fait
appell à son responsable bl quii suitit lla procédure
éd avec lle client.
li t
• Dans le cas d’une demande de paiement de chèque émis par sa
banque, le guichetier demande la présentation de l’identité du client
afin de vérifier s’il n’est pas mineur. Puis procède aux actions
suivantes:
– Saisie des informations du chèque et du client
– Si la signature n’est pas conforme avec la signature affichée par l’ordinateur, il rejette
le paiement
– Si le compte est opposé, il rejette le paiement
– Si le chèque est déclaré perdu
perdu, il fait appel à son responsable pour le suivi de
l’opération et il rejette le paiement
– Si le solde du client n’est pas suffisant, il procède à une déclaration d’incident de
paiement du chèque, et il rejette le paiement
– L’ordinateur imprime un reçu de paiement, qui doit être signé par le client
– Il procède au paiement effectif du chèque
65
Guichet
Analyse du système guichet
+ Responsable + Accueil
+ Info Décisionnelle
<<include>>
+ Clien
+ Traitement Chèque
Sign
<<include>>
+ Paiement
66
33
67
Diagramme de classes
Nom classe
• Un diagramme de classe inclut : Attributs
¾ Des classes, qui représentent les concepts de nom_Attribut :type
base (client, compte, produit, etc.).
Opérations
nom_opération (list-arg): type
¾Des attributs, qui décrivent les retour
caractéristiques des classes et, dans
certains cas, des associations.
Exemple de Classe:
¾ Des opérations, qui peuvent être ETUDIANT
effectuées sur les objets de la classe. + Num CNE : char10
+ Nom : String
¾ Des associations,
associations qui définissent les relations + Prénom : String
entre les différentes classes
+ Gérer ()
+ Inscrire ()
Notation de la visibilité des attributs et des opérations : + Evaluer ()
Public, ‘+’ : L’élément est visible par tous
Protégé, ‘#’ : L’élément est visible par les sous-classes
Privé, ‘-’ : L’élément est visible à la classe seule
68
34
Exercice
z Cahier des charges:
– Un commerçant propose à ses clients des articles de différentes
marques.
– Il envoie les factures par courrier à l’adresse du client,
client cette adresse est
déterminée lors de la première relation commerciale.
1. Identifier les classes de ce « cahier des charges »
2. Dessiner les différentes classes présentes dans ce domaine de gestion,
en proposant pour chaque classe:
– Des attributs,
– Des opérations
69
Etudiant Etudiant
normaliser Matière
Num CNE N10 Num CNE N10
Code Matière N3
Nom Prénom TXT40 Nom TXT30
Lib Matière A20
Matières A20 Pé
Prénom TXT30
Date Nais D Date Nais D
70
35
Deuxième forme normale (2NF)
2FN a pour but d'éliminer les propriétés qui ne dépendent
pas ou partiellement de l’identifiant.
• On dit qu’un objet est en 2ème FN si :
1. il est déjà en 1ère FN
2 chaque propriété dépend de la totalité de ll’identifiant
2. identifiant
identifiant.
• Exemple :
Commande
Num Client N5
Réf Produit A6
Mnt Commande DC13,2
Adr Client TXT60
Commande Produit
Client
Num CommandeN6 Réf Produit A6
Num Client1 N5
Mnt Commande DC13,2
Adr Client TXT60
71
Modèle
Voiture Marque
Code Mod TXT5
Matricule A10 Code Mque TXT5
Désignation Ml TXT15
Date Circ D Désignation Mq TXT15
Puissance N5
Poids Vide N5
72
36
Association
• Relation structurelle entre classes d ’objets
• L’association est une relation sémantique ayant une syntaxe spécifique
Salarié Entreprise
Est Employé Chez > 0..1
*
Employé Employeur
Rôle Orientation
73
Association / Multiplicité
Un devoir correspond
DEVOIR à une matière
MATIERE
+ Code Dev : char 3
+ Intitulé : Stringg 1 + Code Mat : char 3
+ Date : Date + Lib Mat : String
+ Heure : int 4
*
+ Gérer Mat ()
+ Gérer Dev ()
Une matière
correspond à
plusieurs devoirs 1 Un et un seul
74
37
Exercice : Déterminer les Multiplicités pour Diagramme des Classes Suivant
Livre
Editeur
Facture
Auteur
Magasin de Vente
Personnel
75
Associations –Détail-
Intérêt des rôles: Éléments associés triés:
Cours Enseignant Personne Salarié Poste
* 1..*
Ordonné
Étudiant
L’Agrégation indique que l’une des classes La Composition indique que le composant
contient l’autre. n’existera plus si le composé est supprimé
76
38
Généralisation / spécialisation, héritage, hiérarchie (is a, est un)
77
Présentation View
Domaine Controller
Domaine Model
78
39
Types classiques de classes
• Entity:
Entity servent à modéliser des catégories d ’objets
quii ontt une durée
d é ded vie t t dans
i importante
i d lle
système (i.e. elles sont des parties intégrantes du
système)
• Boundary
Boundary: servent à faciliter la communication des
classes Entity avec l ’extérieur du système (soit un
autre système, avec l ’utilisateur ou encore avec un
périphérique)
• Control
Control: servent à coordonner les échanges de
messages entre les autres classes pour réaliser un
Use case
79
80
40
PROJET
• Elaborer le diagramme de classe spécifique au projet
81
Diagramme de séquence
• Chaque cas d'utilisation apparaît comme un scénario, décrit par un ou plusieurs
diagrammes de séquence.
• Un diagramme de séquences montre les interactions entre les acteurs, le système et
les objets selon un point de vue temporel pour accomplir une fonctionnalité attendue du
système (un cas d ’utilisation). C’est une ensemble de messages échangés entre les
acteurs et le système
système, ordonnés chronologiquement.
chronologiquement
Système
Message (Comptable
Comptable
Ecriture
Contrôle
Résultat du Contrôle
Validation
82
41
Interactions entre les objets (messages)
• En programmation orientée
objet les interactions entre
objet,
les objets sont modélisées
comme des messages Synchrone
envoyés d ’un objet à un
autre Asynchrone
• Ces messages sont
simplement des appels Simple
d ’opérations
p d ’un objet
j p par Synchrone
un autre avec le contrôle qui avec retour
revient à l ’objet appelant immédiat
avec une valeur de retour
83
Diagramme de séquence
(en réalité: après diagramme de classe et d’objet)
84
42
UML Sequence Model
: Professeur
[Vraie] Données()
abc()
aa()
ac()
aaabb()
aab()
aah()
aaaa()
85
86
43
Diagramme de Collaboration
• Comme les diagrammes de séquence : interactions entre objets du système
avec un accent particulier sur la structure spatiale statique des objets
(contexte des objets). Les messages peuvent être numérotés pour indiquer
l ’ordre des envois.
• Message: Simple, Asynchrone, Synchrone,, Minuté
Types de message
87
88
44
Exemple
: TP 1-Dépose
<<become>>
: Devoir {new }
<<become>>
: Ecrit
: Etudiant
: Oral
89
Diagramme d’états-Transition
• Description des séquences
possibles d’états et d ’actions par
lesquelles un objet peut passer tout
au long de sa vie. Ces séquences
résultent de sa réaction à des
événements discrets.
90
45
Exemple - Ascenseur
Transition
Nom de l ’état
EnAscension
AuPremierEtage mont e( noEtage )
entry: delai = 0
do: MonteAL'etage
exit: ^sonette.ring(bip)
EnDescente
arrivé
do: descendAL'etage
arrivé arrivé monte( noEtage )
Etat de départ
EnDeplacementVersLePremierE tage PointMort
Actions
descend( noEtage )
As censeur
etageCourant : Integer = 1
delai : Integer = 0 [ delai=delaiMinutes ]
<<const> > delaiMinut es : Integer = 3
monte()
descend()
91
GAB
[ Swit chOn]
Autové rifié
ent ry / Billet -Ligne-Papier
exit / Logging
Anom alie()
Hor s Se rvice
Sans Erreur()
Nor m al
do / At tenteC arte
/ RejetC art e
C art eI nt ro()
/ Logging
PI N I nt roduit ()
V e r ifPIN AvalCarte
do / Verif Pin PinInc orrec t()
De m ande Se rvice
Etc.…
92
46
Reservation
Dem andée
Enregistrée
entry / Ecrire
exit / GénérerFlag
NOK()
OK()
Reje té
do / Inf ormerClient Accéptée
exit / Inf ormerClient
do / FlaguerChmabre
/Archiv er
Signature()
Validée
93
94
47
Etats
• En UML
UML, un état comprend 3
compartiments. Seulement 2 • Les événements peuvent
sont disponibles dans Rose être des actions (do) ou des
(notation de State Charts de « send »
Harel).
• Le premier compartiment
Actions
contient le nom de l ’état EnAscensi on
• Le second compartiment entry: delai = 0
contient les actions (aussi do: MonteAL'e tage
appelées
pp événements))
événements exit: ^sonette
^sonette.riri ng(bi p)
effectuées en entrant
(entry
entry), durant (dodo), en
quittant l ’état (exit
exit), ou sur
une condition Send
95
boutonDeM ode
96
48
Exemple pour l’ascenseur :Collaboration
Collaboration
:
A sc ens eur
p e rsi ste n t
5: Rec upereJob( )
nex t job
: L
Requête P
tran si e n t : Queue
A s c ens eur
tra n si e n t
4: A ppelleJob(job)
3: CreeDem ande( )
: Controle ur : B outon
A s c ens eur A s c e nseur
p e rsi ste n t p e rsi ste n t
2: A ppelA s c ens eur(int) 1: press er( )
: A c teur
97
98
49
Diagramme d ’Activités
Variante des
diagrammes
d’états-transition,
organisé par
rapport aux actions
et destiné à
représenter le
comportement
interne d’une
opération ou d’un
cas d ’utilisation.
99
Le diagramme d ’activités
• Focalise son attention sur l ’implantation des
opérations dans les classes.
• Représente donc une façon de visualiser l ’activité
interne d ’un
un objet non pas en fonction des ses
changements d ’états mais plutôt en termes des
activités effectuées dans ces états.
• L ’implantation d ’une opération est vue comme une
suite d ’actions reliées entre elles. Ces actions sont
par la suite transcrites en lignes de code.
100
50
Le diagramme d ’activités. Exemple...
Événement
FenetreClients.Im prim eTousLesClients()
A ffiche M essage d'im press ion à l'écran
Action
Arrivée
F enet reC lient s
Send-clause
ImprimeTousLesClients()
Classe
101
Exemple
102
51
Exercice: Paiement de Chèque
Élaborer le Diagramme d ’Activités décrivant les situations d’un
client:
• Un guichetier d’une banque a pour activité l’accueil et le
traitement des chèques émis par sa banque.
• Dans
D lle cas d’
d’une d
demanded d de paiement
i td
de chèque
hè é
émis
i par
sa banque, le guichetier demande la présentation de l’identité
du client afin de vérifier s’il n’est pas mineur. Puis procède aux
actions suivantes:
– Saisie des informations du chèque et du client
– Contrôle
– Paiement
103
• Diagramme de composants :
– représente l’architecture logicielle
– décrit les spécifications des modules qui vont contenir le code des
classes ainsi que le programme principal. L’identification des
modules est réalisée pour chaque sous-système du système
global.
• Diagramme de déploiement :
– représente l’architecture matérielle
– décrit la disposition physique des différents nœuds (processeurs)
dans la composition d’un système et la répartition des programmes
principales du diagramme des composants, sur ces processeurs.
104
52
Le diagramme de composantes
• Il décrit les composantes logicielles et leur
interdépendance.
interdépendance
• Il représente par conséquent la structure du code
code.
• Les composantes sont les implantations
physiques des concepts et fonctionnalités définis
dans le modèle logique du système (i.e., les
classes, les objets
classes objets, les liens et les collaborations
collaborations).
• Les composantes sont typiquement les fichiers
d ’implantation des éléments logiques du système.
105
Les composantes
• UML définit trois types principaux de composantes
composantes:
– les composantes sources:
sources ce type de composante prend
toute sa signification lors de la compilation
compilation. Elle est un
fichier source implantant une ou plusieurs classes
classes.
– Les composantes binaires:
binaires elles représentent le code
objet résultant de la compilation des sources.
sources Il peut
s ’agir d ’un fichier objet,
objet d ’une librairie statique,
statique ou
d ’une librairie dynamique.
dynamique Une composante binaire
prend toute sa signification lors de l ’édition des liens,
liens dans
le cas des librairies statiques,
statiques ou au run time, dans le cas
run--time
des librairies dynamiques.
dynamiques
– Les
L composantes t exécutables:
exécutables
é t bl programmes résultant
é lt t ded
l ’édition des liens des composantes binaires.
binaires
106
53
Exemple de diagramme de composantes de code source
Dépendance
107
108
54
Diagramme de Déploiement
Déploiement...
• Il comprend:
– des nœuds
– des connexions
– des composantes
– des objets
109
p re e mp ti ve m anual
tr a ite Da ta a cq u i si ti o n
Périphérique (device)
110
55
Un dernier exemple: le pattern proxy en UML
unClient : unProx y : unS ujetRéel :
Client Prox y S ujetRéel
Requête( ) Requête( )
111
56