12. Conception des applications



Documents pareils
2. Comprendre les définitions de classes

4. Groupement d objets

Utiliser Java sans BlueJ

Les Bonnes PRATIQUES DU TEST LOGICIEL

Patrons de Conception (Design Patterns)

Développement itératif, évolutif et agile

Plan. Patrons de conception. Motivations. Design Pattern : principe. Philippe Collet

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Plateforme de capture et d analyse de sites Web AspirWeb

EXPERTS EN DÉVELOPPEMENT ET MODERNISATION DE LOGICIELS WEB ET MOBILES

Le génie logiciel. maintenance de logiciels.

Projet Active Object

Évaluation et implémentation des langages

IFT785 Approches Orientées Objets. FINAL Été Remise : Jeudi 19 août 2002 à 9h00 am

Introduction Les processus traditionnels extreme Programming Conclusion. extreme Programming. vers plus d agilité. F. Miller francois.miller@inpg.

Prise en compte du facteur humain. Cédric Soubrié

TP1 : Initiation à Java et Eclipse

Gé nié Logiciél Livré Blanc

Héritage presque multiple en Java (1/2)

SIMULER ET CONCEVOIR LE TRAVAIL FUTUR

Méthodologies Orientées-Objet!

L enseignement de méthodes agiles dans un contexte d apprentissage actif

SIMULER ET CONCEVOIR LE TRAVAIL FUTUR

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Evaluation et mise en place d un serveur de messages pour Chamilo 2.0

Chapitre 2. Classes et objets

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

La plate-forme DIMA. Master 1 IMA COLI23 - Université de La Rochelle

GL Processus de développement Cycles de vie

Les méthodes itératives. Hugues MEUNIER

Master CCI. Compétences Complémentaires en Informatique. Livret de l étudiant

Premiers Pas en Programmation Objet : les Classes et les Objets

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Document à l attention de l enseignant Grande section

Analyse,, Conception Objet

Objets et Programmation. origine des langages orientés-objet

Traduction des Langages : Le Compilateur Micro Java

Introduction au génie logiciel

Élaborer une production dans un contexte collaboratif. Michel Futtersack, Faculté de Droit, Université Paris Descartes, Sorbonne Paris Cité

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Chapitre VI- La validation de la composition.

Entraînement au concours ACM-ICPC

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Organisation d une simulation sur un prototype logiciel workflow et GED. ImmoBiens. 1 - Description du projet de l entreprise

Génie logiciel pour le commerce électronique Hiver 2003 Prof.: Julie Vachon

PG208, Projet n 3 : Serveur HTTP évolué

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Tux Paint. 1. Informations générales sur le logiciel. Auteur : Bill Kendrick et l équipe de développement de New Breed Software

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Rational Unified Process

Gestion de projets logiciels. Xavier Dubuc

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Méthodes agiles. CONSEIL & DÉVELOPPEMENT DE SOLUTIONS E-BUSINESS. Jean-Louis Bénard jlb@businessinteractif.

Bien programmer. en Java ex. couleur. Avec plus de 50 études de cas et des comparaisons avec C++ et C# Emmanuel Puybaret.

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET

Tutoriel BlueJ. Michael Kölling Mærsk Institute University of Southern Denmark. Version 1.4 fr-2 par le groupe Sigma 1 pour BlueJ Version 1.2.

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Spip 2. Premiers pas pour créer son site web. Anne-Laure Quatravaux Dominique Quatravaux. Avec la contribution de Sandrine Burriel

Cours en ligne Développement Java pour le web

Auto-évaluation Programmation en Java

Présentation du PL/SQL

Design patterns. Design patterns - définition. Design patterns - avantages

M1if22 - Logiciels éducatifs Conception & rôle de l enseignant

Tp 1 correction. Structures de données (IF2)

Programmer en JAVA. par Tama

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

RAPPORT DE CONCEPTION UML :

Élaborer des objectifs d apprentissage SMART

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Algorithme des fourmis appliqué à la détection et au suivi de contours dans une image

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Note de synthèse. Développement web sur le CMS Prestashop. Stage du 17 mai au 25 juin Entreprise decoratzia.com 15 rue Erlanger Paris

Atelier rédactionnel

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

CQP Développeur Nouvelles Technologies (DNT)

Programmation Objet - Cours II

Besoins utilisateurs. Quelle démarche pour passer des besoins au code? Code. chapitre1 UNIFIED MODELING LANGUAGE. package LogiqueMetier.

Bases Java - Eclipse / Netbeans

Texte Agrégation limitée par diffusion interne

Logiciel Libre Cours 3 Fondements: Génie Logiciel

simulation c est [parfois] formidable

Analyse,, Conception des Systèmes Informatiques

Génie Logiciel avec Ada. 4 février 2013

Processus d Informatisation

LES DECIMALES DE π BERNARD EGGER

GUIDE VISUEL DE SOUTIEN À L UTILISATEUR PLATEFORME COLLABORATIVE DE LA COMMUNAUTÉ DE PRATIQUE SUR LE SYNDROME DOULOUREUX RÉGIONAL COMPLEX

Administrateur de Parc PC

Les méthodes Agiles Introduction. Intervenant : Tremeur Balbous tremeur@agilegardener.com 04/09/2008

Stocker des données sur Amazon S3

Formation, Audit, Conseil, Développement, UX WinRT Silverlight WPF Android Windows Phone

Master MIDO 2ème année. Spécification et Conception en UML Maude Manouvrier

UML (Diagramme de classes) Unified Modeling Language

Plan de notre intervention 1. Pourquoi le test de charge? 2. Les différents types de tests de charge 1.1. Le test de performance 1.2.

SECTION 5 BANQUE DE PROJETS

COURS WINDEV NUMERO 3

Transcription:

Conception objet en Java avec BlueJ une approche interactive 12. Conception des applications David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0

Principaux concepts abordés Découvrir les classes Cartes CRC Concevoir les interfaces Patrons de conception Conception objet en Java avec BlueJ une approche interactive 2

Analyse et conception Un domaine vaste et complexe. La méthode nom/verbe est adaptée aux problèmes relativement petits. On utilise les cartes CRC dans la phase de conception. Conception objet en Java avec BlueJ une approche interactive 3

La méthode nom/verbe Dans une description, les noms font référence aux «choses». sources des classes et des objets. Les verbes font référence aux actions. sources des interactions entre objets. les actions sont des comportements donc des méthodes. Conception objet en Java avec BlueJ une approche interactive 4

Conception objet en Java avec BlueJ une approche interactive 5 Une description de problème Le système de réservation doit enregistrer les réservations de places de cinéma de plusieurs salles. Chaque salle comporte des sièges organisés par rangée. Les clients peuvent réserver des places; on leur attribue un numéro de rangée et un numéro de place. Ils peuvent demander plusieurs places voisines. Une réservation concerne une séance particulière (un film à une heure donnée). Les séances ont lieu à une date et une heure données dans une salle donnée. Le système enregistre le numéro de téléphone du client.

Conception objet en Java avec BlueJ une approche interactive 6 Noms et verbes Système de réservation Stocke (réservation places) Stocke (numéro de téléphone) Salle a (sièges) Film Client Réserve (places) Reçoit (numéro de rangée, de place) Demande (réservation places) Heure Date Réservation places Séance a lieu (dans salle) Siège Numéro siège Numéro Téléphone Rangée Numéro rangée

Conception objet en Java avec BlueJ une approche interactive 7 Utiliser les cartes CRC Introduites par Kent Beck et Ward Cunningham. Chaque carte comporte: un nom de classe (C). les responsabilités de la classe (R). les collaborateurs de la classe (C).

Conception objet en Java avec BlueJ une approche interactive 8 Une carte CRC Nom de la classe Collaborateurs Responsabilités

Scénario Une activité que le système doit réaliser ou gérer. quelque fois appelé cas d utilisation. Utilisé pour découvrir et noter les interactions entre objets (collaborations). À réaliser (jouer) en groupe. Conception objet en Java avec BlueJ une approche interactive 9

Conception objet en Java avec BlueJ une approche interactive 10 Un exemple partiel CinemaBookingSystem peut trouver les séances par titre et jour. Stocke des collection de séances. Extrait et affiche les informations d une séance.... Collaborateurs séance Collection

Conception objet en Java avec BlueJ une approche interactive 11 Scénarios comme moyen d analyse Les scénarios servent à vérifier que la description du problème est claire et complète. Passez suffisamment de temps sur l analyse. L analyse conduit à la conception. mettre en évidence des erreurs ou des oublis à ce moment fait gagner beaucoup de travail pour la suite.

Conception objet en Java avec BlueJ une approche interactive 12 Conception de classe L analyse par scénario permet de clarifier la structure de l application. chaque carte fournit une classe. les collaborations mettent en évidence les coopérations et interactions entre objets. Les responsabilités fournissent les méthodes publiques. et parfois des champs; ex. «stocke une collection...»

Conception des interfaces de classes Rejouez les scénarios en termes d appels de méthodes, paramètres et valeurs de retour. Notez les signatures obtenues. Créez les schémas de classes avec les squelettes de méthodes publiques. Une conception minutieuse est la clé d une implantation réussie. Conception objet en Java avec BlueJ une approche interactive 13

Documentation Écrire les commentaires de classe. Écrire les commentaires de méthode. Décrire le but général de chacune. Documenter dès maintenant garantit que: on se concentre sur quoi plutôt que comment. on n oubliera pas de commenter! Conception objet en Java avec BlueJ une approche interactive 14

Coopération Le travail en équipe tend à devenir la norme et non l exception. La documentation est essentielle pour le travail en équipe. Une conception OO «propre» avec des composants faiblement couplés favorise aussi la coopération. Conception objet en Java avec BlueJ une approche interactive 15

Prototypage Pour analyser le système au plus tôt. Identification précoce des problèmes. On peut simuler des composants incomplets. par ex. en retournant un résultat constant. éviter les comportements aléatoires, difficiles à reproduire! Conception objet en Java avec BlueJ une approche interactive 16

Croissance du logiciel Modèle de la chute d eau. analyse conception implantation test unitaire test d intégration recette (fourniture au client) Pas d itération prévue. Conception objet en Java avec BlueJ une approche interactive 17

Développement itératif Utiliser un prototype au plus tôt. Interactions fréquentes avec le client. Boucle sur: analyse conception prototype retour client Un modèle avec accroissement prévu du projet est le plus réaliste. Conception objet en Java avec BlueJ une approche interactive 18

Utiliser les patrons de conception Les relations inter-classes sont importantes et peuvent être complexes. On retrouve certaines relations dans de nombreuses applications. Les patrons de conception ("Design patterns") aident à clarifier les relations et encouragent la réutilisation. Conception objet en Java avec BlueJ une approche interactive 19

Structure d un patron Un nom de patron. Le problème associé. En quoi il fournit une solution: structures, participants, collaborations. Résultats de son emploi. résultats, compromis. Conception objet en Java avec BlueJ une approche interactive 20

Décorateur Accroît les fonctionnalités d un objet. Un objet décorateur enveloppe un autre objet. Le décorateur a la même interface. les appels sont transmis à l objet enveloppé...... mais le décorateur peut intercaler certaines actions. Exemple: java.io.bufferedreader enveloppe et étend un objet Reader non tamponné. Conception objet en Java avec BlueJ une approche interactive 21

Conception objet en Java avec BlueJ une approche interactive 22 Singleton Garantit qu une seule instance d une classe existe. tous les clients utilisent le même objet. Le constructeur est privé pour empêcher des instanciations externes. On obtient une instance unique avec un appel à la méthode statique getinstance. Exemple: Canvas du projet shapes.

Conception objet en Java avec BlueJ une approche interactive 23 La méthode fabrique ("factory") Patron de création. Les clients demandent un objet d un type interface ou d une superclasse donnée. Une méthode fabrique un objet de la classe ou d une sous-classe. Le type retourné dépend du contexte. Exemple: les méthodes iterator des classes Collection.

Conception objet en Java avec BlueJ une approche interactive 24 Observateur Pour séparer le modèle interne de la vue de ce modèle. Un observateur définit une relation un-àplusieurs entre objets. L objet observé informe tous ses observateurs de tout changement d état. Exemple: SimulatorView du projet foxes-and-rabbits.

Observateurs Conception objet en Java avec BlueJ une approche interactive 25

Conception objet en Java avec BlueJ une approche interactive 26 Résumé (1) Les collaborations entre classes et les interactions entre objets doivent être identifiés. l analyse CRC facilite cette identification. Une approche itérative pour concevoir, analyser et implanter peut être bénéfique. percevoir les systèmes logiciels comme des entités qui croîtront et évolueront dans le temps.

Résumé (2) Travaillez de manière à faciliter les collaborations avec les autres acteurs. Concevez des structures de classe souples et extensibles. aide: connaître les patrons de conception existant. Continuez à apprendre par votre propre travail et l expérience des autres. Conception objet en Java avec BlueJ une approche interactive 27

Sommaire général 1. Introduction 2. Classes 3. Interactions d objets 4. Collections et itérateurs 5. Bibliothèques de classes 6. Tests mise au point 7. Conception des classes 8. Héritage -1 9. Héritage -2 10. Classes abstraites et interfaces 11. Gestion des erreurs 12. Conception des applications Conception objet en Java avec BlueJ une approche interactive 28