Vous êtes sur la page 1sur 28

Chapitre 1 .

UNIFIED ~I.--

MODELING

LANGUAGE

Modelisation par I'approche objet Prof. A. HAM LI LI

hamlili@ensias.ma

Concept d'objet et encapsulation

• Un programme peut etre consldere comme I'union d'un ensemble de donnees et d'un ensemble de procedures permettant de manipuler ces donnees:

Programme = Donnees + Algorithmes

• Le concept d'objet est etrolternent lie a celui d'encapsulation.

• Une encapsulation dans Ie cadre de programmation, consiste a regrouper les donnees et les procedure:

Objet = Partie statique + Partie dynamique

~~

Donnees Procedures

12/10/2009

1

Modelisatlon objet

La programmation objet conduit a modellser une application en termes d'objets plutot qu'en terme de procedures.

Un modele objet decrit un svsterne en :

identifiant les objets composant ce svsterne,

decrivant la structure (proprletes) de ces objets, decrivant Ie comportement (operations) de ces objets, decrlvant les relations liant les objets.

Notion d'objet

La notion d'objet est a la base de la technologie objet:

Elle est caracterlsee essentiellement par I'encapsulation des: ,f informations;

,f traitements.

Un objet: representation abstraite d'une entite reelle ou abstraite

Exemples:

Hassane, Kawtar,

Ie compte en banque de Mohammed,

la facture N° 27519 etablle Ie 19/07/2008 a 17 h 16 mn a Marjane Hay Ryad,

12/10/2009

2

Notion d'objet

Un objet a une identite (unique dans Ie svsteme] qui permetde Ie distinguer des autres objets

ldentite

Un objet est un completement defini par:

Une ldentlte qui Ie distingue pleinement des autres objets (identifiant) Un etat : un ensemble de donnees (attributs, variables d'instances, ... )

Un comportement: un ensemble de traitements (methodes, operations, ... )

ldentlte

Etat

Comportement

Classe et instances

Une classe est une description abstraite d'un ensemble d'objets similaires avant les memes proprietes (attributs et methodes).

Une classe est done un ensemble d'objets avant : une structure commune (Iiste des attributs)

- un comportement identique (Iiste des operations)

Exemples: Etudiant, Etablissement, Employe, Entreprise, commande ....

Les objets qui se conforment a la description d'une rnerne classe sont appeles ses instances.

12/10/2009

3

Classe et instances

Attention il ne faut pas confondre CLASSE et INSTANCE!

Une classe est I'abstraction de ses instances:

Exemple:

,/ Un point du plan a une abscissex et une ordonnee y,

'L,

,/ On peut Ie dessiner, Ie deplacer, I'effacer, ...

La classe correspond a la description d'un ensemble d'individus au mieux encore d'un type d'individus.

Une instance est un referent possible a une classe :

Exemple:

,/ Le point (20,30).

Une instance correspond a quelque chose que I'on peut identifier en tant qu'individu

Attribut

Proprlete qui possede une valeur caracterlstique de tout objet d'une classe. - Exemple:

Etudiant
N" d'inscription
Nom
PrEmom
Adresse
Niveau Un attribut peut avoir une valeur par defaut,

Un attribut est deslgne par un nom unique a l'lnterleur d'une meme cia sse.

Synonymes: « champ », « variable d'instance », ...

12/10/2009

4

Etat

t'etat d'un objet correspond aux valeurs de tous ses attributs a un instant donne.

Etudiant
2677
Samiri
Hatim
17, rue Ezzaytoune, Rabat
2eme annee VINCI Etat

t'etat d'un objet peut evoluer dans Ie temps.

Certains composants de l'etat peuvent rester constants.

Etudiant
2677
Samiri
Hatim
17, rue Ezzaytoune, Rabat
2eme annee VINCI Etudiant
2677
Samiri
Hatim
630, Av. Hassane II, Rabat
3eme annee VINCI Temps

2007-2008

2008-2009

12/10/2009

5

Operation

Une operation est une action qui peut etre appliquee a tous les objets d'une rnerne classe.

Exemple:

- Calcul du montant TTC d'une commande.

Tous les objets d'une ciasse partagent les memes operations.

Une operation est designee par un nom et a des arguments parametres.

Une operation est declenchee suite a un message envove par un autre objet.

Type d'operatlon

Une operation peut etre :

une operation d'acces qui lit ou ecrit des attributs,

une requete sans effet de bord sur I'objet : pure fonction de mise-a-jour, une action avec effets de bord sur I'objet : creation, destruction.

Une operation peut etre definle :

En fonction de l'etat du svsteme avant Ie declenchernent de I'action et apres son declenchernent,

A I'aide d'expressions mathernatlques, En pseudo-code,

Dans la langue naturelle.

12/10/2009

6

Visibilite

Tous les attributs et operations d'un objet ne sont pas visibles de la rnerne rnaniere.

Chacune de ces proprietes peut etre :

,/ en acces public: accessible par tout Ie monde, ,/ en acces prive : reserve a I'objet lul-merne,

,/ en acces protege: specificite de certains langages.

Envoi de messages

L'envoi de messages est Ie mecanisme de controle en technologie objet.

On dit que les objets communiquent au travers I'envoi de messages.

Pour utiliser un objet, il faut declencher I'une de ses operations ( autrement dit, iI faut lui envoyer un message).

Un objet est maitre de ses reactions vis a vis des messages, il en accepte certains et en refuse d'autres.

12/10/2009

7

Communication a I'aide de messages

• L'envoi de messages: est un protocole de communication entre des objets qui se realise par invocation d'une methode,

• Le message est represente par I'identifiant de I'objet receveur, Ie nom de la methode et les arguments

Instance objet

Classe

.. nteur sur ~~

EtudiantX

Execution Code ~----------------~ ------t-\.~ChnILAdr(Adresse)

EtudiantX ~

Chng _Adr("453, Hay Llaymoune, Rabat")

Invocation methode

Prenorn Adresse Niveau

Etudiant

N" d'inscription

Nom

Message

Communication a I'aide de messages

Tout objet "connait" sa classe et sa it comment executer la bonne operation en reaction aux messages recus :

Le comportement d'un objet est defini par I'ensemble des operations qu'il peut executer,

Une methode est I'implantation d'une operation par une classe,

12/10/2009

8

En resume

Un objet = identite + etat (statique) + comportement (dynamique)

Une classe = attributs + operations

Encapsulation

Principe d'encapsulation (donnees + operations) :

Un objet est consldere comme une boite noire.

II n'est accessible que par des operations visibles (definies dans une interface externe).

Une interface represents la vue externe d'un objet vis-a-vis des autres objets. -/ Exemple : crediter(Personne.Compte, 10 000)

Parfois I'encapsulation est appelee masquage d'informations : puisqu'elle consiste en la separation de :

la partie publique (visible)

- la partie privee (non visible).

12/10/2009

9

Encapsulation

Le changement d'irnplementation des operations ne modifie pas I'interface de I'objet:

- La stabilite de I'utilisation des objets facilite l'evolution d'une application.

t'acces direct aux attributs des objets est interdit par I'encapsulation: - L'encapsulation garantit l'integrite des donnees.

Generalisation/Specialisation

On dit que C1 est une sous-classe de C2, si la description de C1 est une specialisation de celie de C2.

On dit que C2 est une super-classe de C1, si C2 est une generalisation de C1.

La notion de specialisation correspond a la relation «est-uri» ou « est une sorte de »

Chaque instance d'une sous-classe est aussi une instance de to utes ses superclasses (= Inclusion ensembliste).

12/10/2009

10

Heritage et specialisation

Une classe peut etre definie comme une sous-classe (une specialisation) d'une autre classe.

t'heritage est un mecanisme des langages de programmation par objets:

II permet la specialisation par modification incrernentlelle (reutllisation de specifications).

II est utilise pour I'abstraction et la structuration des programmes (factorisation, generlclte),

Heritage et specialisation

Une sous-classe herite d'une classe plus generale pour ses instances en termes de :

La description des variables: Heritage statique de la description des variables d'instance.

La description des methodes: Heritage dynamique des methodes.

La specialisation est une relation entre entltes :

- C'est la relation opposee de la relation de generalisation.

12/10/2009

11

Specialisation par enrichissement

Un enrichissement se definit comme I'ajout de nouveaux attributs et/ou operations dans une sous-classe :

Ces proprletes seront prop res a la sous-classe.

- 115 vont s'ajouter a ceux de la super-classe.

Super-Classe

Article

Reference: entier Designation: chaine TauxTVA: reel = 0,20

Vendre(n:entier)

Sous-Classe

CD - Rom
Reference: entier
Designation: chaine
TauxTVA: reel = 0,20
Editeur: chaine
Langue: chaine
Vendre(n:entier)
Calcul _remise!) : reel Su bstitution

Dans une substitution, on redeflnlt dans la sous-classe des attributs et/ou methodes de la super-classe qui vont se substituer a ceux de la super-classe.

Super-Classe

Article

Reference: entier Designation: chaine TauxTVA: reel = 0,20

Vendre(n:entier)

Cia sse de substitution

Livre
Reference: entier
Editeur : chaine
TauxTVA: reel = 0,20
Nbr _pages: entier
Vente(x : reel) 12/10/2009

12

Heritage simple / multiple

• Heritage simple:

- Toute classe a une seule super-classe directe (sauf les classes racine)

-/ Graphe d'herltage = arbre.

Heritage simple / multiple

• Heritage multiple:

- Une classe peut herlter de plusieurs super-classes.

- Tous les langages orlentes objet n'acceptent pas necessalrernent l'herltage

multiple.

~

/"'"

b!d~c;J-~

/ -. / -. /

12/10/2009

13

Chapitre 2 .

UNIFIED ~I.--

MODELING

LANGUAGE

Introduction a UML Principes de base Prof. A. HAM LI LI

hamlili@ensias.ma

VINCI 08/09

Notions de modele et de vue

• La notion de modele est souvent confondue avec la notion de vue, alors que ces deux notions renvoient a des logiques differentes :

- Le modele renvoie a un contenu : iI constitue une specification, plus ou moins abstraite d'un domaine ou d'un svsterne, realisee avec un langage donne,

- La vue renvoie a une demarche: elle constitue une rnanlere d'aborder les choses dans un contexte rnethodologlque donne.

12/10/2009

1

Modeles traditionnels

Les methodes classiques utilisent trois types de rnodeles :

Modele statique; Modele dynamique; Modele fonctionnel.

Modeles traditionnels

Les methodes classiques utilisent trois types de modeles :

Modele statique : ~ II decrlt:

,f La structure des informations gerees par Ie svsterne.

,f Les invariants (conditions qui doivent etre maintenues au niveau du domaine).

~ II correspond au modele Entlte/Relatlon etendu,

~ II faut y specifier les regles et les contraintes applicables en permanence.

Modele dynamique;

Modele fonctionnel.

12/10/2009

2

Modeles traditionnels

Les methodes classiques utilisent trois types de rnodeles :

Modele statique;

Modele dynamique :

~ II decrlt Ie comportement des objets.

~ II s'appuie sur la vue statique pour decrire les effets des operations sur les objets.

~ II faut y specifier les regles de pilotage et les contraintes d'executlon,

Modele fonctionnel.

Modeles traditionnels

Les methodes classiques utilisent quatre types de rnodeles :

Modele statique;

Modele dynamique;

Modele fonctionnel : II decrit les interactions du svsterne.

,f II s'appuie sur la vue statique pour decrire les scenarios en termes de responsabilites et de collaborations.

,f II faut y specifier les regles et les contraintes applicables dans Ie contexte des cas d'utilisation.

12/10/2009

3

Origines d'UML

Les langages de rnodelisation orientes objets sont apparus au milieu des annees 1970 et jusqu'a la fin des annees 1980 comme des methodes experlrnentales,

Les methodes orientees objets sont passees de moins de 10 jusqu'a plus de 50 entre les annees 1989 et 1994.

UML resulte de la fusion de differentes methodes d'analyse orlentee-objet :

Methode OOD (Object Oriented Design) de Grady Booch :

Methode OMT (Object Modeling Technique) de James Rumbaugh, OOSE (Object Oriented Software Engineering) de Ivar Jacobson.

Methode ODD

Methode 000 (Object Oriented Design) de Grady Booch :

C'est une methode qui permet de :

,f Faciliter l'lmplernentatlon de programmes dans des langages de

programmation orlentee objet.

,f Representer les differentes phases du developpernent d'un projet.

- Ses concepts fondamentaux sont la classe, I'objet, la methode et I'attribut.

12/10/2009

4

Methode OMT

Methode OMT (Object Modeling Technique) de James Rumbaugh:

C'est une technique qui permet une modellsatlon par des objets.

Ses concepts de base sont la classe, I'instance, I'objet, I'attribut et la methode.

Methode OOSE

Methode OOSE (Object Oriented Software Engineering) de Ivar Jacobson:

Elle est basee sur 5 modeles et 3 types d'objets.

12/10/2009

5

Methode OOSE

Methode OOSE (Object Oriented Software Engineering) de Ivar Jacobson:

Elle est basee sur 5 modeles et 3 types d'objets. }> Les cinq modeles sont :

,f Le modele des besoins (interaction entre I'individu et I'environnement) ; ,f Le modele d'analyse (definir les dlfferentes relations entre les objets, les acteurs et Ie svsteme) ;

,f Le modele de conception [modellser ces relations a travers differents diagrammes) ;

,f Le modele d'implementation (passage au code) ;

,f Le modele de test (actions et interactions du svsteme],

Methode OOSE

Methode OOSE (Object Oriented Software Engineering) de Ivar Jacobson:

Elle est basee sur 5 modeles et 3 types d'objets.

}> Les trois types d'objets sont :

,f Le type entlte representant un objet materiel ou lmrnaterlel ; ,f Le type controle permettant dlfferentes verifications;

,f Le type interface representant des classes abstraites :

D Sans attributs;

D Les methodes sont abstraites et publiques.

12/10/2009

6

Nature du langage UML

UML peut etre utilise pour visualiser, specifier, construire et documenter les elements d'un svsteme a forte composante logicielie.

UML (Unified Modeling Language) est un langage de modellsatlon :

un langage standard graphique concu pour l'ecriture des plans d'elaboration de logiciels.

Ce n'est pas une methode, iI y manque la demarche.

Standard UML

UML est un standard de OMG (Object Management Group) : www.omg.org/uml

1997: V1.1

1999: V1.3

2004: V2.0

Novembre 2007 : UML 2.1.2

Mai 2008 : UML 2.2

Actueliement, on travail sur la version UML 2.3

12/10/2009

7

UML et Ie modele Entite-Relatlon

Definitions

Une « Entlte » est une representation persistante d'un objet de gestion dans Ie Systeme Informatique.

Une « Relation» est une description des liens qui peuvent exister entre les objets de deux classes (ou plus).

UML s'inspire des rnodeles entlte-relation

Les modeles « entite-relatlon » pour I'analyse et l'elaboratlon de svsterne de gestion de bases de donnees ont tous une vision essentiellement statique : lis s'interessent a representer des informations et leurs relations sans y associer des aspects dynamiques.

Les relations envisagees sont Ie plus souvent svmetriques et ne sont pas deflnles formellement.

La rnodellsatlon des objets avec UML fait la distinction entre:

objets du domaine [entltes) et objets du Systeme d'information,

types (description des comportements) et classes (implementation des types).

12/10/2009

8

UML et Ie modele Entite-Relatlon

UML n'est pas propre a I'approche objet

Une part importante des concepts et des outils est ernpruntee aux approches de rnodelisation classiques.

~ C'est un enrichissement :

./ Les concepts du modele Entite/Relation « etendu » ont ete conserves .

./ La notion de type d'entlte a ete enrichie par les operations pour obtenir un type d'objet.

~ C'est une reprise:

./ Les concepts de I'analyse structuree pour representer la dynamique des comportements ont ete conserves a I'identique.

Plans de definition d'UML

Definitions

Un stereotype precise la semantique d'un element.

~ C'est une extension des elements de modellsatlon deflnls par UML.

Une methode est une implementation d'une operation.

Une operation est un service supporte par un type d'objet et lrnplernente par les classes.

12/10/2009

9

Plans de definition d'UML

Schematiquement, UML peut etre defini sur trois plans:

Les concepts, dont la sernantique est cornpleternent deflnle de facon formelle ;

Les diagrammes sont utilises pour specifier les besoins et les svsternes ;

Un certain nombre de mecanlsrnes d'extension, pour lntegrer dans les processus des stereotypes speciflques associes a des methodes et/ou contextes applicatifs differents .

UML· un langage graphique

Definitions

- Un concept est un element concu dans un domaine (contexte applicatif) donne.

Issus des concepts des langages de programmation UML est un langage graphique qui se veut independant des langages de programmation;

UML tente de:

Realiser une svnthese des langages de programmation, Ne garder des langages de programmation que I'essentiel.

Malgre que UML s'efforce d'etre proche du reel, on y retrouve des concepts langage.

12/10/2009

10

Relations, associations et compositions

Definitions

Un role se deflnl :

~ Pour une relation: par Ie nom du type de la cible dans Ie contexte d'origine.

~ Pour un cas d'usage : comme la description de la place tenue par un objet dans la realisation du cas d'usage.

Les objets sont representes par des types (ou classes).

Les liens entre les objets sont representes par des relations.

Lorsque la relation est caracterisee par des informations, on parle d'association.

Lorsque les relations sont structurelles, on parle de composition.

Comme dans les methodes classiques, les relations sont decrltes par des roles et par des rnultlpllcltes minimales et maximales.

Messages et operations

Definitions

Un message est un mecanisme par lequel un objet communique avec un autre.

Une operation et un service supporte par un type d'objet et lmplernente par les classes.

l.'activite du Systeme Informatique oriente objets se redult a l'activite des objets, qui s'accordent par echange de messages.

Pour qu'un objet traite un message, iI faut que celui-ci corresponde a une operation connue de I'objet, c'est-a-dire qu'elle soit deflnle par I'interface de la classe.

N.B. :

Les messages et les operations sont definis independarnment les uns des autres.

C'est a I'analyste d'assurer la consolidation entre ces deux notions.

12/10/2009

11

Paquetages et composants

Un paquetage regroupe un ensemble d'objets logiques solidaires du point de vue du developpernent,

Un composant est un element physique du svsterne qui lmplernente un ensemble d'interfaces.

- Un composant est l'equlvalent physique d'une classe (ou de plusieurs classes).

UML et les principes generaux du genie logiciel

Rigueur et formalisation

Precision des specifications : plusieurs types de diagrammes.

Utilisation d'un formalisme approprle aux dlfferentes eta pes du cycle de vie d'un logiciel.

Regie cesarlenne « Diviser pour regner »

Decomposition d'un problema en sous-problemes : Paquetages, Diagrammes de composants, ...

Respect de la « zone de pertinence» des composants.

Modularite

- Decomposition du logiciel en elements physiquement distincts (modules).

12/10/2009

12

UML et les principes generaux du genie logiciel

Genericite

- Aptitude a produire automatiquement certains composants du logiciel.

Incrementa lite

- Realisation progressive du logiciel, avec developpement et mise au point sequentielle ou parallele des composants.

Etats, evenements et transitions

Definitions

- Un « etat II represents la situation d'une activite ou d'un objet.

- Un « evenement II est I'intervention d'un acteur ou la modification de l'etat

d'un objet.

- Une « transition II est Ie passage d'un etat a un autre provoque par un evenement.

12/10/2009

13

Diagrammes UML

Comme son nom I'indique, UML est fait pour construire des rnodeles, - UML utilise un certain nombre d'outils appele diagrammes.

Diagrammes UML (suite)

II existe 2 types de vues du Systeme Informatique qui com portent chacune leurs propres diagrammes :

les vues statiques :

,/ diagrammes de cas d'utilisation ,/ diagrammes d'objets

,/ diagrammes de classes

,/ diagrammes de composants ,/ diagrammes de deplolernent

les vues dynamiques :

,/ diagrammes de collaboration ,/ diagrammes de sequence

,/ diagrammes d'etats-transitions ,/ diagrammes d'activites

12/10/2009

14

outils pour reallser des diagrammes UML

• Objecteering : www.objecteering.com

• ArgoUML (opensource) : argouml,tigris.org

• Rational Rose (IBM) : www.ibm.com/rational

• Visio (Microsoft) : www.microsoft.com

12/10/2009

15

Vous aimerez peut-être aussi

  • Uml 1
    Uml 1
    Document28 pages
    Uml 1
    hamliliali
    Pas encore d'évaluation
  • Qo S1
    Qo S1
    Document17 pages
    Qo S1
    hamliliali
    Pas encore d'évaluation
  • Qo S1
    Qo S1
    Document18 pages
    Qo S1
    hamliliali
    Pas encore d'évaluation
  • Qo S1
    Qo S1
    Document18 pages
    Qo S1
    hamliliali
    Pas encore d'évaluation