Applications N-Tiers Rappels: architecture et méthodologie F.Pfister (francois.pfister@mines-ales.fr)
Pérénité d'un développement Structure d'une application La partie métier doit être intangible Partie Métier
Evolution de la technologie Modèle d'exécution Application desktop 2 ou 3 niveaux Application web client léger Application web client lourd Service web Modèle de persistance Sérialisation Base de données objet Base de données relationnelle (SGBDR) Mapping objet + SGBDR
Séparation des préoccupations Le modèle métier doit rester indépendant des couches techniques De l'interface utilisateur Lorsque cette condition est réalisée le coeur des applications peut migrer d'une technologie informatique à la suivante Les fonctionnalités métier peuvent être testées et validées par des procédures automatisées (tests unitaires et tests d'intégration)
Démarche d'ingénierie Un langage Un procesus UML, Unified modeling Language Un procesus UP, Unified Process XUP, Extreme Unified Process 2TUP, Two Track Unified Process etc..
Le processus du projet UP est à base de composants UP utilise UML UP est piloté par les cas d’utilisation UP est centré sur l’architecture UP est itératif et incrémental UP sépare les préoccupations Les aspects techniques Solution de persistance Nature du client (lourd -léger) Le modèle métier Classes métier
Les cas d'utilisation Point d'entrée de la démarche L'approche est purement fonctionnelle Spécifient le besoin Point de vue de l'utilisateur Forme: Scénarii textuels Diagrammes de cas (use cases)
Trouver les cas d'utilisation Exemple: modélisation d'un GAB Effectuer un retrait Client Consulter un compte Operateur
Réaliser les cas d'utilisation Trouver les cas d’utilisation Réaliser les cas d’utilisation Réaliser les cas d’utilisation Modéliser les scénarii Identifier les entités du système et leurs interactions
Réaliser les cas d'utilisation Vue dynamique Objets, rôles et interactions Effectuer un retrait Client :Client :InterfaceGuichet :Distributeur :Retrait :Compte Consulter un compte identifier() demandeRetrait(montant) valider(montant) effectuerRetrait(montant) Alimenter le GAB en billets distribuer(montant) Operateur delivrerBillets()
Structurer le système en objets Trouver les cas d’utilisation Réaliser les cas d’utilisation Structurer le système en objets Structurer le système en objets Trouver les entités du système Définir leurs propriétés Définir leurs relations (associations, héritage)
Découverte des classes candidates Vue statique du système Classes et associations Guichet Automatique Bancaire Guichet Automatique Bancaire Effectuer un retrait Client :Client interfaceGuichet: distributeur: :Retrait :Compte InterfaceGuichet Consulter un compte identifier() Client identifier() demandeRetrait(montant) valider(montant) Retrait Compte effectuerRetrait(montant) Distributeur Alimenter le GAB en billets * solde distribuer(montant) demandeRetrait() Operateur valider() effectuerRetrait() distribuer() delivrerBillets()
Implémentation et tests d'intégration Trouver les cas d’utilisation Réaliser les cas d’utilisation Guichet Automatique Bancaire Guichet Automatique Bancaire * Structurer le système en objets Implémenter les composants de déploiement du système ok ? Tester les cas d’utilisation
Notre projet Réaliser une application de gestion bancaire Le modèle d'exécution est le client léger avec serveur applicatif La technologie utilisée est JEE (Java Enterprise Edition) Le modèle métier est partiel et simplifié, car notre propos est de faire de la technique Mais nous n'oublions pas que le modèle métier est au coeur du projet
La démarche Appréhender les outils de développement Rédiger une spécification fonctionnelle simplifiée Concevoir un modèle métier simplifié (6 classes) Banque Client Compte Compte-epargne Compte-courant Ville Implémenter les classes Réaliser des jeux de test unitaire Concevoir l'architecture technique (serveur web) Réaliser le serveur web Concevoir l'interface utilisateur Choisir la technologie de persistance des objets métier Intégration et tests
Modalités Outils utilisés: Eclipse, Jboss Durée: 20 heures cours + tp Evaluation: dossier de projet et démo lors de la dernière séance.