Conception Orientée Objet
1 Partie ère
L’Orientation Objet
Support de cours Conception Orientée Objet – Copyright Nat System 2016 1
Conception Orientée Objet
L’Approche Fonctionnelle – 1960-1980
Les fonctions du système
Identifier les fonctions du système
Découpages en sous-fonctions
Analyse Fonctionnelle
Fonctions Principales …
Inconvénients :
Modification de données modification en cascade de blocs fonctionnels
utilisant ces données
Evolutivité et maintenabilité parfois difficile
Données séparées des traitements
Faible niveau d’abstraction des données
Support de cours Conception Orientée Objet – Copyright Nat System 2016 2
© Copyright Nat System 2016 2
Conception Orientée Objet
L’Approche Orientée Objet– 1980 - …
S’inspire du « monde réel » fait d’objets communiquant entre eux
et possédant :
Des propriétés intrinsèques ou dépendant d’éléments extérieurs
Des comportements intrinsèques ou dépendant d’éléments extérieurs
Un objet c’est :
Des données (ou propriétés, attributs)
Des traitements manipulant ces données et définissant son comportement
(Opérations, méthodes)
Des échanges de messages avec les autres objets
Support de cours Conception Orientée Objet – Copyright Nat System 2016 3
© Copyright Nat System 2016 3
Conception Orientée Objet
Un Objet
Ampoule
intensité
Lampe
allumer ()
éteindre()
intensifier()
diminuer()
Support de cours Conception Orientée Objet – Copyright Nat System 2016 4
© Copyright Nat System 2016 4
Conception Orientée Objet
les Choses ; les Etres ; les évènements
Ce qui est inerte, stable dans le temps,
Classes statique
Ce dont l’état se modifie dans le temps
Classes dynamique
La communication entre ces différents éléments
Support de cours Conception Orientée Objet – Copyright Nat System 2016 5
© Copyright Nat System 2016 5
Conception Orientée Objet
Entité ; Attribut ; Valeur
Une entité (un objet) est une chose concrète ou abstraite de la
réalité perçue, à propos de laquelle on veut conserver des
informations. Une entité a une existence autonome.
Les attributs sont les propriétés particulières d’une entité. C’est
une qualité. Un attribut peut prendre une ou plusieurs valeurs.
Une valeur est un symbole pour représenter un fait élémentaire.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 6
© Copyright Nat System 2016 6
Conception Orientée Objet
Entité ; Attribut ; Valeur - Exemples
<voiture, couleur, rouge>
<voiture, marque, Peugeot>
<passant, taille, grande>
<passant, âge, 50>
Support de cours Conception Orientée Objet – Copyright Nat System 2016 7
7
© Copyright Nat System 2016
Conception Orientée Objet
Entité ; Attribut ; Valeur (suite)
Les attributs peuvent être:
Atomiques : ex prénom, nom, …
Composés : Date de naissance = (jour - mois – année)
Monovalué : Une seule valeur, ex: date de naissance
Multivalué : Plusieurs valeurs, ex: les prénoms.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 8
8
© Copyright Nat System 2016
Conception Orientée Objet
Stockage des objets en mémoire
Il existe un ensemble de « types primitifs » d’attribut :
Entier codé sur « n » octets
Réel signe + mantis + exposant => « n » octets
Chaîne de caractères de « x » caractères
Etc.
Permet de déterminer la place occupée en mémoire par l’objet
(taille des types primitifs)
Tout objet est identifié par son référent ou handle qui permet de
déterminer l’adresse physique en mémoire de l’objet
Support de cours Conception Orientée Objet – Copyright Nat System 2016 9
© Copyright Nat System 2016 9
Conception Orientée Objet
Base de Données Relationnelles
Les « types primitifs » se retrouvent dans les Bases de Données
dites Relationnelles
Mode permanent de stockage des données le plus répandu.
Les données sont stockées en tant qu’enregistrement, dans des
tables, sous forme de couples attribut/valeur, dont une clé
primaire.
Les relations entre tables sont établies par un mécanisme de
jonction de clé primaire de la première table et de clé dite
étrangère de la table à laquelle on désire la relier.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 10
© Copyright Nat System 2016 10
Conception Orientée Objet
Stockage des objets
en mémoire
Objets dans la mémoire de l’ordinateur
Support de cours Conception Orientée Objet – Copyright Nat System 2016 11
© Copyright Nat System 2016 11
Conception Orientée Objet
Plusieurs référents pour un même objet
Mécanisme
d’adressage
indirect
Adresse de
l’objet
Support de cours Conception Orientée Objet – Copyright Nat System 2016 12
© Copyright Nat System 2016 12
Conception Orientée Objet
Objet Composite
Composition : entre eux, les objets peuvent être dans une
relation de composition, où certains se trouvent contenus dans
d’autres.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 13
© Copyright Nat System 2016 13
Conception Orientée Objet
Changement d’Etats
Le cycle de vie d’un objet, lors de l’exécution du programme
orienté objet, se limite à une succession de changements d’états,
jusqu’à sa disparition pure et simple de la mémoire centrale.
Exemple : la couleur d’un feu de signalisation change constamment d’état de
vert à orange et rouge
Entier couleur Change :
1,2 ou 3 Couleur = (couleur + 1)
If (couleur == 4) couleur =1
Mémoire des Mémoire des
objets opérations
Support de cours Conception Orientée Objet – Copyright Nat System 2016 14
© Copyright Nat System 2016 14
Conception Orientée Objet
Objets en Interaction
« feu-de-signalisation » parle à « voiture »
Change :
Entier/couleur 3 Couleur = (couleur + 1)
Feu-de-signalisation If (couleur == 4) couleur =1
If (couleur == 1)
voitureDevant changeVitesse(50)
Voiture-vue-dans-la-rue Entier/vitesse 0
changeVitesse(int v)
Vitesse = v
Mémoire des Mémoire des
objets opérations
Changement de couleur du feu induit changement de vitesse de la voiture.
- La méthode change permet la modification de la couleur du feu.
- La méthode changeVitesse permet de changer la vitesse de la voiture.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 15
© Copyright Nat System 2016 15
Conception Orientée Objet
Classes et Méthodes
La classe réunit tous les attributs et toutes les opérations
qui y accèdent et qui portent sur ceux-ci.
« un modèle représentant une famille d’objets »
Les méthodes sont l’ensemble des opérations portant sur les
attributs de l’objet.
La méthode a la particularité de ne s’exécuter que sur un objet
précis.
L’objet sur lequel s’exécute le code est un argument implicite de la
méthode.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 16
© Copyright Nat System 2016 16
Conception Orientée Objet
Evènements & Messages
Changement de couleur du feu : c’est un évènement
L’objet « feu » envoi un message aux objets voitures…
L’envoi d’un message revient à informer un ou plusieurs objets
d’un changement d’état.
La réception d’un message par un objet– s’il désire traiter
l’information – provoque l’exécution d’une méthode.
Un message est envoyé soit à un destinataire particulier, soit sur
un bus de messages.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 17
© Copyright Nat System 2016 17
Conception Orientée Objet
Messages, Evènements & Ecouteur
Un objet peut envoyer un message directement à un second
objet.
Ecouteur d’évènements (listener) :
Un objet peut se mettre à l’écoute d’un changement d’état d’un
autre objet – à l’écoute d’évènements.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 18
© Copyright Nat System 2016 18
Conception Orientée Objet
Un Objet est une Instance de sa Classe
Une classe est une description d'un ensemble d'objets ayant une
structure de données commune et disposant des mêmes
méthodes.
Les définitions des classes doivent correspondre à des unités
fonctionnelles indépendantes.
Une classe est un modèle d'objet. A l'inverse, un objet a une
réalité matérielle car il possède des champs avec valeurs.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 19
© Copyright Nat System 2016 19
Conception Orientée Objet
Les différents états d’un objet
Les objets changent d’états continûment – ils sont dynamiques et
la valeur de leurs attributs change dans le temps :
Soit par mécanismes qui leur sont propres
Ex : feu de signalisation
Soit en raison d’un interaction avec un autre objet
Ex : Voiture arrêté au feu rouge
Un programme orienté objet se limite à une succession de
changements d’états jusqu’à sa disparition.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 20
© Copyright Nat System 2016 20
Conception Orientée Objet
Héritage et Taxonomie
Permet de définir une nouvelle classe (sous-classe, classe
descendante) à partir d’une classe existante (super-classe, classe-
mère) à laquelle on ajoute de nouvelles données et de nouvelles
méthodes
Permet la spécialisation de classes existantes
Economie de code
Structuration du code => lisibilité
Héritage multiple
Héritage de plusieurs super-classes
C’est donc une organisation hiérarchique ou taxonomique, (càd
science de la classification).
Support de cours Conception Orientée Objet – Copyright Nat System 2016 21
Conception Orientée Objet
Héritage et Taxonomie (suite)
Support de cours Conception Orientée Objet – Copyright Nat System 2016 22
Conception Orientée Objet
Constructeur Destructeur
Les constructeurs servent à construire l'objet en mémoire
Mise en place des données
Association des méthodes avec les champs (seule une copie des méthodes
est gardée en mémoire)
Etablissement du diagramme d’héritage de l’objet
Les destructeurs se chargent de détruire l'instance de l'objet.
La mémoire allouée pour le diagramme d'héritage est libérée
Support de cours Conception Orientée Objet – Copyright Nat System 2016 23
23
Conception Orientée Objet
Symbole et Emblème
Symbole : signe, être naturel et universel qui peut faire usage
d'emblèmes selon la culture et le temps.
Emblème : élément conventionnel qui est localisé dans une
culture, dans un lieu.
Exemple
Le « Soleil » est un symbole de chaleur, de lumière et de vie.
Le « Soleil » est un emblème d’unité ou encore de la royauté.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 24
Conception Orientée Objet
Signature
La Théorie des signatures ou principe de signature est une
méthode d'observation des plantes dont les noms, les formes, les
couleurs et les nombres indiquent leur utilisation en médecine.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 25
Conception Orientée Objet
Signature
La signature de la méthode est ce qui permet de la retrouver dans
la mémoire des méthodes :
Nom de la méthode
Liste ordonnée des types de ses arguments
Surcharge
Toute modification de cette liste pourra donner naissance à une
nouvelle méthode : surcharge de la précédente.
Même nom mais pas les mêmes paramètres
Support de cours Conception Orientée Objet – Copyright Nat System 2016 26
Conception Orientée Objet
Polymorphisme
Des méthodes ayant le même nom sont redéfinies dans
des classes filles différentes ;
Permet de manipuler des objets sans en connaître totalement
leur type dans un contexte d’héritage (classes dérivées) ;
Permet des tableaux d’éléments hétérogènes ;
Structuration des objets avec des méthodes communes et des
méthodes spécifiques.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 27
Conception Orientée Objet
Principe de substitution
On peut remplacer un objet de la classe mère par
un objet de la classe fille.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 28
Conception Orientée Objet
Interface
Une interface est constituée d’une
liste de signatures de méthode qui
pourront faire l’objet d’envoi de
messages.
Cette liste constitue la partie visible
de l’extérieur de la classe.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 29
Conception Orientée Objet
Hiérarchie
Généralisation : du particulier au général
regrouper les objets présentant des similitudes pour former une classe de
base (classe mère)
mise en facteur commun de certaines structures ou certains
comportements.
Spécialisation : du général au particulier
Nécessité de préciser un objet quand des différences se présentent =
subdivision de la classe mère en classes filles (ou sous classes)
Support de cours Conception Orientée Objet – Copyright Nat System 2016 30
Conception Orientée Objet
Surcharge
La Surcharge ou sur-définition d’un symbole conduit à plusieurs
significations différentes dans lesquelles on choisit en fonction du
contexte : emblème
Les méthodes usuelles et statiques peuvent être redéfinies.
Plusieurs méthodes peuvent avoir le même nom à condition que
le nombre et le type de leurs arguments permettent au
« langage » d’effectuer un choix, donc, à condition qu’elles aient
des signatures différentes
Support de cours Conception Orientée Objet – Copyright Nat System 2016 31
Conception Orientée Objet
Classe Anonyme
Le fait de définir une classe interne, sans lui donner de nom par
dérivation d’un super classe, ou par implémentation d’une
interface.
Elle pourra donc accéder aux méthodes et aux attributs
de la classe l'englobant
/** lasse englobante */
public class ClasseEnglobante {
/* Méthode englobant l'appel à une classe anonyme */
public void methodeEnglobante(){
/** Déclaration et instanciation de la classe anonyme pour un bouton
* Le bouton est déclaré 'final' afin que la classe anonyme puisse y accéder */
final JButton bouton = new JButton("monBouton");
[Link](new ActionListener(){
public void actionPerformed(ActionEvent e){
[Link]([Link]());
}
});
}
}
Support de cours Conception Orientée Objet – Copyright Nat System 2016 32
Conception Orientée Objet
POO et les langages de programmation
Ada
C++
C#
Delphi
NatStar
JAVA
Perl
PHP
Python
Ruby
VB
Etc.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 33
Conception Orientée Objet
Conception Procédurale - Conception Objet
Conception Procédurale Conception Objet
Code plus rigide Code plus modulable
Pensée linéaire Pensée analogique
Moins lisible Plus lisible
Découpage en de grandes Identification des acteurs et de
fonctions imbriquées leurs comportements
Grosse structure de donnée Données réparties dans les
objets
Plus proche du langage naturel
la_proie.repère(prédateur)
Support de cours Conception Orientée Objet – Copyright Nat System 2016 34
Conception Orientée Objet
Conception Procédurale - Conception Objet
(suite)
Attention à ne pas confondre la conception avec le langage !
Il n’est pas rare de voir des programmes de « Conception
Procédurale » écrits à l’aide d’un langage « Orienté Objet »
Support de cours Conception Orientée Objet – Copyright Nat System 2016 35
Conception Orientée Objet
Conception Procédurale
Le découpage logiciel se fait
avec des grands blocs
fonctionnels
Support de cours Conception Orientée Objet – Copyright Nat System 2016 36
Conception Orientée Objet
Conception Objet
Le découpage du logiciel se fait
entre les classes qui regroupent
les descriptions structurelles
avec les activités
les concernant.
Les classes interagissent
entre elles.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 37
Conception Orientée Objet
Encapsulation des données
L'encapsulation permet de protéger les données d'un objet.
En effet, il n'est pas possible d'agir directement sur les données
d'un objet. Il est nécessaire de passer par ses méthodes qui jouent
le rôle d'interface obligatoire.
L'appel de méthode est en fait l'envoi d'un message à l'objet.
Vu de l'extérieur, un objet se caractérise uniquement par les
spécifications de ses méthodes.
La manière dont sont réellement implantées les données est sans
importance.
Le fonctionnement interne de l'objet est caché au monde
extérieur.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 38
Conception Orientée Objet
Encapsulation des données (suite)
Correspond à une déclaration « privé » ou « private »
Renforce la maintenabilité du code
Exemple : l’accès à la conduite de la voiture par le conducteur ne
présuppose pas la connaissance de la conception technologique
du moteur, de l’embrayage, etc.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 39
Conception Orientée Objet
Visibilité des champs et des méthodes
Visibilité Publique public
accessibles partout
Visibilité Privée private ANGKOR-VAT : 3 enceintes
restreint la portée d'un champ ou d'une méthode au module où il (ou elle)
est déclaré(e).
Visibilité Protégée protected
tout champ ou méthode protégé(e) est accessible dans tous les
descendants, quel que soit le module où ils se situent.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 40
Conception Orientée Objet
Accesseurs et Mutateurs
Les données membres notées « Privé » ne peuvent pas être manipulées
directement par les méthodes membres des autres classes. Ainsi, pour pouvoir
manipuler ces données membres, il faut des fonctions membres spéciales portant
l'étiquette « Publique ».
Les fonctions membres permettant d'accéder aux données
membres sont appelées accesseurs ou getter
Les fonctions membres permettant de modifier les données
membres sont appelées mutateurs ou setter
Support de cours Conception Orientée Objet – Copyright Nat System 2016 41
Conception Orientée Objet
La Gestion d’ Exception
Les langages OO intègrent majoritairement la gestion d’exception
pour une « sécurité maximum du code ». En JAVA, la non-prise en
compte de l’exception provoque une erreur.
Le mécanisme le plus courant est le « try-catch »
VB-NET
Try
[ tryStatements ]
[ Exit Try ]
[ Catch [ exception [ As type ] ] [ When expression
]
[ catchStatements ]
[ Exit Try ] ] JAVA
[ Catch ... ] try {
[ Finally …
[ finallyStatements ] ] } catch (ArithmeticException e) {
End Try …
}
…
}
Support de cours Conception Orientée Objet – Copyright Nat System 2016 42
Conception Orientée Objet
Statique
Il existe des cas où une instance de classe est inutile. Le terme
statique (static) permet d’indiquer qu’une méthode peut s’exécuter
sans avoir à instancier la classe qui la contient.
Exemple :
Méthode retournant le plus petit de deux nombres.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 43
Conception Orientée Objet
MOA et MOE
MOA – Maître d’ouvrage
Le maître d’ouvrage ou MOA est la personne ou le groupe qui exprime le
besoin. Il précise les objectifs, les délais et le budget alloué.
Dans « ouvrage » il faut comprendre le produit qui sera livré à la fin du projet.
Connaissances fonctionnelles
MOE – Maître d’œuvre
Le maître d’œuvre ou MOE est la personne ou le groupe qui assure la
production du projet dans le respect des délais, du budget et de la qualité
attendue.
Spécifications fonctionnelles et techniques
Support de cours Conception Orientée Objet – Copyright Nat System 2016 44
Conception Orientée Objet
2 ème
Partie
UML
Support de cours Conception Orientée Objet – Copyright Nat System 2016 45
Conception Orientée Objet
Unified Modeling Language - UML
UML est un langage de modélisation graphique à base de
pictogrammes conçu pour fournir une méthode normalisée pour
visualiser la conception d'un système.
UML n’est pas une méthode – c’est un langage
Support de cours Conception Orientée Objet – Copyright Nat System 2016 46
Conception Orientée Objet
UML (suite)
Support de cours Conception Orientée Objet – Copyright Nat System 2016 47
Conception Orientée Objet
UML est standardisé par l’organisation
Object Management Group : [Link]
UML est utilisé pour spécifier, visualiser, modifier et construire
les documents nécessaires au bon développement
d'un logiciel orienté objet.
UML offre un standard de modélisation, pour représenter
l'architecture logicielle.
Il permet de générer du code dans un langage objet :
C++, C#, JAVA, Python, PHP, etc.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 48
Conception Orientée Objet
Les différents éléments représentables sont :
Activité d'un objet/logiciel
Acteurs
Processus
Schéma de base de données
Composants logiciels
Réutilisation de composants
Grâce aux outils de modélisation UML, il est également possible
de générer automatiquement une partie de code, par exemple en
langage C++, PHP, Java, … à partir des divers documents réalisés.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 49
Conception Orientée Objet
UML se décompose en plusieurs parties :
1. Les vues : ce sont les observables du système.
Elles décrivent le système d'un point de vue donné, qui peut être
organisationnel, dynamique, temporel, architectural, géographique,
logique, etc.
En combinant toutes ces vues, il est possible de définir
(ou retrouver) le système complet.
2. Les diagrammes : ce sont des ensembles d'éléments graphiques.
Ils décrivent le contenu des vues, qui sont des notions abstraites.
Ils peuvent faire partie de plusieurs vues.
3. Les modèles d'éléments : ce sont les éléments graphiques des
diagrammes.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 50
Conception Orientée Objet
Les Diagrammes
UML permet au moyens de diagrammes, de représenter
le cahier des charges du projet,
les classes et la manière dont elles s’agencent entre elle.
Afin d’accompagner le projet tout au long de sa vie il permet,
également, de scruter le programme quand celui-ci s’exécute,
soit en suivant les envois de messages,
soit en suivant à la trace un objet particulier et ses
changements d’état.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 51
Conception Orientée Objet
Les Diagrammes (suite)
Il permet, finalement, d’organiser les fichiers qui constituent le
projet, ainsi que de penser leur stockage et leur exécution dans
les processeurs.
II y a un diagramme pour chaque phase du projet
Support de cours Conception Orientée Objet – Copyright Nat System 2016 52
Conception Orientée Objet
Les Diagrammes (suite)
UML définit 13 types de diagrammes – 3 vues
Support de cours Conception Orientée Objet – Copyright Nat System 2016 53
Conception Orientée Objet
Les Diagrammes (suite)
Nous étudierons les diagrammes suivants :
Diagramme de Cas d’Utilisation User Case Diagram
Vue comportementale / fonctionnelle
Diagramme de Composant Component Diagram
Système vue sous forme de composants réutilisables
Diagramme de Classe Class Diagram
Vue statique de l’architecture du programme : les règles
Diagramme de Séquence Sequence Diagram
Vue dynamique du programme, dans son exécution
Diagramme d’Activité Activity Diagram
Vue des traitements
Support de cours Conception Orientée Objet – Copyright Nat System 2016 54
Conception Orientée Objet
Diagramme de Cas d’Utilisation – Use Case Diagram
Support de cours Conception Orientée Objet – Copyright Nat System 2016 55
© Copyright Nat System 2016 55
Conception Orientée Objet
Diagramme de Cas d’Utilisation – Use Case Diagram
C’est la vue de l’utilisateur réputé « non informaticien » - MOA.
Permet de préparer les cas de test.
Il capture le comporte d’un système, d’un sous-système ou tout
simplement d’un comportement tel qu’un utilisateur extérieur
le voit.
Acteur : l’utilisateur du distributeur
Cas d’utilisation : retirer de l’argent
Relation : bidirectionnelle entre
le client et le distributeur
Support de cours Conception Orientée Objet – Copyright Nat System 2016 56
© Copyright Nat System 2016 56
Conception Orientée Objet
Diagramme de Cas d’Utilisation : Les Relations
Relation d’association
Bidirectionnelle (Association)
Unidirectionnelle (DirectedAssociation)
Relation entre cas d’utilisation
L’inclusion (Include) : cas d’utilisation dans un autre cas
L’Extension (Extend) : extension d’un cas sur un autre
L’héritage (Generalization)
Relation entre acteurs
L’héritage (Generalization)
Support de cours Conception Orientée Objet – Copyright Nat System 2016 57
Conception Orientée Objet
Diagramme de Cas d’Utilisation : Les Relations (suite)
L’Inclusion (Include) :
Un cas A inclut un cas B si le comportement décrit par le cas A inclut le
comportement du cas B : le cas A dépend de B.
Lorsque A est sollicité, B l’est obligatoirement,
comme une partie de A.
L’Extension (Extend) :
Un cas d’utilisation A étend un cas d’utilisation B
lorsque le cas d’utilisation A peut être
appelé au cours de l’exécution du cas d’utilisation B.
Exécuter B peut éventuellement entraîner l’exécution de A.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 58
Conception Orientée Objet
Diagramme de Cas d’Utilisation : Liens entre acteurs
Relation d’association
Logiciel de partage de fichier
Relation de généralisation
Le Directeur des ventes « hérite »
du Préparateur de commande
Dans cet exemple, le Directeur
des ventes peut préparer une
commande : le Directeur peut
se substituer au Préparateur.
Système de vente par correspondance
Support de cours Conception Orientée Objet – Copyright Nat System 2016 59
Conception Orientée Objet
Diagramme de Cas d’Utilisation (suite)
Note
Une note contient une information textuelle comme un commentaire, un corps
de méthode ou une contrainte.
Attention : On n’a pas l’ordre d’exécution des fonctionnalités.
Il peut être nécessaire d’indiquer dans une note « scénario » l’ordre
d’exécution des fonctionnalités.
Le Diagramme de Séquence va nous permettre de représenter
graphiquement un scénario.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 60
Conception Orientée Objet
Diagramme de Classes – Class Diagram
Support de cours Conception Orientée Objet – Copyright Nat System 2016 61
Conception Orientée Objet
Diagramme de Classes (suite)
Structure interne : c’est une représentation abstraite des objets
du système qui vont interagir pour réaliser les cas d’utilisation
Vue statique : on ne tient pas compte du temporel
Principaux éléments :
Les classes
Les interactions entre les classes
Support de cours Conception Orientée Objet – Copyright Nat System 2016 62
Conception Orientée Objet
Diagramme de Classes : Caractéristiques d’une classe
Une classe définit un jeu d’objet de caractéristiques communes
Etat de l’objet = les propriétés
Les attributs
Les terminaisons d’associations
pour associer les classes
1. Comportement de l’objet = ensemble d’opérations
Comportement que l’on peut invoquer
Permet de modifier des attributs ou produire un résultat
Support de cours Conception Orientée Objet – Copyright Nat System 2016 63
Conception Orientée Objet
Diagramme de Classes : Attributs
<< stereotype >> visibility name : type [multiplicity ordered]= initialvalue
Un attribut peut être « dérivé », c’est-à-dire calculé.
Ex : un attribut « âge » est dérivé de la date de naissance.
Un attribut dérivé devrait être symbolisé par un
« / » devant le nom (« âge » est dérivé de
« date de naissance »)
Un attribut est assimilable à une relation vers une classe déterminée par son
type.
En effet, les types donnés aux attributs sont souvent des classes dans les
langages objets : : « nom » est de la classe « string »
Support de cours Conception Orientée Objet – Copyright Nat System 2016 64
Conception Orientée Objet
Diagramme de composants – Component diagram
Décrit le système modélisé sous forme de composants
réutilisables et mettent en évidence leurs relations
de dépendance.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 65
Conception Orientée Objet
Diagramme de composants :
Paquetage - Package ou Namespace
Un paquetage définit un espace de nom : deux éléments
différents, contenus par deux paquetages différents, peuvent
porter le même nom.
Par exemple
[Link]été.nom
[Link]été.nom
Support de cours Conception Orientée Objet – Copyright Nat System 2016 66
Conception Orientée Objet
Diagramme de composants : Paquetage - Exemple
Un package permet le regroupement d’éléments UML.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 67
Conception Orientée Objet
Diagramme de Classes : Visibilité
Public ou + :
tout élément qui peut voir le
conteneur peut également voir
l'élément indiqué.
Protected ou # :
seul un élément situé dans le conteneur ou un de ses
descendants peut voir l'élément indiqué.
Private ou - :
seul un élément situé dans le conteneur peut voir l'élément.
Package ou ∼ ou rien :
seul un élément déclaré dans le même paquetage
peut voir l'élément.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 68
Conception Orientée Objet
Diagramme de Classes : Nom de Classe
Le nom de la classe doit évoquer le concept décrit
Il commence généralement par une majuscule
Support de cours Conception Orientée Objet – Copyright Nat System 2016 69
Conception Orientée Objet
Diagramme de Classes : Les Stéréoptypes
Les stéréotypes permettent d’étendre la notation d’UML.
Un stéréotype permet la méta-classification d’un élément d’UML.
Il permet aux utilisateurs, méthodologistes, constructeurs d’outils,
analystes et concepteurs, d’ajouter de nouvelles classes
d’éléments de modélisation, en plus du noyau prédéfini par UML
Support de cours Conception Orientée Objet – Copyright Nat System 2016 70
Conception Orientée Objet
Diagramme de Classes : Les Stéréoptypes - Exemple
Support de cours Conception Orientée Objet – Copyright Nat System 2016 71
Conception Orientée Objet
Diagramme de Classes : Association entre classes
Association Association
bidirectionnelle directionnelle
Les messages sont envoyés dans les 2 sens ou dans un seul sens.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 72
Conception Orientée Objet
Diagramme de Classes : Rôles et Cardinalité
Rôles : nom donné aux deux pôles de l’association
Cardinalité : nbr d’instances de la première classe en relation
avec le nbr d’instances de la seconde classe
Support de cours Conception Orientée Objet – Copyright Nat System 2016 73
Conception Orientée Objet
Diagramme de Classes : Association + propriété
Parfois une association de classe doit posséder une propriété.
Ici, l'association Emploie entre une société et une personne possède
comme propriétés le salaire et la date d'embauche.
Ces deux propriétés n'appartiennent ni à la société, qui peut employer
plusieurs personnes, ni aux personnes, qui peuvent avoir plusieurs
emplois.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 74
Conception Orientée Objet
Diagramme de Classes : Héritage
Relation de Spécialisation/Généralisation
Generalization
Relation d'héritage, dans laquelle les objets de l'élément
spécialisé (classe enfant) peuvent remplacer les objets de
l'élément général (classe parent).
Exemple : Un client professionnel est
une sorte de client.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 75
Conception Orientée Objet
Diagramme de Classes : Héritage multiple
Une classe peut avoir plusieurs classes parents. On parle alors
d’héritage multiple.
Le langage C++ est un des langages objet permettant son implantation
effective.
Java ne le permet pas et on doit employer des interfaces.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 76
Conception Orientée Objet
Diagramme de Classes : Relation de Réalisation
Realization
Relation dans laquelle une interface définit un contrat garanti par une classe
d'implémentation.
Ecouteur d’évènements :
Attendre qu'un évènement survienne est appelé « écouter un évènement ».
On écoute toujours sur un objet désigné comme étant la cible de
l'évènement. On dit également que cet objet déclenchera l'évènement
lorsque celui-ci surviendra.
Exemple : Le formulaire Saisir Client est un écouteur d'évènements.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 77
Conception Orientée Objet
Diagramme de Classes : Relation de Réalisation (suite)
Notation UML : Un trait discontinu partant de la classe d'implémentation et
allant vers l'interface, se terminant par une pointe de flèche fermée, la même
utilisée par la spécialisation/généralisation.
Notation simplifiée : Une interface peut être représentée par un petit cercle
avec le nom de l'interface placé juste en dessous. Le cercle peut être attaché à
une ou plusieurs classes d'implémentation.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 78
Conception Orientée Objet
Diagramme de Classes : Relation de Dépendance
Dependency
Relation entre éléments du modèle ne nécessitant pas forcément un lien entre
objets. Lorsque cette relation est réalisée par des liens entre objets, ces
derniers sont limités dans le temps, contrairement à d'autres relations plus
structurelles (cas d'une association - voir au-dessus).
Un élément A dépend d'un élément B, lorsque A utilise des services de B.
De ce fait, tout changement dans B peut avoir des répercussions sur A.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 79
Conception Orientée Objet
Diagramme de Classes : Relation de Dépendance (suite)
Exemple : Un contrat dispose d'un service d'impression (méthode impression),
qui utilise une méthode (print), dont la spécification est déclarée par l'interface
Printer.
Notation UML : Un trait discontinu partant de la classe dépendante et pointant
vers la classe proposant les services sollicités, se terminant par une pointe de
flèche ouverte (c'est ce qui la distingue de la relation de réalisation).
Support de cours Conception Orientée Objet – Copyright Nat System 2016 80
Conception Orientée Objet
Diagramme de Classes : Classe Générique (template)
Classe paramétrée par d’autres classes
(factorisation de code)
Support de cours Conception Orientée Objet – Copyright Nat System 2016 81
© Copyright Nat System 2016 81
Conception Orientée Objet
Diagramme de Classes : Classes abstraites
Classe qui ne peut être instanciée
Contient des opérations non définies :
abstract (Java) ou virtual (C++, NatStar)
Doit être spécialisée en une ou plusieurs classes non abstraites
Notation : mot clé {abstract} ou nom en italique
Spécifier un comportement commun à plusieurs classes
Manipuler des instances de classes différentes de façon uniforme
=> Polymorphisme
Support de cours Conception Orientée Objet – Copyright Nat System 2016 82
Conception Orientée Objet
Diagramme de Classes : Classes Abstraites et Polymorphie
Le nom de la classe abstraite est en italique
Support de cours Conception Orientée Objet – Copyright Nat System 2016 83
© Copyright Nat System 2016 83
Conception Orientée Objet
Classes Abstraites et Polymorphie
public abstract class Animal {
public Integer date_naissance;
public void Animal() {...}
public abstract void pousseCri();
public Integer getAge() {...}
}
public class Ferme {
public Integer nbAnimaux;
private Animal animaux;
public void Ferme() { .... }
public void ajouteAnimal(Object Animal) {...}
public void ecouteAnimaux() {...}
public void Main(Object String) {
...
}
}
public class Poussin extends Animal {
public void Poussin() {...}
public void pousseCri() {...}
}
Support de cours Conception Orientée Objet – Copyright Nat System 2016 84
© Copyright Nat System 2016 84
Conception Orientée Objet
icisuite
Support de cours Conception Orientée Objet – Copyright Nat System 2016 85
Conception Orientée Objet
Diagramme de Classes : Les Associations
Agrégation
Le tout est composé de parties.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 86
© Copyright Nat System 2016 86
Conception Orientée Objet
Diagramme de Classes : Les Associations
Composition
Une composition est une agrégation « forte » ou « composite »
La destruction de l’objet composite implique celle de ses
composants.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 87
© Copyright Nat System 2016 87
Conception Orientée Objet
Diagramme de Classes : Les Associations
Agrégation / Composition
Les notions d’agrégation et de composition posent de nombreux
problèmes en modélisation.
C’est un sujet de querelles d’experts !
Support de cours Conception Orientée Objet – Copyright Nat System 2016 88
© Copyright Nat System 2016 88
Conception Orientée Objet
Diagramme de Classes : Interface
Structure de code dont la finalité première est d’extraire d’une
classe l’ensemble des signatures de ses services afin d’en informer
toutes celles qui voudraient y faire appel
Classe abstraite (abstract)
Ne peut-être instanciée.
Raison d’être des interfaces
Forcer la redéfinition
Permettre le multi-héritage
La carte de visite de l’objet
Support de cours Conception Orientée Objet – Copyright Nat System 2016 89
© Copyright Nat System 2016 89
Conception Orientée Objet
Diagramme de Classes : Interface (suite)
Une interface ne spécifie souvent qu’une partie limitée du
comportement de la classe.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 90
© Copyright Nat System 2016 90
Conception Orientée Objet
Diagramme de Classes : Les Notes
Une note est une petite boîte de texte incluse dans un diagramme
UML.
Une note est l’équivalent d’un commentaire dans un programme.
Il est possible d’annoter n’importe quel élément et d’y associer
une contrainte (ex : age >= 18)
Support de cours Conception Orientée Objet – Copyright Nat System 2016 91
Conception Orientée Objet
Diagramme de Classes : Les Contraintes
Relation sémantique quelconque entre éléments de modélisation
Exprimé en OCL (Object Contraint Language) ou en langage
naturel.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 92
Conception Orientée Objet
Diagramme de Classes : Object Contraint Language
Développé par IBM.
Pas d’effets de bord, langage de spécification
Spécification formelle de la sémantique statique
Méta-modèle (invariant d’une instance de méta-classe)
Modèle (règles sur les attributs et les relations)
Utilisable par tout le monde, pas seulement par des
mathématiciens
Support de cours Conception Orientée Objet – Copyright Nat System 2016 93
Conception Orientée Objet
Diagramme de Classes : Object Contraint Language (suite)
Types de base
Boolean, Integer, String, Set, Sequence
Opérations
and, or, not, implies
+, -, >, =, ...
Exemple
[Link] (r1, r2 | [Link] = [Link] implies r1 = r2)
Support de cours Conception Orientée Objet – Copyright Nat System 2016 94
Conception Orientée Objet
Diagramme de Classes : OCL exemple
Support de cours Conception Orientée Objet – Copyright Nat System 2016 95
Conception Orientée Objet
OCL exemple (suite)
Note avec contrainte
Support de cours Conception Orientée Objet – Copyright Nat System 2016 96
Conception Orientée Objet
OCL exemple (suite)
Exemple d’étiquettes
Support de cours Conception Orientée Objet – Copyright Nat System 2016 97
Conception Orientée Objet
Diagramme de Classes : Les Etiquettes
Une étiquette ou valeur marquée ("tagged value") est utilisée
pour ajouter des informations sur les classes.
Exemple : JavaName : le nom
Java de la classe est différent
du nom UML de la classe
Support de cours Conception Orientée Objet – Copyright Nat System 2016 98
Conception Orientée Objet
Diagramme de Classes : Les Etiquettes (suite)
Une étiquette ou valeur marquée (tagged value) permet la
création de nouvelles informations dans la spécification d'un
élément
Par exemple, "version" et "auteur" ne font pas partie des
concepts UML de base et peuvent être ajoutés à n'importe quelle
brique de base, comme une classe, par l’introduction de
nouvelles étiquettes à cette brique
Une étiquette est une paire (nom, valeur) qui ajoute une nouvelle
propriété à un élément de modélisation.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 99
Conception Orientée Objet
Diagramme de Classes : Objets distribués
Objets distribués sur un réseau (internet) avec échange de
messages. (exemple : projet seti@home)
Remote Method Invocation
RMIC
CORBA « Common Object Request Broker Architecture »
IDL
WSDL : service web
SOAP : « Simple Object Access Protocol »
protocole d’écriture de messages XML
Support de cours Conception Orientée Objet – Copyright Nat System 2016 100
Conception Orientée Objet
Persistance des objets
Sauvegarde de l’état entre deux exécutions
Ecriture/Lecture des valeurs d’attributs à sauvegarder sur un
fichier
Utilisation de « stream » (flux)
La sérialisation des objets
Les liens entre objets ne sont pas sauvegardés
Le fichier est illisible
Interaction avec une bases de données relationnelle
SQL
Utilisation d’une base de données « orientée objet »
SQL3 (SQL « relouké » objet)
Base de données orientée objet : OQL, Linq (Langage-INtegrated Query)
Support de cours Conception Orientée Objet – Copyright Nat System 2016 101
Conception Orientée Objet
Programmation Evènementielle => diagramme de séquence
Une manière plus implicite de programmation, n’utilisant pas les
envois de messages, mais exigeant que les objets s’observent
plutôt qu’ils ne se parlent.
Une chose qui se produit dans un objet sera considéré comme un
événement pour un ensemble d’autres, qui devront alors agir en
conséquence.
Exemple du feu rouge et des voitures :
Les conducteurs font rugir leur moteur en attendant de pouvoir
démarrer en trombe dès que le feu vert s’affichera. les voitures
devant être informées s’inscrivent comme « observateurs » du
feu.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 102
Conception Orientée Objet
Diagramme de Séquence – Sequence Diagram
Représentation graphique d’un scénario
Support de cours Conception Orientée Objet – Copyright Nat System 2016 103
Conception Orientée Objet
Diagramme de Séquence (suite)
Permet de visualiser le programme lors de son exécution
Ce diagramme représente chaque objet par une ligne verticale,
et chaque évènement par une flèche horizontale reliant l'objet
émetteur à l'objet récepteur.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 104
Conception Orientée Objet
Diagramme de Séquence (suite)
Le temps s'écoule du haut vers le bas sur la figure, mais la largeur
des espaces horizontaux entre deux flèches n’est pas significative;
seules les séquences d'évènements sont représentées, non le
temps qui les sépare.
Les diagrammes de séquences sont définis dans le cas
d'utilisation auquel ils se rapportent.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 105
Conception Orientée Objet
Diagramme de Séquence : Ligne de vie
Une ligne de vie est une instance, donc il y a nécessairement les
deux points (:) dans son libellé.
Dans le cas d’une collection de participants, un sélecteur permet
de choisir un objet parmi n (par exemple objets[2]).
Une ligne verticale.
nomLigneDeVie {[selecteur]}: NomClasseOuActeur
Support de cours Conception Orientée Objet – Copyright Nat System 2016 106
Conception Orientée Objet
Diagramme de Séquence : Ligne de vie (suite)
Une ligne de vie est un acteur.
Drag&drop
Support de cours Conception Orientée Objet – Copyright Nat System 2016 107
Conception Orientée Objet
Diagramme de Séquence : Messages
Les principales informations contenues dans un diagramme de
séquence sont les messages échangés entre les lignes de vie :
Ils sont représentés par des flèches
Ils sont présentés du haut vers le bas le long des lignes de vie, dans un
ordre chronologique
Un message définit une communication particulière entre des
lignes de vie.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 108
Conception Orientée Objet
Diagramme de Séquence : Messages (suite)
Plusieurs types de messages existent, dont les plus courants :
ActionKind
l’envoi d’un signal ;
l’invocation d’une opération
(appel de méthode) ;
la création ou la destruction d’un objet.
La réception des messages provoque une période d’activité
(rectangle vertical sur la ligne de vie) marquant le traitement du
message (spécification d’exécution dans le cas d’un appel de
méthode).
Support de cours Conception Orientée Objet – Copyright Nat System 2016 109
Conception Orientée Objet
Diagramme de Séquence : Messages synchrones & asynchrones
Un message synchrone bloque l’expéditeur jusqu’à la réponse du
destinataire. Le flot de contrôle passe de l’émetteur au récepteur.
Représente un appel de méthode.
Si un objet A envoie un message synchrone à
un objet B, A reste bloqué tant que B n’a pas terminé.
On peut associer aux messages d’appel de méthode un message de retour
(en pointillés) marquant la reprise du contrôle par l’objet émetteur du
message synchrone.
Un message asynchrone n’est pas
bloquant pour l’expéditeur. Le message
envoyé peut être pris en compte par le
récepteur à tout moment ou ignoré.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 110
Conception Orientée Objet
Diagramme de Classe : Messages Synchrones
Les messages synchrones
correspondent le plus souvent à une
opération :
A l’invocation, le flux contrôle passe de
l’émetteur au récepteur
L’émetteur attend la fin de l’exécution,
et reprend après le retour
Les méthodes correspondant aux messages synchrones doivent
être définies dans un diagramme de classes.
Les méthodes sont définies dans la classe du récepteur, et pas
de l’émetteur du message.
La flèche dans le diagramme de classes correspond à une association unidirectionnelle, et pas à un
message : la notion de message n’a aucun sens dans le contexte d’un diagramme de classes.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 111
Conception Orientée Objet
Diagramme de Classe : Messages Asynchrones
Les messages asynchrones correspondent à des signaux dans le
diagramme de classes.
Les signaux sont des objets dont la classe est stéréotypée
<< signal >> et dont les attributs (porteurs d’information)
correspondent aux paramètres du message.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 112
Conception Orientée Objet
Diagramme de Séquence : Syntaxe des Messages
La syntaxe des messages est :
nomSignalOuOperation (LISTE_PARAMS)
avec LISTE_PARAMS une liste de paramètres séparés par des
virgules. Dans la liste des paramètres, on peut utiliser les
notations suivantes :
pour donner une valeur à un paramètre spécifique :
nomParametre = valeurParametre
pour préciser que l’argument est modifiable :
nomParametre : valeurParametre
Exemples :
appeler(“Capitaine Hadock”, 54214110)
afficher(x,y)
initialiser(x=100)
f(x:12)
Support de cours Conception Orientée Objet – Copyright Nat System 2016 113
113
Conception Orientée Objet
Diagramme de Séquence : Message de Retour
Le récepteur d’un message synchrone rend la main à l’émetteur
du message en lui envoyant un message de retour.
Les messages de retour sont optionnels : la fin de la période
d’activité marque également la fin de l’exécution d’une méthode.
Ils sont utilisés pour spécifier le résultat de la méthode invoquée.
Leur syntaxe est :
attributCible = nomMessageSynchroneInitial(LISTE_PARAMS) : valeurRetour
Les messages de retour sont représentés en pointillés.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 114
© Copyright Nat System 2016 114
Conception Orientée Objet
Diagramme de Séquence : Messages trouvés
Les diagrammes de séquences peuvent être employés pour
décrire les traitements d’un système résultant de l’envoi d’un
message, indépendamment de l’émetteur. Dans ce cas, l’émetteur
importe peu et on ne le spécifie pas.
Les messages trouvés peuvent être synchrones ou asynchrones.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 115
Conception Orientée Objet
Diagramme de Séquence : Messages perdus
On connaît l’émetteur mais pas le récepteur, à l’inverse des
messages trouvés.
On utilise souvent des messages de retour perdus pour spécifier
le résultat d’un message synchrone trouvé.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 116
Conception Orientée Objet
Diagramme de Séquence : Création et Destruction d’objets
Création : message asynchrone stéréotypé << create >> pointant
vers le rectangle en tête de la ligne de vie.
Destruction : message asynchrone stéréotype << destroy >>
précédant une croix sur la ligne de vie.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 117
Conception Orientée Objet
Diagramme de Séquence : Fragment combiné
Un fragment combiné permet de décomposer une interaction
complexe en fragments suffisamment simples pour être compris :
Recombiner les fragments restitue la complexité.
Syntaxe complète avec UML 2 : représentation complète de
processus avec un langage simple (ex : processus parallèles).
Support de cours Conception Orientée Objet – Copyright Nat System 2016 118
Conception Orientée Objet
Diagramme de Séquence : Fragment combiné
Un fragment combiné se représente de la même façon qu’une
interaction.
Il est représenté un rectangle dont le coin supérieur gauche
contient un pentagone.
Dans le pentagone figure le type de la combinaison
(appelé opérateur d’interaction).
Support de cours Conception Orientée Objet – Copyright Nat System 2016 119
Conception Orientée Objet
Diagramme de Séquence : Fragment alt : opérateur conditionnel
Les différentes alternatives sont spécifiées dans des zones
délimitées par des pointillés.
Les conditions sont spécifiées entre crochets dans chaque zone.
On peut utiliser une clause [else]
Support de cours Conception Orientée Objet – Copyright Nat System 2016 120
Conception Orientée Objet
Diagramme de Séquence : Fragment loop: opérateur d’itération
Le fragment loop permet de
répéter ce qui se trouve en
son sein.
On peut spécifier entre
crochets à quelle condition
continuer.
Conditions
Support de cours Conception Orientée Objet – Copyright Nat System 2016 121
Conception Orientée Objet
Diagramme de Séquence : Fragment : remarques
Les fragments peuvent s’imbriquer les uns dans les autres
On peut émettre des messages réflexifs et dans ce cas, on définit
une activité “dans” l’activité
Lorsqu’on décrit une opération dans le détail, il est permis (mais
pas recommandé) de placer des commandes sur les flèches au
lieu de messages correspondant à des opérations ou des signaux
Tous les éléments d’un diagramme doivent être définis.
Typiquement, les attributs doivent correspondre :
soit à des attributs définis dans un diagramme de classes au niveau de la
ligne de vie contrôlant le flux d’exécution
soit à des attributs définis localement au diagramme de séquence (ici, i)
Support de cours Conception Orientée Objet – Copyright Nat System 2016 122
Conception Orientée Objet
Diagramme de Séquence : Opérateurs de flux de contrôle
opt (facultatif*) : Contient une séquence qui peut ou non se
produire. Dans la protection, vous pouvez spécifier la condition
sous laquelle elle se produit.
alt : Contient une liste des fragments dans lesquels se trouvent
d’autres séquences de messages. Une seule séquence peut se
produire à la fois.
loop : Le fragment est répété un certain nombre de fois. Dans la
protection, on indique la condition sous laquelle il doit être
répété.
break : Si ce fragment est exécuté, le reste de la séquence est
abandonné. Vous pouvez utiliser la protection pour indiquer la
condition dans laquelle la rupture se produira.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 123
Conception Orientée Objet
Diagramme de Séquence : Opérateurs de flux de contrôle (suite)
par (parallel) : Les évènements des fragments peuvent être
entrelacés.
critical : Utilisé dans un fragment par ou seq. Indique que les
messages de fragment ne doivent pas être entrelacés avec
d’autres messages.
seq : Il existe au moins deux fragments d’opérateur. Les messages
impliquant la même ligne de vie doivent se produire dans l’ordre
des fragments. Lorsqu’ils n’impliquent pas les mêmes lignes de
vie, les messages des différents fragments peuvent être
entrelacés en parallèle.
strict : Il existe au moins deux fragments d’opérateur. Les
fragments doivent se produire dans l’ordre donné.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 124
Conception Orientée Objet
Diagramme de Séquence : Opérateurs d’interprétation de la séquence
consider : Spécifie une liste des messages que ce fragment décrit.
D’autres messages peuvent se produire dans le système en cours
d’exécution, mais ils ne sont pas significatifs quant aux objectifs de
cette description.
ignore : Liste des messages que ce fragment ne décrit pas. Ils
peuvent se produire dans le système en cours d’exécution, mais ils
ne sont pas significatifs quant aux objectifs de cette description.
assert : Le fragment d’opérateur spécifie les seules séquences
valides. Généralement utilisé dans un fragment Consider ou Ignore.
neg : La séquence affichée dans ce fragment ne doit pas se produire.
Généralement utilisé dans un fragment Consider ou Ignore.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 125
Conception Orientée Objet
Diagramme de Séquence
Exemple du démineur – clic sur une case
• Il y a une mine
• Case numéroté
• Case vierge
Support de cours Conception Orientée Objet – Copyright Nat System 2016 126
Conception Orientée Objet
Diagramme de Séquence : Réutilisation des séquences
Un fragment ref permet d’indiquer la réutilisation d’un
diagramme de séquences défini par ailleurs.
En supposant qu’il existe un diagramme intitulé Authentification
et un autre Paiement, on peut établir le diagramme suivant :
Support de cours Conception Orientée Objet – Copyright Nat System 2016 127
Conception Orientée Objet
Utilisation des diagrammes de séquence
Les diagrammes de séquences sont principalement utilisés pour :
Documenter des cas d’utilisation. Dans ce cas, un acteur est toujours
présent.
Définir des opérations. Dans ce cas, on initie souvent le diagramme par un
message trouvé et on est particulièrement rigoureux dans la définition des
éléments du modèle.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 128
Conception Orientée Objet
Diagramme d’Activité Activity diagram
Support de cours Conception Orientée Objet – Copyright Nat System 2016 129
Conception Orientée Objet
Diagramme d’Activité Activity diagram
Met l’accent sur les traitements.
Modélise le cheminement de flots de contrôle et de flots de données.
Décrit :
Une méthode
Ou
Un cas d’utilisation
Action : c’est le plus petit traitement qui puisse être exprimé en UML.
Activité : comportement décrit dans un séquencement organisé d’unités dont
les éléments simples sont des actions.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 130
Conception Orientée Objet
Diagramme d’Activité (suite)
Support de cours Conception Orientée Objet – Copyright Nat System 2016 131
Conception Orientée Objet
Diagramme d’Activité (suite)
Nœud d’activité activity node
Nœuds de contrôle
Transition passage d’une activité à une autre
Support de cours Conception Orientée Objet – Copyright Nat System 2016 132
Conception Orientée Objet
Diagramme d’Activité (suite)
Nœuds d’action et nœuds de contrôle
Support de cours Conception Orientée Objet – Copyright Nat System 2016 133
Conception Orientée Objet
Diagramme d’Activité (suite)
Nœuds d’action de communication
Support de cours Conception Orientée Objet – Copyright Nat System 2016 134
Conception Orientée Objet
Diagramme d’Activité (suite)
Annotation
Support de cours Conception Orientée Objet – Copyright Nat System 2016 135
Conception Orientée Objet
Diagramme d’Activité (suite)
Partitions - Swinlane
Support de cours Conception Orientée Objet – Copyright Nat System 2016 136
Conception Orientée Objet
Diagramme d’Activité (suite)
Nœud de fin de flow - Flow final
Lorsqu’un flot d’exécution atteint un nœud de fin de flot, le flot en question est
terminé, mais cette fin de flot n’a aucune incidence sur les autres flots actifs de
l’activité enveloppante.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 137
Conception Orientée Objet
Support de cours Conception Orientée Objet – Copyright Nat System 2016 138
Conception Orientée Objet
Exercice : Système d'orientation des élèves
d'un établissement d'enseignement supérieur
Proposer à l’élève des cours pour :
Exercer un métier : analyste programmeur, consultant…
Acquérir un diplôme : master, licence, …
Se perfectionner dans un domaine : base de donnée, web, …
Ce système est mis à jour par la Direction des études de
l’établissement.
Un métier est identifié par son nom, est relatif à un domaine et
son exercice suppose un ou plusieurs diplômes.
Un diplôme est identifié par son code, son nom, son domaine et
une liste de mots clés.
Un domaine a un nom et est lié à un autre domaine.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 139
Conception Orientée Objet
Un cours, appelé une unité de valeur dans la suite, est décrit par
un code, un intitulé, un domaine et une liste mots clés.
Le système demande :
L’inscription de l’élève avec nom, prénom – reçoit un numéro unique
Le but de l’inscription (métier, diplôme, domaine). Proposer des listes de
choix pour ces 3 cas.
Cursus de l’élève : diplôme et unités de valeur déjà obtenus (listes
proposés par le système)
Le système répond soit
par les codes et intitulés d’une ou trois unités de valeurs à suivre,
soit
par son impossibilité à répondre.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 140
Conception Orientée Objet
Questions
Diagramme des cas d’utilisation
Modèle de classe du système
Classes
Attributs
Associations candidats
Diagramme de séquences des deux scénarii suivants :
Un élève déclare son cursus qui ne comprend qu’un diplôme
Un élève ayant déclaré son cursus et le domaine dans lequel il souhaite se
perfectionner. Le système répond en proposant une seule unité de valeur.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 141
Conception Orientée Objet
Acteurs et Cas d’Utilisation
Support de cours Conception Orientée Objet – Copyright Nat System 2016 142
Conception Orientée Objet
Interfaces - Package
Support de cours Conception Orientée Objet – Copyright Nat System 2016 143
Conception Orientée Objet
Diagramme de Classe
Un métier est relatif à un domaine
Un métier son exercice suppose un ou plusieurs diplômes
Un domaine est lié à d'autres domaines
Le candidat (a) le but … (d')obtenir la compétence pour exercer un métier
Le candidat (a) le but … (d')acquérir un diplôme
Le candidat (a) le but … (de) se perfectionner dans un domaine
Support de cours Conception Orientée Objet – Copyright Nat System 2016 144
Conception Orientée Objet
Diagramme de Séquence
Un élève déclare son cursus qui ne comprend qu’un diplôme.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 145
Conception Orientée Objet
Diagramme de Séquence
Un élève ayant déclaré son cursus et le domaine dans lequel il souhaite se
perfectionner. Le système répond en proposant une seule unité de valeur.
Support de cours Conception Orientée Objet – Copyright Nat System 2016 146
Conception Orientée Objet
Support de cours Conception Orientée Objet – Copyright Nat System 2016 147
Conception Orientée Objet
Une Démarche de Réalisation d’un projet informatique
1. La Modélisation métier
2. La Capture initiale des besoins
3. L’Analyse
4. La Conception
Support de cours Conception Orientée Objet – Copyright Nat System 2016 148
Conception Orientée Objet
1. La Modélisation Métier
L’analyste s’intéresse aux grands processus métier de
l’entreprise.
Il fait :
Soit un diagramme d’activité
Soit un diagramme de cas d’utilisation
« niveau entreprise »
Support de cours Conception Orientée Objet – Copyright Nat System 2016 149
Conception Orientée Objet
2. La Capture Initiale des Besoins
L’analyste s’intéresse aux services et processus à automatiser
Diagramme de cas d’utilisation
Niveau utilisateur
Fiche descriptive de
chaque cas
Déduction
Interface Homme/Machine Diagramme de classes métiers
Support de cours Conception Orientée Objet – Copyright Nat System 2016 150
Conception Orientée Objet
3. L’Analyse
L’analyste s’intéresse à la solution et sa mise œuvre
A partir de chaque cas initial de la capture des besoins, faire :
Cas d’utilisation – niveau sous-fonction
Fiche descriptive pour chaque
sous-fonction
Support de cours Conception Orientée Objet – Copyright Nat System 2016 151
© Copyright Nat System 2016 151
Conception Orientée Objet
3. L’Analyse (suite)
L’analyste s’intéresse aux processus à automatiser
Pour chaque fonctionnalité décrite à partir de l’IHM
Diagramme de séquence de la sous-fonction
Diagramme de classes d’analyse
de la sous-fonctionnalité
Support de cours Conception Orientée Objet – Copyright Nat System 2016 152
© Copyright Nat System 2016 152
Conception Orientée Objet
[Link] Conception
L’analyste adapte la solution dans la technologie choisie
Adaptation à la technologie choisie
Adaptation au langage choisi
Etc.
+
Diagramme de classes d’analyse + techno
=> Diagramme de classes de conception
Support de cours Conception Orientée Objet – Copyright Nat System 2016 153
© Copyright Nat System 2016 153
Conception Orientée Objet
Fin
Il ne reste plus qu’à coder l’application
Support de cours Conception Orientée Objet – Copyright Nat System 2016 154
© Copyright Nat System 2016 154