820 : Al Khowarizmi publie " La science de l'élimination et de la réduction "
1840 : Ada Lovelace - principe des itérations: algorithme.
1854 : Boole - tout processus logique peut être décomposé en une suite d'opérations logiques (ET, OU, NON) appliquées sur deux états (ZERO-UN)
1950 : Maurice V. Wilkes (Cambridge) invente l'assembleur.
1951 : Grace Murray Hopper - 1er compilateur A0
1957 : John Backus (IBM) : FORTRAN (FORmula TRANslator)
1958 : Idée d'un langage standard universel : ALGOL 58 (ALGOrithmic Language).
1958 : John Mc Carthy (MIT) crée LISP (LISt Processing)
1960 : COBOL (COmmon Business Oriented Language)
1962 : Kenneth Iverson crée APL (A Programming Language).
1964 : Thomas Kurtz et John Kemeny créent le BASIC (Beginner's All-purpose Symbolic Instruction Code)
1964 : IBM crée le PL/I (Programming Language I).
1964 : code ASCII (American Standard Code for Information Interchange), normalisé en 1966 par l'ISO
1966 : LOGO est crée par une équipe chez BBN
1968 : Création du langage PASCAL par Niklaus Wirth.
1970 : Ken Thompson (UNIX) crée en le langage B
1971-1973 : Dennis Ritchie reprend le langage B et défini le langage C. Les développements et les succès du langage C et d'UNIX sont intimement liés.
1972 : 1er langage orienté objet, SmallTalk par Alan Kay au Xerox PARC.
1979 : ADA développé par Jean Ichbiah (Honeywell Bull) choisi par le Pentagone Américain comme unique langage
1983 : Bjarn Stroustrup développe une extension orientée objet au langage C : le C++.
1990 : Développement de JAVA par SUN
1994 : HTML développé au CERN
1995 : Delphi développé par Borland : Pascal orienté objet
http://histoire.info.online.fr
1. Améliorer les facteurs de qualité d'un logiciel
2. Améliorer la productivité de création d'un logiciel
3. Améliorer la maintenance d'un logiciel
Lisibilité + Modularité + Réutilisabilité permettent une maintenance aisée d'un logiciel
III. DEFINITION DE LA PROGRAMMATION ORIENTEE OBJET
Modéliser un ensemble d'éléments d'une partie du monde réel (que l'on appelle domaine) en un ensemble d'entités informatiques appelées objets.
1. Définition d'un objet
Le monde qui nous entoure est composé d'objets. Ces objets ont tous deux caractéristiques :
Exemples d'objets du monde réel
Objet informatique
Un objet informatique est le regroupement logiciel d'attributs et des méthodes associées
Exemple : Un rectangle est défini
Un objet informatique a un cycle de vie :
2. Définition d'une classe
Univers à modéliserExemples :
Une classe est un modèle de définition pour des objets partageant des caractéristiques communes, mais l'état de chaque objet est indépendant des autres
Les objets sont des représentations dynamiques (instances) du modèle défini au travers de la classe.
IV. IMPLEMENTATION DE LA PROGRAMMATION ORIENTEE OBJET
1 Langages
Différences :
Ce cours utilisera la syntaxe du langage DELPHI.
2. Eléments de base de notation
Exemple : Une classe définissant un compte bancaire
TYPE TCompte = Classe ;
numero : integer ;
solde : real ;
function crediter(montant : real) : real ;
end;
function TCompte.crediter(montant : real) : real;
begin
solde := solde + montant;
crediter := solde ;
end ;
3. Constructeur
Un constructeur est une méthode de classe permettant de créer (instancier) des objets de cette classe.
Le constructeur réserve en mémoire l'emplacement permettant de définir l'objet.
var monCompte = TCompte ;
monCompte := TCompte.Create ;
Un constructeur peut admettre des paramètres
var monCompte = TCompte ;
monCompte := TCompte.Create(depot) ;
4. Destructeur
Un destructeur est une méthode permettant de libérer l'espace mémoire occupé par l'objet.
monCompte.free ;
5. Manipulation d'objets
Accès aux attributs et aux méthodes des objets : notation pointée
var monCompte = TCompte ;
monCompte := TCompte.Création ;
compte.solde := 500;
compte.crediter (300);
Limititaion la visibilité des attributs vis à vis des autres classes :
private, public déterminent la portée des attributs et de méthodes d'un objet.
TYPE Tcompte = Classe ;
private
numero : integer ;
solde : real ;
public
fonction crediter(montant : real) : real;
fonction débiter(montant : real) : real;
fonction numeroCompte () : numeroCompte;
V. CONCLUSION
Motivation et avantages de la POO