Génie Logiciel ESIEA

Dimension: px
Commencer à balayer dès la page:

Download "Génie Logiciel ESIEA 2013-2014"

Transcription

1 Génie Logiciel ESIEA Mise-à-jour : 21/03/2014

2 Thierry ESIEA 2001

3 Planning ( INF3038 ) Cours UFA+3A (matin) : 17 mars 24 mars 31 mars 7 avril Evaluation??? (aucun document) pas durant les cours TD UFA (matin) : 25 mars x2 8 avril x2 TD 3A : plein de dates Logiciels : Java JDK 1.6 Maven 3 Eclipse 3.6

4 Projet ( LAB3416 ) Dates clés : 31 mars : constitution des équipes 7 avril : Présentation du sujet 23 mai : Remise du projet par par équipe de 6-8

5 Pédagogie ( futurs jeunes ingénieurs )

6

7 Génie Logiciel

8 L ESIEA l Ecole qui forme l Ingénieur et l Homme

9 Arrêté ministériel du 30 décembre 1983 (Journal officiel du 19 février 1984) Le génie logiciel est «l'ensemble des activités de conception et de mise en œuvre des produits et des procédures tendant à rationaliser la production du logiciel et son suivi»

10 De quoi on parle dans ce cours?

11 UML

12 Java avancé

13 Eclipse IDE

14 Design patterns

15 Tests : JUnit, TDD, 3T

16 Les méthodes agiles : Scrum, Xp, Kanban,

17 Gestion de source

18 Acteurs des projets Analyste Architecte Graphiste Junior Chef de projet Développeurs

19 Utilisateurs Hommes Personnes avec un handicap (malvoyants, daltoniens, malentendants, ) Femmes Enfants (bébés, jeunes, ado, )

20

21 Mais on parle aussi de vaches, de chiens, de téléphones, de voitures,

22

23 UML + Java (en support)

24 Un peu d histoire pourquoi UML?

25

26

27 9 diagrammes : de classes ; de cas d utilisation (use case) ; d objets ; de collaboration ; de séquence ; d états-transitions ; d activités ; de composants ; de déploiement

28 Diagramme de classe

29 Des exemples simples

30 public interface Mammifere { } int getnombremamelle(); public class Loup implements Mammifere { private int public int getnombremamelle() { return nbmamelle; } Accesseurs ( getter / setter ) } public void setnombremamelle(int nbmamelle) { this.nbmamelle = nbmamelle; }

31 La classe Loup implémente l interface Mammifere Fleche avec trait en pointillé Attributs Méthodes Graphes UML avec ObjectAid

32 public class Chien extends Loup { private boolean lof; private String tatouage; public boolean islof() { return lof; } public void setlof(boolean lof) { this.lof = lof; } public String gettatouage() { return tatouage; } } public void settatouage(string tatouage) { this.tatouage = tatouage; }

33 La classe Chien étend la classe Loup Fleche avec trait plein

34 La classe Chien étend la classe Loup qui implémente l interface Mammifere Fleche avec trait en pointillé Fleche avec trait plein

35 Un exemple vachement plus complexe ( mais qui reste courant )

36 spécialisation généralisation Graphes UML avec Omondo

37 Trouver le sigle utilisé pour représenter le «protected» Pour «private» on utilise «-» Pour «public» on utilise «+» Et pour «protected»??? Pour la prochaine fois

38 public enum Genre { HOMME(1, "Garcon"), FEMME(2, "Fille"), TEMPORAIRE(8, "Temp"); final int codesecu; final String label; Genre(final int codesecu, final String label) { this.codesecu = codesecu; this.label = label; } public int getcodesecu() { return codesecu; } } public String getlabel() { return label; }

39 public interface Mammifere { int getnombremamelle(); Genre getsexe(); } public class Loup implements Mammifere { private int nbmamelle; private Genre public Genre getsexe() { return sexe; } public void setsexe(genre sexe) { this.sexe = sexe; } }...

40 La classe Louppossède un attribut du type Genre (sexe). Association *-1 On parle d une association.

41 Graphes sympas avec yuml : Associations Télécommande et piles

42 Une télécommande sans couvercle est-elle toujours une télécommande? Agrégation Télécommande et son couvercle Diamant vide

43 Une télécommande sans touche est-elle toujours une télécommande? Composition Télécommande et ses touches Diamant plein

44 Graphes UML avec Omondo Composition 1-1..* (biilatérale) Association *-* (unilatérale) Association, Agrégation, Composition Agrégation 1-1 (unilatérale)

45 Démo UML avec YUML

46

47 [Telecommande -piles; +getpiles();+setpiles();]*-*[pile]

48 [Telecommande -couvercle; +getcouvercle(); +setcouvercle();]<>1-1>[couvercle]

49 [Telecommande -touches +gettouches();+settouches();] *>[touche -telecommande +gettelecommande(); settelecommande();]

50 Diagramme de séquence

51 Au volant de sa voiture

52 Démo UML avec Web Sequence Diagrams

53

54

55 A->B: text A->A: text A->B: text activate B B-->A: text deactivate B

56 participant Conducteur participant Cle participant Pedale participant Voiture participant Demarreur participant Moteur participant Arbre Conducteur->Cle: tourner activate Cle Cle->Voiture: demarrer activate Voiture Voiture->Demarreur: activer activate Demarreur Demarreur->Arbre: entrainer activate Arbre Arbre-->Demarreur: ok deactivate Arbre Demarreur-->Voiture: ok deactivate Demarreur deactivate Voiture deactivate Cle Conducteur->Pedale: appuyer activate Pedale Pedale->Voiture: accelerer activate Voiture Voiture->Moteur: accelerer activate Moteur Moteur->Arbre: entrainer activate Arbre Arbre-->Moteur: deactivate Arbre Moteur-->Voiture: vitesse_rotation

57 Diagramme d états-transitions

58 Feux tricolores Etat (adjectif) Transition

59 Lave vaisselle

60 Laver la vaisselle en machine Graphes avec Visual Paradigm (community edition) pour Eclipse

61 Laver la vaisselle en machine Fin (Ronds imbriqués) Début (Ronds plein)

62 Laver la vaisselle en machine

63 Laver la vaisselle en machine

64 Laver la vaisselle en machine Historique

65 Diagramme d état-transitions d un colis livré par la poste. Penser aux centres de tri. Pour la prochaine fois

66 Bifurcation

67 Bifurcation final

68 Bifurcation

69

70

71 Diagramme d activité

72 Laver la vaisselle en machine (encore) Transition Action (verbe)

73 Laver la vaisselle en machine (encore) Diagramme très proche de l état-transitions Action (verbe) Etat (adjectif)

74 Représentation des conditions

75 Représentation D une décision Décision

76 Synchronisation

77 Signaux

78 Diagramme Use case

79 Interactions

80 Use case d un homme en interaction avec la télé via la télécommande. Penser aux interactions entre la télé et la télécommande. Pour la prochaine fois

81

82 Actu de la semaine

83 Prochaines conférences Scrum Day avril Devoxx France avril Mix-it avril Breizth Camp mai Agile France mai 2014

84

85 Tests avec JUnit

86 Tests avec JUnit Prouver que ça fonctionne

87 public interface Calculette { int additionner(int a, int b); int multiplier(int a, int b); } public class SimpleCalculette implements Calculette public int additionner(int a, int b) { return a + b; } public int multiplier(int a, int b) { return a * b; }

88 import static junit.framework.assert.assertequals; import org.junit.before; import org.junit.test; public class SimpleCalculetteTestCase { private Calculette calculette; Test Avant test public void dobefore() { calculette = new SimpleCalculette(); public void testadditionner() { final int a = 2; final int b = 3; Conventions de nommage } int result = calculette.additionner(a, b); assertequals(5, result);

89 C est vert donc c est ok Les tests de la classe Temps d exécution

90 Démo dans Eclipse ( calcul de φ : 1, Fibonacci )

91 Faire passer au vert le dernier test, sur la durée Utiliser une HashMap Pour la prochaine fois Copie individuelle à rendre

92 Dossier La suite de Fibonacci et le nombre d or :

93 One more thing

94 Tests A la découverte de Junit «Les Tests en Trois Temps» icauda.com/articles.html#3t

95

96

97 Les méthodes agiles ( Scrum, Xp, Kanban, Lean )

98 Cycle en V

99

100 Manifeste agile Les 4 valeurs : Les individus et leurs interactions plus que les processus et les outils. Des logiciels opérationnels plus qu une documentation exhaustive. La collaboration avec les clients plus que la négociation contractuelle. L adaptation au changement plus que le suivi d un plan. Wikipedia :

101 Manifeste agile Les 12 principes : Notre plus haute priorité est de satisfaire le client en livrant rapidement et régulièrement des fonctionnalités à grande valeur ajoutée. Accueillez positivement les changements de besoins, même tard dans le projet. Les processus agiles exploitent le changement pour donner un avantage compétitif au client. Livrez fréquemment un logiciel opérationnel avec des cycles de quelques semaines à quelques mois et une préférence pour les plus courts. Les utilisateurs ou leurs représentants et les développeurs doivent travailler ensemble quotidiennement tout au long du projet. Réalisez les projets avec des personnes motivées. Fournissez-leur l environnement et le soutien dont ils ont besoin et faites-leur confiance pour atteindre les objectifs fixés. La méthode la plus simple et la plus efficace pour transmettre de l information à l'équipe de développement et à l intérieur de celle-ci est le dialogue en face à face.

102 Manifeste agile Les 12 principes (suite) : Un logiciel opérationnel est la principale mesure d avancement. Les processus agiles encouragent un rythme de développement soutenable. Ensemble, les commanditaires, les développeurs et les utilisateurs devraient être capables de maintenir indéfiniment un rythme constant. Une attention continue à l'excellence technique et à une bonne conception renforce l agilité. La simplicité c est-à-dire l art de minimiser la quantité de travail inutile est essentielle. Les meilleures architectures, spécifications et conceptions émergent d'équipes auto organisées. À intervalles réguliers, l'équipe réfléchit aux moyens de devenir plus efficace, puis règle et modifie son comportement en conséquence.

103 «Mémento Manifeste Agile»

104 «En route vers l'agilité, SCRUM et XP : retour d'expérience»

105

106 Scrum Des rôles : Product Owner Scrum Master Team Des concepts : Story points Velocity User story Done Des rituels : Sprint Daily stand up Sprint review Planning poker Retrospective Des artefacts : Product backlog Sprint backlog Task board Burn down

107 User story

108 Cartes Scrum ( planning poker )

109 Planning poker

110 Stand up

111 Stand up

112 Dashboard

113 Taskboard

114 Dashboard (taskboard) pour de vrai

115 Dashboard (taskboard) pour de vrai

116 Burndown d un sprint

117 Burndown en vrai

118 Démo

119 Rétrospective de fin de sprint

120 «3T en pratique» «Scrum et Agile avec des bonhommes» «Présentation des méthodes agiles et Scrum» «Scrum Xp depuis les tranchées» «Mémento Scrum gratuit»

121

122

123

124 Actu de la semaine 7B$

125 User groups Paris JUG (Java User Group) Duchess France Angular JS Paris Paris AUG (Android User Group)

126

127 Story board et maquettes

128

129 Dessins sympas avec Iphone Mockup :

130 Dessins sympas avec Iphone Mockup :

131

132

133

134 Balsamiq mockups : Axure : Mockingbird : https://gomockingbird.com/mockingbird/# Pencil : Iphone mockup :

135

136 Gestion de version

137

138 pratique?

139 Pourquoi pas sur un disque réseau? disque réseau

140 Pourquoi pas par ?

141 Travail à distance? Echanges de fichiers (nombreux) dans tous les sens? Versions des fichiers? Sauvegardes? Conflits sur des modifications parallèles?

142 Gestion de sources et contrôle de versions : garder un historique des différentes versions des fichiers d'un projet ; permettre le retour à une version antérieure quelconque ; garder un historique des modifications avec leur nature, leur date, leur auteur... ; permettre un accès souple à ces fichiers, en local ou via un réseau ; permettre à des utilisateurs distincts et souvent distants de travailler ensemble sur les mêmes fichiers.

143 Dépôt (repository) Un dépôt Subversion est l'emplacement central où sont stockées toutes les données relatives aux projets gérés. Le dépôt contient l'historique des versions des fichiers stockés, les logs enregistrés lors des modifications, les dates et auteurs de ces modifications, etc. Un dépôt apparaît de l'extérieur comme un système de fichiers composé de répertoires au sein desquels on peut naviguer, lire et écrire selon les permissions accordées. Copie de travail (working copy) La copie de travail est un répertoire situé en local sur l ordi de l'utilisateur et qui contient une copie des fichiers. C'est cette copie qui sert de base de travail et qui est modifiée en local avant d'être envoyée vers le dépôt.

144 Update ( récupération de la dernière version des fichiers )

145 Import ( création de la copie locale )

146 Commit ( envoie des fichiers modifiés vers le repository )

147 Opérations Le checkout est l'opération qui consiste à récupérer pour la première fois les fichiers déjà existant au sein d'un projet du dépôt. Cette opération ne se fait en général qu'une fois par projet. Le résultat est une copie de travail. L'update consiste à synchroniser la copie de travail locale avec le dépôt en récupérant la dernière version des fichiers du dépôt. C'est à cette occasion que des conflits de version peuvent apparaître. Un commit est l'opération inverse d'un update. Elle consiste à mettre à jour le dépôt à partir de la copie de travail locale. Une nouvelle révision est alors créée. Un log (simple message texte contenant une description des modifications effectuées) doit être saisi à cette occasion. Remarque : pour qu'un commit soit possible, il faut que la copie de travail corresponde à la dernière version du dépôt (modifications locales exceptées). Si ce n'est pas le cas, il est nécessaire d'effectuer d'abord un update et de résoudre les conflits éventuels avant de réessayer le commit.

148 Commit ( bonne pratique : faire un update avant )

149 Branches ( versions ) Version 3 Version 2 Version 1

150 Branches - merge ( versions ) Branche debug Version 1

151 Tags ( révisions ) Version 2 Version 1

152

153

154

155 Design patterns

156 Les 23 Design patterns de GOF : Abstract factory, Builder, Factory, Prototype, Singleton, Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy, Chain of responsability, Command, Interpreter, Iterator, Mediator, Memento, State, Strategy, Template, Visitor, Observer

157 Les patterns JEE : MVC (Model-View-Controller), Business delegate, Composite entity, DAO (Data Access Object), Front controller, Intercepting filter, Service locator, Transfer object, IOC (Inversion Of Control) JEE : Java Enterprise Edition

158 3 grosses familles : Création : Factory, Builder, Singleton, etc. Structure : Facade, Decorator / Adaptor, Proxy, etc. Comportement : Iterator, Observer, etc.

159 Classer les design patterns GOF dans les 3 familles : création, structure ou comportement. Chez vous

160 A lire sur le Web :

161 Singleton

162 Le Singleton

163 Le Singleton public class NotesDesElevesService { public Map<String, Double> findnotesdernierexamen() { Map<String, Double> notes = new HashMap<String, Double>(); notes.put("jean Dupont", 14.5); notes.put("alice Marini", 16.0); notes.put("marc Tonnolu", 8.0);... } return notes; }

164 Le Singleton public class NotesDesElevesService { public Map<String, Double> findnotesdernierexamen() { Map<String, Double> notes = new HashMap<String, Double>(); // recherche longue en base de donnees } return notes; }

165 Le Singleton NotesDesElevesService service = new NotesDesElevesService(); Map<String, Double> notes = service.findnotesdernierexamen()

166 Le Singleton service1 = new NDES(); service1.findnde() NDES 1 service2 = new NDES(); service2.findnde() NDES 2 service3 = new NDES(); service3.findnde() NDES 3 NDES 4 service4 = new NDES(); service4.findnde()

167 Le Singleton public class NotesDesElevesService { } private static NotesDesElevesService instance = new NotesDesElevesService(); private NotesDesElevesService() {... } public static NotesDesElevesService getinstance() { return instance; } public Map<String, Double> findnotesdernierexamen() {... }

168 Le Singleton NotesDesElevesService service = NotesDesElevesService.getInstance(); Map<String, Double> notes = service.findnotesdernierexamen()

169 Le Singleton service1 = getinstance(); service1.findnde() service2 = getinstance(); service2.findnde() NDES service3 = getinstance(); service3.findnde() service4 = getinstance(); service4.findnde()

170 Le Singleton public class NotesDesElevesService { private static NotesDesElevesService instance; private NotesDesElevesService() {... } public static NotesDesElevesService getinstance() { if(instance == null) { instance = new NotesDesElevesService(); } } return instance; }...

171 Dessiner le diagramme de classe UML du Singleton (avec les bonnes associations) Chez vous

172 Le Singleton synchronized?

173 «Mémento Singleton»

174 Factory

175 Factory

176 Factory public enum RaceChienEnum { LABRADOR("Labrador"), CANICHE("Faux chien"), DOBERMAN("Chien méchant"); private final String name; RaceChienEnum(String name) { this.name = name; } }...

177 Factory public class AnimalFactory { public Chien getchien(racechienenum race) { switch (race) { case CANICHE: return new Caniche(); case DOBERMAN: return new Doberman(); } } case LABRADOR: return new Labrador(); default: throw new IllegalArgumentException( "Race de chien non gérée"); } public Vache getvache(racevacheenum race) {... }

178 Façade

179 Facade

180 public class CommisDeCuisine { public Plat cuisiner(string recette) { Placard placard = Placard.getInstance(); Frigo frigo = Frigo.getInstance(); PlaqueDeCuisson plaque = PlaqueDeCuisson.getInstance(); Poele poele = placard.prendre("poele"); plaque.allumer(); List<Ingredient> ingredients = frigo.prendre( {"oeuf", "oeuf", "fromage", "beurre"} ); while( plaque.chauffer(poele, ingredients) ) { // attendre } Plat plat = poele.getcontenu(); } }... return plat; pseudo code d une façade

181 Facade participant Chef participant CommisDeCuisine participant Placard participant Frigo participant PlaqueDeCuisson Chef->CommisDeCuisine: cuisiner activate CommisDeCuisine CommisDeCuisine->Placard: prendre activate Placard Placard-->CommisDeCuisine: poêle deactivate Placard CommisDeCuisine->PlaqueDeCuisson: allumer activate PlaqueDeCuisson CommisDeCuisine->Frigo: prendre activate Frigo Frigo-->CommisDeCuisine: oeufs, fromage, beurre deactivate Frigo CommisDeCuisine->PlaqueDeCuisson: chauffer PlaqueDeCuisson-->CommisDeCuisine: cuit_ok deactivate PlaqueDeCuisson CommisDeCuisine-->Chef: omelette deactivate CommisDeCuisine

182 Actu de la semaine

183 Podcasts Les Cast Codeurs Le rendez-vous Tech niptech / nipdev Podcast science

184 Iterator

185 Iterator John Marie Lucie Marc Paul List<String> prenoms = new ArrayList<String>(); Iterator<String> iter = prenoms.iterator(); while( iter.hasnext() ) { String prenom = iter.next(); System.out.println(prenom); }

186 Iterator public class EnfantQuiCompteIterator implements Iterator<Integer> { public final static int NOMBRE_MAX = 100; public final static int NOMBRE_DEPART = 1; private int nombre = NOMBRE_DEPART; public boolean hasnext() { return nombre < NOMBRE_MAX; } public Integer next() { return ++nombre; }

187 Observer

188 Observer public enum FeuState { VERT(60000), // 60 secondes ORANGE(3000), // 3 secondes ROUGE(60000); // 60 secondes private final long duree; FeuState(long duree) { this.duree = duree; } public FeuState next() { switch (this) { case VERT: return ORANGE; case ORANGE: return ROUGE; case ROUGE: return VERT; default: throw new ISE("..."); } }

189 Observer public class FeuTricolor extends Observable implements Runnable { private FeuState state; public FeuState getstate() { return state; public void run() { while (true) { try { Thread.sleep(state.getDuree()); state = state.next(); notifyobservers(state); } } } catch (InterruptedException e) { e.printstacktrace(); }

190 Observer public class Conducteur implements Observer { Voiture voiture public void update(observable obj, Object value) { if (obj instanceof FeuTricolor) { FeuState state = (FeuState) value; } } } if (state == FeuState.VERT) { voiture.accelerer(); }

191

192 JDBC

193 Table CHIEN id name race nb_de_mamelle poids 1 Tigrou labrador Titi caniche Uta labrador Medor doberman

194 @Override public List<Labrador> findlabradors() { } List<Labrador> labradors = new ArrayList<Labrador>();... return labradors;

195 select // (1) Class.forName("oracle.jdbc.driver.OracleDriver"); // (2) Connection con = DriverManager.getConnection("monUrl", "monlogin", "monpassword"); // (3) String sql = "SELECT * FROM chien WHERE race = 'labrador' "; // (4) Statement statement = con.createstatement(); JDBC // (5) ResultSet rs = statement.executequery(sql);

196 Iterator? select // (6) while ( rs.next() ) { // (7) String name = rs.getstring("name"); double poids = rs.getdouble("poids"); int nbmamelle = rs.getint("nb_de_mamelle"); // (8) Labrador labrador = new Labrador(); labrador.setname(name); labrador.setweight(poids); labrador.setnombremamelle(nbmamelle); JDBC } // (9) labradors.add(labrador);

197 insert String sql = "INSERT INTO chien " + " (name, race, nb_de_mamelle, poids) " + " VALUES ( " + + "'" + labrador.getname() + "', " + "'labrador', " + labrador.getnombremamelle() + ", " + labrador.getweight() + " )"; Statement stmt = con.createstatement(); stmt.executeupdate(sql); JDBC

198 Insert (PreparedStatement) String sql = "INSERT INTO chien " + " (name, race, nb_de_mamelle, poids) " + " VALUES (?, 'labrador',?,?) "; PreparedStatement stmt = con.preparestatement(sql); stmt.setstring( 1, labrador.getname() ); stmt.setint( 2, labrador.getnombremamelle() ); stmt.setdouble( 3, labrador.getweight() ); stmt.executeupdate(sql); JDBC

199 «Charger des données depuis une base MySQL en 5 minutes» «JDBI» «Named Parameters for PreparedStatement» «Introduction à JPA, application au chargement de données depuis une base MySQL»

200

201 SWING

202 JButton JCheckBox JRadioButton JMenu JComboBox JList JTextField JTextArea

203 JTable JFileChooser JLabel JDialog JFrame JProgressBar

204 «A Visual Guide to Swing Components»

205

206 Intégration continue

207

208 mvn clean install mvn sonar:sonar

209

210 Ce qu on a vu en cours et en TD : UML ; Java ; Tests (TDD, 3T) ; Design pattern ; DAO (JDBC / CSV / ) ; Swing (table model) ; Story board ; Maven ; Subversion ; Scrum ; etc.

211 Projet GL ESIEA groupe N Archive ZIP Projet_GL_ESIEA_ _groupe-N.zip Rapport PDF Rapport_Projet_GL_ESIEA_ _groupe-N.pdf Projet Java-Maven programme.zip

212 Thème du projet de GL ( mangez des carottes ) Projet ( )

213

214 Règle 1 : La vie n'est pas juste; il faudra vous y faire. Règle 2 : Le monde se fiche de votre estime personnelle. Le monde s'attendra à ce que vous réalisiez quelque chose AVANT que vous ne vous sentiez bien dans votre peau. Règle 3 : Vous ne toucherez pas dollars par année immédiatement en sortant de l'école secondaire. Vous ne serez pas vice-président d'entreprise avec un téléphone dans votre voiture avant d'avoir gagné et mérité les deux. Règle 4 : Si vous pensez que votre professeur est sévère, attendez d'avoir un patron. Règle 5 : Être plongeur dans un restaurant n'a rien d'humiliant. Vos grands-parents utilisaient un terme différent pour décrire ce genre de boulot, ils appelaient cela "s'ouvrir des portes". Règle 6 : Si vous vous retrouvez dans le pétrin, ce n'est pas la faute de vos parents, alors ne vous plaignez pas de votre sort et tirez-en plutôt les leçons nécessaires. Bill Gates : 11 règles de vie

215 Règle 7 : Avant votre naissance, vos parents n'étaient pas aussi ennuyeux qu'ils le sont aujourd'hui. Ils sont devenus comme cela à force de payer vos factures, de laver vos sous-vêtements et de vous écouter raconter à quel point vous êtes cool. Alors, avant de penser sauver la forêt équatoriale des parasites de la génération de vos parents, essayez de mettre un peu d'ordre dans votre propre chambre. Règle 8 : Votre école a peut-être cessé de distinguer les gagnants des perdants, mais pas la vie. Dans certaines écoles, ils ont éliminé la note de passage et ils vous donneront autant de chances que vous voulez avant de trouver la bonne réponse. Cela n'a absolument RIEN À VOIR avec la vraie vie. Règle 9 : La vie n'est pas divisée en semestres. Vous n'êtes pas en vacances tout l'été et très peu d'employeurs sont intéressés à vous aider à vous retrouver. Faites cela durant vos temps libres. Règle 10 : La télévision N'EST PAS représentative de la vraie vie. Dans la vie, en réalité, les gens doivent quitter le restaurant et retourner travailler. Règle 11 : Soyez gentils avec les «nerds». Il y a de bonnes chances que vous finissiez par travailler pour l'un d'entre eux. Bill Gates : 11 règles de vie

216

217 Cours Forums FAQ News Interviews Critiques Articles / tutoriels Agendas Magazine

218 13 OOO OOO pages vues par mois visites par mois visites uniques par mois messages forum par jour

219

220 Reproduction partielle ou complète strictement interdite sans l autorisation de l auteur. icauda.com Tous droits et bases réservés

221

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)

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) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Conduite de projets SI. Les méthodes «Agiles» N QUAL/1995/3660e ORESYS

Conduite de projets SI. Les méthodes «Agiles» N QUAL/1995/3660e ORESYS Conduite de projets SI Les méthodes «Agiles» N QUAL/1995/3660e ORESYS Agilité : de quoi parle-t-on? Agilité de l entreprise Urbanisme Architectures SOA Agilité du SI ERP Plateformes applicatives agiles

Plus en détail

Yassine ZAKARIA SÉMINAIRE : MÉTHODES AGILES

Yassine ZAKARIA SÉMINAIRE : MÉTHODES AGILES Yassine ZAKARIA SÉMINAIRE : MÉTHODES AGILES Quelques constats Etude du Standish Group Seul 1/3 des projets informatiques sont qualifiés de succès 50 % sont livrés et opérationnels, mais sont sortis du

Plus en détail

Tp2 Emacs Développement Web

Tp2 Emacs Développement Web Tp2 Emacs Développement Web Les indications ci-dessous donnent les grandes lignes du développement. 1/ Evenement Ajax Jquery: Le code javascript jquery suivant permet d afficher un message dans un span

Plus en détail

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

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections

Plus en détail

Scrum et l'agilité des équipes de développement

Scrum et l'agilité des équipes de développement NormandyJUG Scrum et l'agilité des équipes de développement Par Dimitri Baeli & Nicolas Giard 23 Février 2010 Présentation des intervenants Dimitri Baeli http://twitter.com/dbaeli VP Quality Enterprise

Plus en détail

Introduction à l Agile (22/01/2012)

Introduction à l Agile (22/01/2012) Introduction à l Agile (22/01/2012) OCTO 2012 50, avenue des Champs-Elysées 75008 Paris - FRANCE Tél : +33 (0)1 58 56 10 00 Fax : +33 (0)1 58 56 10 01 www.octo.com 1 Plan! Qui suis-je?! Quelques notions

Plus en détail

25/12/2012 www.toubkalit.ma

25/12/2012 www.toubkalit.ma 25/12/2012 www.toubkalit.ma 1 Définition Exemple des méthodes agiles Valeurs Principes Le cycle itératif et incrémental (Itération/Sprint) Schéma de travail Méthode Scrum. Méthode XP (Extreme programming).

Plus en détail

Formation Scrum. 2 jours

Formation Scrum. 2 jours 2 jours +33 6 08 34 63 55 laurent@morisseauconsulting.com SARL unipersonnelle au capital de 3500 - N SIRET : 508 068 590 00019 Code APE 6202A Sommaire 1 Contexte de la formation... 3 2 Le formateur...

Plus en détail

Agile @ Germe Grenoble 4 22/06/2012. Intervenant: Bruno Sbille

Agile @ Germe Grenoble 4 22/06/2012. Intervenant: Bruno Sbille Agile @ Germe Grenoble 4 22/06/2012 Intervenant: Bruno Sbille 1 Agile @ Germe 2 Bruno Sbille Blog Agile: http://brunosbille.com Coach & Formateur Blog Coaching Personnel: http://brunosbille.com/coachdevie

Plus en détail

Formation pour Product Owner

Formation pour Product Owner 2 jours +33 6 08 34 63 55 laurent@morisseauconsulting.com SARL unipersonnelle au capital de 3500 - N SIRET : 508 068 590 00019 Code APE 6202A Sommaire 1 Contexte de la formation... 3 2 Le formateur...

Plus en détail

Architecture des applications

Architecture des applications Architecture des applications Table des matières 1 Introduction 1 2 Les classes valeurs 2 2.1 Les Javaeans............................................. 2 2.2 Les différents types de Javaeans...................................

Plus en détail

Développement Logiciel

Développement Logiciel Développement Logiciel Éxamen session 1-2012-2013 (Vendedi 25 mai, 9h-11h) Seuls les documents liés directement au cours sont autorisés (comme dit sur le site) : sujets de TD, notes de cours, notes personnelles

Plus en détail

Gestion de projet Agile. STS IRIS Module 4.2 - «Gérer et organiser un projet informatique»

Gestion de projet Agile. STS IRIS Module 4.2 - «Gérer et organiser un projet informatique» Gestion de projet Agile Module 4.2 - «Gérer et organiser un projet informatique» Sommaire Introduction Principes et méthodes Agiles Scrum 2 Introduction Gestion de projet : démarche structurante assurant

Plus en détail

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection

Plus en détail

Une introduction à la technologie EJB (2/3)

Une introduction à la technologie EJB (2/3) Une introduction à la technologie EJB (2/3) 1 Les singletons des EJB 3.1 1.1 Synchronisation gérée manuellement Depuis la version 3.1, des EJB Statless à instance unique sont maintenant disponibles : ce

Plus en détail

backlog du produit Product Owner

backlog du produit Product Owner Méthodes agiles : Définition: selon Scott Ambler «Une méthode agile est une approche itérative et incrémentale pour le développement de logiciel, réalisé de manière très collaborative par des équipes responsabilisées

Plus en détail

L'agilité appliquée à nous-mêmes. Philippe Krief, PhD Development Manager IBM France Lab

L'agilité appliquée à nous-mêmes. Philippe Krief, PhD Development Manager IBM France Lab L'agilité appliquée à nous-mêmes Philippe Krief, PhD Development Manager IBM France Lab Agenda Où en était l équipe RPP il y a 24 mois Réorganisation de l équipe et du projet autour de Scrum et de RTC

Plus en détail

8. Java et les bases de données. Olivier Curé - UMLV [page 206 ]

8. Java et les bases de données. Olivier Curé - UMLV [page 206 ] 8. Java et les bases de données Olivier Curé - UMLV [page 206 ] Java et les BD Plusieurs manières d'écrire du code Java accédant à une BD: Statement Level Interface (SLI) Solutions : SQLJ (SQL92) Call

Plus en détail

Scrum + Drupal = Julien Dubois

Scrum + Drupal = Julien Dubois Pourquoi j aime Scrum Pourquoi Scrum et Drupal sont faits pour s entendre Scrum + Drupal = Julien Dubois Happyculture.coop De quoi allons-nous parler? 1. Que sont les méthodes agiles? 2. Présentation de

Plus en détail

Java DataBaseConnectivity

Java DataBaseConnectivity Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage

Plus en détail

SCRUM chez BWIN : implémentation d une méthode agile dans Focalpoint Spasija Taseva et Corinne Bacle

SCRUM chez BWIN : implémentation d une méthode agile dans Focalpoint Spasija Taseva et Corinne Bacle SCRUM chez BWIN : implémentation d une méthode agile dans Focalpoint Spasija Taseva et Corinne Bacle 1 AGENDA Présentation de BWIN Description rapide du scrum Processus du scrum Démonstration de l implémentation

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 6 : JDBC : ou comment lier ORACLE avec Java 1ère partie Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Introduction 2 les étapes de la connexion

Plus en détail

Méthodes de développement

Méthodes de développement 1 / 9 Méthodes de développement Méthodes agiles 1 - Introduction... 2 2 -Le manifeste agile et les méthodes agiles... 2 2.1 Le manifeste agile... 2 2.2 Les méthodes agiles... 3 3 - Caractéristiques communes

Plus en détail

Interface graphique avec Java S. RITAL

Interface graphique avec Java S. RITAL Interface graphique avec Java S. RITAL Plan Ma première fenêtre Animation Les boutons Multi-threading Menu, Barre d'outils, Le Pattern MVC Les interfaces Observer / Observable Calculatrice Les boîtes à

Plus en détail

Développement itératif, évolutif et agile

Développement itératif, évolutif et agile Document Développement itératif, évolutif et agile Auteur Nicoleta SERGI Version 1.0 Date de sortie 23/11/2007 1. Processus Unifié Développement itératif, évolutif et agile Contrairement au cycle de vie

Plus en détail

Christophe Leroy Marc Lainez. L Agilité est-elle soluble dans la culture francophone?

Christophe Leroy Marc Lainez. L Agilité est-elle soluble dans la culture francophone? Christophe Leroy Marc Lainez L Agilité est-elle soluble dans la culture francophone? Le Manifeste Agile http://agilemanifesto.org/ 2 Les 4 valeurs Agiles Equipe Personnes et interactions plutôt que processus

Plus en détail

Règles d engagement. Présentation Diapositives Bibliographie Questions Les vertus de la marche

Règles d engagement. Présentation Diapositives Bibliographie Questions Les vertus de la marche Règles d engagement Présentation Diapositives Bibliographie Questions Les vertus de la marche Plan Rappels sur l agilité Scrum : une implantation de l agilité Scrum ou XP? Conclusion Historique sélectif

Plus en détail

T.P. 3 Base de données, JDBC et Mapping Objet-relationnel

T.P. 3 Base de données, JDBC et Mapping Objet-relationnel EPITA Ala Eddine BEN SALEM App-Ing2 J2EE T.P. 3 Base de données, JDBC et Mapping Objet-relationnel L'objectif de ce TP est de vous faire pratiquer l'api JDBC qui permet d'accéder à une base de données

Plus en détail

Plan. 1 Cycles de développement. 2 Méthodes agiles, principes généraux. 3 Comment se passe un Sprint?

Plan. 1 Cycles de développement. 2 Méthodes agiles, principes généraux. 3 Comment se passe un Sprint? Plan nitiation au Génie Logiciel Cours 5 ntroduction au π développement agile T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 1/ 28 T. Genet (genet@irisa.fr) (STC/RSA) GEN-5 2/ 28 Bibliographie Plan L informatique

Plus en détail

Alfstore workflow framework Spécification technique

Alfstore workflow framework Spécification technique Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: info@alfstore.com Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date

Plus en détail

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

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée forax at univ-mlv dot fr - ParisJUG Java.next() - Mars 2012 What Else? Lambda == Inner class? Java a des lambdas depuis la version 1.1 Exemple utilisant

Plus en détail

Méthodes Agiles et gestion de projets

Méthodes Agiles et gestion de projets Méthodes Agiles et gestion de projets Eric LELEU Consultant Solutions Collaboratives Contact ericleleu@nordnet.fr Site Personnel http://home.nordnet.fr/~ericleleu Blog http://ericleleu.spaces.live.fr La

Plus en détail

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

Design patterns. Design patterns - définition. Design patterns - avantages Design patterns Conception UML Implantation Java Anne Lapujade 1 Design patterns - définition 2 v Objectif : proposer des solutions standardisées à des problèmes de conception classiques v Design pattern

Plus en détail

Projet EvaluationsEleves/Professeurs

Projet EvaluationsEleves/Professeurs Projet EvaluationsEleves/Professeurs Ce projet Java comporte les objectifs suivants: 1) Diagramme de classes 2) Développer de l'application en mode console avec un jeu de tests fourni 3) Lecture des notes/eleves/professeurs

Plus en détail

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7 Sommaire 1-Introduction 2 1-1- BPM (Business Process Management)..2 1-2 J-Boss JBPM 2 2-Installation de JBPM 3 2-1 Architecture de JOBSS JBPM 3 2-2 Installation du moteur JBoss JBPM et le serveur d application

Plus en détail

Introduction à JDBC. Accès aux bases de données en Java

Introduction à JDBC. Accès aux bases de données en Java Introduction à JDBC Accès aux bases de données en Java Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Introduction JDBC : Java Data Base Connectivity

Plus en détail

Scrum Une méthode agile pour vos projets

Scrum Une méthode agile pour vos projets Avant-propos 1. Objectif du livre 17 2. Notre démarche 17 3. Structure du livre 18 4. Remerciements 20 Scrum, une méthode agile avant tout 1. Le grand départ 21 2. La gestion de projet informatique 22

Plus en détail

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

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février 2014 17:30 à 20:30 Examen intra 20 février 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Quelle influence peut avoir le typage dynamique sur la maintenabilité

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Certification Scrum Master

Certification Scrum Master avec Jeff Sutherland Les méthodes Agiles représentent indéniablement une approche nouvelle et différente dans la conduite de projets. Au lieu de suivre un plan à la lettre en assignant des tâches à une

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Une (petite) introduction à Spring

Une (petite) introduction à Spring Une (petite) introduction à Spring 1 Introduction Le framework Spring 1 est une boite à outils très riche permettant de structurer, d améliorer et de simplifier l écriture d application JEE. Spring est

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

JDBC et objet-relationnel

JDBC et objet-relationnel Types de données de SQL3 JDBC et objet-relationnel Université de Nice - Sophia Antipolis Version 1.6.4 5/11/11 Richard Grin JDBC supporte les types suivants de SQL3 qui sont des ouvertures vers le relationnelobjet

Plus en détail

Groupe Eyrolles, 2004, ISBN : 2-212-11346-3

Groupe Eyrolles, 2004, ISBN : 2-212-11346-3 Groupe Eyrolles, 2004, ISBN : 2-212-11346-3 Table des matières Avant Propos................................................ 1 Pourquoi ce livre?........................................... 1 Structure de

Plus en détail

Scrum - Tour d'horizon de la méthode

Scrum - Tour d'horizon de la méthode Scrum - Tour d'horizon de la méthode Agenda Agilité Scrum Pilotage d'un projet agile selon Scrum Contractualisation Forces & questions ouvertes 2 Les méthodes agiles Méthodes de développement d'applications

Plus en détail

Programmation Par Objets

Programmation Par Objets Programmation Par Objets Structures de données package java.util B. Carré Polytech Lille 1 Tableaux et structures de données Tableaux «Objets» taille fixe type des éléments : primitif (homogène) ou objets

Plus en détail

Théorie des Langages

Théorie des Langages Théorie des Langages AntLR - Générateur d analyseurs Claude Moulin Université de Technologie de Compiègne Printemps 2015 Sommaire 1 Introduction 2 AntLR ANTLR : ANother Tool for Language Recognition URL

Plus en détail

Application web de gestion de comptes en banques

Application web de gestion de comptes en banques Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion

Plus en détail

INTRODUCTION À LA GESTION DE PROJET AGILE (BACKLOG, TABLEAUX DE BORD, BURNDOWN, PLANIFICATION D ITERATIONS)

INTRODUCTION À LA GESTION DE PROJET AGILE (BACKLOG, TABLEAUX DE BORD, BURNDOWN, PLANIFICATION D ITERATIONS) INTRODUCTION À LA GESTION DE PROJET AGILE (BACKLOG, TABLEAUX DE BORD, BURNDOWN, PLANIFICATION D ITERATIONS) 1 Introduction à la gestion de projet Agile Sommaire AVERTISSEMENT... 2 APERÇU... 3 EXERCICE

Plus en détail

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

Les méthodes Agiles Introduction. Intervenant : Tremeur Balbous tremeur@agilegardener.com http://www.agilegardener.com/ 04/09/2008 Les méthodes Agiles Introduction Intervenant : Tremeur Balbous tremeur@agilegardener.com http://www.agilegardener.com/ 04/09/2008 Les méthodes Agiles Le contexte Le Manifeste Agile Une tentative de définition

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Logiciel de gestion de caisse et d ardoises

Logiciel de gestion de caisse et d ardoises 6, bd maréchal Juin F-14050 Caen cedex 4 Spécialité Informatique 2 e année Rapport de projet Logiciel de gestion de caisse et d ardoises BOIRLEAUD Pierre-Jean MOLINS Nicolas REHFELD Vincent Table des matières

Plus en détail

REX Scrum : Cas concrets, problématiques et solutions mises en œuvre. Retour d'expériences - Cas concrets 1

REX Scrum : Cas concrets, problématiques et solutions mises en œuvre. Retour d'expériences - Cas concrets 1 REX Scrum : Cas concrets, problématiques et solutions mises en œuvre Retour d'expériences - Cas concrets 1 Sogeti dans le monde Plus de 20 000 professionnels dans le monde Norvège : 50 Suède: 1 000 USA:

Plus en détail

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. L3 Pro Informatique 2010-2011

Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. L3 Pro Informatique 2010-2011 1 / 32 Développement Web - JDBC Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer L3 Pro Informatique 2010-2011 2 / 32 Plan Plan 1 Préambule 2 Utilisation de

Plus en détail

Cours en ligne Développement Java pour le web

Cours en ligne Développement Java pour le web Cours en ligne Développement Java pour le web We TrainFrance info@wetrainfrance Programme général du cours Développement Java pour le web Module 1 - Programmation J2ee A) Bases de programmation Java Unité

Plus en détail

AGILITÉ ET PROJETS AVEC SCRUM

AGILITÉ ET PROJETS AVEC SCRUM AGILITÉ ET PROJETS AVEC SCRUM ENSIMAG 2014 Jean-François Jagodzinski @jfjago www.agilessence.fr 1 Jean-François Jagodzinski - Coach Formateur et accompagnateur d équipes agiles Site -> http://www.agilessence.fr

Plus en détail

L'application WinForm et le composant d'accès aux données

L'application WinForm et le composant d'accès aux données L'application WinForm et le composant d'accès aux données Vous disposez d'un squelette de l'application AntoineVersion0- ainsi que de la base de données à restaurer dans SqlServer Bd_Antoine.dat-. Travail

Plus en détail

Listes de personnes et calculatrice polonaise inverse en Java

Listes de personnes et calculatrice polonaise inverse en Java Listes de personnes et calculatrice polonaise inverse en Java Université Paris Sud Motivation Le but de cet exercice est de manipuler les listes chaînées et les piles et de voir leur application en analyse

Plus en détail

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

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres

Plus en détail

Application BdD et JDBC. Introduction 1/28. I Dans tout les cas, une seule problématique. I Quelques alternatives :

Application BdD et JDBC. Introduction 1/28. I Dans tout les cas, une seule problématique. I Quelques alternatives : ntroduction 1/28 2/28 Anne-Cécile Caron Licence MAGE - Bases de Données 2013-2014 Application base de données Pour le développeur : Quel est l environnement? type de client (mode client serveur, intranet,...)

Plus en détail

Interfaces graphiques avec Java/Swing

Interfaces graphiques avec Java/Swing Interfaces graphiques avec Java/Swing Xavier Crégut Département Télécommunications & Réseaux ENSEEIHT Xavier Crégut (ENSEEIHT) Interfaces graphiques avec Java/Swing

Plus en détail

Création d'un convertisseur SQL SiTools

Création d'un convertisseur SQL SiTools Création d'un convertisseur SQL SiTools 1 - Introduction Un convertisseur permet de transformer la requête SQL, envoyé par la webapp SiTools à la webapp catalog ou l'inverse. C'est à dire que cette conversion

Plus en détail

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

Héritage presque multiple en Java (1/2) Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen

Plus en détail

Module FMIN358 Technologies du Web : PHP objet et couches d accès aux bases de données

Module FMIN358 Technologies du Web : PHP objet et couches d accès aux bases de données Module FMIN358 Technologies du Web : PHP objet et couches d accès aux bases de données 1. Exploiter une couche métier objet PHP prend en charge certains des grands principes du paradigme objet (héritage,

Plus en détail

pac4j : la librairie de sécurité pour Java par Jérôme LELEU

pac4j : la librairie de sécurité pour Java par Jérôme LELEU pac4j : la librairie de sécurité pour Java par Jérôme LELEU www.parisjug.org Copyright @ 2014 ParisJug. Licence CC - Creatve Commons 2.0 France Paternité - Pas d'utlisaton Commerciale - Partage des Conditons

Plus en détail

TP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château

TP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château Rappel TP3 Intégration de pratiques agiles En direct-live du château 40 41 Scénario d intégration agile 1. User Stories (1) 1. Rédiger les User Stories (exigences) 2. Planifier les Itérations (quoi / quand)

Plus en détail

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS

Développement d'applications Web HTML5 L'art et la manière avec Visual Studio 2015 et TFS Avant de commencer 1. Introduction 15 2. HTML5 oui, mais pas que... 15 2.1 HTML5 16 2.2 JavaScript 17 2.3 CSS 18 3. Les outils 18 Préparation des outils et création du projet 1. Introduction 21 2. Team

Plus en détail

Servlets, beans, base de données

Servlets, beans, base de données Institut Galilée E-services Année 2014-2015 Master 2 T.P. 2 Servlets, beans, base de données L objectif de ce TP est de mettre en place un site web pour l administration et la commande de pizzas : une

Plus en détail

Plateforme de capture et d analyse de sites Web AspirWeb

Plateforme de capture et d analyse de sites Web AspirWeb Projet Java ESIAL 2A 2009-2010 Plateforme de capture et d analyse de sites Web AspirWeb 1. Contexte Ce projet de deuxième année permet d approfondir par la pratique les méthodes et techniques acquises

Plus en détail

Architecture Orientée Service, JSON et API REST

Architecture Orientée Service, JSON et API REST UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API

Plus en détail

TP 5 Serveur REST, tests et premier client REST

TP 5 Serveur REST, tests et premier client REST TP 5 Serveur REST, tests et premier client REST Xavier de Rochefort xderoche@labri.fr - labri.fr/~xderoche 13 mai 2014 Résumé Les derniers TP vous ont guidé dans ➊ la mise en place d un serveur REST avec

Plus en détail

Le Product Backlog, qu est ce c est?

Le Product Backlog, qu est ce c est? Le Product Backlog, qu est ce c est? Ludovic Larché Agile Tour 2012 à Rennes le 4 octobre 2012 Sommaire > Rappels théoriques : qu est ce qu un Product Backlog? > Le Product Backlog n est pas seul! > Techniques

Plus en détail

REX Scrum Master du terrain

REX Scrum Master du terrain REX Scrum Master du terrain Ludovic Larché Agile Tour 2012 à Rennes le 4 octobre 2012 Qui suis je? Ludovic LARCHE Agile Scrum / Kanban Consultant Scrum Master depuis 2008 Accompagnement de Product Owner

Plus en détail

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

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez... Au programme Conception Orientée Objet Jean-Christophe Routier Licence mention Informatique Université Lille 1 Présentation L UE COO est le prolongement immédiat de l UE POO du S4 informatique. cf. http://portail.fil.univ-lille1.fr/portail/ls4/poo

Plus en détail

TDD Agilité et Kanban Planning Poker

TDD Agilité et Kanban Planning Poker TDD Agilité et Kanban Planning Poker Philippe Collet Licence 3 Informatique S6 2013-2014 http://deptinfo.unice.fr/twiki/bin/view/linfo/projetdelicence201314 Plan r TDD r XP r Scrum r Kanban r Planning

Plus en détail

Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005

Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005 Licence d'informatique 2004-2005 Examen Programmation orientée objet Juin 2005 Durée de l'épreuve : 2 heures TRÈS IMPORTANT : respectez l'ordre des questions. La lisibilité sera un critère important pour

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

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

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés) Introduction à la POO 1. Histoire de la POO 9 2. Historique du 12 La conception orientée objet 1. Approche procédurale et décomposition fonctionnelle 13 2. La transition vers l'approche objet 14 3. Les

Plus en détail

Les méthodes Agiles. Introduc)on aux méthodes Agiles Exemple : Scrum

Les méthodes Agiles. Introduc)on aux méthodes Agiles Exemple : Scrum Les méthodes Agiles Introduc)on aux méthodes Agiles Exemple : Scrum Défini)on de base Les méthodes Agiles sont des procédures de concep)on de logiciel qui se veulent plus pragma)ques que les méthodes tradi)onnelles

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

BIRT (Business Intelligence and Reporting Tools)

BIRT (Business Intelligence and Reporting Tools) BIRT (Business Intelligence and Reporting Tools) Introduction Cette publication a pour objectif de présenter l outil de reporting BIRT, dans le cadre de l unité de valeur «Data Warehouse et Outils Décisionnels»

Plus en détail

M2 FMIN305 - Novembre 2010 CORBA

M2 FMIN305 - Novembre 2010 CORBA FMIN05 - Novembre 0 Ce TD est très largement inspiré de ceux de Gilles Roussel. Vous trouverez beaucoup de choses intéressantes ici : http://www-igm.univ-mlv.fr/ roussel. 1 Horloge distante On souhaite

Plus en détail

Tutoriel d installation de Hibernate avec Eclipse

Tutoriel d installation de Hibernate avec Eclipse Tutoriel d installation de Hibernate avec Eclipse Table des matières 1. Création de la base de données... 4 2. Installation de Hibernate Synchronizer... 5 3. Utilisation de Hibernate... 6 3.1 Création

Plus en détail

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes

Plus en détail

Scrum. ... pour des projets informatiques agiles. Pascal Lando Certified Scrum product owner

Scrum. ... pour des projets informatiques agiles. Pascal Lando Certified Scrum product owner Scrum... pour des projets informatiques agiles Pascal Lando Certified Scrum product owner e-merchant Laboratoire Mis IUP Miage d Amiens pascal.lando@u-picardie.fr 2 octobre 2013 Ceci n est pas un cours

Plus en détail

CQP Développeur Nouvelles Technologies (DNT)

CQP Développeur Nouvelles Technologies (DNT) ORGANISME REFERENCE STAGE : 26572 20 rue de l Arcade 75 008 PARIS CONTACT Couverture géographique : M. Frédéric DIOLEZ Bordeaux, Rouen, Lyon, Toulouse, Marseille Tél. : 09 88 66 17 40 Nantes, Lille, Strasbourg,

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

Agile Maroc 24 Novembre 2010. Méthodes agiles. Thierry Cros. http://etre-agile.com. Agile Maroc 24 novembre 2010

Agile Maroc 24 Novembre 2010. Méthodes agiles. Thierry Cros. http://etre-agile.com. Agile Maroc 24 novembre 2010 Agile Maroc 24 Novembre 2010 Méthodes agiles Thierry Cros 1 Thierry Cros 10 ans déjà... 2010 Création Extreme Programming France 2009 SigmaT Les Agilistes Toulousains 2010 Membre de «Fédération Agile»

Plus en détail

Formation Certifiante Scrum Master

Formation Certifiante Scrum Master Formation Certifiante Scrum Master Cette formation pratique de deux jours, ponctuée par la certification Scrum Master délivrée par la Scrum Alliance, est destinée aux chefs et directeurs de projets, responsables

Plus en détail

CSC4002 : Contrôle continu «Bureau d Étude noté» Date : lundi 3 décembre 2012 Durée : 2H. Coordonnateurs : Christian Bac et Denis Conan

CSC4002 : Contrôle continu «Bureau d Étude noté» Date : lundi 3 décembre 2012 Durée : 2H. Coordonnateurs : Christian Bac et Denis Conan Corrigé et Barème Contrôle de connaissances 2012/2013 des étudiants de 2 è année (EI2) CSC4002 : Contrôle continu «Bureau d Étude noté» Date : lundi 3 décembre 2012 Durée : 2H Coordonnateurs : Christian

Plus en détail

Auto-évaluation Programmation en Java

Auto-évaluation Programmation en Java Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN

Plus en détail

Programmation d application Bases de données avec Java

Programmation d application Bases de données avec Java Plan du document Programmation d application Bases de données avec Java INT Problématique slide 3 Correspondance diagramme de classe slide 4 UML vers schéma relationnel Programmation BD avec JDBC slide

Plus en détail

Composants Logiciels. Le modèle de composant de CORBA. Plan

Composants Logiciels. Le modèle de composant de CORBA. Plan Composants Logiciels Christian Pérez Le modèle de composant de CORBA Année 2010-11 1 Plan Un rapide tour d horizon de CORBA 2 Introduction au modèle de composant de CORBA Définition de composants CORBA

Plus en détail

Cours de Programmation Orientée Objet

Cours de Programmation Orientée Objet Contrat et application à la librairie standard JAVA mailto:marc.champesme@lipn.univ-paris13.fr 6 février 2011 1 Qu est ce qu une classe? Un exemple en JAVA Résumé Expression du contrat Par des commentaires

Plus en détail

Corrigé des exercices sur les références

Corrigé des exercices sur les références Corrigé des exercices sur les références Exercice 3.1.1 dessin Pour cet exercice, vous allez dessiner des structures de données au moyen de petits schémas analogues à ceux du cours, comportant la pile

Plus en détail

Refonte front-office / back-office - Architecture & Conception -

Refonte front-office / back-office - Architecture & Conception - Refonte front-office / back-office - Architecture & Conception - GLG204 - Architectures Logicielles Java 2008/2009 Nom : Cédric Poisson Matricule : 06-49012 Version : 1.0 Jeudi 28 mai 2009 1 / 23 Table

Plus en détail

LOG4430 : Architecture logicielle et conception avancée

LOG4430 : Architecture logicielle et conception avancée LOG4430 : Architecture logicielle et conception avancée Yann-Gaël Guéhéneuc Cours 3 Bibliothèques et chargement Dynamique de composants Département de génie informatique et de génie logiciel École Polytechnique

Plus en détail