0% ont trouvé ce document utile (0 vote)
589 vues154 pages

Conception Oriente Objet

Transféré par

doha.bouallal
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
589 vues154 pages

Conception Oriente Objet

Transféré par

doha.bouallal
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

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

Vous aimerez peut-être aussi