ENSTA IN204 Introduction à JAVA



Documents pareils
Soucieux de parvenir à un développement durable fondé sur un équilibre harmonieux entre les besoins sociaux, l économie et l environnem ent ;

WTRANSNET FRANCE. Plates-formes électroniques 1 ère ÉDITION. Pour vos appels d offre

Information & Veille Territoriale

Semaine du 04 au 10 novembre 2013

Mémoire de fin d études d orthophonie CENTRE DE FORMATION DE STRASBOURG

Comment initialiser une démarche SOA

AGENCE CANADIENNE D INSPECTION DES ALIMENTS (ACIA) SYSTÈME AUTOMATISÉ À L IMPORTATION (SAI)

Programmation en Java IUT GEII (MC-II1) 1

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

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


«Ce formulaire doit être entièrement complété et signé par les emprunteurs et les cautions» Nom :... Nom :... Type de crédit.

Programmer en JAVA. par Tama

Portail Web Collaboratif de Gestion de Projet

Corrigé des exercices sur les références

Observatoire Régional R Enseignements Supérieurs en Bretagne (ORESB) Quelques chiffres clefs sur l insertion professionnelle

Plan du cours. Historique du langage Nouveautés de Java 7

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Jumelage institutionnel MA11/ENP-AP/FI22 LIVRABLE DEFINITIF

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

2. Comprendre les définitions de classes

Diacamma. Gestionnaire pour les associations sportives Guide d'utilisation. Version

Corrigés des premiers exercices sur les classes

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Autoris ations pour :

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Vérification formelle de la plate-forme Java Card

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Autoris ations pour :

as Architecture des Systèmes d Information

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

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

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

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

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)

Les frameworks au coeur des applications web

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

Urbanisation des systèmes d information

Service d'inform ation des Comités de l'ocde. O LISnet

UKRAINE. Loisurla responsabilitécivileen m atièrededom m agenucléaire etlesgarantiesfinancièresy afférentes* adoptéele13 décem bre2001

Les BRMS Business Rules Management System. Groupe GENITECH

Intégration de l interface graphique de Ptidej dans Eclipse

Cours 1 : La compilation

Une introduction à Java

TP1 : Initiation à Java et Eclipse

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Plateforme de capture et d analyse de sites Web AspirWeb

Programmation avec des objets : Cours 7. Menu du jour

Alfstore workflow framework Spécification technique

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

CATALOGUE FORMATION. Product Lifecycle Management. Juin 2013

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Offre Référentiel d échange

Quels outils pour prévoir?

10. Base de données et Web. OlivierCuré

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

Programmation de services en téléphonie sur IP

Un serveur d'archivage

PostgreSQL, le cœur d un système critique

Le génie logiciel. maintenance de logiciels.

Licence Sciences et Technologies Examen janvier 2010

MISE EN Œ UVRE DE POLITIQUES DE CONTRÔLE D ACCÈS FORMELLES PO U R DES APPLICATIONS BASÉES SU R U N E ARCHITECTURE O R IEN TÉE SERVICES

SUR LA PISTE DU CHEF. Allumez le calumet de la paix et préparez vous aux palabres.

&RQVHLO5pJLRQDO 1RUG± 3DVGH&DODLV

Libérez votre intuition

F. Barthélemy. 17 mai 2005

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Brique BDL Gestion de Projet Logiciel

Auto-évaluation Programmation en Java

Applications distribuées: le retour du client "riche"

.NET - Classe de Log

TD3: tableaux avancées, première classe et chaînes

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

Threads. Threads. USTL routier 1

Rapport de Mini-Projet en ArcGIS Engine

UML et les Bases de Données

Si cet ne s affiche pas correctement, merci de cliquer ici

TD/TP PAC - Programmation n 3

DG-ADAJ: Une plateforme Desktop Grid

GL Le Génie Logiciel

Recherche dans un tableau

STAGE IREM 0- Premiers pas en Python

Exigences internationales harmonisées pour la certification d un lot

Programmation Web. Madalina Croitoru IUT Montpellier

StormShield v4.0 StormShield - Version 4.0 Presentation OSSIR 10 juillet 2006

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007

Arbres binaires de recherche

Surveillance du réseau de l expérience LHCB

Langage Java. Classe de première SI

Zotero : petit guide d installation et d utilisation

Classes et Objets en Ocaml.

OCL - Object Constraint Language

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Utilisation d objets : String et ArrayList

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin Algorithmique 1

Introduction à la SOA. Youen Chéné 15/06/2010

Transcription:

ENSTA IN204 Introduction à JAVA Olivier Sigau d LIP6/ Anim atlab olivier.sigau d@lip 6.fr 01.44.27.88.53 Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 1

Plan du cours 12 Découpage en packages De l'analyse à la conception : recours au m odèle MVC Couches génériques Fram eworks Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 2

Le découpage en packages Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 3

Objectifs Rendre les différents m odules aussi indépendants que possible Perm ettre la com pilation séparée des m odules (m inim iser les «im ports») Eviter à tout prix les dépendances croisées Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 4

Exem ple élém entaire : que faire? Package 1 Package 2 Classe C1 Classe C2 Les classes C1 et C2 appellent des m éthodes l une de l autre Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 5

Solution 1 Package 1 Package 2 In terface I1 Classe C1 Classe C2 Le package 2 com pile tout seul, et le package 1 dépend du package 2 Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 6

Solution 2 In terface I1 Package 1 In terface I2 Classe C1 Package 2 Classe C2 Cette fois, on a isolé une couche abstraite indépendante, et une im plém entation qui en dépend D autres découpages sont possibles Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 7

Le pattern observer Instance du schém a précédent Exem ple de «Design pattern» (cours 13) Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 8

Plus loin que les packages Découpage en com posants (cours 14) Des m odules séparés, com pilés une fois pour toutes, qui peuvent être connectés ensem ble pour réaliser une architecture spécifique Eventuellem ent distribués, et dans des lan gages différen ts Tendance lourde du génie logiciel actuel A suivre Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 9

De l'analyse à la conception : recours au m odèle MVC Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 10

Rappel : Analyse / Conception Analyse = Com prendre les spécifications, en extraire les exigences, présenter form ellem ent le problèm e à résoudre Vérifier la conform ité de l analyse aux besoins Eviter de figer des choix de conception pendant l an alyse On ignore qu on réalise un logiciel Conception = Concevoir LA solution au problèm e analysé l analyse = << quoi? >>, la conception = << com m ent? >> On se concentre sur la réalisation d un futur logiciel Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 11

Objectifs L analyse a perm is de dégager un certain nom bre d objets m étiers qui seront m anipulés par le systèm e Le systèm e inform atique lui-m êm e n a pas encore été décom posé en fonction de ses traitem en ts Un aspect im portant du passage à la conception consiste à identifier les objets qui m anipulent les données contenues dans les objets m étier Approche : Model, View, Controller Attention : les diagram m es subissent des m odifications im portantes entre analyse et conception Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 12

Approche : Model, View, Controller (MVC) Model = les objets m étiers, = les objets porteurs de données m anipulées par l ap p lication View = les interfaces vers le m onde externe, qui donnent des «vues» sur l état des objets m étier Controller = les objets «Manager» de haut niveau qui vont m anipuler les objets m étiers Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 13

Dém arche MVC du passage à la conception Les objets m étiers ont été identifiés lors de l an alyse De m êm e pour les principales fonctionnalités et les principaux traitem ents Les «Managers» regroupent les traitem ents selon les types d objets m étiers auxquels ils s appliquent Ils reposent sur des structures de données élém entaires (containers) Les Views perm ettent d appeler (via une interface) les traitem ents définis par les Man agers On ajoute enfin des classes interm édiaires de conception (généricité, découpage en packages ) Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 14

Responsabilité et localité Un traitem ent doit être attribué à la prem ière classe qui dispose des données nécessaires pour le réaliser Perm et d assurer une propriété de localité m axim ale Exem ple : Une classe «listedachats» contient une liste de produits et de quantité, chaque produit connaît son coût unitaire Le traitem ent calculermontanttotal() est associé à listedach ats Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 15

Couches génériques Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 16

Réutilisation (1) Si une classe correspond à un objet concret et si ses m éthodes sont naturelles, tout program m e qui la m et en œ uvre peut réutiliser ses m éthodes Il est donc plus facile de réutiliser des m orceaux de code en program m ation orien tée objets Il est aussi plus facile d'interpréter ce que fait le program m e si les nom s de classe, d'attributs et de m éthodes sont naturels Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 17

Réutilisation (2) Plutôt que de réutiliser un m odule com plet, on peut vouloir réutiliser des traitem ents s ils sont génériques Dans ce cadre (fréquent), la réutilisation est réalisée à l aide de l abstraction On réalise un traitem ent pour une classe générique, et on pourra le réutiliser pour toutes les classes qui en dérivent Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 18

Couche générique en pratique Etant donné une architecture de type MVC On abstrait les objets «Model» sous form e d in terfaces gén ériqu es On réalise des objets «Managers» qui m anipulent ces interfaces Les traitem ents pourront être appliqués à tous les objets «Model» qui im plém entent ces in terfaces Les objets «Model» concrets im plém entent des traitem ents spécifiques appelés par les «Managers» Suppose d avoir des «View» génériques Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 19

Exem ple in terface Classifier { public boolean m atch(env e); } class Bin aryclassifier im p lem en ts Classifier { public boolean m atch(env e){if (cond.isdontcare()) return true; else if ((cond.istrue() && e.istrue()) (cond.isfalse() && e.isfalse()) return true; else return false; } class In tervalclassifier im p lem en ts Classifier { public boolean m atch(env e){if cond.isdontcare() return true; else if ((cond.m in()<e.val()) && (cond.m ax()>e.val()) return true; else return false; } Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 20

Fram ew orks Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 21

Bibliothèque Module fourni Module fourni Ap p lication développée par l u tilisateu r Module fourni Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 22

Fram ew ork Ap p lication générique fournie Module développé par l utilisateur Module développé par l utilisateur Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 23

Définition et im plications Un fram ework est un logiciel constitué principalem ent d une couche générique, prévue pour que les utilisateurs y branchent leur propre couche spécifique en im plém entant quelques in terfaces Nécessité de clairem ent spécifier ce qu il faut dériver ou im plém enter Nécessité que les signatures soient sim ples et bien conçues Quelques im plém entations classiques ou exem plaires peuvent être fournies Travail d abstraction très délicat : prévoir des u tilisation s exotiqu es Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 24

Difficultés spécifiques On ne peut pas prévoir à l avance toutes les im plém entations Il faut donc dégager une couche abstraite, cohérente et suffisam m ent riche pour être intéressante (les fram eworks im posent des con train tes) En IA, avoir recours à l abstraction m athém atique pour voir les équivalences entre des approches/ outils Perm et de m axim iser les classes d application Suppose une certaine expertise dans le dom aine m odélisé Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 25

Exem ples JEO : Java Evolutionary Optim ization (projet 2003) Perm et de faire tourner des algorithm es génétiques répartis sur des réseaux ouverts (SETI@h om e) Il suffit d im plém enter ses génom es (choix dans un catalogue ou dérivation) et ses fonctions d évaluation SFERES : dédié à l optim isation de com portem ents par algorithm es génétiques Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 26

De la conception à l'im plém entation Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 27

Attention! Les contraintes d efficacité ou des lacunes dans la conception peuvent entraîner des m odifications entre conception et im plém entation Quand c est le cas, il faut faire évoluer la docum entation et consulter les partenaires concernés S efforcer de concevoir les interfaces de telle façon qu elles ne soient pas concernées par les m odification s S efforcer de faire les m odifications de façon à ne pas toucher aux interfaces Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 28

Optim isation Identifier les traitem ents qui sont appliqués le plus souvent (profiling) Chercher à optim iser ces traitem ents en priorité Identifier tous les calculs qui sont effectués plusieurs fois : peut-on stocker les résultats pour ne pas les refaire? On va parfois jusqu à l optim isation de bytecode (m ais c est perdu si on recom pile ) Détail Java : éviter les m éthodes à plus de trois param ètres Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 29

Pause urgente! Ce document est mis à votre disposition par l'ensta sous couvert de la licence "Creative Commons" Page : 30