Le travail de développeur consiste à modéliser un problème puis à le résoudre en traduisant son modèle dans un langage de programmation. Le développeur exprime les problèmes dans un langage de programmation dont le style est le plus adéquate pour la réalisation du problème posé.
Il existe plusieurs différents styles d’écriture d’un programme informatique, appelés « paradigmes de programmation ». Il est important de choisir le langage qui supporte le ou les paradigmes permettant de donner une bonne solution aux type de problèmes rencontrés. Parmi les paradigmes de programmation les plus importants on distingue:
- la programmation déclarative ou procédurale
- la programmation orientée objet
- la programmation fonctionnelle
Impératif: Procédural
Un programme qui soutient le paradigme Procédural ou Impératif est organisé comme un ensemble modules encapsulant certaine fonctionnalités du problème à résoudre. Ces modules sont implémentés comme des sous-programmes (procédures ou fonctions) et sont appelées en séquence par une suite d’instructions. Le langage C et le langage Pascal sont deux exemples de langages procéduraux.
Un sous-programme aussi appelé routine, procédure ou fonction contient simplement une série d’instructions à réaliser qui peut être appelé à n’importe quelle étape de l’exécution du programme, y compris à l’intérieur d’autres sous-programmes.
Programmation fonctionnelle ou déclarative
Dans la programmation fonctionnelle, un programme est défini avec des fonctions dites « pures » lorsqu’elle donne toujours le même résultat avec les mêmes arguments: elle est déterministe, indépendante du reste du système et n’a pas de mémoire. Ce paradigme offre la particularité de produire des programmes s’ils sont corrects à un moment donné de le rester pour toujours. Les fonctions sont des entités dites « de première classe » car elles peuvent êtres des arguments et des résultats d’autres fonctions.
Dans le paradigme procédural un programme peut être considéré comme un ensemble de données sur lesquelles agissent des procédures ou fonctions. cette conception implique un grande dichotomie entre la partie statique « les données » et la partie dynamique « les procédures et fonctions ». Dans cette approche, le développeur doit toujours s’assurer qu’une procédure s’applique bien aux données pour lesquelles il a été défini.
Programmation objet
Depuis les années 1970, la programmation orientée objets s’est largement répandue dans le monde informatique. Elle propose une nouvelle approche de la programmation qui doit son intérêt à un mariage entre traitement et données. En programmation « orientée-objet » un programme est essentiellement un ensemble d’entités appelées objets auxquelles sont associées des actions ou opérations bien spécifiques. Contrairement au paradigme procédural, le paradigme orienté objet assure ainsi la cohérence des données avec les traitements qui les concernent. Pour ce faire le concept d’encapsulation a été introduit pour renforcé la compatibilité d’un traitement et de ses données.
Elle étend la programmation déclarative avec l’abstraction de données, l’état explicite, le polymorphisme et l’héritage. L’abstraction de données permet le partitionnement des programmes en parties peuvant être développées indépendamment.
Le père des langages « orientée-objet » est Smalltalk dont la première version a vue le jour en 1972. Héritiers des langages à type abstraits de données et des langages de représentation des connaissances, les langages « orientée-objet » constituent un pas supplémentaire vers une plus grande modularité des programmes.
Elle étend la programmation déclarative avec l’abstraction de données, l’état explicite, le polymorphisme et l’héritage. L’abstraction de données permet le partitionnement des programmes en parties peuvant être développées indépendamment.
Une application objet met en œuvre un certain nombre d’objets encapsulant données et traitements et communiquant entre eux par l’intermédiaire d’envois de messages. Ceux-ci sont à la programmation orientée objet ce que sont les appels de sous-programmes à la programmation structurée.
Un objet peut être défini comme une entité possédant un état interne, sur lequel il est possible d’exercer des actions et possédant des propriétés. Actions et propriétés correspondent à ce que l’objet donne à voir de lui-même au monde extérieur, c’est à dire à sa partie publique. L’état correspond à la partie privée de l’objet : lui seul a accès, en général, à la totalité de cet état.Un objet possède donc, à la façon d’un iceberg, une partie publique et une partie privée :
Le concept de Classe a été défini pour servir de modèle pour tous les objets ayant des comportements communs et qui la représente. Ce modèle décrite donc une structure qui comprend la partie statique de l’objet des Variables, appelées Champs ou Attributs et des traitement s’appliquant sur ces attributs, les Méthodes.
Le rôle des attributs sont les données représentant la partie statique de l’objet qui permettent de décrire les propriétés communes es objets de la clessse.
En revanche les méthodes constituent, la partie dynamique ce sont les procédure décrivant le comportement communs
Autrement dit , définir une classe d’objets revient à définir une structure de données avec des traitements pout manipuler ces données.