Chapitre1
Développement oriente objet
1.1 Introduction
Un système informatique est un système complexe,
qui répond à des besoins issus du <<monde réel
» et non pas des contraintes des ordinateurs sur lesquels il sera
réalisé [Sommerville2001]. Le tout est de faire le pont entre les
deux : exprimer une << modélisation du monde réel >>
en termes de langage de programmation fatalement lié à
l'ordinateur. Cette dichotomie a de tout temps existé pour
l'informatique. Si on tient compte du très jeune âge de cette
discipline relativement à d'autres domaines scientifiques, il
paraît évident que les techniques les plus récentes sont
les plus adéquates. Mais de quoi s'agit-il au juste ? De la
modélisation du <<monde réel » à l'aide des
techniques orientées-objet et de la programmation qui porte le
même nom. Mais les deux ne sont pas indissociables, comme le prouvent des
environnements très évolués, complexes, performants et
fiables tels que X/Windows, Motif et DCE (tous disponible pour les
plates-formes les plus courantes) conçus orienté-objet et
réalisés en C [Lemesle2000].
1.2 Paradigme Oriente Objet
On classe souvent les langages de programmation en trois familles
: - impératifs (comme les assembleurs, C, Perl, ...) ;
- fonctionnels (comme lisp, schème,...);
- objets (comme C++, Java,. . .).
En fait, cette classification doit plus s'entendre comme des
philosophies différentes dans l'approche de la programmation et les
langages implémentent même souvent plusieurs de ces aspects. Ces
trois philosophies sont complémentaires en fonction des situations.
permettre à une entreprise de concevoir et
développer un logiciel sur une durée de plusieurs années,
il est nécessaire de structurer les différentes parties du
logiciel de manier efficace. Pour cela, des règles précises de
programmation sont établies, afin que les différents groupes de
personnes intervenant sur un même logiciel puissent échanger leurs
informations. En pratique, on a constaté que malgré
l'instauration de règles, l'adaptation ou la réutilisation d'une
partie programme nécessitait généralement une modification
très importante d'une grande partie du code.
La programmation orientée objet est donc apparue avec,
pour objectifs principaux :
- Comprendre l'organisation de grands projets informatiques
autour d'entités précisément structurés,
mélange des données et des fonctions (les objets) facilitant la
modélisation de concepts sophistiqués :
- Améliorer la sureté des logiciels en proposant
un mécanisme simple et flexible des données sensibles de chaque
objet en ne les rendant accessibles que par le truchement de certaines
fonctions associées à l'objet (encapsulation) afin que celles-ci
ne soient pas accessibles à un programmeur inattentif ou malveillant.
- Simplifier la réutilisation de code en permettant
l'extensibilité des objets existants (héritage) qui peuvent alors
être manipulés avec les mêmes fonctions (polymorphisme).
La Programmation Orientée Objet est dirigée par
3 fondamentaux qu'il convient de toujours garder à l'esprit :
encapsulation, héritage et polymorphisme.
1.2.1 Encapsulation
L'encapsulation introduit une nouvelle manière de
gérer des données. Il ne s'agit plus de déclarer des
données générales puis un ensemble de procédures et
fonctions destinées à les gérer de manière
séparée, mais bien de réunir le tout sous le couvert d'une
seule et même entité [Dev].
Ce concept se cache également un autre
élément à prendre en compte : pouvoir masquer aux yeux
d'un programmeur extérieur tous procédures et fonctions
destinées à la gestion interne de l'objet, auxquelles le
programmeur final n'aura pas à avoir accès. Comme il montre la
figure 1.1.
Paradigme Procédurale
Procédure
Variable
Variable
Procédure
Fonction
Variable
Attribut
Variable
Attribut
Paradigme Objet
Méthode
Méthode
Figure 1.1- Encapsulation.
|