170 likes | 287 Views
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. Partie Métier. La partie métier doit être intangible. Evolution de la technologie. Modèle d'exécution
E N D
Applications N-TiersRappels: architecture et méthodologie F.Pfister (francois.pfister@mines-ales.fr)
Pérénité d'un développement Structure d'une application Partie Métier La partie métier doit être intangible
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 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 Réaliser les cas d’utilisation Modéliser les scénarii Identifier les entités du système et leurs interactions Trouver les cas d’utilisation Réaliser les cas d’utilisation
Réaliser les cas d'utilisation Vue dynamique Objets, rôles et interactions Effectuer un retrait Client :InterfaceGuichet :Distributeur :Retrait :Compte :Client Consulter un compte identifier() demandeRetrait(montant) valider(montant) effectuerRetrait(montant) Alimenter le GAB en billets Operateur distribuer(montant) delivrerBillets()
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) Trouver les cas d’utilisation Réaliser les cas d’utilisation Structurer le système en objets
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() identifier() Client demandeRetrait(montant) valider(montant) Retrait Compte effectuerRetrait(montant) solde Alimenter le GAB en billets * Distributeur Operateur distribuer(montant) demandeRetrait() 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.