Vous êtes sur la page 1sur 38

Introduction à la modélisation et à la

technologie orientée objet

ZEDADRA W ACOO 1
PLAN

1. GL, Méthode, modèle et modélisation


2. Approche fonctionnelle vs approche objet
3. UML
4. Origines d’UML
5. Les diagrammes UML
6. Concepts de base de l’orienté objet
7. Exemple explicatif
8. Conclusion

ZEDADRA W ACOO 2
Quelques notions pour démarrer

• Informatisation
– S’immisce dans la plus part des objets.

– L’informatique est au cœur de toutes les entreprises;

– 80% des investissements de l’entreprise pour les logiciels;

– Marché du matériel est standardisé;

 Problème de l’informatique c’est des problèmes de


logiciel.

ZEDADRA W ACOO 3
Quelques notion pour démarrer

ZEDADRA W ACOO 4
Génie logiciel
• Objectif:
• Répondre à un problème qui s’énonçait en deux
constatations :
– d’une part le logiciel n’était pas fiable,
– d’autre part, il était incroyablement difficile de réaliser dans des
délais prévus des logiciels satisfaisant leur cahier des charges.

• Crise de l’industrie du logiciel (1970):


– l’augmentation des coûts ;
– les difficultés de maintenance et d’évolution ;
– la non fiabilité ;
– le non-respect des spécifications ;
– le non-respect des délais.
l’importance d’une approche méthodologique s’est imposée
ZEDADRA W ACOO 5
Génie logiciel

• Cycle de vie d’un logiciel (software lifecycle): toute les étapes


du développement d’un logiciel de sa conception à sa
disparation.
• Introduire des mesures permettant la validation du
développement logiciel c-à-d la conformité du logiciel avec les
besoins exprimés.
• L’origine du découpage provient du constat que les erreurs
ont un coût d’autant plus élevé qu’elles sont détectées
tardivement dans le processus de réalisation.
• Le cycle de vie permet de détecter les erreurs au plus tôt et
ainsi de maîtriser la qualité du logiciel, les délais de sa
réalisation et les coûts associés.
• En cascade, en V, en spirale, par incrément

ZEDADRA W ACOO 6
Modélisation

• La modélisation consiste à décrire un problème, puis à


décrire la solution de ce problème.
• Pour quoi modéliser ? (Objectifs)
 mieux comprendre le fonctionnement du système;
 Réduire la complexité du système;
 Le modèle est indispensable pour assurer un bon niveau de
qualité et une maintenance efficace.
 La modélisation n’est pas un problème à solution unique (points
de vues différents  modèles différents);
 Fournir une description rigoureuse et contrôlable.
• Doit être:
 simple, Rigoureux (n’est pas ambigu) et Réduit
• Dépend de la méthode utilisée
ZEDADRA W ACOO 7
Modèle

• Un modèle est une représentation abstraite et simplifiée, d’une


entité (phénomène, processus, système, objet….) du monde réel en
vue de le décrire, de l’expliquer ou de le prévoir.
• Il permet de réduire la complexité d’un phénomène.
• Il reflète ce que le concepteur croit important pour la compréhension
et la prédiction du phénomène modélisé.
• Un même problème peut avoir des modèles différents selon de très
nombreux points de vue.
• Exemple:
 Modèle météorologique (prédictif)
Plans: plan de structure, plan des locaux, bureaux, plan des
câblages électriques, plan d’écoulements d’eaux (plus conceptuel,
possède plusieurs niveaux de vues)

ZEDADRA W ACOO 8
Méthode
• Méthodes d’élaboration de logiciels!!!
• Décrit comment construire des logiciels de manière fiable.
• Une méthode = langage de modélisation + la demarche a suivre;
• Permet de construire des modèles à partir d’éléments de
modélisation qui constituent des concepts fondamentaux pour la
représentation de système ou de phénomènes;
• Définissent des représentations graphiques;
• Définissent des règles de mise en œuvre qui décrivent l’articulation
des différents points de vue;

ZEDADRA W ACOO 9
Modèle et Modélisation

ZEDADRA W ACOO 10
Méthodes d’analyse et de conception

• Fournissent une méthodologie et des notations


standards qui aident à concevoir des logiciels de qualité.

• Il existe différentes manières pour classer ces méthodes:

 La distinction entre composition et décomposition (ascendant ou


descendant).

 La distinction entre fonctionnel et orientée objet.

ZEDADRA W ACOO 11
Méthodes fonctionnelles vs méthodes OO

• Méthodes fonctionnelles ou structurées


 Décompose le problème en un ensemble de fonctions (langages procéduraux);
 Proposent une approche hiérarchique descendante.
 Le plus haut niveau représente l’ensemble du problème, la décomposition se
poursuit jusqu’à arriver à des composants maîtrisables;
 Dissocie le problème de la représentation des données, du problème du
traitement de ces données;
 La manipulation des données se fait par des sous fonctions;

ZEDADRA W ACOO 12
Méthodes fonctionnelles vs méthodes OO
• Méthodes orienté objets

 Décompose le problème en un ensemble d’objets dissociés en


interaction;
 Chaque objet possède des caractéristiques (attribut ou une méthode);
 La fonctionnalité du logiciel émerge de l’interaction entre les objets qui
le constituent;
 Rapproche les données et leurs traitements associe au sein d’un unique
objet;
 La programmation O.O est incontournable dans le cadre de
développement de systèmes logiciels complexes, alors qu’elle est
moins intuitive que la programmation fonctionnelle.

 La conception O.O conduit à des architectures fondées sur les objets du


système, plutôt que sur la fonction qu’il est censé réaliser,

ZEDADRA W ACOO 13
Méthodes orienté objets
Trois concepts qui donnent toute sa puissance à la
P.O.O.

• Concept de modélisation à travers la notion de classe


et d’instanciation de ces classes.

• Concept d’action à travers la notion d’envoi de messages


et de méthodes à l’intérieur des objets.

• Concept de construction par réutilisation et


amélioration par l’utilisation de la notion d’héritage.

ZEDADRA W ACOO 14
Méthodes fonctionnelles vs méthodes OO

ZEDADRA W ACOO 15
Eléments de base d’un diagramme de classe
Classe

Classe:
• Catégorie dans laquelle est organisée un ensemble
d’objets similaires;
• C’est un Template pour créer de nouveaux objets;
• Une classe est un concept abstrait représentant des
éléments variés comme (des éléments concrets, abstraits,
.., etc );
– Exemple: avions, commandes ou services, tâches
• Une classe est la description formelle d’un ensemble
d’objets ayant des caractéristiques communes.

ZEDADRA W ACOO 16
Eléments de base d’un diagramme de classe
Classe

• Pour représenter une classe on utilisera un classeur


composé de 3 blocs différents, chaque bloc regroupe un
ensemble d’information sur cette classe;

Nom de la classe

attributs

opérations ()

ZEDADRA W ACOO 17
Eléments de base d’un diagramme de classe
Objets

Objets:
• Sont des instances de la classe;
• Tous les objets de la même classe partage en commun
le comportement et l’état de cette classe;
• L’objet est représenté par un classeur comme la classe
mais le nom est écrit différemment:

Instance: Classe

ZEDADRA W ACOO 18
Eléments de base d’un diagramme de classe
classe, Objets

• Quelle sont les catégories dans lesquelles on peut


regrouper les objets représentant une université:

Enseignant Cours Etudiant Salle Classes

histoire: Cours anglais: Cours maths: Cours


Objets ou instances
de la classe Cours

ZEDADRA W ACOO 19
Caractéristiques d’une classe

Les caractéristiques d’un objet permettent de spécifier son


état et son comportement;
• État d’un objet :
– Ce sont les attributs ou propriétés, qui décrivent l’état
d’un objet, ça rassemble à un champ dans la base de
donnée.
• Comportement d’un objet :
– Les opérations décrivent les éléments individuels d’un
comportement que l’on peut invoquer;
– Des fonctions que l’objet peut réalisé ou qui sont faite
sur cet objet.
– Font référence à des méthodes.
ZEDADRA W ACOO 20
Caractéristiques d’une classe

• La syntaxe des attributs et des opérations est la suivante:

Exemple:
Nom de classe Employee
firstName: String
attributName: attribut Type lastName: String
attributName: attribut Type employeeID: Integer
attributName: attribut Type salary: Integer
setSalary(Integer)
operationName (parameter): getSalary():Integer
Type of value returned Terminate()

ZEDADRA W ACOO 21
Visibilité des attributs et des opérations d’une
classe
Les modificateurs d’accès ou de visibilité associés aux
classes ou à leurs propriétés sont notés comme suit :

o Le mot-clé public ou le caractère +. Propriété ou classe


visible partout.
o Aucun caractère, ni mot-clé. Propriété ou classe visible
uniquement dans le paquetage où la classe est définie.
o Le mot-clé protected ou le caractère #. Propriété ou
classe visible dans la classe et par tous ses descendants.
o Le mot-clé private ou le caractère -. Propriété ou classe
visible uniquement dans la classe.

ZEDADRA W ACOO 22
Objet public privé

ZEDADRA W ACOO 23
Relations entre classes

• Une association est une relation entre deux classes Association


binaire Association n-aire
Une association n-aire lie plus de deux
classes.

Association Réflexive
Associe une classe avec lui-même, les
deux extrémités de l’association pointent
vers la même classe.
ZEDADRA W ACOO 24
Multiplicité ou cardinalité

• un et un seul (1ou 1..1),


• zéro et un (0..1),
• de m à n(m..n),
• de zéro à plusieurs (0..* ou *),
• de un à plusieurs (1..*)

ZEDADRA W ACOO 25
Classe d’association ou classe associative

• Classe d’association : lorsqu’une association possède


des propriétés, celle-ci est remplacée par une classe
appelée classe associative et les propriétés du lien
deviennent attributs de cette classe.
• Représentée par un classeur comme une classe, qui
contient les attributs de l’association, et relie avec
l’association par un trait pointé;
Commande Produit

Commande-produit
Qté commandé

ZEDADRA W ACOO 26
Dépendance
• Montre une association où une classe utilise une autre
classe;
• Elle est représentée par un trait discontinu orienté;
• Elle indique que la modification de la cible implique une
modification de la source.
• Ici, une modification de la réglementation influe sur l'attitude du
conducteur et des caractéristiques des voitures (troisième feu, feu
de recul...).

ZEDADRA W ACOO 27
Agrégation
• L’agrégation est une association qui permet de représenter un lien
de type « ensemble » comprenant des « éléments ».
• Il s’agit d’une relation entre une classe représentant le niveau «
ensemble » et 1 à n classes de niveau « éléments ».
• Le formalisme générale de l’agrégation est donne par:

ZEDADRA W ACOO 28
Composition
• La composition est une relation d’agrégation dans laquelle il existe
une contrainte de durée de vie entre la classe « composant » et la
ou les classes « composé ».
• Autrement dit la suppression de la classe « composé » implique la
suppression de la ou des classes « composant ».
• Le formalisme de la composition est donné par:

ZEDADRA W ACOO 29
Encapsulation et interface

• Encapsulation regroupement données-traitements dans


une même classe ;
• Les données ne sont accessibles qu’à partir d’opérations
définies dans la classe;
• Des services accessibles (offerts)  ensemble des opérations d’une
classe rendu visible aux autres classes  Interface;

• Garantir l’intégrité des données contenues dans l’objet;


• Renforce l’autonomie et l’indépendance de chaque
classe et donne une potentialité accrue de définition de
classe réutilisable.

ZEDADRA W ACOO 30
Schema de principe de l’encapsulation

ZEDADRA W ACOO 31
Généralisation et spécialisation
• La généralisation de classes consiste à factoriser dans une classe,
appelée superclasse, les attributs et/ou opérations des classes
considérées. Appliquée à l’ensemble des classes, elle permet de
réaliser une hiérarchie des classes.
• La spécialisation représente la démarche inverse de la
généralisation puisqu’elle consiste à créer à partir d’une classe,
plusieurs classes spécialisées.
• Chaque nouvelle classe créée est dite spécialisée puisqu’elle
comporte en plus des attributs ou opérations de la super-classe
(disponibles par héritage) des attributs ou opérations qui lui sont
propres.
• Une classe spécialisée porte aussi le nom de sous-classe. La
spécialisation de classe se construit en deux temps : d’abord par
héritage des opérations et des attributs d’une super-classe et
ensuite par ajout d’opérations et/ou d’attributs spécifiques à la sous-
classe.
ZEDADRA W ACOO 32
• Généralisation et spécialisation

Personne
Nom de personne
Prénom de personne
Spécialisation
Date de naissance
Adresse
Partir en vacance (..)
Dossier médical (..)

Employé Etudiant
Date de recrutement Date d’inscription
Grade de l’employé Niveau d’inscription généralisation
Spécialité d’étude Spécialité d’étude

Calculer le salaire (..) Calculer moyenne (..)

ZEDADRA W ACOO 33
• Héritage multiple
– Une classe hérite de deux classes parentes

élève

élève externe élève interne

salarié boursier employé

ZEDADRA W ACOO 34
• Polymorphisme
– c’est le fait d’utiliser la même expression pour dénoter différentes
opérations. En effet, une même opération peut être définie pour
plusieurs classes. Ceci ne signifie pas que cette opération est
implémentée exactement de la même manière. Au contraire, on
peut lui associer, selon la classe à laquelle elle appartient une
méthode différente. Ainsi, un même message vers une opération
donnée peut produire des résultats différents selon la classe
invoquée.

ZEDADRA W ACOO 35
Un petit exercice…
…pour la forme !
• Associer les propositions aux concepts auxquels elles
font référence:
Proposition Concept
1 Les carnivores chassent et mangent leur proie. A Attributs
Chasser et manger sont des:
2 Le numéro de sécurité sociale, le nom, le prénom et B Héritage
l’adresse d’un assuré social forment ses
3 Un stylo, un cartable, un livre sont des: C Abstraction
4 Une baleine est un mammifère. Ce lien est un: D Classe
5 Tout animal mange. Un carnivore mange différemment d’un E Opérations
herbivore. Ce phénomène est appelé:
6 Le lion, le tigre et le loup sont des carnivores, ils forment F Objets
une:
7 L’électrocardiogramme est une représentation de la fonction G Polymorphisme
cardiaque, c’est une:

36
ZEDADRA W ACOO
Un petit exercice…
…pour la forme !
• Une entreprise gère des agences, des supermarchés et
des hypermarchés. Elle vend un certain nombre de
produits groupés en trois grandes divisions (épicerie,
produits frais, non alimentaires). A l’intérieur de chacune
de ces divisions, les produits sont groupés en familles
elles mêmes divisées en sous familles (textiles,
merceries,…).
Question: trouver les classes et leurs liens.

37
ZEDADRA W ACOO
Merci !!

Commentaires et questions

ZEDADRA W ACOO 38