Les livres sur l'orienté objet
5 livres et 12 critiques, dernière mise à jour le 19 juillet 2023 , note moyenne : 4.5
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'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 - 644 pages, 1er janvier 2011
ISBN10 : 2212128061 - ISBN13 : 9782212128062
- 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
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 ?
Commenter Signaler un problème
Un excellent ouvrage sur les principes de la programmation orientée objet, une critique plus détaillée est disponible.
L'avez-vous lu ? Qu'en pensez-vous ?
Voir aussi les cours et tutoriels programmation Java : https://java.developpez.com/cours/ et les Cours et tutoriels pour apprendre UML et les cours Python.
L'orienté objet
Résumé de l'éditeur
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 - 602 pages, 3e édition, 1er avril 2007
ISBN10 : 2212120842 - ISBN13 : 9782212120844
- 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 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 œuvre dans des applications concrètes. Un must pour tout développeur OO.
Commenter Signaler un problème
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.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Conception et programmation orientées objet
Résumé de l'éditeur
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 - 1222 pages, 2e édition, 1er janvier 2008
ISBN10 : 2212122705 - ISBN13 : 9782212122701
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é
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.
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
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 !
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.
Commenter Signaler un problème
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).
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Je viens de le commander, il y a un chapitre (le chapitre 7) du livre que nous pouvons trouver facilement sur le net, il m'a été recommandé par un formateur.
Manifestement il est difficile de le trouver en français de nos jours, cela dit j'ai trouvé un lien où on peut encore le commander pour ceux qui le cherche :
http://www.moliere.com/fr/meyer-bertrand-conception-et-programmation-orientees-objet-9782212122701.html
J'ai vu le livre récemment en librairie.
D'après l'extrait sur le site d'Eyrolles, il s'agit du 7e tirage en traduction française paru le 26/10/2017. Mais il s'agit toujours de la 1ère édition française.
Hormis la couverture, le texte est inchangé depuis 2000 (étant lui-même une traduction de la 2e édition en anglais qui date de 1997).
Me laisserais bien tenter puisque c'est a priori un ouvrage de référence à posséder par tout développeurs Objet qui se respecte.
A moins qu'il y ait eu des bouleversements particuliers dans la théorie de la P.O.O. ces 20 dernières années ?
Analyse et conception orientées objet
Tête la première
Résumé de l'éditeur
Édition : O'Reilly - 589 pages, 1re édition, 1er mai 2007
ISBN10 : 2841774317 - ISBN13 : 9782841774319
- 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
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.
- 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.
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.
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.
Commenter Signaler un problème
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?
Object-Oriented Thought Process, 2nd edition
Résumé de l'éditeur
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 - 304 pages, 2e édition, 1er décembre 2003
ISBN10 : 0672326116 - ISBN13 : 9780672326110
- 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
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.
Commenter Signaler un problème
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.
[Lire la suite]
- Avez-vous lu ce livre ou pensez-vous le lire ?
- Souhaitez-vous ajouter une critique de ce livre sur la page de la rubrique ?
- Avez-vous un commentaire à faire ?