Computer Science Books

L’orienté objet – Cours et Exercices en UML2

By  | 

Les 23 chapitres de ce livre peuvent se répartir en cinq grandes parties.
Le premier chapitre constitue une partie en soi car il a pour importante mission d’introduire aux briques de base de la programmation orientée objet, sans aucun développement technique : une première esquisse, teintée de sciences cognitives, et toute en intuition, des éléments essentiels de la pratique OO.

La deuxième partie intègre les quatorze chapitres suivants. Il s’agit pour chacun d’entre eux de décrire, plus techniquement cette fois, ces briques de base que sont : objet, classe (chapitres 2 et 3), messages et communication entre objets (chapitres 4, 5 et 6), encapsulation (chapitres 7 et 8), gestion mémoire des objets (chapitre 9), modélisation objet (chapitre 10), héritage et polymorphisme (chapitres 11 et 12), classe abstraite (chapitre 13), clonage et comparaison d’objets (chapitre 14), interface (chapitre 15).
Chacune de ces briques est illustrée par des exemples en Java, C#, C++, Python, PHP 5 et UML. Nous y faisons le pari que cette mise en parallèle est la voie la plus naturelle pour la compréhension des mécanismes de base : extraction du concept par la multiplication des exemples.
La troisième partie reprend, dans le droit fil des ouvrages dédiés à l’un ou l’autre langage objet, des notions jugées plus avancées : les objets distribués, Corba, RMI, Services web (chapitre 16), le multithreading ou programmation parallèle (ou concurrentielle, chapitre 17), la programmation événementielle (chapitre 18) et enfin la sauvegarde des objets sur le disque dur, y compris l’interfaçage entre les objets et les bases de données relationnelles (chapitre 19).
Là encore, le lecteur se trouvera le plus souvent en présence de plusieurs versions dans les quatre langages de ces mécanismes.
La quatrième partie décrit plusieurs projets de programmation totalement aboutis, tant en UML qu’en Java.
Elle inclut d’abord le chapitre 20, décrivant la modélisation objet d’un petit flipper et les problèmes de conception orientée objet que cette modélisation pose. Le chapitre 21, lié au chapitre 22, décrit la manière dont les objets peuvent s’organiser en liste liée ou en graphe, mode de mise en relation et de regroupement des objets que l’on retrouve abondamment dans toute l’informatique. Le chapitre 22 marie la chimie et la biologie à la programmation OO. Il contient tout d’abord la programmation d’un réacteur chimique générant de nouvelles molécules à partir de molécules de base, et ce, tout en suivant à la trace l’évolution de la concentration des molécules dans le temps. La chimie – une chimie élémentaire acquise bien avant l’université – nous est apparue comme une plate-forme pédagogique idéale pour l’assimilation des concepts objets. Nous ne surprendrons personne en affirmant que les atomes et les molécules sont deux types de composants chimiques, et que les secondes sont composées des premiers. Dans ce chapitre, nous traduisons ces connaissances en UML et en Java.
Dans la suite de la chimie, nous proposons aussi dans le chapitre une simulation élémentaire du système immunitaire, comme nouvelle illustration de combien l’informatique OO se prête facilement à la  reproduction informatisée des concepts de science naturelle, tels ceux que l’on rencontre en chimie ou en biologie.
Enfin la dernière partie se ramène au seul dernier chapitre, le chapitre 23, dans lequel est présenté un ensemble de recettes de conception OO, solutionnant de manière fort élégante un ensemble de problèmes récurrents dans la réalisation de programme OO. Ces recettes de conception, dénommées Design Pattern, sont devenues fort célèbres dans la communauté OO. Leur compréhension accompagne une bonne maîtrise des principes OO et s’inscrit dans la suite logique de l’enseignement des briques et des mécanismes de base de l’OO. Elle fait souvent la différence entre l’apprenti et le compagnon parmi les programmeurs OO.  Nous les illustrons en partie sur le flipper, la chimie et la biologie des chapitres précédents.

 

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *