Approche fonctionnelle vs. approche objet (suite...)
 

 

q 

Résumé sur les concepts fondateurs de l'approche objet

Remarque :

Les langages orientés objet fournissent de nombreux autres mécanismes qui affinent ces concepts de base, favorisent la généricité du code ou améliorent sa robustesse.
 
 
q  L'approche objet, hier et aujourd'hui

  • Les concepts objet sont stables et éprouvés (issus du terrain)
     
    • Simula, 1er langage de programmation à implémenter le concept de type abstrait (à l'aide de classes), date de 1967 !
    • En 1976 déjà, Smalltalk implémente les concepts fondateurs de l'approche objet (encapsulation, agrégation, héritage) à l'aide de :
      • classes
      • associations entre classes
      • hiérarchies de classes
      • messages entre objets
    • Le 1er compilateur C++ date de 1980, et C++ est normalisé par l'ANSI.
    • De nombreux langages orientés objets académiques ont étayés les concepts objets : Eiffel, Objective C, Loops...
  • Les concepts objet sont anciens, mais ils n'ont jamais été autant d'actualité
     
    • L'approche fonctionnelle n'est pas adaptée au développement d'applications qui évoluent sans cesse et dont la complexité croit continuellement.
    • L'approche objet a été inventée pour faciliter l'évolution d'applications complexes.
  • De nos jours, les outils orientés objet sont fiables et performants
     
    • Les compilateurs C++ produisent un code robuste et optimisé.
    • De très nombreux outils facilitent le développement d'applications C++ :
      • générateurs d'IHM (Ilog Views, TeleUse...)
      • bibliothèques (STL, USL, Rogue Wave, MFC...)
      • environnements de développement intégrés (Developper Studio, Sniff+...)
      • outils de qualimétrie et de tests (Cantata++, Insure++, Logiscope...)
      • bases de données orientées objet (O2, ObjectStore, Versant...)
 
 
q  L'approche objet : une solution parfaite ?

  • En résumé, l'approche objet c'est :
     
    • Un ensemble de concepts stables, éprouvés et normalisés.
    • Une solution destinée à faciliter l'évolution d'applications complexes.
    • Une panoplie d'outils et de langages performants pour le développement.
  • Oui, MAIS...

    Malgré les apparences, il est plus naturel pour nos esprits cartésiens, de décomposer un problème informatique sous forme d'une hiérarchie de fonctions atomiques et de données, qu'en terme d'objets et d'interaction entre ces objets. De plus, le vocabulaire précis est un facteur d'échec important dans la mise en oeuvre d'une approche objet.

     
    • L'approche objet est moins intuitive que l'approche fonctionnelle !
      • Quels moyens utiliser pour faciliter l'analyse objet ?
      • Quels critères identifient une conception objet pertinente ?
      • Comment comparer deux solutions de découpe objet d'un système ?
    • L'application des concepts objets nécessite une grande rigueur !
      • Le vocabulaire est précis (risques d'ambiguïtés, d'incompréhensions).
      • Comment décrire la structure objet d'un système de manière pertinente ?
 
 
q  Quels sont les remèdes aux inconvénients de l'approche objet ?

  • Un langage pour exprimer les concepts objet qu'on utilise, afin de pouvoir :
     
    • Représenter des concepts abstraits (graphiquement par exemple).
    • Limiter les ambiguïtés (parler un langage commun).
    • Faciliter l'analyse (simplifier la comparaison et l'évaluation de solutions).
  • Une démarche d'analyse et de conception objet, pour :
     
    • Ne pas effectuer une analyse fonctionnelle et se contenter d'une implémentation objet, mais penser objet dès le départ.
    • Définir les vues qui permettent de couvrir tous les aspects d'un système, avec des concepts objets.
       

Bref :

il nous faut un outil qui apporte une dimension méthodologique à l'approche objet, afin de mieux maîtriser sa richesse et sa complexité.

 

 


page précédente


sommaire

© uml@free.fr - tous droits réservés


page suivante