Conception orientée Objet et JAVA programmation avancée
Objectifs
Aborder la conception orientée objet
Approfondir les aspects avancés du langage JAVA
Maîtriser le langage JAVA dans l'application des principes de la programmation objet
Contenu de la formation
Alternance de théorie et de pratique
Conception orientée objet
L'approche objet
Parer les difficultés liées à la réalisation de programmes complexes, l'évolution de l'informatique, la gestion des
changements technologiques, l'importance de la sous-traitance, les problèmes de la maintenance
Les défis de la nouvelle informatique : modularité (plug-ins), réutilisabilité, évolutivité
L'utilisation de bibliothèques de composants
Les concepts de base de l'approche objet
Les objets : une dualité procédure / donnée
Les intéractions entre objets par envois de messages
L'héritage, une manière de concevoir de nouvelles classes par abstraction et spécialisation. Héritage et typage des
variables dans les langages fortement typés (C++, Java)
Diagrammes et représentation des objets à l'aide d'UML
Les principaux diagrammes et leur utilisation pour la conception par objets
Les outils de notation et représentation des objets
Les grands principes de la conception par objets
Le principe de réification
Principe d'abstraction et de classification
Principe d'encapsulation et d'autonomie
Principe de modularité et de décomposition des domaines
Comment aborder un logiciel objet
Les principes de développement
Les étapes
Concevoir par objets
Les erreurs à éviter
De la conception à l'implémentation
Les prinicpes généraux de la modélisation et de la programmation « objet »
Une introduction aux modèles et à la notation UML : le modèle statique, le modèle dynamique, le modèle de coopération,
les scénarii
La programmation objet avec Java
Les éléments de base du langage
La définition et l'instanciation des classes
Les unités de compilation et packages
Les différentes formes d'héritage
Les interfaces et l'implémentation des interfaces
Le polymorphisme et sa mise en oeuvre
Traduire les diagrammes de classe UML dans les langages de programmation et dans des bases de données
Les interfaces et l'implémentation des interfaces
Les grandes plateformes objets actuels : les technologies .NET de Microsoft et J2EE de SUN
Java, programmation avancée
Quelques aspects avancés du langage
Les inner classes
Les classes anonymes
La redéfinition covariante des méthodes (jdk1.5)
Les nouvelles boucles for (jdk 1.5)
Les import static (jdk 1.5)
Les varargs (jdk 1.5)
L'auto-boxing, auto-unboxing (jdk 1.5)
Les types énumérés (jdk 1.5)
Les types génériques (jdk 1.5)
Les annotations (jdk 1.5)
La programmation concurrente
Définitions relatives à la programmation concurrente : les threads
La synchronisation des threads
Principes méthodologiques pour la conception d'applications multithreadées
Les problèmes posés par la programmation multithread
La librairie concurrente de jdk 1.5
La programmation des communications distantes
La communication par socket
La communication par invocation de méthode distante : RMI
La communication par messages : JMS
Développer en Java avec la programmation objet
Les techniques « objet »
L'extension
La définition des classes dérivées, les constructeurs, les références
Les aspects méthodologiques
La construction de hiérarchies de classes
La factorisation de code
L'utilisation simultanée de l'implémentation et de l'extension