Vous êtes sur la page 1sur 76

Cours

Modélisation et
Programmation Orientée
Objet
1ère année SEER

ANSAR DAGHOURI
D É PA RT E M E N T G É N I E É L E C T R I Q U E
ENSET MOHAMMEDIA
A N N É E U N I V E R S I TA I R E : 2 0 1 6 - 2 0 1 7

ANSAR DAGHOURI 1
Matériel et logiciel
Les systèmes informatiques:
• 80% de logiciel;

• 20% de matériel.

Depuis quelques années, la fabrication du matériel est assurée par


quelques fabricants seulement.
• Le matériel est relativement fiable ;

• Le marché est standardisé.


Les problèmes liés à l’informatique sont
essentiellement des problèmes de logiciel.

ANSAR DAGHOURI 2
La crise du logiciel
Étude sur 8380 projets (Standish Group, 1995):
• Succès : 16% ;
• Problématique : 53% (budget ou délais non respectés, défaut de
fonctionnalités) ;
• Échec : 31% (abandonné).

Le taux de succès décroît avec la taille des


projets et la taille des entreprises.

ANSAR DAGHOURI 3
La crise du logiciel
Problématique:

Comment faire des logiciels de qualité ?

Génie Logiciel (Software Engineering)

ANSAR DAGHOURI 4
Démarche et modèles
Démarche : succession d’étapes pour :
• Mieux maîtriser le déroulement d’un projet;
• Meilleure visibilité pour les utilisateurs sur certains résultats intermédiaires
et garantir que le résultat final sera celui attendu.

A chaque étape, on produit des modèles à différentes niveaux


d’abstraction, en utilisant un formalisme :
• Un langage formel ;
• Un langage semi-formel généralement graphique;
• Un langage naturel.

ANSAR DAGHOURI 5
Modélisation
Réalité
(représentations
mentales,connaissances
règlements..)

Modélisation

Implantation

ANSAR DAGHOURI 6
Modèle
Un modèle est une représentation abstraite da la réalité qui exclut
certains détails du monde réel.
• Il permet de réduire la complexité d’un phénomène en éliminant les
détails qui n’influencent pas son comportement de manière significative;

• Il reflète ce que le concepteur croit important pour la compréhension et


la prédiction du phénomène, les limites du phénomène modélisé
dépendent des objectifs du modèle.

ANSAR DAGHOURI 7
Intérêt de la modélisation
Modéliser le processus de développement permet de:
• Bien répartir les tâches et d’automatiser certaines d’entre elles;

• Réduire les coûts et les délais ;

• Assurer un bon niveau de qualité et une maintenance efficace.

Modéliser un système avant sa réalisation permet de:


• Comprendre le fonctionnement du système ;

• Assurer sa cohérence ;

• Pouvoir communiquer au sein de l’équipe de réalisation.

ANSAR DAGHOURI 8
Propriétés attendues
Le choix du modèle a une influence capitale
sur les solutions obtenues

Il faut bien choisir les modèles employés.


• Les modèles doivent pouvoir décrire un système à différentes niveaux
d’abstraction ;
• Les modèles doivent avoir un comportement proche de la réalité ;
• Un seul modèle est souvent insuffisant. Les systèmes de la réalité sont
mieux modélisés par un ensemble de modèles inter-indépendants.

Selon les modèles employés, la démarche de modélisation n’est pas la


même.

ANSAR DAGHOURI 9
Démarches de modélisation

Aujourd'hui, en programmation, il existe deux principaux modèle

(méthode ou approche) de représentation du monde :

le modèle fonctionnel et le modèle objet.

ANSAR DAGHOURI 10
Approche fonctionnelle
Le modèle fonctionnel:

• Dans une approche fonctionnelle, vos programmes sont composés d'une

série de fonctions, qui assurent ensemble certains services. Il s'agit d'une

approche logique, cohérente et intuitive de la programmation.

• Cette approche a aussi ses défauts, comme par exemple une maintenance

complexe en cas d'évolution de votre application

ANSAR DAGHOURI 11
Approche fonctionnelle

• L'application sera alors retouchée dans sa globalité.

• L'approche fonctionnelle n'est pas adaptée au développement

d'applications qui évoluent sans cesse et dont la complexité croit

continuellement.

ANSAR DAGHOURI 12
Approche Objet
Un objet est une abstraction d’un élément du monde réel. Il possède

des informations et se comporte suivant un ensemble d’opérations qui

lui sont applicables.

Objet = identité + état (attributs) + comportement (méthodes)

• L’identité : L’objet possède une identité, qui permet de le distinguer des

autres objets, indépendamment de son état.

ANSAR DAGHOURI 13
Approche Objet
• Les attributs : Il s’agit des données caractérisant l’objet. Ce sont des

variables stockant des informations d’état de l’objet

• Les méthodes : Les méthodes d’un objet caractérisent son comportement,

c’est-à-dire l’ensemble des actions (appelées opérations) que l’objet

réalise.

ANSAR DAGHOURI 14
Approche Objet
 La modélisation objet consiste à créer une représentation informatique

des éléments du monde réel, sans se préoccuper de l’implémentation.

Pour ce faire :

• On identifie les éléments du système et on fait des objets;

• On cherche à faire collaborer ces objets pour qu’ils accomplissent la tâche

voulue.

ANSAR DAGHOURI 15
Approche Objet
Pour une utilisation efficace de l’approche objet, il faut :

• Une démarche d’analyse et de conception objet.

o Ne pas effectuer une analyse fonctionnelle et se contenter d’une

implémentation objet

ANSAR DAGHOURI 16
Approche Objet
• Un langage de modélisation permettant de représenter les concepts

abstraits, de limiter les ambiguïtés et de faciliter l’analyse :

o Définition des différentes modèles permettant de décrire tous les

aspects du système indépendamment des langages de

programmation.

ANSAR DAGHOURI 17
Langages de modélisation
Un langage de modélisation doit définir :

• La sémantique des concepts ;

• Une notation pour la représentation de concepts ;

• Des règles d’utilisation des concepts et de construction.

L’industrie du logiciel dispose de nombreux langages de modélisation

ANSAR DAGHOURI 18
L’unification
Les méthodes:

• La guerre des méthodes ne fait plus avancer la technologie des objets

• Recherche d’un langage commun et unique:

o Utilisable par toutes les méthodes

o Adapté à toutes les phases du développement

o Compatible avec toutes les techniques de réalisation

ANSAR DAGHOURI 19
Vers un langage de
modélisation universel

ANSAR DAGHOURI 20
Unified Modeling Language
UML= Unified Modeling Language
• Langage unifié pour la modélisation objet

• Langage de modélisation des applications construites à l’aide d’objets,


indépendant de la méthode utilisée

Différence entre Langage et Méthode:


• Langage de modélisation = notations, grammaire et sémantique

• Méthode: comment utiliser le langage de modélisation (recueil des


besoins, analyse, conception, mise en œuvre, validation…)

ANSAR DAGHOURI 21
Unified Modeling Language
Langage= Syntaxe + Sémantique

Syntaxe:

• Règles selon lesquelles les éléments du langage (ex. les mots) sont

assemblés en des expressions (ex. phrases, clauses).

Sémantique:

• Règles permettant d’attribuer une signification aux expressions syntaxiques

ANSAR DAGHOURI 22
Unified Modeling Language
Objectifs:

• Représenter des systèmes entiers

• Choisir la granularité de la description

• Établir un couplage explicite entre concepts et artefacts exécutables

• Programmation sans programmer :

o Créer un langage de modélisation utilisable à la fois par les humains et

les machines

ANSAR DAGHOURI 23
Unified Modeling Language
Caractéristiques du langage de modélisation UML:
• Générique et Expressif

• Syntaxe et sémantique définis

• Flexible (configurable, extensible)


o Définition du Méta modèle

o Norme non figée

o On peut adapter le langage à des domaines particuliers sans ajouter de nouveaux


types de diagrammes

o Introduction d’une nouvelle notion en la définissant comme particularisme d’une


notion existante

ANSAR DAGHOURI 24
Unified Modeling Language
Portée:
• Formalisme unique pour tout type d’application
o gestion, scientifique, temps réel, industrielle, multimédia…

• Reste au niveau d’un langage


o ne propose pas un processus de développement

o ni ordonnancement des tâches,

o ni répartition des responsabilités,

o ni règles de mise en œuvre (Certains ouvrages et AGL basés sur UML ajoutent
cet aspect fondamental en méthodologie)

ANSAR DAGHOURI 25
L’analyse : comment identifier
les classes ?
A partir d’un cahier des charges :
• lister les mots clefs (tout mot clef peut être une classe) ;

• réduire la liste en supprimant :


o Les synonymes;

o Les classes non pertinentes.

• les classes peuvent évoluer (processus incrémental) : ajout de nouvelles


classes lors de l’implémentation pour créer une liste de classes par
exemple.

ANSAR DAGHOURI 26
L’analyse : comment identifier
les classes ?
La difficulté d’identifier les classes:

• quand l’application contient des objets physiques : gérer une médiathèque

(livre, CD,… ) ;

• quand l’application est abstraite :modéliser un système d’exploitation ?

ANSAR DAGHOURI 27
Modélisation Orienté Objet :
notations graphiques
Notion d’objet:
Une abstraction du monde réel c.-à-d. des données informatiques regroupant des
caractéristiques du monde réel

Exemple:
Une personne, une voiture, une maison…
FIAT-UNO-17: Voiture
Caractéristiques d’un objet
• Identité: permet de le distinguer des autres objets 233434: Numéro de série
1500 kg: Poids
• Attributs: données caractérisant l’objet 8864 YF 17: Immatriculation
133 000: Kilométrage
• Méthodes: actions que l’objet est à même de réaliser
Démarrer()
Arrêter()
Rouler()

ANSAR DAGHOURI 28
Modélisation Orienté Objet :
notations graphiques
Objet anonyme:

:Voiture

Message:

ANSAR DAGHOURI 29
Modélisation Objet :
Notion de Classe :
• Structure d'un objet, c.-à-d. une déclaration de l'ensemble des entités qui composeront l’objet

• Un objet est donc "issu" d'une classe, c'est le produit qui sort d'un moule

Notation:
• Un objet est une instanciation (occurrence) d'une classe Nom_de_la_classe

Une classe est composée:


Attribut 1: Type
• Attributs: Données dont les valeurs représentent l'état de l'objet Attribut 2: Type

• Méthodes: Opérations applicables aux objets Méthode 1()
Méthode 2()

ANSAR DAGHOURI 30
Modélisation Objet :

ANSAR DAGHOURI 31
Modélisation Objet :
Visibilité des attributs:
Définissent les droits d'accès aux données (pour la classe elle-même, d'une classe héritière, ou
bien d'une classe quelconque)
 Publique( +):
Les classes peuvent accéder aux données et méthodes d'une classe définie avec le niveau de
visibilité public
 Protégée (#): Nom_de_la_classe
l'accès aux données est réservé aux
#Attribut 1: Type
fonctions des classes héritières -Attribut 2: Type
 Privée(-): …
+Méthode 1()
l'accès aux données est limité aux Méthode 2()
méthodes de la classe elle-même …

ANSAR DAGHOURI 32
Les Diagrammes UML
Les vues statiques:

• Diagrammes de classes (class diagrams) ;

• Diagrammes d’objets (object diagrams);

• Diagrammes de cas d’utilisation (use case diagrams) ;

• Diagrammes de composants (component diagrams);

• Diagrammes de déploiement (deployment diagrams).

ANSAR DAGHOURI 33
Les Diagrammes UML
Les vues dynamiques:

• Diagrammes de séquence (sequence diagrams);

• Diagrammes de collaboration (collaboration diagrams);

• Diagrammes d’états-transitions (state diagrams);

• Diagrammes d’activités (activity diagrams).

ANSAR DAGHOURI 34
Les Diagrammes UML

ANSAR DAGHOURI 35
Diagramme de classes
Objectif :

Chaque langage de Programmation Orienté Objets (POO) donne un


moyen spécifique d’implémenter le paradigme objet.
UML permet de:
• Définir le problème indépendamment du langage (pointeurs ou pas,
héritage multiple ou pas etc.) ;
• Mener une Conception Orientée Objet (COO).

Le Diagramme des classes permet de fournir


une représentation abstraite des objets du
système..

ANSAR DAGHOURI 36
Diagramme de classes
Une instance est une concrétisation d’un concept abstrait.
• Concept : Amitié/Instance : Ali est l’ami de Karim

Un objet est une instance d’une classe


• La classe spécifie la manière dont tous les objets de même type sont
décrits.

Un lien est une instance d’association


• Association : concept <<travailler pour>> qui lit deux classes personne et
entreprise

• Lien : instance qui lie Ali avec l’entreprise OCP.

ANSAR DAGHOURI 37
Diagramme de classes
Exemple :Magasin d’articles de sport

Les clients du magasin ont accès à un catalogue décrivant les différents


articles (chaussures, ballons, …) qu'ils peuvent commander. Tous les types
d’articles disponibles sont décrits dans le catalogue, accompagnés de leur
prix. Le stock de Bruxelles contient uniquement des chaussures. Le stock de
Namur possède des chaussures bleues ainsi que des ballons de basket.

Notre exemple s'arrête ici, le domaine d'un magasin par correspondance


est évidemment plus étendu :
• Fournisseurs, service de livraison, tarification, fichiers clients…

ANSAR DAGHOURI 38
Diagramme de classes
Modélisation d'un magasin de vente d'articles de sport par
correspondance:

ANSAR DAGHOURI 39
Diagramme de classes
Notre but:
• Utiliser des diagrammes ayant une interprétation unique, connue par tous
le monde

• Décrire l'ensemble des état possibles du domaine

UML, bon ou mauvais choix?


• Langage de modélisation de plus en plus répandu

• Défini une notation accompagnée d'une signification établie


(informellement)

ANSAR DAGHOURI 40
Diagramme de classes
Un objet modélise une entité qui possède:
• Une identité:

o elle représente une entité qui a une existence propre dans le monde
modélisé

• Une durée de vie:

o les entités modélisées par les objets existent pendant un laps de temps
dans le monde modélisé

o les objets ne représentent en général pas des actions, des événements

ANSAR DAGHOURI 41
Diagramme de classes
• Un état:

o décrivant ses caractéristiques à un instant donné

• Un (ou plusieurs) rôle(s):

o Dans la description d’un domaine, le rôle d’un objet est décrit dans
le lexique

ANSAR DAGHOURI 42
Diagramme de classes

ANSAR DAGHOURI 43
Diagramme de classes

ANSAR DAGHOURI 44
Diagramme de classes

ANSAR DAGHOURI 45
Diagramme de classes

ANSAR DAGHOURI 46
Diagramme de classes

ANSAR DAGHOURI 47
Diagramme de classes

ANSAR DAGHOURI 48
Diagramme de classes

ANSAR DAGHOURI 49
Association
Définition:

 Une association décrit une connexion sémantique bidirectionnelle

entre les classes du monde modélisé.

ANSAR DAGHOURI 50
Association
Exemple: Magasin d’articles de sport

ANSAR DAGHOURI 51
Association

ANSAR DAGHOURI 52
Association
Rôle de l’association:

 Une association possède des rôles décrivant la fonction jouée par

chaque classe dans cette association (facultatif).

ANSAR DAGHOURI 53
Association

ANSAR DAGHOURI 54
Association
Multiplicité d’une association:

 Une association possède des multiplicités décrivant le nombre de

fois qu’une instance peut participer à une relation.

 chaque extrémité d’une association peut porter une indication de

multiplicité qui montre combien d’objets de la classe peuvent être

liés à un objet de l’autre classe.

ANSAR DAGHOURI 55
Association
Valeur de Multiplicité :

Valeur Description
1 Un et un seul
0..1 Zéro ou un
N N fois( entier naturel)
M..N De M à N (entiers naturels)
* De zéro à plusieurs
0..* De zéro à plusieurs
1..* S’un à plusieurs

ANSAR DAGHOURI 56
Association

ANSAR DAGHOURI 57
Association

ANSAR DAGHOURI 58
Association

ANSAR DAGHOURI 59
Association

ANSAR DAGHOURI 60
Association

ANSAR DAGHOURI 61
Association

ANSAR DAGHOURI 62
Association

ANSAR DAGHOURI 63
Association

ANSAR DAGHOURI 64
Association

ANSAR DAGHOURI 65
Association

ANSAR DAGHOURI 66
Agrégation

ANSAR DAGHOURI 67
Agrégation

ANSAR DAGHOURI 68
Composition

ANSAR DAGHOURI 69
Composition

ANSAR DAGHOURI 70
Diagramme de classe

ANSAR DAGHOURI 71
Association

ANSAR DAGHOURI 72
Association

ANSAR DAGHOURI 73
Généralisation/Spécialisation

ANSAR DAGHOURI 74
Généralisation: Exemple

ANSAR DAGHOURI 75
Diagramme de classe

ANSAR DAGHOURI 76