Académique Documents
Professionnel Documents
Culture Documents
UML
DÉMARCHE DE DÉVELOPPEMENT
Spécification
40%
Conception
30%
Codage
30%
Spécification
66%
Codage
9% Conception
25%
Analyse besoins
Planification
Conception du
produit
Conception
détaillée
Implantation et
test
Intégration et
test
Installation et
test
Exploitation
et maintenance
Problèmes du modèle en cascade
o Découpage rigide du projet en étapes distinctes
• difficile de s’adapter aux changements des besoins
utilisateurs
• Modèle bien adapté si les spécifications peuvent être
précises dès le début
• Toutefois, il est rare d’avoir des spécifications stables
o Les tests sont prévus tardivement
Quels sont les avantages ?
• Simple
• Logique
• Facilité de planification des étapes et des délais
• Contrôle facile
• Accent sur la documentation et la structure
• Idéal pour les projets logiciels stables
Cycle en V
• Le modèle du cycle en V est un modèle de gestion de
projet imaginé suite au problème du modèle en
cascade.
• Son apport : Il permet de limiter les retours aux étapes
précédentes.
• Mettre en aval, certaines tâches tardives : intégration,
validation
Test de
Spécification validation
Conception Test
générale d’intégration
Conception
Test unitaire
détaillée
Codage
o Tâches effectuées en parallèle
• Horizontalement : préparation de la vérification
• Ex. : dès que la spécification fonctionnelle est faite :
plan de tests de validation
plan d'évaluation des performances
Axe
technique
Cycle de vie en Y
Branche technique / Non
Branche fonctionnelle Fonctionnelle
Architecture matérielle
Spécifications
fonctionnelles
Architecture logicielle
Analyse
Conception préliminaire
Conception détaillée
Codage
Tests
Branche conception et
développement logiciel Déploiement
Raffinement du Implantation du
prototype prototype
Evaluation du client
logiciel
Avantage du modèle
On arrive à satisfaire le client après avoir testé différents
prototypes du système
• Meilleure adaptation aux changements
• Mise en œuvre d’une analyse de risques
• Ajustement des choix techniques et fonctionnels tôt
dans le processus
Inconvénients :
Approche très coûteuse en terme de durée de
développement ( elle nécessite des ressources
humaines importantes )
Modèle incrémental ou itératif
Principe :
- Après l’analyse des besoins ( spécification ) , on
effectue plusieurs cycles de développements
successifs ( itérations )
- Chaque cycle conduit à une version utilisable du
produit et traite un petit nombre de besoins
Avantages :
- A chaque itération , la complexité du système
diminue
- Des implémentations de parties du système sont
disponibles très rapidement . On peut disposer alors
d’informations utiles sur le comportement du
système ( early feedback ) et son adéquation aux
besoins .
- Ce modèle permet le travail en parallèle des équipes
Modèle incrémental ou itératif
• UML: Prendre le meilleur de chacune des 3 méthodes ( OOSE (Jacobson): Use Cases , OMT
(Rumbaugh): Analyse et Booch: Conception, Architecture )
• UML a été standardisée par l’OMG dés Janvier 1997 et soutenu depuis par le marché ( Microsoft, HP,
Oracle, IBM…) et par les universités .
3 – Le Processus de développement dans UML
Chaque atelier supportant UML propose un processus d'analyse. Un processus peut être assimilé à
une méthode de développement logiciel par le fait qu'il propose une démarche et une chronologie dans
l'analyse. Par exemple Rational utilise RUP (Rational Unified Process). D'autres entreprises proposent un
processus de développement propriétaire basé sur UML, comme Communications & Systems avec
UML/CS SI Development Process.
Diagramme UML
Classe Objet Use case Etats-transitions Séquence Collaboration Activité Composant Deploiement
La démarche proposée est parfois appelée "Approche dirigée par les cas". Elle consiste en:
Scénarios
4 Démarche dirigée
par les cas
Une autre démarche est possible, c'est "L'approche dirigée par les classes" où sont d'abord identifiées les
classes de l'application puis les cas d'utilisation
4 – Mise en œuvre d’une itération dans le processus de
développement UML
Cette phase sert à la capture des besoins du système à réaliser ; elle permet de :
- Prendre connaissance du cahier des charges
- Définir le cadre du système
- Délimiter la portée du projet
Tâches à effectuer :
- Identifier les acteurs et la description de leurs besoins
- Identifier et Regrouper les cas d’utilisation en packages
4.1 - La Phase de spécification
c – Identifier les Acteurs et la description de leurs besoins
La première étape est d’identifier le plus clairement possible les limites ( ou frontières ) du système .
On découvre ces limites en définissant les Acteurs et les Cas d’utilisation du système .
Notion d’Acteur :
Un Acteur est une entité externe au système qui est amenée à interagir avec lui .
Un Acteur peut être une personne , un autre système , un périphérique d’ordinateur , une base de données , un
réseau , etc… Chaque acteur définit un rôle précis .
Comment déterminer les acteurs d’un système ?
En trouvant une réponse aux questions suivantes : Qui utilise , installe démarre , maintient ou arrête le
système ? Qui obtient ou entre l’information dans le système ? Le système interagit-il avec d’autres systèmes ?
4.1 - La Phase de spécification
d – Identifier les Cas d’Utilisation fondamentaux du système ( Use Cases )
4.1 - La Phase de spécification
d – Identifier les Cas d’Utilisation ( Suite 1 )
Authentifier le client
<<include >>
<<include >>
Retourner des documents <<include >>
Relation entre les
Cas d’utilisation <<include >> Payer une amende
Inscrire un client
Produire un rapport
4.1 - La Phase de spécification
f - Structure d’un cas d’utilisation
Un cas d’utilisation est une activité élémentaire du S.I générée par un événement particulier
3 types d’évènements
déclencheurs :
Source Destination
4.1 - La Phase de spécification
h - Documentation du scénario d’un cas d’utilisation
4.1 - La Phase de spécification
i - Cas de plusieurs scénarios
4.1 - La Phase de spécification
e - Détailler chaque Cas
d’Utilisation
Dans l’exemple
de la bibliothèque :
4.1 - La Phase de spécification
e - Détailler chaque Cas
d’Utilisation
Pour l’exemple
de la bibliothèque :
4.1 - La Phase de spécification
e - Détailler chaque Cas d’Utilisation ( Suite 1 )
Suite de l’exemple sur la bibliothèque ( description des scénarios ) :
4.1 - La Phase de spécification
e - Détailler chaque Cas d’Utilisation ( Suite 1 )
l’exemple sur la bibliothèque ( description des scénarios ) :
4.1 - La Phase de spécification
e - Détailler chaque Cas d’Utilisation ( Suite 1 )
l’exemple sur la bibliothèque ( description des scénarios ) :
4.1 - La Phase de spécification
e - Détailler chaque Cas d’Utilisation ( Suite 2 )
Suite de l’exemple sur la bibliothèque :
Une classe est une abstraction d’objets (ne pas confondre avec l’abstraction des concepts objets).
C’est à dire une structure qui rassemble des propriétés communes à une collection d’objets.
On dit qu’un objet est une instance de classe, c’est à dire une valeur particulière de la classe (notion
d’instanciation). Par exemple une instance de la classe « Voiture » est : « Renault Laguna ».
D
Données T
D D
Traitement 1
T T
Traitement 2
D D
Traitement 3 T T
Objet
Approche procédurale :
"Que doit faire mon programme ?"
Approche orientée-objet :
"De quoi doit être composé mon programme ?"
Cette composition est conséquence d'un choix de modélisation fait
pendant la conception
Germinal
E. Zola
Le Monde Alice Dupont Anne Durand
Directrice Lectrice
Classe Lecteur
Classe Livre Classe Employé - nom, prénom
- titre, auteur - nom, prénom, statut
Classe Journal
- titre
Germinal
E. Zola
Le Monde Alice Dupont Anne Durand
Directrice Lectrice
Michel Martin
Le seigneur des anneaux Bibliothécaire Arsène Deschamps
J.R.R.Tolkien Lecteur
PARADIGMES OBJET
A- Encapsulation et abstraction
On dit que les informations (qui sont des données) et les comportements (qui sont les traitements
ou encore méthodes ou opérations) d’un objet sont encapsulés. En effet celles-ci sont à l’intérieur
d’une entité
I
n f
orma
ti
o n
s
N
om = Dup
ont
P
rénom =Ma
rc e
l
A
ge = 38a
ns
S
it
uatio
n =
Célib
ata
ir
e
C
omp
or
tem e
nts
Cha
ng
erNom
Cha
nge
rAge
C
ha
ng
er
Sit
uat
ion
L
’o
bj
e tP
er
son
ne
On dit que les données ont un accès privé c’est à dire que seuls les traitements de cet objet peuvent, le
cas échéant, modifier ces données (attention les données peuvent être aussi publiques mais cela n’a aucun
intérêt). Les traitements ont un accès privé ou public. Si les traitements sont publics, ceux-ci
appartiennent à l’objet et peuvent être appelés et modifier les données. Si les traitements sont privés, alors
seuls des traitements publics appartenant à l’objet pourront déclencher l’exécution des traitements privés
(à condition qu’ils figurent dans le codage). Les traitements privés sont appelés méthodes
d’implémentation ChangerNom(‘Dupont’)
Nom = ‘Dupont’ Nom = ‘Dupont’
Parties
privées
Nom = ‘DUPONT’
Age
Age
NomEnMajuscule
ChangerNom(UnNom) ChangerNom(UnNom)
Les attributs et les méthodes sont Les attributs sont privés. Les
publics. Les attributs peuvent être attributs ne peuvent être modifiés
modifiés directement sans passer par que par la méthode publique (ici
les méthodes. «ChangerNom») qui fait appel à
une méthode d’implémentation (ici
«NomEnMajuscule»)
4
____________
B Héritage
On parle d’héritage lorsque l’on a affaire à des objets et des classes et de généralisation /
spécialisation uniquement pour des classes.
On va factoriser les attributs et les méthodes communs à plusieurs classes dans une classe
principale : on parle de généralisation. Les classes dérivées deviennent des sous-classes : on parle de
spécialisation.
Personne
Nom CompteBancaire
Prénom
Adresse Montant
Age
Généralisation
ChangerNom CompteChèque CompteEpargne
ChangerAdresse
ChangerAge ChèquierEmis Intérêts
Débiter(1) Débiter(2)
Professeur Etudiant
Statut Filière
Matière
ChangerFilière
ChangerStatut Spécialisation CompteChèqueRémunéré
ChangerMatière
Intérêts de l’héritage : L’héritage permet la réutilisation du code. En effet lorsque l’on va instancier une
classe spécialisée, le code des attributs et des méthodes de la classe héritée ne seront pas implémentés à
nouveau. L’autre avantage de l’héritage et qu’il permet l’organisation hiérarchique des classes. C’est à
dire qu’il rend plus aisé l’exploration et la maintenance d’une bibliothèque de classe pour une équipe de
développement.
C Polymorphisme
Le polymorphisme est la possibilité pour un même message de déclencher des traitements différents,
suivant les objets auxquels il est adressé. Le mécanisme de polymorphisme permet donc de donner le
même nom à des traitements différents
Voiture
Intérêt du polymorphisme : Le
polymorphisme permet de donner le n° immatriculation
même nom à des traitements
différents ou encore, permet le choix
dynamique d’un traitement en
fonction de l’objet auquel il est
appliqué (en effet le choix de la Porsche 911 Renault 21
méthode polymorphe à exécuter est
déterminé à l’exécution du AccélérerAFond AccélérerAFond
programme. C’est pour cela qu’on dit
qu’elle est dynamique, par opposé à
statique qui est déterminé lors de la
compilation).
4.2 - La Phase d’élaboration
B – Le Diagramme de Classe
Définition
C’est un diagramme qui montre une collection d’éléments statiques (classes), leur contenu et les
relations entre eux.
Exemple :
Véhicule Moteur
les multiplicités : associées aux relations, les multiplicités permettent de déterminer le nombre
d’occurrence d’une classe par rapport à une autre classe en utilisant le nom de rôle ;
La notation générale adoptée est : min . . max
1 obligatoire
0..1 optionnel
0..* ou * quelconque (cas général)
1..* au moins 1
1..5, 10 entre 1 et 5, ou 10
Association Simple binaire une association binaire exprime une relation sémantique bi-
directionnelle entre deux classes, le sens d’une association peut être précisé par une
flèche.Exemples :
Types d’associations binaires
Types d’associations binaires
antérieur
*
* postérieur
La Phase d’élaboration
B – Le Diagramme de Classe : les Attributs d’association ( Suite )
*
La Phase d’élaboration
B – Le Diagramme de Classe : Classe d’association ( Suite )
B10 – Classe d’association ( Suite )
Une classe associative dans UML ou « classe d’association » est une classe qui peut
participer à d’autres associations ( association d’associations dans l’approche Merise )
Commande Produit
N° Commande * 1..* Ref-Produit
Date_Commande Désignation
Montant_HT Prix-unitaire
Ligne-Com Livraison
Quantité 1..* 0..1 N° Bon
/ Prix-total Date_BL
Montant_HT
B – Le Diagramme de Classe : Association n-aire ( Suite )
..*
..*
1..*
4.2.1 - La Phase d’analyse
B8 – Les Association n-aires réflexives
Calendrier
locataire * Date
Personne
*
* Logement
bailleur *
LOUE R
N° contrat
Montant
Ville départ
Ville
*
* *
Route
Ville arrivée
RESEAU ROUTIER
Distance parcourue
B8 – Les Association n-aires : lecture des multiplicités
* Emploi actuel
Cas n° 1 :
Classe A
* * Classe B
Classe B
Classe A
1
1
Personnalisation CIF
CIF *
* Classe C Classe D
Nouvel
Identifiant
4.2.1 - La Phase d’analyse
B11 - Personnalisation d’une association ( cas n° 1 ) : Exemple 1
Commande Produit
N° Commande * 1..* Ref-Produit
Date_Commande Désignation
Montant_HT Prix-unitaire
Ligne-Com Livraison
1..* 0..1 N° Bon
Quantité Date_BL
/ Prix-total Montant_HT
Produit
Commande
1
1 CIF
Personnalisation CIF *
Ligne-Com Livraison
1..* N° Ligne 1..* 0..1
Quantité …
etc…
4.2.1 - La Phase d’analyse
B11 - Personnalisation d’une association ( cas n° 1 ) : Exemple 3
Obtenir Obtenir
Note
Note
1..* 1..*
Matière Matière
4.2.1 - La Phase d’analyse
B11 - Personnalisation d’une association ( cas n° 1 ) : Exemple 3 ( suite )
Classe A
* * Classe B ( Ao , Bo ) Do
Classe B
Classe A
1
1
Personnalisation CIF
CIF *
1
* Classe C Classe D
*
Nouvel
Identifiant
4.2.1 - La Phase d’analyse
B11 - Personnalisation d’une association ( cas n° 2 ) : Exemple
Personne Profession
1 1
CIF CIF
Emploi actuel
* *
Personnalisation Cadre opérationnel
*
travailler
0..1
L’association ternaire cache la DF : Entreprise
(Personne , Profession ) Entreprise
B – Le Diagramme de Classe : Compositions et Agrégations ( Suite )
Agrégation et composition :
Les relations d’agrégation et de composition sont 2 types particuliers d’associations permettant
d’exprimer l’appartenance d’une partie à un tout .
L’AGREGATION LA COMPOSITION
• L'agrégation est une • La composition est une relation
relation de type composé – d’agrégation dans laquelle il existe une
composant, maître – esclave contrainte de durée de vie entre la
classe « Composé » et la ou les classes
ou un lien de type
« Composant ». Autrement dit la
« ensemble » comprenant suppression de la classe « Composé »
des « éléments ». implique la suppression de la ou des
Ordinateur classes « Composant »
Puissance Commandes
Marque
Clavier UC Écran
Entête Lignes
comm
andes
B – Le Diagramme de Classe : Compositions et Agrégations ( Suite )
Autres Exemples
B12 – Associations spéciales ( suite 5 ) : La composition et l’agrégation
Utiliser
Composition Agrégation
L’écran , le disque et les périphériques L’écran , le disque et les périphériques
sont des pièces réelles. Elles sont toutes sont des modèles de pièces. Ces modèles
identifiées par un numéro de série et peuvent être employés dans l’assemblage
sont les constituants d’un ordinateur à de plusieurs ordinateurs .
un instant donné .
Relations entre classes : Association qualifiée
Durée
Graphe de dépendances
Fonctionnelles :
4.2 - La Phase d’élaboration
B – Le Diagramme de Classe : La généralisation / spécialisation des concepts
Il arrive qu’une classe ( concept ) soit essentiellement identique à une autre , les seules
différences résidant dans un certain nombre de caractéristiques supplémentaires ( des attributs ,
des méthodes ou des associations avec d’autres concepts ) . On dit alors que le 1er concept est
une spécialisation du second et que le second est une généralisation du 1er .
Exemple :
Cas de notre exemple : Un paiement cash , par carte ou par chèque est toujours un paiement .
4.2 - La Phase d’élaboration
B – Le Diagramme de Classe : la Classification multiple
Un concept général peut souvent être spécialisé de plusieurs façons différentes .
Exemple :
Dans un hôpital , chaque médecin
ou infirmier est aussi un homme
ou bien une femme .
Il est donc possible qu’une instance
d’un concept appartienne
simultanément à plusieurs
spécialisations de ce concept .
Règles :
• Une instance d’un concept général ne peut être simultanément une instance de 2 concepts spécialisés
associés au même discriminant ( une personne peut être un infirmier ou un médecin ou ni l’un ni l’autre )
• Si la contrainte ‘’Mandatory’’ accompagne un discriminant , alors toute instance du concept général doit
obligatoirement être une instance d’un et d’un seul concept spécialisé associé à ce discriminant .
( une personne est obligatoirement soit un homme , soit une femme ) .
(Mandatory)
4.2 - La Phase d’élaboration
B – Le Diagramme de Classe : l’héritage multiple
Un même concept spécialisé peut être associé à plusieurs concepts généraux et hériter du
comportement de chacun d’eux .
Avion Discriminant
Généralisation
A320
Spécialisation
Héritage multiple
Agrégation ou association ?
Agrégation ou généralisation ?
• Agrégation ou • Agrégation ou
association : généralisation :
si 2 objets sont étroitement
Dites vous «ou»
associés par une relation de type
«composé-composant», c’est une ou dites-vous «et» ?
agrégation Exemples :
Un moteur est diesel ou à essence
si 2 objets sont habituellement (généralisation)
indépendants, bien que parfois Un moteur est composé de
associés, c’est une association. cylindres et de pistons
(agrégation)
Dans les assertions suivantes, préciser s'il s'agit d'une association, d'une
agrégation ou d'une généralisation :
1ère Notation
2ème Notation
4.2 - La Phase d’élaboration
B – Le Diagramme de Classe : les Interfaces ( suite )
La classe VILLE implémente l’interface REPRESENTABLE ( elle comporte le code associé aux
méthodes qui sont décrites dans l’interface ) .
= Relation sémantique entre 2 éléments selon laquelle un changement apporté à l’un peut
affecter la sémantique de l’autre
1..* 1..*
de télévision
Modélisation des classes et des états
Diagrammes de classe : exercice d’application 1
Exercice : L’institut de formation – diagramme de classes
Il s'agit d'établir le schéma des données pour la gestion des formations d'un institut
privé. Un cours est caractérisé par un numéro de cours (NOCOURS), un libellé
(LIBELLE), une durée en heures (DUREE) et un type (TYPE). Un cours peut faire
l'objet dans l'année de plusieurs sessions identiques. Une session est caractérisée
par un numéro (NOSES), une date de début (DATE) et un prix (PRIX). Une session
est le plus souvent assurée par plusieurs animateurs et est placée sous la
responsabilité d'un animateur principal. Un animateur peut intervenir dans plusieurs
sessions au cours de l'année. On désire mémoriser le nombre d'heures (NBH)
effectué par un animateur pour chaque session.
Un animateur est caractérisé par un numéro (NOANI), un nom (NOMA) et une
adresse (ADRA).
Chaque session est suivie par un certain nombre de participants. Un participant est
une personne indépendante ou un employé d'une entreprise cliente. Un participant
est caractérisé par un numéro (NO-PAR), un nom (NOMP) et une adresse (ADRP).
Dans le cas d’un employé, on enregistre le nom (NO-MEN) et l’adresse de
l’entreprise (ADREN). On désire pouvoir gérer d’une manière séparée (pour la
facturation notamment) les personnes indépendantes d’une part, et les employés
d’autre part.
Modélisation des classes et des états
Diagrammes de classe : exercice d’application 1
Modélisation des classes et des états
Diagrammes de classe : exercice d’application 2
: { or } ou { exclusivité }
{ or }
4.2.1 - La Phase d’analyse
B13 – Les Contraintes sur associations ( suite 3 )
: { totalité }
{ totalité }
4.2.1 - La Phase d’analyse
B13 – Les Contraintes sur associations ( suite 4 )
4.2.1 - La Phase d’analyse
B13 – Les Contraintes sur associations ( suite 5 )
: { inclusion } ou { subset }
Autres exemples :
{ subset }
4.2.1 - La Phase d’analyse
B13 – Les Contraintes sur associations ( suite 7 )
entre 3 associations binaires
Date achat
Installe Achat
Utilisation
: { simultanéité }
{ simultanéité }
4.2.1 - La Phase d’analyse
B13 – Les Contraintes sur associations ( suite 9 )
Relevé de Ligne
compte opération
4.2.1 - La Phase d’analyse
B13 – Les Contraintes sur associations ( suite 10 )
- une personne a visité un certain nombre de pays, dans un ordre donné, et que le
nombre de pays visités ne peut que croître ;
- une personne aimerait encore visiter toute une liste de pays, et que cette liste est
ordonnée (probablement par ordre de préférence).
4.2.1 - La Phase d’analyse
B13 – Les Contraintes sur associations ( suite 11 )
Exemple :
4.2 - La Phase d’élaboration
B – Le Diagramme de Classe : les Contraintes ( Suite )
• Contrainte = Relation sémantique entre éléments de modèle qui spécifie des
conditions ou propositions devant être respectées pour que le modèle soit valide
Notation : { contrainte }
• Contraintes Pré-Définies
4.2 - La Phase d’élaboration
B – Le Diagramme de Classe : les Contraintes ( Suite )
4.2 - La Phase d’élaboration
B – Le Diagramme de Classe : les Contraintes ( Suite )
4.2 - La Phase d’élaboration
B – Le Diagramme de Classe : les Associations dérivées ( Suite )
4.2 - La Phase d’élaboration
C – Le Diagramme d’objets
Classes
Objets
4.2 - La Phase d’élaboration
C – Le Diagramme d’objets ( Suite 2 ) : Exemple d’associations multiples
Classes
Objets
4.2 - La Phase d’élaboration
C – Le Diagramme d’objets ( Suite 3 ) : Exemple d’association réflexive
Classe
Objets
4.2 - La Phase d’élaboration
D – L’axe dynamique
D – L’axe dynamique
4.2 - La Phase d’élaboration
D – L’axe dynamique
4.2 - La Phase d’élaboration
D – L’axe dynamique
4.2 - La Phase d’élaboration
E – Le Diagramme de Séquence ( suite 1 )
Ascenseur Personne
transporte
bouton d'appel s'allume( )
appel de l'ascenceur étage( )0..* 0..* ouverture des portes étage( )
choix de l'étage( )
bouton d'étage s'allume( )
10: ouverture des portes étage (3) 9: ouverture des portes étage (3)
4.2 - La Phase d’élaboration
E – Le Diagramme de Séquence ( suite 3 )
Les diagrammes de séquence distinguent deux grandes catégories d’envoi de message :
- Les envois synchrones pour lesquels l’émetteur est bloqué et attend que l’appelé ait fini de traiter le
message
- Les envois asynchrones pour lesquels l’émetteur n’est pas bloqué et peut continuer son exécution.
Les diagrammes de séquence permettent de représenter les périodes d’activité des objets.
Une période d’activité correspond au temps pendant lequel un objet effectue une action,
soit directement, soit par l’intermédiaire d’un autre objet qui lui sert de sous-traitant.
Les périodes d’activité se représentent par des bandes rectangulaires placées sur les
lignes de vie. Le début et la fin d’une bande correspondent respectivement au début et à
la fin d’une période d’activité.
Message synchrone
Retour implicite
Message asynchrone
Retour explicite
4.2 - La Phase d’élaboration
E – Le Diagramme de Séquence ( suite 4 ) : Règles de représentations
Constructeur Destructeur
Alternative
Boucle
4.2 - La Phase d’élaboration
Diagramme
de séquence
à éviter
Intérêt de diagramme de séquence
Définition : Les diagrammes de collaboration montrent des interactions entre objets, en insistant plus
particulièrement sur la structure spatiale statique qui permet la mise en collaboration d’un groupe d’objets.
Les diagrammes de collaboration expriment à la fois le contexte d’un groupe d’objets (au travers des objets
et des liens) et l’interaction entre ces objets (par la représentation de l’envoi de messages).
Les diagrammes de collaboration sont une extension des diagrammes d’objet.
Itértion sur
un message
Stéréotype
Acteur
4.2 - La Phase d’élaboration
F – Le Diagramme de Collaboration ( Suite 3 ) : Scénario de Use Case
Définition : Les diagrammes de collaboration montrent des interactions entre objets, en insistant plus
particulièrement sur la structure spatiale statique qui permet la mise en collaboration d’un groupe d’objets.
Les diagrammes de collaboration expriment à la fois le contexte d’un groupe d’objets (au travers des objets
et des liens) et l’interaction entre ces objets (par la représentation de l’envoi de messages).
Les diagrammes de collaboration sont une extension des diagrammes d’objet.
4.2 - La Phase d’élaboration
F – Le Diagramme de Collaboration
Origine
Définition
un diagramme d’état décrit l’évolution au cours du temps d’un objet (instance d’une classe) en
réponse aux interactions avec d’autres objets ou acteurs.
Il décrit le cycle de vie des objets d'une seule classe. On établit un diagramme d'état pour chaque
classe qui a un comportement dynamique significatif, ce qui signifie que toutes les classes n’en ont pas
besoin
Un diagramme d'état est un graphe orienté comportant des états (nœuds) connectés par des
des transitions (arc orientés).
Exemple
E– Le Diagramme d’État Transition
État :
un état spécifie la réponse de l'objet aux événements d'entrée. Il est stable. Il peut être caractérisé par un
ensemble de valeurs d'attributs et de liens d'un objet. Chaque objet est à un moment donné dans un état
particulier :
- Etat Initial : état d'une instance juste après sa création (un seul état initial)
- Etat Intermédiaire : un objet est toujours dans un état donné pour un certain temps
- Etat Final : état d'une instance juste avant sa destruction (un automate infini peut ne pas avoir d'état
final).
Formalisme :
Etat
Intermédiaire
Etat Initial Etat Final
E– Le Diagramme d’État Transition
Transition - Condition
Transition :
Relation entre deux états indiquant qu’un objet dans le premier état va passer dans le
deuxième quand un événement particulier apparaîtra, et que certaines conditions
seront satisfaites.
Événement:
Condition :
une condition est une expression booléenne, attachée à un événement, qui doit être
vraie pour le déclenchement de la transition. Elle est indiquée entre crochets à la suite
du nom de l'événement
État initial État final
Événement
condition
Naissance Décès
Etat transition
E– Le Diagramme d’État Transition
Action :
une action est une opération instantanée (atomique) déclenchée par une transition Elle est associée à
un événement. La notation d'une action sur une transition est précédée d’une barre oblique ("/").
En attente
Menu
visible
En entrée :
L’action est exécutée chaque fois que l’on entre dans l’état.
Notation : entry : action
En sortie :
L’action est exécutée chaque fois que l’on quitte l’état.
Notation : exit : action
Action interne :
L’action ou opération exécutée dans un état seulement si un événement survient.
Notation : On Event : action
E– Le Diagramme d’État Transition
Notation complète et ordonnancement :
Etat x
Evt [condition]
Evt [condition] Entry / action 2
Do : activité / action 5
/ action 1 On Event: even/ action 3
Exit / action 4
Ordre temporel d’exécution :
En entrée :
· Action sur la transition d’entrée (action 1)
· Action d’entrée dans l’état (action 2)
· Démarrage de l’activité
Dans l’état :
· Interruption de l’activité
· Exécution de l’action interne (action 3)
· Reprise de l’activité
En sortie :
· Arrêt de l’activité
· Action de sortie de l’état (action 4)
· Action sur la transition de sortie (action 5)
Appui bouton étage [N°!=étage courant] Marche
Arret Entry: TournerMoteur()
/DémarrerMoteur()
Bouton mode
22 :15 :35
Bouton avance
En fonctionnement normal, la montre affiche les heures, les minutes et les secondes qui
défilent.
Une pression sur le bouton mode sélectionne le chiffre des heures qui se met à clignoter. A
ce moment une pression sur le bouton avance incrémente le compteur d’une heure.
Une nouvelle pression sur le bouton mode sélectionne le chiffre des minutes qui se met à
clignoter. A ce moment une pression sur le bouton avance incrémente le compteur d’une
minute.
Une nouvelle pression sur le bouton mode revient à l’affichage normal.
Dessiner le diagramme état-transition de cette montre.
Appui Bouton Avance/AvancerMinute()
Modification Heure
Entry:ClognoterHeure()
Scénario nominal
E– Le Diagramme d’État Transition
Généralisation d'états:
Dans le cas d'un comportement dynamique complexe, les diagrammes d'états sur un niveau
deviennent rapidement illisibles
Pour éviter ce problème, il est nécessaire de structurer les diagrammes d'états en :
- Super-états : états généraux
- Sous-états : héritent des caractéristiques des états généraux
E1
A B
E2
E2
E1
A B
C
E2
C
Passer M.Arrière
Marche
Point mort arrière
Passer P.M.
Passer M.Avant
Passer P.M.
Marche avant
Notion d'historique :
Porte Ouverte
Porte Fermée
Attente
E– Le Diagramme d’État Transition
Création et Destruction
La création d'un objet se représente par l'envoi d'un événement de création à la classe de l'objet
Créer (immatriculation)
Au Sol
Décoler
Atterir
Au Vol
Supprimer
La destruction est effective lorsque le flot de contrôle de l'automate atteint un état final
non emboîté
E– Le Diagramme d’État Transition
Donner vie aux objets (s’ils s’y prêtent) représentés jusqu’à présent de manière
statique comme des occurrences de classes qu’on peut généraliser par les classes ;
Tenir compte des états lors de l’implémentation (en effet la traduction des états peut
être faite simplement, la plupart des langages le permettent);
Scénarios
Diagramme Diagrammes
de classes d’interaction
Diagrammes
d’états-transition
Etude de cas :une agence de recrutement effectue des
compagnes de recrutement pour le compte de nombreuses
entreprise (clients de l’agence) désirant embaucher du
personnel qualifié sur postes avec des profils bien précis. Les
candidats sont d’abord sélectionnés par l’agence puis
convoqués pour déposer leurs pièces de dossier. Ils sont ensuite
invités à se présenter à un entretien personnel où leurs
compétences et aptitudes sont examinées par une commission
constituée d’un ensemble d’examinateurs. Lorsque tous les
candidats sont examinés dans une compagne, la même
commission d’examinateurs se réunit à une date bien précise
pour évaluer l’ensemble des dossiers des candidats. A l’issue de
cette évaluation, les candidats se voient attribuer ou refuser le
poste auquel ils ont aspiré au niveau de leur candidature.
Exemple
Convocation(Date)
Préparation
Entrevue
Entrevue
Convocation(Date)
Bilan
AttributionPoste
Evaluation
RefusAffectation
Update Rectangle
Set Largeur = 2 * Largeur , Hauteur = 2 * Hauteur
Where Id_Rectangle = …
C – Transposition d’un modèle UML dans un contexte relationnel ( Suite )
• Association binaire générale
Région Ville
1 Nom_Ville
Code_Région
Région 1..* Population
Personne
conjointe
Create table personne(Id-personne int not null primary key,
0..4 nom varchar(20),datenaissance date,
id_personne_conjoint references personne (id_personne,…)
conjoint 0..1
marié a
C – Transposition d’un modèle UML dans un contexte relationnel ( Suite )
Associations binaires multivaluées
Personne Ville
0..* Travailler à
Id_Personne Nom_Ville
Nom 0..* Population
Depuis
jusqua
Create Table Ville (NomVille varchar(20) not null primary key, ,Population int,…)
Create table personne(Id-personne int not null primary key, nom varchar(20),
Prenom varchar(20), datenaissance date, …)
Create table travailler (id_personne int not null reffences personne (id_personne),
nomville varchar(20) refferences ville(nomville),
depuis date, jesqua date, primary key (id_personne,nomville))
C – Transposition d’un modèle UML dans un contexte relationnel ( Suite )
Associations multivaluées
Personne
P1
0..* Create table personne(Id-personne int not null primary key,
nom varchar(20), Prenom varchar(20),
P2 0..* datenaissance date, …)
Ami_de
Create table ami_de ( id_personne_P1 int not null refferences personne (id_personne) ,
id_personne_P2 int not null refferences personne (id_personne),
primary key (id_personne_P1, id_personne_P2))
C – Transposition d’un modèle UML dans un contexte relationnel ( Suite )
Associations d'héritage
A
A1
B C
B1 C1
B2 C2
Create tableB ( id_A int not null primary key references tableA(id_A),
B1 varchar(30),
B2 varchar(30))
Create tableC (id_A int not null primary key references tableA(id_A),
C1 varchar(30),
C2 varchar(30))