0% ont trouvé ce document utile (0 vote)
36 vues15 pages

UML 2 Part1

Le document traite des concepts de la programmation orientée objet, en mettant l'accent sur des éléments clés tels que les objets, les classes, l'encapsulation, l'association, l'agrégation, la généralisation, la spécialisation, le polymorphisme et la persistance. Il souligne également les avantages de l'approche objet, notamment la modularité et la réutilisabilité des classes, qui facilitent le développement et la maintenance des applications. Enfin, il présente des exemples concrets pour illustrer ces concepts.

Transféré par

mysteria0103
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
36 vues15 pages

UML 2 Part1

Le document traite des concepts de la programmation orientée objet, en mettant l'accent sur des éléments clés tels que les objets, les classes, l'encapsulation, l'association, l'agrégation, la généralisation, la spécialisation, le polymorphisme et la persistance. Il souligne également les avantages de l'approche objet, notamment la modularité et la réutilisabilité des classes, qui facilitent le développement et la maintenance des applications. Enfin, il présente des exemples concrets pour illustrer ces concepts.

Transféré par

mysteria0103
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

UML 2

(Concept Objet)
AKEBOUE HERVE
Programmation Orienté Objet
• Introduction
Ces dernières années il y a eu une utilisation plus large des langages de
programmation objet de référence comme C++, C# et Java et
ensuite à l’introduction des concepts objet dans d’autres
langages comme par exemple VB.NET, Perl et même Cobol.
La mise en place d’importantes d’applications liées à
Internet(applications web) constitue une des principales
explications de ce phénomène.
Les concepts majeur sont :
✓ objet et classe,
✓ encapsulation et interface,
✓ association et agrégation de classes,
✓ généralisation et spécialisation de classe,
✓ polymorphisme,
✓ persistance.
Objet et Classe
• Objet
Un objet représente une entité du monde réel (ou du monde virtuel
pour les objets immatériels) qui se caractérise par un ensemble de
propriétés (attributs), des états significatifs et un comportement.
Un objet est responsable de ses comportements (actions).

• Classe
Une classe est l’abstraction d’un ensemble d’objets qui possèdent une
structure identique (liste des attributs) et un même comportement
(liste des opérations).

• Rapport
L’instanciation d’une classe est la création d’un objet
de la classe.
• Exemple
✓La voiture de Théodore a pour numéro
d’immatriculation 6838ET01, elle pèse 2T, elle est
blanche, elle a 145 000 kilomètres au compteur.
Cette voiture peut démarrer, s’arrêter, accélérer,
décélérer, et tourner.
✓Considérons l’employé Syriac, n° 1245, embauché
en tant qu’ingénieur travaillant sur le site DANGA.
Dans les 2 cas, l’objet est caractérisé par la liste
de ses attributs et son état est représenté par
les valeurs de ses attributs. le comportement
est caractérisé par les opérations qu’il
peuvent exécuter.
Cas 1 : CLASSE OBJET

Voiture numIm : 6838ET01


numIm poids : 2T
poids couleur : blanche
couleur kilometrage : 145000
kilométrage
demarrer()
arreter()
accelerer()
decelerer()
tourner()
Encapsulation et Interface
• Encapsulation et Interface

L’approche objet/classe se caractérise par le regroupement dans une même classe de


la description de la structure des attributs et de la description des opérations
Objet/Classe a deux aspects :
Interface : vue externe de l’objet
Corps : implémentation des comportements (opérations) et des attributs.
Les données ne sont accessibles qu’à partir d’opérations définies dans la classe. Le
principe d’encapsulation renforce l’autonomie et l’indépendance de chaque classe
et donne une potentialité accrue de définition de classe réutilisable
D’un objet, un utilisateur ne connaît que l’interface. L’implémentation est
masquée et non accessible à l’utilisateur.
• Un utilisateur/programmeur peut utiliser une classe (créer/manipuler des objets
de la classe) sans connaître le corps de la classe [sans être concepteur de la
classe]. Si la classe est correctement définie, l’utilisateur « bridé » ne peut
pas violer l’intégrité de l’objet [par exemple, transformer une liste ordonnée en
une liste non-ordonnée].
• Le concepteur peut modifier le corps d’une classe. Si l’interface de la classe
n’est pas modifiée alors les utilisateurs (programmes) de la classe ne doivent pas
être pas affectés par les modifications du corps.
Exemple
Il existe quatre visibilités prédéfinies.
Public ou + : tout élément qui peut voir le conteneur peut également
voir l’élément indiqué.
Protected ou # : seul un élément situé dans le conteneur ou un de ses
descendants peut voir l’élément indiqué.
Private ou - : seul un élément situé dans le conteneur peut voir
l’élément.
Package ou ∼ ou rien : seul un élément déclaré dans le même
paquetage peut voir l’élément.
Association et Agrégation de classes
• L’association représente une relation entre plusieurs
classes. Elle correspond à l’abstraction des liens qui
existent entre les objets dans le monde réel. Les
multiplicités (ou cardinalités) et les rôles des objets
participant aux relations complètent la description
d’une association.
• L’agrégation est une forme particulière d’association
entre plusieurs classes. Elle exprime le fait qu’une
classe est composée d’une ou plusieurs autres classes.
La relation composant-composé ou la relation
structurelle représentant l’organigramme d’une
entreprise sont des exemples types de la relation
d’agrégation.
Exemple
Une agrégation est une association qui représente une relation d’inclusion
structurelle ou comportementale d’un élément dans un ensemble.
Graphiquement, on ajoute un losange vide (♦) du côté de l’agrégat.
Contrairement à une association simple, l’agrégation est transitive.
La composition, également appelée agrégation composite, décrit une
contenance structurelle entre instances. Ainsi, la destruction de l’objet
composite implique la destruction de ses composants. Une instance de la
partie appartient toujours à au plus une instance de l’élément composite :
la multiplicité du côté composite ne doit pas être supérieure à 1 (i.e. 1 ou
0..1). Graphiquement, on ajoute un losange plein (✦) du côté de l’agrégat
Généralisation et Spécialisation de
classe
• 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.
• La généralisation-spécialisation est un des mécanismes les plus
importants de l’approche objet qui facilite la réutilisation des classes.
Spécialisation
Généralisation
Exemple
Polymorphisme
• Le polymorphisme est la capacité donnée à une même opération de
s’exécuter différemment suivant le contexte de la classe où elle se
trouve.
Ainsi une opération définie dans une super-classe peut s’exécuter
de manière différente selon la sous-classe où elle est héritée. En fait
lors de l’exécution, l’appel de l’opération va automatiquement
déclencher l’exécution de l’opération de la sous-classe concernée.
Dans le déroulement de l’exécution de l’opération de la sous-classe,
il est possible de faire appel à l’opération de la super-classe qui
contient en général la partie commune applicable aux deux
sousclasses.
Exemple
abstract class Forme
{
abstract float aire() ;
}

class Carre extends Forme


{
float cote;
float aire()
{ return cote * cote; }
}

class Cercle extends Forme


{
float rayon;
float aire()
{ return Math.PI*rayon*rayon; }
}
Persistance
• La persistance est la propriété donnée à un objet
de continuer à exister après la fin de l’exécution
du programme qui l’a créé.
Par défaut dans l’approche objet, aucun objet
n’est persistant. Les modèles décrivent le système
en exécution en mémoire centrale et ne tiennent
pas compte a priori de l’état du système qui doit
être stocké sur disque.
La gestion de la mémoire incombe au
programmeur avec notamment le problème de la
libération des espaces.
Avantages du développement avec les
langages objet
Par rapport à une approche fonctionnelle associée à un développement classique mené à l’aide de
langages procéduraux, on est en droit de s’interroger sur les avantages qu’apporte réellement le
développement à l’aide d’un langage objet comme par exemple C++, C# ou Java.

En fait, deux avantages prépondérants sont mis en général en avant lorsque l’on choisit une approche
objet :
• La modularité – Par construction, étant donné que l’on conçoit des classes représentant une entité de
taille limitée en données et en opérations, il est plus aisé de construire des systèmes modulables
que si l’on élabore une seule base de données d’une part et un seul logiciel d’autre part.

• La réutilisabilité – La définition d’un système à l’aide de classe ayant chacune la responsabilité d’un
sous-ensemble de données et des opérations associées favorise fortement la potentialité de
trouver des classes réutilisables. La réutilisation de classe se réalise soit sur le plan métier à
l’intérieur d’une même entreprise dans des applications différentes, soit sur le plan
technique à l’échelle de tous les développements réalisés à l’aide d’un même langage. Sur ce
dernier aspect, c’est toute l’approche du développement par composant qui est en jeu.

Au-delà de ces deux avantages majeurs et compte tenu de la plus grande modula rité dans la
construction d’une application à l’aide d’objets, la maintenance élémentaire de chaque classe est
en soi plus simple à réaliser que celle d’un logiciel unique traitant toutes les données d’un système.
Il importe bien entendu dans l’approche objet de construire son système en veillant à minimiser le
nombre de relations entre classes.

Vous aimerez peut-être aussi