Les livres sur l'orienté objetConsultez tous les livres
Dernière mise à jour : 22 septembre 2013
- La programmation orientée objet - cours et exercices en UML 2 avec Java 6, C#4, C++, Python, PHP 5 et LinQ
- L'orienté objet
- Conception et programmation orientées objet
- Analyse et conception orientées objet - Tête la première
- Object-Oriented Thought Process, 2nd edition
La programmation orientée objet - cours et exercices en UML 2 avec Java 6, C#4, C++, Python, PHP 5 et LinQ
Résumé de l'éditeur
L'approche objet est enseignée dans les universités dès les premiers niveaux des cursus informatiques, car sa compréhension est le prérequis indispensable à toute pratique économe, fiable et élégante de la plupart des techniques informatiques qui en sont dérivées, depuis Java et Python, jusqu'à UML 2, en passant par .Net et C++.
L'objet par la pratique avec Python, Java, C# et C++ et PHP 5... en UML 2
Cette cinquième édition de l'ouvrage L'orienté objet décortique l'ensemble des mécanismes de la programmation objet (classes et objets, interactions entre classes, envois de messages, encapsulation, héritage, polymorphisme, interface, multithreading, sauvegarde des objets, programmation distribuée, modélisation...) en les illustrant d'exemples empruntant aux technologies les plus populaires : Java et C#, C++, Python, PHP 5, UML 2, LinQ mais aussi les services web, Cobra, les bases de données objet, différentes manières de résoudre la mise en correspondance relationnel/objet dont le langage innovant de requête objet LinQ et enfin les design patterns. Chaque chapitre est introduit par un dialogue vivant, à la manière du maître et de l'élève et se complète de nombreux exercices en UML 2, Java, Python, PHP 5, C# et C++.
À qui s'adresse ce livre ?
Ce livre sera lu avec profit par tous les étudiants de disciplines informatiques liées à l'approche objet (programmation orientée objet, modélisation UML, Java, Python, PHP 5, C#/C++...) et pourra être utilisé par leurs enseignants comme matériel de cours. Il est également destiné à tous les développeurs qui souhaitent approfondir leur compréhension des concepts objet sous-jacents au langage qu'ils utilisent.
Édition : Eyrolles
ISBN10 : 2212128061
ISBN13 : 9782212128062
Avant-propos
- L'orientation objet en deux mots
- Objectifs de l'ouvrage
- Plan de l'ouvrage
- À qui s'adresse ce livre ?
Principes de base : quel objet pour l'informatique ?
- Le trio <entité, attribut, valeur>
- Stockage des objets en mémoire
- L'objet dans sa version passive
- L'objet dans sa version active
- Introduction à la notion de classe
- Des objets en interaction
- Des objets soumis à une hiérarchie
- Polymorphisme
- Héritage bien reçu
- Exercices
Un objet sans classe. n'a pas de classe
- Constitution d'une classe d'objets
- La classe comme module fonctionnel
- La classe comme garante de son bon usage
- La classe comme module opérationnel
- Un premier petit programme complet dans les cinq langages
- La classe et la logistique de développement
- Exercices
Du faire savoir au savoir-faire. du procédural à l'OO
- Objectif objet : les aventures de l'OO
- Mise en pratique
- Analyse
- Conception
- Impacts de l'orientation objet
Ici Londres : les objets parlent aux objets
- Envois de messages
- Association de classes
- Dépendance de classes
- Réaction en chaîne de messages
- Exercices
Collaboration entre classes
- Pour en finir avec la lutte des classes
- La compilation Java : effet domino
- En C#, en Python, PHP 5 et en C++
- De l'association unidirectionnelle à l'association bidirectionnelle
- Autoassociation
- Package et namespace
- Exercices
Méthodes ou messages ?
- Passage d'arguments prédéfinis dans les messages
- Passage d'argument objet dans les messages
- Une méthode est-elle d'office un message ?
- La mondialisation des messages
- Exercices
L'encapsulation des attributs
- Accès aux attributs d'un objet
- Encapsulation : pour quoi faire ?
- Exercices
Les classes et leur jardin secret
- Encapsulation des méthodes
- Les niveaux intermédiaires d'encapsulation
- Afin d'éviter l'effet papillon
- Exercices
Vie et mort des objets
- Question de mémoire
- C++ : le programmeur est le seul maître à bord
- En Java, C#, Python et PHP 5 : la chasse au gaspi
- Exercices
UML 2
- Diagrammes UML 2
- Représentation graphique standardisée
- Du tableau noir à l'ordinateur
- Programmer par cycles courts en superposant les diagrammes
- Diagrammes de classe et diagrammes de séquence
- Diagramme de classe
- Les bienfaits d'UML
- Diagramme de séquence
- Exercices
Héritage
- Comment regrouper les classes dans des superclasses
- Héritage des attributs
- Héritage ou composition ?
- Économiser en rajoutant des classes ?
- Héritage des méthodes
- La recherche des méthodes dans la hiérarchie
- Encapsulation protected
- Héritage et constructeurs
- Héritage public en C++
- Le multihéritage
- Exercices
Redéfinition des méthodes
- La redéfinition des méthodes
- Beaucoup de verbiage mais peu d'actes véritables
- Un match de football polymorphique
- Exercices
Abstraite, cette classe est sans objet
- De Canaletto à Turner
- Des classes sans objet
- Du principe de l'abstraction à l'abstraction syntaxique
- Un petit supplément de polymorphisme
- Exercices
Clonage, comparaison et assignation d'objets
- Introduction à la classe Object
- Décortiquons la classe Object
- Test d'égalité de deux objets
- Le clonage d'objets
- Égalité et clonage d'objets en Python
- Égalité et clonage d'objets en PHP 5
- Égalité, clonage et affectation d'objets en C++
- En C#, un cocktail de Java et de C++
- Exercices
Interfaces
- Interfaces : favoriser la décomposition et la stabilité
- Java, C# et PHP 5 : interface via l'héritage
- Les trois raisons d'être des interfaces
- Les Interfaces dans UML 2
- En C++ : fichiersh et fichierscpp
- Interfaces : du local à Internet
- Exercices
Distribution gratuite d'objets : pour services rendus sur le réseau
- Objets distribués sur le réseau : pourquoi ?
- RMI (Remote Method Invocation)
- Corba (Common Object Request Broker Architecture)
- Rajoutons un peu de flexibilité à tout cela
- Les services Web surNet
- Exercices
Multithreading
- Informatique séquentielle
- Multithreading
- Implémentation en Java
- Implémentation en C#
- Implémentation en Python
- L'impact du multithreading sur les diagrammes de séquence UML
- Du multithreading aux applications distribuées
- Des threads équirépartis
- Synchroniser les threads
- Exercices
Programmation événementielle
- Des objets qui s'observent
- En Java
- En C# : les délégués
- En Python : tout reste à faire
- Un feu de signalisation plus réaliste
- Exercices
Persistance d'objets
- Sauvegarder l'état entre deux exécutions
- Simple sauvegarde sur fichier
- Sauvegarder les objets sans les dénaturer : la sérialisation
- Les bases de données relationnelles
- Réservation de places de spectacles
- Les bases de données relationnelles-objet
- Les bases de données orientées objet
- Linq
- Exercices
Et si on faisait un petit flipper ?
- Généralités sur le flipper et les GUI
- Retour au Flipper
Les graphes
- Le monde regorge de réseaux
- Tout d'abord : juste un ensemble d'objets
- Liste liée
- La généricité en C++
- La généricité en Java
- Passons aux graphes
- Exercices
Petites chimie et biologie OO amusantes
- Pourquoi de la chimie OO ?
- Les diagrammes de classe du réacteur chimique
- Quelques résultats du simulateur
- La simulation immunologique en OO ?
Design patterns
- Introduction aux design patterns
- Les patterns « truc et ficelle »
- Les patterns qui se jettent à l'OO
Pour un panorama complet du monde de l'orienté objet, ce livre est certainement à conseiller. L'auteur, par ailleurs professeur à l'ULB (université libre de Bruxelles) démontre son talent pédagogique, dès le début. De nombreuses allusions font d'ailleurs remarquer que ce livre est principalement prévu pour un public étudiant se familiarisant avec la programmation orientée objet, sans rien en connaître, mais ayant déjà connaissance d'un langage de programmation procédural (ou au moins les principes).
Dès le premier exemple, on se plonge dans un environnement Java, sans que cela n'ait été introduit, sans donner vraiment d'explication sur la syntaxe - cela n'est pas vraiment nécessaire, le code est suffisamment documenté pour que la compréhension ne tarde pas. Ensuite sont présentés les différents langages, en s'axant sur leurs particularités syntaxiques, sur les points qui choquent en comparaison au Java. Il n'y a que le minimum qui est présenté, il ne faut pas prendre ce livre pour ce qu'il n'est pas : il introduit à la programmation orientée objet, il n'a pas pour vocation d'apprendre un langage.
C'est d'ailleurs sur ces langages que se portent mes seuls griefs à l'encontre de ce livre : les langages sont parfois fortement détournés pour
suivre le discours de l'auteur. On montrera, par exemple, du code Python très peu pythonique, sans utilisation de décorateurs comme
@staticmethod ou la définition d'autres constructeurs quand des arguments mots-clés peuvent être utilisés. Du côté C++, on voit,
dans les premiers exemples, des directives #include pointées sur... des fichiers .cpp ! Il faut attendre
le quinzième chapitre sur les interfaces pour voir l'existence de fichiers .h, ce qui permet de s'assurer de très mauvaises pratiques
dans du code C++... Cela passe aussi pour une faiblesse du langage, qu'un utilisateur du C++ pourra faire passer pour une méconnaissance du langage.
Passons le fait que le C++/CLI devient du Visual C++ .Net, nom qui n'est attesté sur le Web presque exclusivement comme les nouvelles
versions de l'EDI de Microsoft pour le C++, partie de l'environnement plus complet Visual Studio, ainsi que le fait qu'il semble jusqu'au
chapitre sur l'héritage que la seule raison de traiter le C++ est de pouvoir en dire tout le mal qu'on peut. Sans oublier que la STL est entièrement
nonobstée et que l'on juge les complexités du C++ comme des écarts par rapport aux autres langages, alors qu'il en est l'aîné.
On remarque aussi que le PHP est exclusivement utilisé en contexte Web, comme s'il était incapable de faire autre chose (sans oublier
que le décorum HTML tout autour ne facilite pas la compréhension de l'exemple, en ajoutant un bon nombre de lignes parfaitement inutiles).
En conclusion de ce paragraphe, on dira que ce livre n'est absolument pas là pour apprendre un langage ou l'autre, ce n'est pas son but, il veut simplement
apprendre les bases de la programmation orientée objet, en déclinant les concepts aux différents langages, en montrant leurs différences.
Tous les concepts sont illustrés dans tous les langages, permettant ainsi de visualiser in situ les différences de pensée entre les concepteurs.
Ces exemples, d'ailleurs, évoluent au fur et à mesure de la progression de la compréhension du lecteur : les premiers exemples sont fort didactiques,
on finit dans les derniers chapitres à simuler les réactions chimiques ayant lieu dans un réacteur, on passe d'exemples simplistes à des exemples réalistes.
À un niveau plus général, on remarquera quelques fautes d'orthographe restées malgré les relectures, les schémas de mauvaise facture (réalisés probablement à l'aide d'un logiciel peu évolué tel que Paint), qui font vraiment tache à côté des schémas UML, ainsi que des captures d'écran sur des systèmes d'exploitation relativement préhistoriques (aux alentours de Windows Millenium).
Ce ne sont pas ces quelques défauts qui vont entacher le principal du livre. On appréciera notamment le large chapitre dédié à UML2, ainsi que les schémas UML utilisés bien avant leur formalisation pour aider à comprendre les principes. Des exercices terminent la grande majorité des chapitres, permettant au lecteur de vérifier qu'il a bien assimilé les concepts ; on regrettera de ne voir les solutions que sur le site de l'éditeur, pas dans une annexe au livre.
Il faut aussi remarquer que l'utilisation plus pratique de l'orienté objet est aussi couverte : ainsi, on parlera des méthodes pour la communication entre un client et un serveur à l'aide de RMI, de Corba et d'autres. Sera aussi discutée la sérialisation dans les divers langages, sans toutefois rentrer dans les détails, car ils deviennent plus spécifiques aux langages. On regrettera de ne pas voir ici la sérialisation selon boost pour le C++ ou la fonction serialize() de PHP : ces deux langages ne sont pas arriérés, ils permettent aussi la sérialisation, alors qu'aucune mention n'en est faite.
Des sujets plus pointus comme le multithreading sont aussi abordés : point noir de ce chapitre, C++ et PHP sont oubliés. Signaler qu'aucune méthode vraiment propre n'existe en PHP n'est pas un luxe, préciser l'existence d'une pléthore de possibilités en C++ est un minimum pour tout qui parle de multithreading et de C++ (il n'aurait pas été utile de développer le sujet, mais au moins d'indiquer dans quelle direction chercher si le besoin s'en fait sentir). Les autres langages jouissent d'une description des méthodes disponibles en standard pour obtenir une application multithreadée, en tenant compte de la problématique des accès concurrents.
En bref ? Un ouvrage plus qu'excellent, didactique, qui passe par tous les jalons, toutes les étapes, sans en oublier une, pour la programmation orientée objet. Que le lecteur soit débutant ou plus avancé, il trouvera dans ce livre de quoi apprendre ou se remettre à niveau. Par contre, prendre ce livre pour apprendre un langage n'est pas forcément la meilleure idée, ce n'est pas son objectif, les explications ne vont d'ailleurs pas en ce sens. Le style assez humoristique de l'auteur en fait un livre très facile à lire.
Vous avez lu ce livre ? Qu'en pensez-vous ? Commentez
L'orienté objet
Résumé de l'éditeur
L'approche objet est enseignée dans les universités dès les premiers niveaux des cursus informatiques, car sa compréhension est le prérequis indispensable à toute pratique économe, fiable et élégante de la plupart des techniques informatiques qui en sont dérivées, depuis Java et Python, jusqu'à UML 2, en passant par C# et C++.
Ce livre sera lu avec profit par tous les étudiants de disciplines informatiques liées à l'approche objet (programmation orientée objet, modélisation UML, Java, Python, C#/C++...) et pourra être utilisé par leurs enseignants comme matériel de cours.
Il est également destiné à tous les développeurs qui souhaitent approfondir leur compréhension des concepts objet sous-jacents au langage qu'ils utilisent.
Édition : Eyrolles
ISBN10 : 2212120842
ISBN13 : 9782212120844
Commandez sur www.amazon.fr :
30.40 € TTC seulement (au lieu de 32.00 € TTC : prix éditeur) livraison gratuite !- Principes de base : quel objet pour l'informatique ?
- Un objet sans classe n'a pas de classe
- Du faire savoir au savoir-faire, du procédural à l'oo
- Ici londres, les objets parlent aux objets
- Collaboration entre classes
- Méthodes ou messages ?
- L'encapsulation des attributs
- Les classes et leur jardin secret
- Vie et mort des objets
- Uml2
- Héritage
- Redéfinition des méthodes
- Abstraite, cette classe est sans objet
- Clonage, comparaison et assignation d'objets
- Interfaces
- Distribution gratuite d'objets : pour services rendus sur le réseau
- Multithreading
- Programmation événementielle
- Persistance d'objets
- Et si on faisait un petit flipper ?
- Les graphes
- Petite chimie et biologie oo amusantes
- Design patterns
Ce livre est assez incroyable par la manière dont il aborde un sujet aussi délicat que la programmation orienté objet ! Le lecteur est plongé dans une histoire fascinante ou chaque début de chapitre commence par un petit dialogue mettant un avant le problème à résoudre par la suite ! Chaque sujet est aborde dans divers langages (dont chaque subtilités sont mises en avant) et on ne manquera pas de remarquer la précision de chaque exemples. Puis pour clôturer un chapitre le lecteur est amené à exécuter divers exercices pour assimiler le tout. Chaque lecteur y trouvera son bonheur puisqu'il s'adresse a tout ceux qui désirent découvrir ou approfondir la POO tant pour ceux qui connaissent un langage en particulier que ceux qui n'en connaissent aucun. On ne se lasse pas de parcourir les pages et malgré le volume de papier on sera très vite a la fin du livre qui mêle programmation mais aussi petits rappels culturels (lies à l'informatique évidement) qui ne manqueront pas de surprendre ceux qui n'ont pas connu les débuts de l'informatique. En conclusion un excellent livre, très complet pour aborder le sujet délicat de la POO.
Se rapporte à une édition précédente.
Ce livre est une étude complète du développement orienté objet, abordé de la manière la plus pratique possible. L'auteur prend littéralement le lecteur par la main à la manière d'un professeur particulier, pour nous expliquer de manière simple et progressive le monde orienté objet, en illustrant par des cas didactiques concrets.
Les premiers chapitres peuvent paraître simplistes, surtout si le lecteur a déjà une expérience en programmation orienté objet, mais ils insistent beaucoup sur les bases essentielles de l'OO (nom intime pour "orienté objet"). Un des aspects les plus pédagogiques du livre est la présence abondante de code source qui illustre parfaitement la matière, et ce à chaque fois dans 3 langages : Java, C# et C++. Ainsi, contrairement à trop d'ouvrages théoriques sur le sujet, celui-ci reste agréable à lire, instructif et surtout pratique grâce aux exemples de programmation. Ces exemples restent souvent fort "didactiques" au début, mais une fois que la matière se complexifie, les bouts de programme présentés deviennent plus "réels" en simulant des jeux ou des applications informatiques classiques. L'aspect analyse n'est pas oublié non plus avec un chapitre entier consacré à UML et la traduction concrète de ses diagrammes principaux en code Java, C# et C++. Une série d'exercices à la fin de chaque chapitre permet au lecteur de s'auto-évaluer; ce livre est donc parfait comme support de cours.
A la fin de l'ouvrage on aura passé en revue tous les aspects de la programmation orientée objet, des plus simples au plus complexes, en terminant par les graphes. Plusieurs chapitres traitent de sujets modernes et intéressants pour le développeur tels que la sauvegarde de données (le passage d'une classe à un fichier, ou une base de données), la réalisation d'applications distribuées via RMI, Corba, webservices... Sont aussi traités d'autres sujets d'actualité comme la programmation événementielle caractéristique des interfaces utilisateur modernes, et le multithreading.
Bref un excellent ouvrage qui satisfera aussi bien le débutant complet que le programmeur ayant déjà des notions objet et souhaitant les approfondir et voir leur mise en oeuvre dans des applications concrètes. Un must pour tout développeur OO.
Conception et programmation orientées objet
Résumé de l'éditeur
L'oeuvre maîtresse d'un grand nom du génie logiciel et de l'objet.
Ecrit dans un style d'une clarté absolue, cet ouvrage réussit le tour de force d'être à la fois un livre de réflexion approfondie sur les concepts objet et un ouvrage pratique, apportant des réponses concrètes aux questions que se posent tous les programmeurs et concepteurs de logiciels : comment construire des applications logicielles fiables, performantes, faciles à utiliser et à faire évoluer ?
Une démarche originale et ambitieuse.
Partant d'une analyse des écueils souvent rencontrés dans les projets de développement, Bertrand Meyer définit une liste de critères de qualité logicielle et en déduit un ensemble de règles et de principes qui conduisent naturellement aux grands concepts objet. Théorie du typage, gestion de la mémoire, techniques d'héritage, programmation concurrente, objets distribués, persistance et bases de données objet, analyse et conception, réutilisabilité... : tous les aspects du processus de développement logiciel et des technologies objet sont expliqués et discutés dans leurs moindres détails, dans un style brillant, souvent drôle et provocateur. Une lecture dont on sort intellectuellement subjugué et techniquement mieux armé pour répondre à ses défis professionnels.
A qui s'adresse le livre ?
A tous les architectes logiciel, ingénieurs méthode et programmeurs impliqués dans des projets de développement logiciel et souhaitant approfondir leur compréhension des technologies objet. Aux étudiants en informatique (niveau 2e cycle ou écoles d'ingénieur).
Édition : Eyrolles
ISBN10 : 2-212-12270-5
Broché
Commandez sur www.amazon.fr :
57.00 € TTC seulement (au lieu de 60.00 € TTC : prix éditeur) livraison gratuite !- LES PROBLEMES
- La qualité du logiciel
- Critères d'orientation objet
- LA ROUTE DE L'ORIENTATION OBJET
- Modularité
- Approches de la réutilisabilité
- Vers la technologie objet
- Types abstraits de données
- TECHNIQUES ORIENTEES OBJET
- La structure statique : les classes
- La structure à l'exécution : les objets
- Gestion de la mémoire
- Généricité
- Conception par contrat : construire du logiciel fiable
- Quand le contrat est rompu : le traitement des exceptions
- Mécanismes supplémentaires
- Introduction à l'héritage
- Héritage multiple
- Techniques d'héritage
- Typage
- Objets globaux et constantes
- METHODOLOGIE ORIENTEE OBJET : BIEN APPLIQUER LA METHODE
- De la méthodologie
- Schéma de conception : systèmes interactifs à écrans multiples
- Etude de cas d'héritage : "défaire" dans un système interactif
- Comment trouver les classes
- Principes de conception des classes
- Bien utiliser l'héritage
- Techniques utiles
- Un penchant pour le style
- Analyse orientée objet
- Le processus de construction logicielle
- Enseigner la méthode
- ASPECTS AVANCES
- Concurrence, répartition, client-serveur et Internet
- Persistance d'objets et bases de données
- Quelques techniques OO pour applications graphiques interactives
- APPLIQUER LA METHODE DANS DIVERS LANGAGES ET ENVIRONNEMENTS
- Programmation OO et Ada
- Emulation de la technologie objet dans les environnements non OO
- De Simula à Java et au-delà : principaux langages et environnements OO
- FAIRE LES CHOSES BIEN
- Un environnement orienté objet
- Epilogue : le langage dévoilé
La programmation orientée objet a eu autant d'effets dans le monde du développement logiciel que le C à son époque : une révolution ! Et comme toute révolution, celle-ci trouve ses sources dans les problèmes du modèle précédent : c'est ce que souhaite nous montrer l'auteur avec la première partie de ce livre, qui va expliquer les raisons de l'approche objet et les bénéfices que l'on peut en tirer.
Ces principes sont expliqués pas à pas et dans les détails à l'aide du langage Eiffel. Mais connaître un langage est une chose, bien l'utiliser en est une autre. C'est pourquoi on retrouve ensuite une série de chapitres présentant conseils et méthodologie pour le développeur. Enfin, les derniers chapitres traitent des problèmes modernes (GUI, threads, SGBD) et de l'utilisation de la programmation orientée objet dans d'autres langages (C,Ada,Simula,...).
Mais ce tableau idyllique est terni par plusieurs points. D'abords une partie du code du livre n'est plus à jour, puisqu'il provoque des erreurs de compilation. Ensuite, certains passages du livre, principalment ceux qui abordent d'autres langages, peuvent être sujet à critiques, certains étant même faux.C'est par exemple le cas quand il affirme que friend est un mot clé du langage [C++] permettant d'appeler des fonctions C depuis un code en C++. Il en va de même pour certaines références du livres datant de la première édition et qui sont dépassées. Enfin, sur le plan purement pratique, le livre est lourd (2.1 Kg) et l'emmener en voyage relève d'un réel choix.
En conclusion, cet ouvrage est un très bon livre sur la conception orientée objet, mais nécessite quand même de savoir prendre du recul sur certains points.
On ne trouve pas un livre comme celui-ci tous jours !
Cet ouvrage est véritablement un chef-d'oeuvre. Une découverte, emmenée pas-à-pas, de la méthode orientée objet, de ses motivations, des solutions qu'elle apporte aux problèmes connus de génie logiciel.
C'est surtout cette partie-là, l'explication des motivations de l'avènement du développement orienté objet, qui fait de ce livre une référence unique. Au lieu de présenter bêtement les apports de l'OO, l'auteur commence par nous faire prendre conscience des problèmes liés au développement. Ensuite, il explique pas-à-pas les éléments de la méthode OO qui répondent à ces problèmes.
En plus de cela, l'auteur nous fournit de nombreux conseils, une méthode complète, pour la bonne utilisation de l'orienté objet. C'est un élément d'une extrême importance, d'autant que l'on peut observer que de nombreux développeurs OO font plus ou moins n'importe quoi avec cette technologie.
Cette nouvelle édition a, entre autres, ajouté de nouveaux sujets sur les technologies qu'on utilise désormais beaucoup plus que du temps de la première. En particulier, l'usage d'Internet, de la concurrence et du calcul distribué. D'autres sujets ajoutés sont une théorie assez mathématique des ADT (Abstract Data Type, ou Type Abstrait de Données), ainsi que le bon usage de l'héritage, pour ne citer que ceux-ci.
Je terminerai par un petit mot aux "experts" : vous ne l'êtes pas tant que ça ! Ne vous dites pas : "Moi, je sais déjà tout sur l'orienté objet, je l'utilise très bien ; je n'ai pas besoin d'un tel livre." J'étais comme cela avant la lecture de celui-ci, maintenant plus. Il y a énormement de choses que ce livre a à nous apprendre, à tous.
N'hésitez donc pas : ce livre en vaut la peine !
Sébastien Doeraene
Cette critique se rapporte à la première édition.
Ce livre est une véritable référence, que dis-je: une BIBLE !
L'auteur nous fait découvrir tous les principes de la programmation orientée objet, des concepts les plus simples aux plus compliqués.
L'auteur nous permet, en plus, de découvrir le langage qu'il a inventé: le langage Eiffel.
Bref, ce livre constitue la référence en matière de POO, même si sa lecture nécessite tout de même d'avoir quelques notions dans ce domaine.
Un conseil: Achetez-le !.
Cette critique se rapporte à la première édition.
Quand on prend ce livre dans les mains, on s'attend à une lecture studieuse et attentive. Mais en lisant le début, on se rend déjà compte que Bertrand Meyer a pensé à nous. Une première partie est consacrée aux bases de l'orienté objet, en gros ce dont il faudra absolument retenir en reposant ce livre.
Réutilisabilité et modularité sont les maître-mots de ce livre, et toutes les techniques actuelles pour y parvenir sont analysées dans les détails. De la généricité au garbage collector, on se rend compte qu'il n'y a aucun langage qui réponde à tous les critères de ce livre. Plusieurs langages sont étudiés pour voir ce qu'il aurait fallu améliorer - le garbage collector en C++ -, c'est très intéressant.
En ce qui concerne la méthodologie objet, le livre est à nouveau complet, comment pourrait-il en être autrement ? Une partie consacrée à des problèmes spécifiques montre que l'auteur sentait sans doute venir l'évolution actuelle, la programmation concurrente étant de plus en plus utilisée depuis les annonces d'Intel et AMD. La dernière partie permettra de voir un peu mieux comment appliquer ce qu'on a appris pendant tout le livre.
Malgré les passages que l'on peut passer en première lecture, le livre est tout de même d'une difficulté certaine. La lecture de chaque chapitre entraîne une réflexion qu'on doit mener pour bien assimiler les concepts. Eu égard à la quantité et la qualité des propos dans ce livre, on peut être décourager par le temps nécessaire pour une lecture en détail complète, d'où l'étoile en moins.
Analyse et conception orientées objet
Tête la première
Résumé de l'éditeur
Fatigué de lire des ouvrages sur l'ACOO qui ne sont compréhensibles que par les spécialistes ? Vous avez très certainement entendu dire que l'analyse et la conception orientées objet peuvent vous aider à écrire du bon logiciel à tous les coups, du logiciel qui rendra votre patron heureux et le client satisfait. Oui, mais comment ? L'analyse et la conception orientées objet montrent comment analyser, concevoir et écrire des logiciels orientés objet et de qualité, des logiciels faciles à maintenir et à réutiliser, qui ne seront pas un casse-tête et qui pourront évoluer sans pour autant massacrer les anciennes fonctionnalités. Voici ce que vous allez apprendre : Utiliser les principes OO tels que l'encapsulation et la délégation dans le but de concevoir des applications souples. Appliquer le principe d'ouverture-fermeture (OCP, Open-Closed Principle) et le principe de responsabilité unique (SRP, Single Responsibility Principle), principes de conception qui vous permettront de travailler plus vite et plus intelligemment. Apprendre comment les principes OO, les design patterns et les différentes phases du développement ne forment qu'une seule procédure : le cycle de vie ACOO d'un projet. Utiliser UML, les cas d'utilisation, les bons moyens de communiquer afin d'être certain que vous parlez bien le langage OO et que tout le monde vous comprend. Il existe mille et une façons d'apprendre. En s'ennuyant et en étant passif... ou en s'amusant et en musclant ses neurones. L'approche des auteurs est axée sur la pédagogie. Les concepts s'appuient sur des images et des exercices ludiques. Tout ce qui augmente et diversifie votre activité cérébrale est mis en ouvre afin que vous mémorisiez facilement les points cruciaux. L'heure est venue de vous plonger dans l'ACOO tête la première !
Édition : O'Reilly
ISBN10 : 2841774317
Broché
- Introduction
- Un bon logiciel commence ici : une appli bien conçue qui assure
- Donnez-leur ce qu'ils veulent : recueillir les exigences
- Je t'adore, tu es parfait ... Mais maintenant, change : les exigences changent
- Introduire votre logiciel dans le monde réel : analyse
- Rien ne reste jamais comme avant : bonne conception
- Entracte : CATASTROPHE OO
- 30 minutes de gym pour votre logiciel : logiciel souple
- "Je m'appelle Numérobis" : résoudre de très gros problèmes
- Mettre de l'ordre dans le chaos : architecture
- On accorde trop d'importance à l'originalité : principes de conception
- Le logiciel reste destiné au client : itérer et tester
- Tout assembler : le cycle de vie acoo
- Annexe A : les restes
- Annexe B : bienvenue à objectville
N'étant pas familier de la collection "Tête la première" et compte tenu de la présentation très spécifique des ouvrages qui compose cette collection, je me sens obligé de séparer ma critique en 2 parties distinctes : le fond et la forme.
Concernant le fond, rien à redire. Le livre fait ce que l'on attend de lui. Il délivre les recettes afin de réaliser un bon logiciel et ceci de manière progressive ; en commençant par de petites applications (à créer ou à corriger) jusqu'à la grosse application.
Les exemples sont réalisés dans le langage Java. N'étant pas développeur Java mais plutôt les .net, ils ne sont pas un frein à la compréhension des concepts étudiés.
La forme est par contre pour le moins originale. Des personnages fictifs dialoguent afin de faire avancer la réflexion du lecteur. Il se retrouve ainsi acteur du livre. Le livre est une succession de schémas, diagrammes, annotations, dialogues, interviews ... Rien à voir avec le livre théorique classique. Du fait, de cette structure une lecture non linéaire est difficilement envisageable.
Donc pour conclure, si vous voulez vous familiariser avec l'analyse et la conception objets, ce livre est un bon choix. Néanmoins, je vous conseille vivement d'aller dans une librairie afin de feuilleter un livre de la conception "Tête la première" afin de bien comprendre conscience du style utilisé qui peut être perturbant.
Si je devais retenir une phrase de ce livre, ce serait "Assurez-vous que le logiciel fait ce que le client veut qu'il fasse", voilà une chose très importante que je commençais tout doucement à oublier. A chaque projet, une bonne dose d'analyse made in Jérôme et en avant le développement avec de beaux objets qui font ce que je demande... Oui mais et cette partie-là de l'application, est-ce que mon modèle pourra la supporter ?! Et ces décisions orientées objet, sont-elles les "meilleures" qui soient ?! Oui mais avec toutes ces questions, est-ce que le programme fait vraiment ce que le client a demandé ?!... Et qu'en est-il du futur ? Mon application va-t-elle survivre aux changements ?! Tant de questions qui pour la plupart restent sans réponse et pourtant c'est le quotidien du développeur ! Alors, si vous êtes toujours là et que vous désirez apprendre à concevoir (notez que je n'ai pas dit "développer") de bonnes applications, des applications qui font ce que les clients désirent :
- Tout en résistant aux changements ;
- Avec une bonne dose d'analyse ;
- Couplée avec un bon paquet de conception ;
- Et des principes Orientées Objets à mettre en oeuvre ;
Je ne peux que vous recommander ce livre ! Pensez à tout ces livres techniques que vous avez pu lire, un rien ennuyeux après quelques pages et très difficiles à digérer après une vingtaine... Combien de fois avez-vous abordé une partie technique dans un livre qu'au final vous n'avez pas compris du tout ? Dans "Analyse et Conception Orientées Objet - Tête la première", c'est la même chose... Sauf que le livre se pose lui-même vos questions après chaque partie délicate... Et si ça ne vous suffit pas, vous aurez des explications... Et encore des explications sous forme de définitions, questions/réponses, schémas, des illustrations, codes,... Sans compter sur des mises en scène de personnages tout au long de l'ouvrage pour nous aider à y voir plus clair.
Les projets qui vous sont proposés comme fils conducteurs du livre sont vraiment plaisants à suivre : on commence tout doucement avec un projet de gestion d'inventaire pour instruments, pour ensuite attaquer un système de trappe automatique pour chiens et finir avec un framework pour le développement de jeux sur plateaux. Tout au long de chacun de ces projets, vous participerez à des discussions avec les clients des projets, avec vos collègues analystes, programmeurs, architectes. Vous serez sans cesse mis à contribution afin de proposer vos propres idées et les comparer à celles du livre, le tout afin de mettre en oeuvre les principes abordés car c'est ça le but : comprendre facilement et intelligemment et non lire sans retenir.
Au final, je n'ai pu donner qu'une note maximale pour un ouvrage de la série "Téte la première" qui innove une fois de plus et qui est un plaisir à lire.
Je commence à être un familier des livres la tête la première, et je dois dire que ce nouvel opus ne déroge pas à la règle de qualité perçue dans mes autres lectures.
Si vous ne connaissez pas cette collection, le style risque de vous surprendre un peu...
Tout est fait pour que la lecture soit agréable, c'est un vrai livre d'apprentissage avec une méthode pédagogique originale.
De ce point de vue toute la collection tête la première est basée sur le même principe d'apprentissage :
Les auteurs utilisent beaucoup d'images, de graphiques, des jeux sous forme de mots croisés, ou de collages de vignettes, des interviews imaginaires avec les méthodes mise en ouvre, discussions et point de vue entre programmeurs imaginaires etc .., chaque chapitre se clôture par un bref résumé des connaissances acquises sous forme de billet ou de liste nommées « points d'impact ».
Le livre s'appui e sur des études de cas en Java, mais le public visé est beaucoup large et pourra s'adresser sans problème à une population de programmeurs pratiquant le C++ , le C++/CLI et le C#
Utilisant moi-même ces trois langages je n'ai eu aucun problème de compréhension avec les exemples de ce livre.
Les auteurs citent quelques fois comme référence le livre design pattern tête la première, il est vrai que si vous n'avez pas l'habitude des patterns la lecture de ce livre sera un plus pour comprendre et mieux apprécier la démarche d'analyse développée dans ce nouvel ouvrage.
Voila pour les remarques préliminaires.
J'en viens maintenant au sujet du livre l'analyse et la conception orientée objet, Etant moi-même concepteur d'applications dans le domaine de la gestion je suis très souvent au contact des clients à toutes les phases de développement analyse, conception, livraison et maintenance.
De prime abord, à la lecture on sent le vécu !, nombres de situations décrites sur la perception des exigences d'un client, l'écriture et la livraison d'un programme ainsi que son évolution m'ont tout de suite parlées tellement mon quotidien y ressemble!
Ce livre se concentre sur notre métier, sur la définition et la construction d'un bon logiciel qui doit satisfaire le client, s'en suit ensuite une réflexion sur le changement, tout change : les clients changent d'avis (sic) et le merveilleux programme qui a parfaitement fonctionné jusqu'ici, peut être amené à évoluer pour de nouvelles fonctionnalités pouvant remettre en cause l'existant.
Une bonne conception permettra une évolution agile, une mauvaise dans la douleur.
c'est le sujet de ce livre qui nous distille au fur et à mesure des chapitres des concepts et méthodes d'analyses et met en lumière quelques écueils classiques en conception objet.
Les cas d'études utilisés dans le livre peuvent sembler simplistes ou loufoques (gestion d'une trappe pour chien par exemple), et c'est tant mieux ! , les exemples sont très simples pour que le sujet parle à tout le monde.
Enfin la notation UML est utilisée de manière très simple pour représenter les diagrammes de classes, une brève initiation est proposée en annexe du livre et de fréquents rappels sont faits dans les différents chapitres, on trouvera même une antisèche UML très basique.
En conclusion :
Ce livre cible en priorité les débutants en conception objet, mais la partie analyse des besoins du client avec les méthodes proposées (basées sur les exigences, les cas d'utilisations etc) , les concepts et les conseils en architecture OO intéresseront aussi sans aucun doute le programmeur expérimenté souvent confronté au monde réel...
Pour ma part ce fut un réel plaisir de lire ce livre comme ce fut le cas avec les précédents de la même collection.
Cet ouvrage, en grand partie destiné aux débutants dans l'analyse et la conception orientées objet, met l'accent sur 2 grands thèmes :
la méthodologie d'une part, et la conception / mise en oeuvre d'autre part.
A travers un style à la "Tête la première", une introduction progressive des différentes notions,
et de nombreuses études de cas, le lecteur est guidé et mis dans les meilleures conditions pour apprendre à
concevoir de bons logiciels qui répondront aux besoins de ses clients / utilisateurs.
Les études de cas et leurs exemples reposent en grande partie sur l'utilisation du langage Java, et
il est donc recommandé de ne pas faire l'impasse dessus car tout l'intérêt de l'ouvrage sera perdu.
A l'inverse, les développeurs ou concepteurs Java trouveront dans ce livre un excellent complément en terme
de méthodologie et ne regretterons pas l'investissement.
Bien qu'excellent d'un point de vue pédagogique et très instructif, il manque un zeste d'UML dans le livre, et
certains développeurs / concepteurs aguerris pourraient rester sur leur faim.
Néanmoins, l'objectif est pleinement atteint et le livre reste très agréable à lire et ne peut qu'être bénéfique.
Retrouvez la critique complète ici.
Object-Oriented Thought Process, 2nd edition
Résumé de l'éditeur
By the Professional, for the Professional!
The Object-Oriented Thought Process is a concise and readable primer.
Matt Weisfeld's years of programming, teaching, and writing have given him a flair for presenting highly technical topics in a clear and interesting manner. He is able to blend abstract concepts with ingenious examples and clear illustrations to quickly teach powerful OOP techniques.
The code examples are written in Java and UML but are designed in such a way that a reader with no previous experience will still understand them.
The Object-Oriented Thought Process is a clear and accessible alternative to the often dry and overly dense books available on the market today.
Matt Weisfeld has 18 years of software development and project management experience in COBOL, Pascal, C, C++, Smalltalk, and Java. He has taught programming classes for more than 10 years and has been published extensively in leading industry magazines, including Dr. Dobb's and Java Report including many more!
A concise but complete introduction to object-oriented concepts with code examples in Java and UML.
Excellent primer for professional developers moving to object-oriented languages, as well as CS students.
Édition : Sams Publishing
ISBN10 : 0-672-32611-6
- Introduction to Object-Oriented Concepts
- How to Think in Terms of Objects
- Advanced Object-Oriented Concepts
- The Anatomy of a Class
- Class Design Guidelines
- Object-Oriented Modeling
- Designing with Objects
- Mastering Inheritance and Composition
- Frameworks and Reuse: Interfaces and Abstract Classes
- Building Objects
- Patterns
- XML
- Objects and the Net
- Objects and the Enterprise
- Objects and Databases
A mon avis un ouvrage à lire absolument pour comprendre les concepts objets, avant de parcourir des ouvrages plus spécifiques du genre "Object-Oriented Design in Java" ou "Thinking in C++". Même si les exemples dans cet ouvrage sont ecrits en java, les explications sont applicables a tous les langages OO (C++, C#, ...)
Ce livre donne les "clés" pour modéliser et implémenter un logiciel dans un langage Objet. Une mention spéciale pour le chapitre 6 où l'auteur fait l'analyse et la conception d'un jeu de black-jack en partant de la règle du jeu (description textuelle) pour finir aux diagrammes UML en utilisant la méthode des CRC-Cards.
Tous les livres sur UML