Vous êtes sur la page 1sur 13

Chapitre 4 Développement par Approche Objet

IV- Développement par Approche Objet


1. Introduction :
La conception orientée objets repose sur une solide assise théorique ayant déjà obtenus des
résultats concrets. La rapidité de développement et surtout de maintenance peut répondre aux
attentes croissantes des utilisateurs et des dirigeants. L’approche orientée objets permet la
maîtrise complète du processus, non seulement au niveau de la modélisation (analyse,
conception) mais également la conduite de projet, la définition des activités, les règles de
production, la démarche qualité, la réutilisabilité des modèles.
Les nouveaux logiciels commercialisés sont de plus en plus souvent conçus et basés sur le
concept objet.
2. Schémas de développement : [Mic97]
Les schémas de développement les plus significatifs sont :
−Développement avec des spécifications exécutables.
−Développement classique.
−Développement interactif ou incrémental.
−Développement dans un environnement objet.
Développement dans un environnement objet : le développement est incrémentale et
s’effectue par des cycles imbriqués :
−Construction de classes / Création d'objets
−exécution.
Ce mode permet :
−La réutilisation des classes pour en élaborer des nouvelles.
−Ajout au système de nouvelles fonctions utilisant les anciennes.

36
Chapitre 4 Développement par Approche Objet

Fig10 : Développement orienté objet

3. Les phases d’abstraction:


Un cycle de développement peut être abordé sous l’angle de l’abstraction. Les couches
d’abstractions considérées sont les suivantes :
−Couche de modélisation conceptuelle.
−Couche de modélisation logique.
−Couche de modélisation physique.
3.1 Le modèle conceptuel :
Le modèle conceptuel est relatif à l’ensemble des éléments du système concernant
uniquement le domaine d’application. Seul l’aspect connaissances des processus du point de
vue des utilisateurs est ici considéré. Les phases correspondant à ce niveau d’abstraction sont
les spécifications du système, l’étude préliminaire ainsi que l’analyse du domaine. Les acteurs
relatifs à un modèle conceptuel sont les utilisateurs et des concepteurs ayant, avant tout, une
connaissance effective du domaine métier considéré.
3.2 Le modèle logique :
Le modèle logique constitue l’expression d’une solution objet sans qu’on ait à considérer des
contraintes techniques particulières. Le modèle logique constitue la partie la plus importance

37
Chapitre 4 Développement par Approche Objet

supportée par la notation UML. Les phases correspondant au modèle logique sont une partie
de l’analyse, la conception et une partie de la conception détaillée. Les acteurs du modèle
logique sont des concepteurs expérimentés connaissant, bien entendu, la notation unifiée.
3.3 Le modèle physique :
Le modèle physique permet d’exprimer la solution technique informatique dans le contexte
réel en prenant en compte l’environnement de développement, l’architecture matérielle et
logicielle existante et les contraintes exprimées. Ce modèle correspond à une partie de la
conception et à la phase de codage. Les développeurs sont chargés de mettre en œuvre le
modèle physique. Ils doivent être expérimentés dans l’utilisation de l’environnement de
développement considéré. La connaissance, en tant que lecteur, d’un dossier de conception
réalisé en utilisant UML est requise.

4. Les outils de l’approche objet:[Pie02]


La programmation orientée objet, en abrégé POO, facilite la description et la manipulation
d’objets; le programmeur spécifie ce qu’il faut faire avec un objet, plutôt que comment le
faire. La programmation orientée objet permet d’organiser et d’exploiter des types abstraits de
données à l’aide des techniques :
−D’encapsulation,
−D’héritage,
−De liaison dynamiques et polymorphisme
Tout en créant objet individuel, classe d'objet, objet complexe,classes abstraites…
4.1 Les objets :
L’objet est une entité atomique formée de l’union d’un état et d’un comportement. Il fournit
une relation d’encapsulation qui assure à la fois une cohésion interne très forte et un faible
couplage entre le dit objet et l’extérieur. L’objet révèle son vrai rôle et sa vraie responsabilité
lorsque, par l’intermédiaire de l’envoi de messages, il s’insère dans un scénario de
communication.

Objet A Comportement visible


[Un état interne caché]

Chaque objet contient un état interne qui lui est propre et un comportement visible par les
autres objets.

38
Chapitre 4 Développement par Approche Objet

4.1-1 Caractéristiques fondamentales d’un objet :


La présentation des caractéristiques fondamentales d’un objet permet de répondre de manière
plus formelle à la question : qu’est ce qui définit un objet ? Tout objet présente les trois
caractéristiques suivantes : un état, un comportement et une identité.

Objet = Etat + Comportement + Identité

a- L’état :
L’état regroupe les valeurs instantanées de tous les attributs d’un objet (l’attribut est une
information qualifiant l’objet qui le contient).
L’état d’un objet, à un instant donné, correspond à une sélection de valeurs, parmi toutes les
valeurs possibles des différents attributs.
Le diagramme suivant montre une voiture qui contient les valeurs de trois attributs différents :
La couleur, la masse et la puissance fiscale dont la représentation graphique est:

Voiture

Couleur = bleu
Masse=979kg
Puissance= 12 cv

b- Le comportement :
Le comportement regroupe toutes les compétences d’un objet et décrit les actions et les
réactions de cet objet. Chaque atome de comportement est appelé opération. Les opérations
d’un objet sont déclenchées suite à une stimulation externe, représentée sous la forme d’un
message envoyé par un autre objet.
Dans le diagramme suivant, selon la valeur du message, l’opération1 ou l’opération2 est
déclenchée.

Un autre objet
Un message

Un objet
….}
{…
1
ation
Opér

….}
{…
2
ation
Opér

39
Chapitre 4 Développement par Approche Objet

c- L’identité :
Un objet possède une identité qui caractérise son existence propre. L’identité permet de
distinguer tout objet de façon non ambiguë, et cela indépendamment de son état.
Ainsi il est possible, entre autres, de distinguer deux objets dont toutes les valeurs d’attributs
sont identiques
L’identité est un concept, elle ne se représente pas de manière spécifique en modélisation.
Chaque objet possède une identité attribuée de manière implicite à la création de l’objet et
jamais modifiée.
4.1-2 Les messages entre les objets :
Les objets d’un système informatique travaillent en synergie pour réaliser les fonctions de
l’application.
-Le comportement global d’une application repose sur la communication entre les objets
qui la compose
-Il existe une grande richesse de communication entre les objets.
- Le message est la représentation des interactions entre les objets.
-Il relie de façon dynamique les objets qui ont été séparés par le processus de
décomposition
-Il est un intégrateur dynamique qui permet de reconstituer une fonction de l’application
par la mise en collaboration d’un groupe d’objets.
-Les messages sont représentés par des flèches placées le long des liens qui unissent les
objets

Élimine
: Héros : Ennemi

4.1-3 Formes de synchronisation de messages :


La notion de synchronisation précise la nature de la communication, et les règles qui régissent
le passage de messages.

: Expéditeur : Destinataire

-Envoi simple : (Un seul objet à la fois est actif)

40
Chapitre 4 Développement par Approche Objet

-Envoi synchrone : x (Expéditeur bloqué jusqu’à acceptation destinataire)

-Envoi dérobant : (Destinataire bloqué jusqu’à réception du message)

-Envoi minuté : ° (Bloque l’expéditeur pendant un temps donné)

-Envoi asynchrone : (N’interrompent pas l’exécution de l’expéditeur)

4.2-Les classes :
La classe décrit le domaine de définition d’un ensemble d’objets. Chaque objet appartient à
une classe. Les généralités sont contenues dans la classe et les particularités sont contenues
dans les objets. Les objets informatiques sont construit à partir de la classe, par un processus
appelé instanciation. De ce fait, tout objet est une instance de classe.

Classe A

<<instance de>> Où Objet A : Classe A

Objet A

4.2-1 Les attributs et les opérations :


Les attributs d’une classe correspondent aux propriétés de la classe. Ils sont définis par un
nom, un type et éventuellement une valeur initiale.

Lapin

Nom : string
buts
attri

Age : entier
2

41
Chapitre 4 Développement par Approche Objet

Chaque objet, instance d’une classe, donne des valeurs particulières à tous les attributs définis
dans sa classe et fixe par son état.
Il existe cinq principales catégories d’opérations :
- les constructeurs qui créent des objets.
- Les destructeurs qui détruisent des objets.
- Les sélecteurs (ou opérations de consultation) qui renvoient tout ou partie de
l’état d’un l’objet.
- Les modificateurs qui changent tout ou partie de l’état d’un objet.
- Les itératifs qui visitent l’état d’un objet ou le contenu d’une structure de
données qui contiennent plusieurs objets.
4.2-2 Représentation graphique des classes :
Chaque classe est représentée sous la forme d’un rectangle généralement divisé en trois
compartiments. Le premier compartiment contient le nom de la classe, le second les attributs
et le dernier les opérations. Par défaut, les attributs sont cachés et les opérations sont visibles.
Les compartiments peuvent être supprimés pour alléger les diagrammes.

Nom de classe Nom de classe

Attributs

Opérations ()

4.2-3 Description des classes :


La description des classes est séparée en deux parties :
- La spécification d’une classe qui décrit le domaine de définition et les propriétés des
instances de cette classe, et qui correspond à la notion de type telle qu’elle est définie
dans les langages de programmation classiques.
- La réalisation qui décrit comment la spécification est réalisée et qui contient le corps
des opérations nécessaires à leur fonctionnement.
Une classe passe un contrat avec d’autres classes ; elle s’engage à fournir les services publiés
dans sa spécification et les autres classes s’engagent à ne pas faire usage de connaissances
autres que celles décrites dans cette spécification.

42
Chapitre 4 Développement par Approche Objet

4.2-4 L’encapsulation :
L'encapsulation est un mécanisme consistant à rassembler les données et les méthodes au sein
d'une structure en cachant l'implémentation de l'objet, c'est-à-dire en empêchant l'accès aux
données par un autre moyen que les services proposés. L'encapsulation permet donc de
garantir l'intégrité des données contenues dans l'objet.
Il existe trois niveaux d’encapsulation :
-privé (-) : attribut non vu de l’extérieur d’objet.
-protégé (#) : attribut vu par des classes dérivées.
-public (+) : attribut visible pour toutes les classes.
4.3 Les relations entre les classes :
Les liens particuliers qui relient les objets peuvent être vus de manière abstraite dans le monde
des classes : à chaque famille de liens entre objets correspond une relation entre les classes de
ces mêmes objets. De même que les objets sont des instances des classes, les liens entre objets
sont des instances des relations entre classes.

Une association
Classe A Classe B

<<instance de>> <<instance de>> <<instance de>>

a- L’association :
Instance A : Classe A Instance B : Classe B
L’association exprime une connexion sémantique bidirectionnelle entre classes.
Un lien
Une association est une abstraction des liens existent entre les objets instances des classes
associées. Le diagramme suivant représente des objets liés entre eux et les classes associées
correspondantes.

Un lien
X : étudiant

F Abes : université

Un lien
Y : étudiant

Université Association Etudiant

43
Chapitre 4 Développement par Approche Objet

Les liens entre l’université et les étudiants sont des instances de l’association entre la classe
université et la classe étudiant.
Les associations se représentent de la même manière que les liens. La distinction entre un lien
et une association est opérée en fonction du contexte du diagramme. Il faut noter que
l’association est un concept de même niveau d’abstraction que les classes. L’association n’est
pas contenue par les classes ou subordonnée aux classes ; elle est le reflet d’une connexion
qui existe dans le domaine d’application.
-Le nommage des associations facilite la compréhension des modèles.
-Le rôle d’une association décrit comment une classe voit une autre classe à travers d’une
association.
a-1 La décoration des associations :
Pour améliorer la lisibilité des diagrammes, il est possible de décorer l’association d’une
forme verbale active ou passive.
Le sens de lecture est précisé par les signes < et >.

Héberge >
Université Etudiant

< Etudie dans


Université Etudiant
Il est possible de préciser le rôle des classes intervenant dans une association : un nom de rôle
peut être spécifié à chaque extrémité d’une association.

Etudiant
Université Personne
Employeur Enseignant

Chaque extrémité d’une association peut porter une information de multiplicité qui précise le
nombre d’instances qui participent à la relation. L’information de multiplicité apparait dans
les diagrammes de classes à proximité de la classe concernée et du rôle de cette classe, s’il est
spécifié. Le tableau suivant résume les valeurs de multiplicité les plus courantes.

1 Un et un seul
0..1 Zéro ou un
M..N De M à N (entiers naturels)
* De zéro à plusieurs
44
0..* De zéro à plusieurs
1..* D’un à plusieurs
Chapitre 4 Développement par Approche Objet

Etudiant
1 *
Université Personne
0..1 *
Employeur Enseignant

b- L’agrégation :
L’agrégation est une forme particulière d’association qui exprime un couplage plus fort entre
les classes. Une des clase joue un rôle plus important que l’autre dans la relation.
L’agrégation permet d’exprimer des relations de type maitre et esclaves.
Les agrégations représentent des connexions bidirectionnelles dissymétriques.

*
Agrégat Composant
*

c- La composition :
La composition est une forme d’agrégation avec un couplage plus important. Ce couplage de
composition indique que les composants ne sont pas partageables et que la destruction de
l’agrégat entraine la destruction des composants agrégés. Les termes conteneur et composite
sont parfois utilisés pour designer l’agrégat dans les relations de compositions. La valeur
maximale de multiplicité du coté du conteneur ne doit pas excéder 1 puisque les objets,
instances de la classe des composants, doivent tout appartenir au même objet conteneur. UML
offre deux possibilités pour la représentation de la composition :
-utilisation d’un losange plein, comme décoration de l’association du coté da la classe
composite.
-utilisation d’une représentation emboitée : la classe composite englobe les classes
composantes.

45
Chapitre 4 Développement par Approche Objet

Composite

Composite
Composant *
*
Composant

L’exemple suivant présente le cas des voitures, chaque voiture possède un moteur qui ne peut
être partagé entre plusieurs voitures. La destruction de la voiture entraine la destruction du
moteur.

1
Voiture 1 Moteur

4.4 Les hiérarchies de classes :


Les hiérarchies de classes ou classifications permettent de gérer la complexité on ordonnant
les objets au sein d’arborescences de classes d’abstraction croissante.
a- Généralisation et spécialisation :
La généralisation et la spécialisation sont des points de vue portés sur les hiérarchies de
classes. La généralisation consiste à factoriser les éléments communs (attributs, opérations et
contraintes) d’un ensemble de classes dans une classe plus générale appelé superclasse.
Les classes sont ordonnées selon une hiérarchie : une superclasse est une abstraction de ses
sous-classes. La généralisation est une démarche assez difficile car elle demande une bonne
capacité d’abstraction. La mise au point d’une hiérarchie optimale est délicate et itérative.
Les arbres de classes ne poussent pas à partir de leur racine. Au contraire, ils se déterminent
en partant des feuilles car les feuilles appartiennent au monde réel alors que les niveaux
supérieurs sont des abstractions construites pour ordonner et comprendre.
L’exemple suivant montre une hiérarchie des moyens de transport. La flèche qui symbolise la
généralisation entre deux classes pointe vers la classe plus générale.
Véhicule

Abstraction plus générale


Véhicule terrestre Véhicule aérien

46

Voiture Camion Avion Hélicoptère


Chapitre 4 Développement par Approche Objet

b- L’héritage :
L'héritage est un mécanisme destiné à exprimer les similitudes entre classes. Il met en œuvre
les principes de généralisation et de spécialisation en partageant explicitement les attributs et
méthodes communs au moyen d'une hiérarchie de classes.
Exemple :

Transporteur

Transporteur dynamique Transporteur statique

Chariot Convoyeur a Convoyeur a


Navettes
Filo-guide Bandes Accumulations

La classe fille hérite des caractéristiques de sa classe mère (attributs et méthodes) mais elle se
distingue par ses caractéristiques propres.
Il faudra distinguer : l'héritage simple, l'héritage multiple et l'héritage à répétition.
1- Héritage simple :
Une classe fille n'a qu'une seule classe mère et elle hérite d'une partie des attributs et
méthodes de celle-ci en ayant ses spécifications propres. Cette notion est celle qui est utilisée
dans les méthodes objets hiérarchiques (ex : HOOD).
2- Héritage multiple :
Une classe fille hérite de plusieurs classes mères. Elle hérite d'une partie des attributs et des
Animal
méthodes de chacune de ses classes mères, en plus de ses spécifications propres. Beaucoup de
langages à objets ne proposent pas d’héritage multiple.
Herbivore Carnivore

47

Omnivore
Chapitre 4 Développement par Approche Objet

c- Le polymorphisme :
Le terme de polymorphisme décrit la caractéristique d’un élément qui peut prendre plusieurs
formes.
En informatique, le polymorphisme désigne un concept de la théorie des types, selon lequel
un nom d’objet peut désigner des instances de classes différentes issues d’une même
arborescence.
La notion de polymorphisme recouvre en fait deux aspects :
-Le premier est la possibilité de surcharger des fonctions ou redéfinir des méthodes à
l’intérieur de classes dérivées. Dans le cas de la surcharge, c’est le nombre et le type des
arguments qui déterminent la version de la fonction à exécuter (liaison statique).
-Le deuxième aspect, dans le contexte de l’héritage, est celui qui permet de ne connaitre qu’au
moment de l’exécution du programme la version de la fonction à exécuter (liaison
dynamique).
5 Conclusion:
L'approche objet présente de nombreux avantage en terme d'abstraction, réutilisation et de
flexibilité.
Les outils de modélisation : objet et classe d'objet ainsi les principes de l'approche de
développement objet ont été présenté dans ce chapitre.
Dans le chapitre suivant on les utilise via le langage de modélisation unifiée UML pour
développer notre application.

48