Vous êtes sur la page 1sur 25

Modlisation oriente objet

UML

Le langage de modlisation objet unifi


Plan du cours

Historique
Rappels
UML
Prsentation
Les vues statiques dun systme (cas dutilisation,
diagramme de classes)
Les vues dynamiques dun systme (squence,
etats-transition)
Exercices
Objectifs du cours

Architecture logicielle :
Approcher les problmes danalyse et de
conception des systmes informatiques (les
programmes).

Au travers du filtre des mthodes


orientes objet :
UML (Unified Modeling language).
Ce que nous ne ferons pas!

Traitement des problmes dorganisation dun


dveloppement informatique (gestion du
temps, des ressources).
Les diffrentes mthodes de conduite de
projets (RUP, XP).
Toutes les mthodes de conduite de projet
utilise UML!
Les erreurs classiques

Analyse et conception dun logiciel ne


correspond pas lanalyse des besoins dune
entreprise!
Ne pas tenter de solutionner tous les
problmes dune entreprises avec un seul
logiciel : apprendre cerner le problme
traiter.
Les mthodes orientes objet ne traitent pas
des problmes organisationnels dune
entreprise
Schma classique - caricatural
Problme de cette vision des choses

Ignore les relations avec les autres applications de


lentreprise (la gestion des stocks peut
communiquer avec la fabrication des marchandises,
les commandes clients).
Cloisonne les activits : organisation hirarchique
de lanalyste au programmeur, pas de contact entre
le client et le ralisateur final!
Un systme doit tre facile modifier pour de la
maintenance corrective et volutive.
Larchitecture doit tre modulaire.
Dveloppement orient objet
Dveloppement orient objetsuite

Consquences de lapplication des


mthodes orients objet :
les phases danalyse, conception et de
programmation sont trs lies.
Historiques de mthodes orientes objet :
Langage de programmation.
Mthodes de conception.
Mthodes danalyse.
Un peu dhistoire sur les langages de
programmation
1967 : le langage SIMULA (origine de la
couche objet de C++) :
Notions de classes, dobjets et des procdures
locales une classe!
1972 : le langage SmallTalk
interaction Homme-Machine, souris et fentres
(origine de lergonomie de Macintosh).
Les Annes 80 :
foisonnement des langages Cobol, C++, java
Un peu dhistoire sur les mthodes de
conception
Les premires mthodes d'analyse (annes 70)
Dcoupe cartsienne (fonctionnelle et hirarchique) d'un
systme.
L'approche systmique (annes 80)
Modlisation des donnes + modlisation des traitements
(Merise).
L'mergence des mthodes objet (1990-1995)
Analyse sur les donnes et les traitements
Plus de 50 mthodes objets (dont OMT, OOSE)
Un peu dhistoire sur les mthodes de
conception
1995 : Premier consensus
OMT : Notation graphique riche (General Electric)
OOD : concept de package ( lment dorganisation des
modles)
OOSE : La mthodologie repose sur l'analyse des besoins
des utilisateurs (Ericsson).
Unification et la normalisation des mthodes
(1995-1997)
OMG : Object Management Group. Association de
professionnels de l'informatique oriente objet.
Apparition dUML
Petite piqre de rappel

Objets :
Units de base organises en classes et partageant des
traits communs (attribut ou procdures).
Entits du monde rel, des concepts de lapplication ou du
domaine trait.
Encapsulation :
Les structures de donnes et les dtails de
limplmentation sont cachs aux autres objets du
systme.
La seule faon daccder ltat dun objet est de lui
envoyer un message qui va dclencher lexcution de lune
de ses mthodes.
Encore une

Abstraction
Il s'agit d'un processus qui consiste identifier les
caractristiques intressantes d'une entit, en vue d'une
utilisation prcise.
L'abstraction dsigne aussi le rsultat de ce processus,
c'est--dire l'ensemble des caractristiques essentielles
d'une entit, retenues par un observateur.
Hritage :
Chaque instance dune classe possde ses
caractristiques (attributs+mthodes), mais aussi celles
dune ventuelle super classe (classe mre).
Permet de dcrire un type de lien qui unit les diffrents
objets.
La dernire!

Modularit :
Partition du programme qui cre des frontires
bien dfinies (et documentes) lintrieur du
programme dans lobjectif den rduire la
complexit.
Polymorphisme :
Possibilit de recourir la mme expression pour
dnoter diffrentes oprations.
Lhritage est une forme particulire de
polymorphisme caractristique des systmes
orients objet.
Un petit exercice
pour la forme !
Quelles sont les caractristiques dune
personne?
Quelles sont les comportements gnriques
dune personne?
Pouvez vous donnez des exemples
dinstances dune personne?
Donnez des exemples de sous classes.
Un petit exercice
pour la forme !
Le type de la classe
personne.
Ajout dune classe vieil homme
Trouver les bons objets

Mthode de dsagrgation / agrgation :


Dsagrger un module : {modules}
Agrger un {modules} : un module
Dsagrgation dun module :
On part dun tout que lon clate en plusieurs parties.
Chaque partie formant son tour un tout, est susceptible
dtre nouveau clate en parties plus petites.
Il est difficile dexprimer en dcomposition logicielle ce
quest une partie.
En conception on fait lhypothse que le systme est un
tout et quil est compos de parties cohrentes sparables.
Trouver les bons objets

La dcomposition est base sur les entits


du domaine du problme.
La dsagrgation est trs diffrente de la
dcomposition fonctionnelle car une
fonctionnalit nest pas une entit du
domaine du problme.
La granularit de la taille des entits dpend
du niveau dabstraction.
Trouver les bons objets

La dcomposition est base sur les entits


du domaine du problme.
La dsagrgation est trs diffrente de la
dcomposition fonctionnelle puisquune
fonctionnalit nest pas une entit du monde
concret.
La granularit de la taille des entits utiliser
est un facteur important de leffort
dabstraction raliser.
Quelques rgles dcriture dun module

Un module reprsente un concept et tout le


concept.
Ne pas regrouper dans un module des
oprations qui nont pas de raison dtre
ensemble (module fourre-tout).
Pour concrtiser une ide le choix du nom du
module est un lment puissant dexpression
(Design Patterns).
Phase simpliste : Le choix des mthodes
correspond aux verbes.
Les qualificatifs de classe

Publique :
Les fonctions de toutes les classes peuvent accder aux
donnes ou aux mthodes d'une classe dfinie avec le
niveau de visibilit public. Il s'agit du plus bas niveau de
protection des donnes.
Protge :
Laccs aux donnes est rserv aux fonctions des classes
hritires, c'est--dire par les fonctions membres de la
classe ainsi que des classes drives.
Prive :
L'accs aux donnes est limit aux mthodes de la classe
elle-mme. Il s'agit du niveau de protection des donnes le
plus lev.
Les qualificatifs dattribut

Publique : Un attribut publique pourra tre


accder (lu et modifi) par tout le monde.
Protge : Un attribut protg pourra tre
accder (lu et modifi) par les classes
hritires.
Prive : Un attribut prive pourra tre
accder (lu et modifi) par les mthodes et
seulement les mthodes de sa classe.
Les qualificatifs de mthode

Publique : Une mthode publique pourra tre


utilise par tout le monde.
Protge : Une mthode protge pourra
tre utilise ou redfinie par les classes
hritires.
Prive : Une mthode prive pourra tre
utilise par les mthodes et seulement les
mthodes de sa classe.