Enseignement > Programmation orientée objet > Delphi > Premiers concepts  
  1. PETITE HISTOIRE DES LANGAGES INFORMATIQUES

    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

     

  2. ORIGINE DE LA PROGRAMMATION ORIENTEE OBJET

1. Améliorer les facteurs de qualité d'un logiciel

  • Validité : Aptitude à réaliser exactement les tâches définies par sa spécification.
  • Robustesse : Aptitude à fonctionner même dans des conditions anormales
  • Extensibilité : Facilité d'adaptation aux changements de spécification
  • Réutilisabilité : Aptitude à être repris pour de nouvelles applications
  • Compatibilité : Aptitude à être combiné avec d'autre logiciels
  • Efficacité : utilisation optimale des ressources du matériel et vitesse d'exécution
  • Portabilité : Aptitude à fonctionner dans des environnement différents
  • Intégrité : Aptitude à protéger ses composantes contre des modifications non autorisées
  • Ergonomie: Facilité d'utilisation

2. Améliorer la productivité de création d'un logiciel

  • Structuration : Aptitude décomposer les traitements et les données en structures clairement identifiées
  • Modularité : Aptitude construire une application selon une combinaison de plusieurs modules indépendants et réutilisables
  • Lisibilité : Facilité de compréhension du code
  • Vérifiabilité : Facilité pour effectuer des procédure de certification

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 :

  • un état
  • un comportement

Exemples d'objets du monde réel

  • Chien
    état = nom, couleur, race, poids....
    comportement = manger, aboyer, renifler...
  • Bicyclette
    état = nombre de vitesses, vitesse courante, couleur
    comportement = rouler, tourner, accélérer, changer de vitesse

Objet informatique

  • maintient son état dans des variables appelées attributs
  • implémente son comportement à l'aide de méthodes

Un objet informatique est le regroupement logiciel d'attributs et des méthodes associées

Exemple : Un rectangle est défini

  • par ses attributs : longueur, largeur, couleur
  • par son comportement déclenché par des méthodes: dessiner: calcul de son périmètre:calcul de sa surface

Un objet informatique a un cycle de vie :

  • construction (en mémoire)
  • utilisation
    • changements d'état par affectation
    • comportements par exécution de méthode
  • destruction

2. Définition d'une classe

Univers à modéliser
ê
distribution systématique en catégories selon des critères précis
ê
" classification "

Exemples :

  • Classification périodique des éléments
  • Systématique : classification des êtres vivants
  • Classification des ouvrages d'une bibliothèque
  • Classification des produits d'un supermarché
  • Hiérarchie

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.
Une classe permet d'instancier plusieurs objets. Chaque objet est instance d'une seule classe.

 

IV. IMPLEMENTATION DE LA PROGRAMMATION ORIENTEE OBJET

1 Langages

  • Smalltalk
  • C++
  • Java
  • Delphi

Différences :

  • Syntaxe
  • Méthode d'exécution
  • Gestion de la mémoire
  • Environnements

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

  • permet de concevoir, maintenir et exploiter facilement de gros logiciels.
  • nombreux avantages de la POO
  • Modularité : objets = modules compacts regroupant données et traitements.
  • Abstraction : objets informatiques proches de ceux du monde réel.
  • Modularité et encapsulation permettent une maintenance et une sûreté plus effective et plus simple de projets.
  • Accroît la productivité et la réutilisabilité