Vous êtes sur la page 1sur 3

PROGRAMMATION JAVA – LICENCE 2

Chapitre I : Introduction à la POO


Depuis son invention dans les années 1950, l'informatique a révolutionné bien des domaines de notre vie
quotidienne. Le calcul d'un itinéraire depuis un site Internet ou un GPS, la réservation à distance d'un billet de
train ou d'avion ou encore la possibilité de voir et de parler avec des amis à l'autre bout du monde : tous ces actes
courants sont possibles grâce aux ordinateurs.

Cependant un ordinateur, même très performant, n'est qu'une machine capable d'exécuter
automatiquement une série d'opérations simples qu'on lui a demandées. Il ne dispose par lui-même d'aucune
capacité d'apprentissage, de jugement, d'improvisation, bref d'aucune "intelligence". Il se contente de faire ce
qu'on lui dit de faire. L'intérêt des ordinateurs est de savoir manipuler très rapidement et sans erreur d'énormes
quantités d'informations.

Une intervention humaine est nécessaire pour qu'un ordinateur puisse accomplir des tâches utiles. C'est le
rôle du programmeur (appelé également développeur). Il va fournir les ordres que la machine doit exécuter en
écrivant des programmes.

I. Définitions
 Programme : Un programme informatique (également appelé application ou logiciel) est une liste
d'ordres indiquant à un ordinateur qu'il doit faire. Il se présente concrètement sous la forme d'un
ou (le plus souvent) plusieurs fichiers contenant des commandes textuelles : ce sont les ordres
donnés à la machine, qu'on appelle également des instructions.
 Code source : L'ensemble des fichiers contenant les instructions du programme
 Un langage de programmation définit une manière de donner des ordres à un ordinateur. Un peu
comme une langue vivante, tout langage a son vocabulaire (un ensemble de mots-clés, chacun
jouant un rôle spécifique) et sa grammaire (un ensemble de règles définissant la manière d'écrire
des programmes dans ce langage).

II. Types de langages


Il existe un grand nombre de langages de programmation, adaptés à des usages variés. Chaque langage de
programmation dispose de sa propre syntaxe et d'instructions spécifiques. On peut faire une analogie avec les
langues étrangères : avant de pouvoir parler telle ou telle langue, il faut l'étudier afin de connaître ses spécificités.

On distingue alors plusieurs générations dans les langages de programmation :

 Génération 1 : Programmation Spaghettis : sa logique est celle de saut « goto ». On remarque ainsi
une absence totale d'entités autonomes et modifiables indépendamment du reste du programme.
Le code et les données sont étroitement imbriqués. Comme exemple de langage ici on a :
Assembleur, Fortran I, Basic
 Génération 2 : Programmation Structurée :la logique de cette génération est de produire une
expression séparée des données et des traitements. On observe alors des données possédant des
types, et la possibilité de créer des types complexes. De plus, les structures de contrôle sont venues
remplacées les sauts. Et, on peut avoir des sous programmes et une compilation séparée. Les
langages de cette génération sont : Pascal, C, Algol, Perl etc.

FABRICE PEGOFFA 3
PROGRAMMATION JAVA – LICENCE 2

 Génération 3 : Programmation par Objets : on retrouve ici une certaine modularité qui regroupe
les données et les traitements dans une mm entité appelé objet. Les objets peuvent être vus
comme des tentatives de simuler une situation réelle (objets « chronomètre », « voiture »). Les
objets réels ne sont ni des traitements purs, ni des données pures mais une combinaison des deux.
Les langages de cette génération sont : Simula, SmallTalk, Eiffel, C++, Pascal objet, Java, C#, Python

III. La différence entre la programmation structurée et la programmation


orienté objet

La programmation procédurale

 Centrée sur les procédures (opérations)

o Décomposition des fonctionnalités d'un programme en procédures qui vont s'exécuter


séquentiellement

 Couplage procédures/données

o Les données sont indépendantes procédures

o Les données à traiter sont passées en arguments aux procédures

 Ressemble peu à notre schème de penser

o Vue algorithmique d'un programme donc très près du langage de la machine

o Le programmeur doit faire un effort cognitif pour interpréter ce qu'il veut modéliser pour être
"compris" par la machine

o Peu intuitif lors de l'analyse d'un code existant

 Tend à générer du code "Spaghetti"

o La maintenance et l'ajout de nouvelles fonctionnalités demandent de modifier ou d'insérer des


séquences dans ce qui existe déjà

o Peu devenir complexe très rapidement

o Modularité et abstraction absente (ou presque)

o Réutilisation ardue => "Couper-coller" = DANGER !

o Travail d'équipe difficile (peu modulaire), donc la qualité du code en souffre

FABRICE PEGOFFA 4
PROGRAMMATION JAVA – LICENCE 2

La POO

 Centrée sur les données

o Tout tourne autour des "objets" qui sont des petits ensembles de données représentants leurs
propriétés

Les principaux problèmes de la programmation Structurée sont :

 Difficulté de réutilisation du code


 Critères de qualité facilement violés : modularité, lisibilité
 Danger du « Code spaghetti »
 Difficulté de maintenir les grandes applications

FABRICE PEGOFFA 5

Vous aimerez peut-être aussi