Vous êtes sur la page 1sur 43

ANALYSE ET CONCEPTION ORIENTÉES

OBJET

Abdelfettah IDRI

ENCG Casablanca
PLAN
 Introduction

 L’approche Orientée Objet (OO)

 Méthodologie de développement Orienté Objet

 Analyse Orientée Objet avec UML

 Conception Orientée Objet avec UML

 Aspects d’implémentation Orienté Objet


INTRODUCTION /ORIENTÉ OBJET
 Qualité du logiciel en termes de:
 Représentation des entités métiers
 Réutilisation des composantes
 Évolutivités des composantes
 Adaptation rapide aux changements
 Scalabilité du modèle
 Réduction du coût de développement sans impacter la
qualité du logiciel

3
INTRODUCTION /ORIENTÉ OBJET
 Besoin d’un modèle qualitatif
 Un modèle simple et compréhensible

 Un modèle robuste jouant le rôle d’interface avec


les différentes disciplines d’un projet
 Un module évolutif et facilement maintenable

4
INTRODUCTION /PARADIGMES DE
PROGRAMMATION

 High level / Low level


 Approches de programmation

 Procédurale (impérative)
 Fonctionnelle
 Logique
 Orientée Objet

5
INTRODUCTION /PARADIGMES DE
PROGRAMMATION

 Low level (lié à la machine)


 Langage machine
 Assembleur

 High level (indépendant de la machine:


abstraction)
 Pascal, C/C++, Java, SmalTalk, Miranda, Scheme,
VB,..

6
INTRODUCTION /PARADIGMES DE
PROGRAMMATION

 Programmation procédurale
 Impérative: procédures, fonctions, module
 Pascal, Modula II, C, …

 Programmation fonctionnelle
 En termes de fonctions
 Lisp, Miranda, Scheme,…

7
INTRODUCTION /PARADIGMES DE
PROGRAMMATION

 Programmation logique
 faits, règles, moteur d’inférence
 Prolog, Perl

 Programmation Orientée Objet (POO)


 Classe, Objet
 C++, Java, C#, ..

8
INTRODUCTION /PARADIGMES DE
PROGRAMMATION

 Programmation structurée

 Orientée comportement
 Séquentiel (séquence de tâches)
 Difficile pour les programmes volumineux
 Maintenance et réutilisation difficiles (orientée
comportement)

9
INTRODUCTION /PARADIGMES DE
PROGRAMMATION

10
L’APPROCHE ORIENTÉE OBJET
/VISION OO - ANALYSE STRUCTURÉE
 Analyse structurée (AS):
 Orientée fonctionnalité et comportement du
système
 Fonction globale est décomposée en plusieurs
sous-fonctions simples => complexe pour les
systèmes volumineux
 Caractère Top/Down

 Système spécifique orienté solution =>


difficilement réutilisable
 Contrôle du processus généralement séquentiel
=> maintenance difficile 11
INTRODUCTION /PARADIGMES DE
PROGRAMMATION

 Programmation OO

 Intuitive
 Orientée entité (réalité)
 Nouveaux concepts robustes
 Facilement maintenable, réutilisable et extensible
 Adoptée pour les grands projets

12
INTRODUCTION /PARADIGMES DE
PROGRAMMATION

13
INTRODUCTION /CONCEPT OBJET
 Objet (univers réel):
 Une entité qui possède sa propre identité
 Exemple: personne, voiture, oiseau, maison, compte
bancaire,…
 Comportement
 Exemple: Personne peut marcher, un oiseau peut voler,
 Etat défini par ses attributs
 Exemple: couleur, nom, marque,…

14
INTRODUCTION /CONCEPT OBJET
 Objet (logiciel) : abstraction d’un objet du monde réel
 Identité
 Attributs : caractérisent l’état de l’objet
 Opérations : comportement qui collabore avec les autres
objets du système
 Lors d’une modélisation, on néglige les détails inutiles
relativement au système à développer

Objet Objet
Modélisation logiciel
réel

15
INTRODUCTION /MODÉLISATION OBJET
 Modélisation par objet:
 Permet de se concentrer sur l’objet en question en
ignorant le reste du système => simplicité
 Une modification d’un objet dans un système existant
n’impacte que cet objet et éventuellement ceux
l’utilisant => localisation facile
 l’objet est autonome ayant la capacité d’interagir avec
les autres objets
 l’objet maintient son propre état (responsable)

16
L’APPROCHE ORIENTÉE OBJET
/AVANTAGES
 Approche OO:
 considère le système à modéliser comme étant un
ensemble d’objets interconnectés qui interagissent
entre eux à l’aide de message
 Favorise la communication entre les membres de
l’équipe de développement (métier et technique)
 Objets (entités) génériques réutilisables et extensibles
 Les caractéristiques OO (héritage,..) permettent le
développement de systèmes complexes et volumineux
 Factorisation du comportement en éliminant les
redondances
 Couplage faible entre les objets 17
L’APPROCHE ORIENTÉE OBJET
/CONCEPTS

 Objets
 Classe

 Abstraction

 Encapsulation

 Héritage

 Polymorphisme

 Messages

18
L’APPROCHE ORIENTÉE OBJET
/CLASSE
 Une classe est une abstraction désignant un
ensemble d’objet ayant le même type
 Un objet est donc une instance d’une classe
possédant
 des attributs : état de l’objet (instances des attributs
de la classe)
 des méthodes : comportement de l’objet (durant
l’exécution: scénario réel)

19
L’APPROCHE ORIENTÉE OBJET
/ CLASSE/OBJET
 Identité (instanciation): l’objet possède une
identité indépendamment de son état
 Attributs : variable stockant une information
sur l’objet
 Opérations (méthodes): les actions que l’objet
peut réaliser pour interagir avec son
environnement (autres objets)

20
L’APPROCHE ORIENTÉE OBJET
/COMMUNICATION

Message A
Objet A Objet B
Message B

21
L’APPROCHE ORIENTÉE OBJET
/ENCAPSULATION
 Niveaux de visibilité

 Publique
 Protégé
 Privé

22
L’APPROCHE ORIENTÉE OBJET
/GÉNÉRALISATION - SPÉCIALISATION

23
L’APPROCHE ORIENTÉE OBJET
/HÉRITAGE
 Création d’une classe à partir d’une classe
existante
 La classe dérivée possède les mêmes attributs et
méthodes de la classe parent (super class)
 Possibilité d’étendre la classe dérivée par des
attributs et des méthodes spécifiques
 Possibilité de redéfinir les méthodes de la classe
parent

24
L’APPROCHE ORIENTÉE OBJET
/POLYMORPHISME
 « Plusieurs formes »
 Possibilité de définir des méthodes appartenant à
différents objets (opérations) portant le même
nom avec un comportement différent
 Choix de la méthode dynamique en fonction du
contexte
 Somme(), calculer_Surface()

 int somme(int, int) / float somme(float, float)

25
L’APPROCHE ORIENTÉE OBJET
/HÉRITAGE
Véhicule

Véhicule Véhicule
aérien Bateau
roulant

Voiture Camion Avion Hélicoptère Navire

Navire Navire
de de pêche 26
guerre
L’APPROCHE ORIENTÉE OBJET
/ DES CONCEPTS OO
• Association « part-of »,
Agrégation groupement d’objets (sans
contrainte d’existence du
• parent)
Agrégation avec la contrainte
Composition d’existence du parent

Généralisatio • Factorisation de
caractéristiques de différents
n objets en un objet plus
générique
Spécialisation • Opposé de la généralisation
• Classe enfant hérite toutes les
héritage caractéristiques du parent (une
27
forme de spécialisation)
L’APPROCHE ORIENTÉE OBJET
/ DES CONCEPTS OO

• Une même opération peut être


redéfinie dans les classes
Polymorphis dérivées et selon le contexte
me l’opération appropriée sera
choisie dynamiquement

28
ANALYSE ORIENTÉE OBJET / OBJECTIFS
 Identifie les besoins fonctionnels du système
 Identifie les contraintes

 Se concentre sur le comportement superficiel du


système à réaliser sans décrire comment le
réaliser (quoi)
 Identifie les objets liés au domaine du problème

 S’intéresse à la construction d’un modèle OO


pour le domaine du problème
 => Modèle objet couvrant les spécifications
fonctionnelles du système à développer
29
ANALYSE ORIENTÉE OBJET / DIAGRAMMES
DE CAS D’UTILISATION « USE CASE »

 Un cas d’utilisation:
 Décrit le système d’un point de vue externe
 Représente un besoin fonctionnel du système
(ensemble d’activités) reflétant son comportement
 Permet l’identification des utilisateurs et leur
dépendance avec le système
 Produit un résultat observable suite à une séquence
d’actions

30
ANALYSE ORIENTÉE OBJET / DIAGRAMMES
DE CAS D’UTILISATION « USE CASE »

 Exemple de cas d’utilisation

commander

réceptionner

payer

31
ANALYSE ORIENTÉ OBJET / DIAGRAMMES DE
CAS D’UTILISATION « USE CASE » / RELATIONS
commander

Commander Commander
matériel logiciel

« extend»
sous-
réceptionner traitance
 Relations:
 Généralisation
 extension
 inclusion
« include »
payer authentification

32
ANALYSE ORIENTÉE OBJET / DIAGRAMMES DE
CAS D’UTILISATION « USE CASE » / ACTEURS
 Acteur :
 Tout utilisateur
qui peut interagir
avec le système système commander
qu’il soit physique
ou logique
 Communique avec réceptionner
le système par
message client

 Relation entre payer


acteurs

33
collaborateur
ANALYSE ORIENTÉE OBJET / DIAGRAMMES
DE CAS D’UTILISATION « USE CASE »

 Diagramme de cas d’utilisation : ensemble de cas


d’utilisation, d’acteurs et des différentes relations
qui les relient
 Composant essentiel pour la modélisation du
système
 Moyen de communication efficace pour les
utilisateurs et les développeurs

34
ANALYSE ORIENTÉE OBJET / DIAGRAMMES
DE CLASSES

 Classe :
 abstraction d’un ensemble d’objets (moule)
 Description et définition de l’ensemble des objets
partageant les mêmes caractéristiques:
 Attributs
 Opérations

 Relations

 Objet : une entité concrète qui existe dans le


monde réel (instance)

35
ANALYSE ORIENTÉ OBJET / DIAGRAMMES
DE CLASSES
Salle
 Classes: Salle
 identité - Longueur
-largeur - Longueur
 Attributs -largeur
+calculerSurface
 opérations +afficherLargeur

Salle

36
ANALYSE ORIENTÉE OBJET / DIAGRAMMES
DE CLASSES

 Quelques principes:
 Aspect statique
 Classe abstraite: n’a pas d’instance directe
 Portée classe : une entité pour toutes les instances
 Portée instance : chaque instance possède sa propre
entité
 Relations :
 Association
 Généralisation/spécialisation (héritage)
 Agrégation
 Dépendance : modification d’une classe impacte
l’autre 37
ANALYSE ORIENTÉ OBJET / ASSOCIATIONS
 Agrégation
 Composition

Un livre est composé de Exemple 2


plusieurs pages
(obligatoire)
Un livre peut posséder une
couverture (optionnel)

Exemple 1
38
ANALYSE ORIENTÉ OBJET / ASSOCIATION
 Multiplicité: indique pour deux classes le nombre
d’instances associés entre elles
A B
*
 A possède 0 ou plusieurs B
A k ..* B
 A possède au moins k B
A k..m B
 A possède entre k et m B

A k B
 A possède exactement k B

A k , m, p B
 A possède k ou m ou p B
39
ANALYSE ORIENTÉ OBJET / ASSOCIATIONS
/ MULTIPLICITÉ
 Représente un lien conceptuel entre deux classes

Un Etudiant travaille dans


au moins 2 groupes
Un Groupe est constitué de
0 ou plusieurs Etudiants

40
ANALYSE ORIENTÉ OBJET / ASSOCIATIONS
 Représente un lien conceptuel entre deux classes

Un Pays possède au moins


Country 1 have 1..* City une ville
Une ville appartient à
name:String name:String exactement un seul pays

Point Un polygone possède 0 ou


have
Polygon
* x: Integer
plusieurs points

draw() y: Integer
41
ANALYSE ORIENTÉE OBJET / DIAGRAMMES
DE CLASSES

 Diagramme de classes:
véhicule personne

1..* 1

Un véhicule est possédé Owned by


par une et une seule
personne
Une personne possède camion voiture
au moins un véhicule

42
ANALYSE ORIENTÉE OBJET / DIAGRAMMES
D’OBJETS

 Diagramme d’objets
 Modélise une instance du diagramme de classes à
un instant donné (snapshot)
 Constitué d’un ensemble d’objets (instances) et
leur relations correspondantes à un instant
donné
 Utile pour l’étude des scénarios

43