Contenu
* L'émergence de l'approche Objet
* Les concepts de base
* Analyse et conception par objets, UML et Processus Unifié
* Les grands principes des modélisations réussies
* L'objet en programmation
* L'organisation de la réutilisation avec les Design patterns
* Objets métier, frameworks
* Les clients-serveurs à base d'Objets
* Les objets métier, serveurs d'applications et architectures n-tiers
* Les infrastructures Web à base d'objets
* Synthèse
Participants
Ce séminaire s'adresse à tous les responsables informatiques, ingénieurs d'études, ingénieurs système, qui souhaitent appréhender d'une manière claire et précise les concepts objet et la manière de les utiliser.
Programme
L'émergence de l'approche Objet
- Les problèmes observés sur les projets de développement au cours des dernières décennies.
- L'émergence des concepts Objet au niveau de la programmation et leur remontée progressive vers les phases amont du processus de développement.
- Les qualités attendues d'un développement Objet.
Les concepts de base
- Les ressemblances et différences entre l'objet au sens commun et l'objet informatique.
- La notion de classe, fabrique d'objets, et ses constituants de base que sont la propriété et l'opération. Les liens avec ce que l'on peut trouver dans le monde des bases de données ou de la programmation procédurale.
- La communication par envoi de messages.
- La séparation des interfaces et des implémentations. L'encapsulation.
- Les liaisons entre objets. Association. Agrégation ou composition.
- L'héritage. Héritage et envoi de message. Types d'héritages.
- Comment employer ces mécanismes de liaisons pour bien réutiliser ?
- Le polymorphisme, son apport en termes d'extensibilité.
- Les possibilités d'abstraction offertes par les concepts d'interface et de classe abstraite.
- Les avantages de l'approche objet : extensibilité, réutilisabilité, rapidité de conception, mythe ou réalité ?
Analyse et conception par objets, UML et Processus Unifié
Les projets à objets
- Rappels sur le cycle de vie du logiciel et cycles de vie traditionnels.
- Le cycle de vie Objet et l'approche itérative. Processus de développement Objet et les grands axes de modélisation d'un système.
- Historique des méthodes Objet.
- Similitudes et différences des méthodes Objet.
- Concepts Objet reconnus et nécessité d'un formalisme universel de représentation des concepts.
- Rôles dans un développement Objet. Importance de l'architecte et du spécialiste en conception Objet.
Les méthodes de conception autour d'UML
- La genèse d'UML et présentation des instances de normalisation.
- Les caractéristiques essentielles du formalisme UML.
- La présentation du Processus Unifié et de l'enchaînement des phases d'un développement.
- L'analyse des spécifications. Diagramme de cas d'utilisation. Acteur externe et frontières du système. Documentation des cas d'utilisation. Représentation des scénarios avec le diagramme de séquences.
- L'analyse du domaine. Diagramme de classes. Classes, attributs, associations, agrégation et éléments complémentaires. Diagramme états-transitions. Diagramme de collaborations.
- La conception. Représentation des algorithmes complexes avec les diagrammes d'activités.
- La conception détaillée.
- Le passage à la réalisation avec des langages de programmation Objet tels que C ++ ou Java.
- L'architecture avec UML. Les modèles d'architecture. Architecture en couches. Diagramme de composants. Diagramme de déploiement.
- Une comparaison synthétique entre Merise et UML.
Les grands principes des modélisations réussies
Principes de modélisation
- Qu'est-ce que la réification ? Pourquoi et quand mettre des informations sous forme d'objets ? Que doit-on considérer comme un objet ? Critères pour une réification réussie.
- Objets techniques et objets métiers. Comment traduire des concepts métiers sous la forme d'objets. Les grands principes de la définition d'objets métiers.
Autonomie, interaction et interfaces
- Les objets conçus comme entités autonomes.
- Comment penser l'interaction entre objets ?
- L'importance des interfaces et des points de contacts entre objets.
Abstraction et concrétisation
- Classes abstraites et concrètes. L'importance des classes abstraites. Comment réaliser de bonnes classes abstraites ? Comment abstraire à partir d'une analyse ?
- Concevoir au niveau des classes abstraites et réaliser au niveau des classes concrètes. La réutilisation de classes abstraites. Extensibilité et adaptabilité des conceptions abstraites.
L'objet en programmation
Les grands langages objets
- Quel langage choisir ? Les caractéristiques fondamentales des langages. Langages statiques et dynamiques. Les stratégies de gestion mémoire. Les bibliothèques de classes. Présentation et comparaison des caractéristiques des principaux langages à objets : C++, Java.
- Comment choisir un langage objet ? Les grandes approches de l'implémentation des langages à objets - leurs conséquences sur les orientations des projets. L'impact des modes d'exécution sur une application. Peut-on se passer d'un langage à objet pour une approche objet ?
- Le marché des outils de développement objet. Les grandes catégories d'outils. Tendances récentes, convergences. Des compilateurs aux ateliers de composants. Les acteurs principaux du marché.
L'approche Java
- Les caractéristiques générales du langage. Avantages et inconvénients. L'intérêt d'une machine virtuelle.
- L'importance des bibliothèques de classes. Réutilisabilité et portabilité. Organisation d'un projet Java.
- Le « tout Java ». De l'intranet à la carte à puce, des téléphones intelligents à la station de travail.
- Politiques et stratégies autour de Java. Quelle attitude adopter face à Java ?
L'organisation de la réutilisation avec les Design patterns
- Favoriser la réutilisation par l'industrialisation du processus de conception.
- Mise en place de solutions-types réutilisables : les design patterns ou patrons de conception.
- Les travaux du GOF (Gang Of Four) et les grandes catégories de Design Patterns : processus de création d'objets, description de structures de données, réalisation d'un comportement.
Objets métier, frameworks
- Qu'est-ce qu'un framework ou canevas applicatif ? Rapport entre framework et composants logiciels dans une application à objets. Comment utiliser des frameworks ? Comment insérer des composants dans un framework ? Comment définir ses propres frameworks ? Les pièges à éviter lors de la conception de frameworks.
- Tentative de définition de l'Objet métier.
- Différences entre design patterns et frameworks.
Les clients-serveurs à base d'Objets
- Les architectures à base d'objets répartis.
- CORBA : Common Object Request Broker Architecture. Principes d'un courtier de requêtes Objet (ORB). Phases de développement d'une application CORBA. Présentation d'un exemple.
- Modèle Microsoft COM-DCOM.
- Java Remote Method Invocation (RMI) de Sun Microsystems.
- Apports et limites de ces solutions. Nécessité d'aller plus loin dans la prise en charge des services techniques afin de tendre vers un assemblage de véritables objets métier.
Les objets métier, serveurs d'applications et architectures n-tiers
Les architectures multiniveaux
- Les limites des architectures client-serveur à deux niveaux en matière de modularité, d'évolutivité et de capacité à accompagner une montée en charge sans refonte architecturale et conceptuelle.
- Les principes et apports des architectures multiniveaux. Spécificités des architectures ouvertes sur Internet.
Problématique de sécurité.
- Les grandes lignes des architectures multiniveaux Internet proposées par Sun Microsystems avec Java et par Microsoft avec .NET.
- Les caractéristiques d'une architecture à base de composants métier.
- Les propositions en concurrence : J2EE, .NET, Corba Component Model.
Le standard J2EE et le marché des Enterprise Java Beans
- Le modèle de base des Enterprise Java Beans. Extension des notions de composants JavaBeans aux architectures distribuées. Intégration avec les technologies existantes.
- Spécification J2EE et implémentations. Les grands acteurs du marché des serveurs J2EE, de Sun à JBoss. Avantages et limites d'une standardisation.
- Intégration avec les services d'information. Concevoir un mécanisme de persistance d'un modèle objet vers un schéma de base de données relationnelle.
- Intégration avec les architectures de transaction.
- Les différentes catégories de composants EJB : session, entité, message.
L'approche Microsoft .NET
- Présentation générale de l'architecture .NET. Portabilité et interopérabilité. Evolution de l'offre Microsoft de COM à .NET.
- C#, un nouveau langage objet orienté composants. Comparaison avec Java. L'infrastructure CLR, technique d'intégration entre langages objets.
- Les classes de base de .NET, développement avec ADO.NET et les WebServices. L'intégration avec les systèmes d'intégration et les composants COM.
L'approche Model Driven Architecture
- Les différents modèles MDA. Les transformations MDA.
- L'impératif d'outillage de la méthode.
- Les profils MDA et le métamodèle.
Les infrastructures Web à base d'objets
- Les bénéfices attendus de la mise en oeuvre des services Web.
- Les constituants d'une architecture à base de services Web et leurs principes de fonctionnement.
- Les concepts de SOAP, WSDL, UDDI.
- L'historique des services Web.
- Problématique d'urbanisation des systèmes d'information.
- SOA (Service Oriented Architecture) : concepts et architectures.
- Standards de gestion de processus métier en cours de normalisation.
- Les offres en présence.
Synthèse
- Bilan. Enjeux, risques et perspectives.