Génie Logiciel

Cours : Génie Logiciel et Programmation Orienté Objet (GL et POO)
Partie 1 : La programmation orienté Objets
1. Pourquoi l’orienté objet
Avant la programmation objets il y a la programmation procédurale. La pogrammation procédurale (C, Pascal, Basic, …) est constituée d’une suite d’instructions (souvent réunies en fonctions) exécutées par une machine. Ces instructions ont pour but d’agir sur des données pour produire un effet quelconque.

Figure 1. Schéma d’un programme écrit avec un langage procédural.
Les fonctions, procédures et autres suites d’instructions accèdent à une zone où sont stockées les données. Il y a donc une dissociation entre les données et les fonctions ce qui pose des difficultés lorsque l’on désire changer les structures de données.
Inconvénient :
- Dans les langages procéduraux, les procédures s’appellent entre elles et peuvent donc agir sur les mêmes données provoquant ainsi des effets de bord. Les procédures s'appellent entre elles et peuvent modifier les mêmes données. Ceci implique un problème lorsqu'on veut modifier une procédure: comment avait elle été appelée ?
- Cette méthode oblige le développeur à penser de manière algorithmique
- L’approche algorithmique est en général proche du langage de la machine
- Le développeur doit faire un effort supplémentaire pour structurer le programme
- Le procédural est très éloigné de notre manière de penser
- Le code est peu lisible et difficile à modifier, à maintenir (l’ajout de fonctionnalités est difficile)
- Réutilisation du code incertaine
- Le travail d’équipe est délicat
Finalement, il est peut-être plus simple de s’inspirer du monde réel. Le monde réel est composé d’objets, d’êtres vivants, de matière. Pourquoi ne pas programmer de manière plus réaliste ?

Les objets ont des propriétés : Un chat à 4 pattes, un serpent aucune. Les objets ont une utilité, une ou plusieurs fonctions. Exemple: Une voiture permet de se déplacer, Un couteau peut couper. Alors, plutôt que de focaliser sur les procédures, intéressons nous d’avantage aux données.
De ces problèmes et de cette analyse, sont issus une autre manière de programmer : la programmation par objet.
Vers la programmation par objets
Un programme est vu comme un ensemble d’entités, une société d’entités. Au cours de son exécution, ces entités collaborent en s’envoient des messages dans un but commun.


Figure 2. Comparaison des deux topologies de programmation.

Nous avons dans ce schéma un lien fort entre les données et les fonctions qui y accèdent (tant pour les consulter que pour les créer). Mais qu’appelle-t-on un objet ? Que représente un objet ?
Qu’est-ce qu’un objet ?
Un élément qui modélise toute entité, concrète ou abstraite, manipulée par le logiciel, exemple : Une voiture avec 4 roues, un volant, un moteur, ….
L’objet est un élément qui réagit à certains messages qu’on lui envoie de l’extérieur. C’est son comportement, ce qu’il sait faire, exemple : Avec cette voiture, je peux tourner, accélérer, freiner, …
L’objet est un élément qui ne réagit pas toujours de la même manière, son comportement dépend de l’état dans lequel il se trouve. Exemple : Essayez de démarrer sans essence !!?
L’objet est l’élément central de la POO.
Notions manipulées dans le monde des objets : objets, encapsulation, message, classe, héritage et polymorphisme,…etc.



Return to top