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

Génie Logiciel ESIEA 2012-2013

Génie Logiciel ESIEA 2012-2013 Génie Logiciel ESIEA 2012-2013 Mise-à-jour : 04/01/2013 Thierry Leriche-Dessirier thierryler@gmail.com @thierryleriche ESIEA 2001 www.icauda.com/cours.html Planning ( INF3038 ) Cours UFA+3A (matin) : Jeudi

Plus en détail

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

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX

Plus en détail

Design Pattern (1/3) Design Pattern (2/3)

Design Pattern (1/3) Design Pattern (2/3) Design Pattern (1/3) Un pattern (ou design pattern) décrit : une situation constituant un problème souvent rencontré dans le développement d'applications une (ou plusieurs) solution(s) type(s) à ce problème,

Plus en détail

Les langages informatiques modernes orientés objet permettent la réutilisation Importance de la clarté de la documentation

Les langages informatiques modernes orientés objet permettent la réutilisation Importance de la clarté de la documentation Clues from other disciplines (from E. Gamma) Patrons de conception («Design Patterns») ESIR2, GL (LSI) Benoit Combemale Université de Rennes 1, ESIR & IRISA (Triskell team) Benoit.Combemale@irisa.fr Inspiré

Plus en détail

Développement agile. Agile Manifesto. Développement agile Hafedh Mili 2012

Développement agile. Agile Manifesto. Développement agile Hafedh Mili 2012 Développement agile Hafedh Mili 2012 1 Développement agile Un ensemble de pratiques de développement logiciel qui mettent l'emphase sur: Le pragmatisme (vs dogmatise) La réactivité aux changements L'implication

Plus en détail

L agile est mort vive l agile! L évolution du développement logiciel

L agile est mort vive l agile! L évolution du développement logiciel L agile est mort vive l agile! L évolution du développement logiciel L agile est mort vive l Agile. 2 3 4 L évolution 5 Une question de maturité Tiré de The Standish Group: Chaos Report 2011 Tiré de Version

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

Design Patterns. Pourquoi utiliser des patterns? Pourquoi utiliser des patterns? Les patterns vue de loin. D où viennent les design patterns?

Design Patterns. Pourquoi utiliser des patterns? Pourquoi utiliser des patterns? Les patterns vue de loin. D où viennent les design patterns? Noël NOVELLI ; Université de la Méditerranée ; LIF et Département d Informatique Case 901 ; 163 avenue de Luminy 13 288 MARSEILLE cedex 9 Design Patterns D où viennent les design patterns? D où viennent

Plus en détail

Patrons de conceptions problème solution Design Patterns GoF

Patrons de conceptions problème solution Design Patterns GoF - Patrons de conceptions pour la programmation orientée objet - Chaque problème de programmation = déjà rencontré par d autres informaticiens - Une solution existe généralement parmi les Design Patterns

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

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

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe

Plus en détail

Agilité: Le manager devient facilitateur. @hgregoir

Agilité: Le manager devient facilitateur. @hgregoir Agilité: Le manager devient facilitateur @hgregoir Merci à nos partenaires et sponsors! Qui suis- je?! Forma>on technique en Dev et Sysadmin! Développeur, Architecte dev/sécu depuis 1996! Mais aussi formateur,

Plus en détail

Résumé Introduction Programmation Java

Résumé Introduction Programmation Java Résumé Introduction Programmation Java Concepts Un programme : séquence, test conditionnel, boucles. Objets : Les objets Java modélisent les objets d un problème donné Classe : Les objets sont crées à

Plus en détail

Agile @ Germe Nantes 20/11/2012 Br uno Sbille

Agile @ Germe Nantes 20/11/2012 Br uno Sbille Agile @ Germe Nantes 20/11/2012 Bruno Sbille 1 Principes de ce Workshop! Horaires! Questions (et le parking)! Vocabulaire Français vs English! Après la journée! Téléphones? Éteints, «silence», vibreurs?!

Plus en détail

Patrons Observateur/MVC

Patrons Observateur/MVC Patrons Observateur/MVC programmation évènementielle jean-michel Douin, douin au cnam point fr version : 12 Septembre 2008 Notes de cours 1 Sommaire Patron Observateur Programmation évènementielle Patron

Plus en détail

SCRUM en Bref. Système comprend trois sous-systèmes:a,b,c. S-Système A S-Système B S-Système C A1, B1, C2 A2, C1, A3 B2 B3 C3

SCRUM en Bref. Système comprend trois sous-systèmes:a,b,c. S-Système A S-Système B S-Système C A1, B1, C2 A2, C1, A3 B2 B3 C3 Rappels : étapes de développement de systèmes: 1. Étude des besoins 2. Analyse 3. conception 4. Implémentation 5. Test 6. Déploiement Planification Post-Mortem Système comprend trois sous-systèmes:a,b,c

Plus en détail

Mémento Design Patterns

Mémento Design Patterns Quelques Design Patterns Mémento Design Patterns Frédéric MOAL Université d Orléans Scope Purpose Creational Structural Behavioral Factory Method Abstract Factory Builder Prototype Singleton Adapter Proxy

Plus en détail

Cours Java : deuxième saison

Cours Java : deuxième saison Programmation Objet en Java Cours 9 Design Patterns 1 (C) 2005, Frédéric Peschanski 1 Cours Java : deuxième saison Cours 7 : Exceptions, tests unitaires et assertions Cours 8 : Design Patterns 1 Cours

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

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

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

Les Design Patterns en Java

Les Design Patterns en Java Les Design Patterns en Java Les 23 modèles de conception fondamentaux Steven John Metsker et William C. Wake Pearson Education France a apporté le plus grand soin à la réalisation de ce livre afin de vous

Plus en détail

Architecture logicielle Pour une approche organisationnelle, fonctionnelle et technique

Architecture logicielle Pour une approche organisationnelle, fonctionnelle et technique Avant-propos 1. Objectifs 17 2. Public visé 18 3. Organisation de l ouvrage 18 Ingénierie pilotée par les modèles 1. Sémantique introductive 19 1.1 Designer 21 1.2 Finitude 21 1.3 Conjectures 22 2. Architecture

Plus en détail

Conduite de projets agiles Management alternatif dans une équipe de développement agile

Conduite de projets agiles Management alternatif dans une équipe de développement agile Contexte 1. Introduction 11 2. Enjeu de Talentsoft 13 3. Objectifs de Talentsoft 17 4. L agilité comme remède miracle 18 4.1 Mise en place de l agile 18 4.2 Les problématiques actuelles 19 5. La solution

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

625 Programmation JDBC INTRODUCTION ARCHITECTURES

625 Programmation JDBC INTRODUCTION ARCHITECTURES 625 Programmation JDBC INTRODUCTION API (Framework) permettant d'accéder virtuellement à toute source de données tabulaire ; respecte la philosophie de la plate-forme Java: Write once, run everywhere ;

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

IK3 : Cours n 3 Gestion de projets

IK3 : Cours n 3 Gestion de projets IK3 : Cours n 3 Gestion de projets semaine du 11 octobre 2010 1 But du cours Il faut comprendre que quelque soit l ampleur d un projet, il existe des outils et des méthodes adaptés qui permettent de le

Plus en détail

Les méthodes agiles. Les méthodes agiles sont apparues dans les années 1990 (Extreme Programming, Rapid Application Development, Scrum ) :

Les méthodes agiles. Les méthodes agiles sont apparues dans les années 1990 (Extreme Programming, Rapid Application Development, Scrum ) : SCRUM Les méthodes agiles Les méthodes agiles sont apparues dans les années 1990 (Extreme Programming, Rapid Application Development, Scrum ) : capacité à réagir au changement plutôt que de suivre un plan

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

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

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

625 Programmation JDBC LES PRINCIPALES CLASSES ET LEUR EMPLOI INTRODUCTION ARCHITECTURES. Connection. Statement instruction

625 Programmation JDBC LES PRINCIPALES CLASSES ET LEUR EMPLOI INTRODUCTION ARCHITECTURES. Connection. Statement instruction 625 Programmation INTRODUCTION JDBC API (Framework) permettant d'accéder virtuellement à toute source de données tabulaire ; respecte la philosophie de la plate-forme Java: Write once, run everywhere ;

Plus en détail

les Design Patterns 11/02/2013 labsticc.univ-brest.fr/pages_perso/babau/ Département Informatique, UFR Sciences, UBO Laboratoire Lab-STICC

les Design Patterns 11/02/2013 labsticc.univ-brest.fr/pages_perso/babau/ Département Informatique, UFR Sciences, UBO Laboratoire Lab-STICC labsticc.univ-brest.fr/pages_perso/babau/ les Design Patterns Jean-Philippe Babau Département Informatique, UFR Sciences, Laboratoire Lab-STICC 2 1 Plan Introduction aux Design patterns Quelques Design

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

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

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

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

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

TP SPRING. https ://lipn.univ-paris13.fr/ fortier/enseignement/spring/tp/

TP SPRING. https ://lipn.univ-paris13.fr/ fortier/enseignement/spring/tp/ Institut Galilée Année 2015-2016 TP SPRING Programmation et Logiciels sûrs Master 2 PLS Résumé L objectif de ce TP est d être capable de réaliser une application Java de gestion de location de véhicules,voiture

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

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

AL5L Architecture logicielle. Séance 2 Design patterns et qualité de code

AL5L Architecture logicielle. Séance 2 Design patterns et qualité de code AL5L Architecture logicielle Séance 2 Design patterns et qualité de code Sébastien Combéfis lundi 24 novembre 2014 Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution

Plus en détail

Plan de la Formation. SCRUM en PRATIQUE

Plan de la Formation. SCRUM en PRATIQUE Plan de la Formation SCRUM en PRATIQUE Démarrage clés en mains de votre Projet en SCRUM Intitule de la Formation SCRUM en PRATIQUE Objectifs Les Objectifs de la formation sont de vous fournir une excellente

Plus en détail

CSC4002 : Contrôle Final Session 1. Date : jeudi 26 janvier 2012 Durée : 1H30. Coordonnateurs : Christian Bac et Denis Conan

CSC4002 : Contrôle Final Session 1. Date : jeudi 26 janvier 2012 Durée : 1H30. Coordonnateurs : Christian Bac et Denis Conan Corrigé et Barème Contrôle de connaissances 2011/2012 des étudiants de 2 è année (EI2) CSC4002 : Contrôle Final Session 1 Date : jeudi 26 janvier 2012 Durée : 1H30 Coordonnateurs : Christian Bac et Denis

Plus en détail

la phase exploratoire

la phase exploratoire V 1.00 la phase exploratoire élément facilitateur dans la réussite d un projet Agile A. MORVANT IT&L@BS Coach Agile aurelien.morvant@orange-ftgroup.com Page 1 Page 2 objet de la session > introduire la

Plus en détail

JAVA - Compléments du cours 9

JAVA - Compléments du cours 9 JAVA - Compléments du cours 9 Nicolas Baudru Année 2008-2009 Exercice 1 (Création de threads) En Java, il existe deux méthodes pour créer des threads. La première étend la classe Thread : class MonThread

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

Dr. M.W. Youssef Systèmes d exploitation Avancées 1ING ISI - 2009

Dr. M.W. Youssef Systèmes d exploitation Avancées 1ING ISI - 2009 Institut Supérieur d Informatique Chapitre 02 Synchronisation des processus Dr. Mohamed-Wassim YOUSSEF 2009 [www.wassimyoussef.info] Systèmes d exploitation avancées 1 ING ISI 1 ére année Ingénieur en

Plus en détail

ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE

ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE LOG2410 Conception logicielle Solutionnaire examen final Automne 2008 Documentation : Aucune Calculatrice : Aucune Date : 13 décembre 2008

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

Programmation Multi-Threading en Java

Programmation Multi-Threading en Java Programmation Multi-Threading en Java Christophe Gravier, Frédérique Laforest, Julien Subercaze Télécom Saint-Étienne Université Jean Monnet {prénom.nom}@univ-st-etienne.fr FI2_INFO4 2012 2013 1 / 35 Plan

Plus en détail

Stéphane GOBRON HES SO HE Arc ISIC

Stéphane GOBRON HES SO HE Arc ISIC Stéphane GOBRON HES SO HE Arc ISIC 2015 Où en sommes nous? Plan de cours Ch.1 : OO Rappels Ch.2 : Etude de cas => le bridge DP Ch.3 : Conceptualisation, Singleton et Composite DPs Ch.4 : Decorator, State,

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

Externaliser les données des tests. Première partie : Une classe à tester

Externaliser les données des tests. Première partie : Une classe à tester Externaliser les données des tests Jusqu'alors, on avait créé des classes de tests pour tester les classes du projet à développer. Ces classes de tests contenaient les programmes de tests avec leurs données.

Plus en détail

PROGRAMMATION WEB. Introduction à SVN. 20 septembre 2015 Denis Monnerat. IUT de Fontainebleau. monnerat@u-pec.fr. Introduction à SVN 1

PROGRAMMATION WEB. Introduction à SVN. 20 septembre 2015 Denis Monnerat. IUT de Fontainebleau. monnerat@u-pec.fr. Introduction à SVN 1 PROGRAMMATION WEB Introduction à SVN 20 septembre 2015 Denis Monnerat monnerat@u-pec.fr IUT de Fontainebleau Introduction à SVN 1 Sommaire 1. Introduction 2. Notions de bases 3. Cycle d utilisation 4.

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

Java Avancé - Cours 1

Java Avancé - Cours 1 Java avancé - cours 1 1/8 Java Avancé - Cours 1 Plan 1 Recevoir et émettre des données simples 1 1.1 Comment récupérer une page Web.......................................... 1 1.2 Socket : l objet qui

Plus en détail

Sprint Planning. Prépa N Product Backlog. Dev N-1 DEV N. Démarrage d un Item (US, TS, DEFECT) Release Planning (review)

Sprint Planning. Prépa N Product Backlog. Dev N-1 DEV N. Démarrage d un Item (US, TS, DEFECT) Release Planning (review) Sprint N-1 Sprint N Prépa N Product Backlog Sprint Planning Vérification estimations initiales Pour les premiers items : Instanciation d un Tasks Pattern Estimation des tâches en heures Dev N-1 Sprint

Plus en détail

Travaux Pratiques : Connexion et accès à la Base De Données

Travaux Pratiques : Connexion et accès à la Base De Données MODULE : Intégration des données Professeur : Mr Tallard Travaux Pratiques : Connexion et accès à la Base De Données Kamissi MOHAMED Sommaire 1. Présentation de l énoncé... 3 2. Connexion à la base de

Plus en détail

JUnit 3.8 / JUnit 4. P. Graffion

JUnit 3.8 / JUnit 4. P. Graffion JUnit 3.8 / JUnit 4 P. Graffion février 2015 Objectifs Framework de tests écrit pour faciliter : l écriture de tests tests unitaires tests de recette l exécution de ces tests l exploitation de ces tests

Plus en détail

ULCO-L3Info-Projets-CM2

ULCO-L3Info-Projets-CM2 ULCO-L3Info-Projets-CM2 Arnaud Lewandowski, Eric Ramat, Julien Dehos Université du Littoral Côte d Opale 18 juin 2015 A Lewandowski, E Ramat, J Dehos ULCO-L3Info-Projets-CM2 1/44 Sommaire 1 Conception

Plus en détail

Arité variable, énumérations. Arité variable. Arité des méthodes. Utilisation de la surcharge

Arité variable, énumérations. Arité variable. Arité des méthodes. Utilisation de la surcharge Arité variable, énumérations Théorie et pratique de la programmation Michel Schinz 2013-05-13 Arité variable 1 2 Arité des méthodes Utilisation de la surcharge Il est parfois utile d'offrir des méthodes

Plus en détail

Projet M1 : Application P2P Hybride avec RMI

Projet M1 : Application P2P Hybride avec RMI Projet M1 : Application P2P Hybride avec RMI Applications Réparties 2008-2009 Université Paris VIII / Parcours SRM / M1 Sujet : Le but de ce projet est d'implémenter une application de partage de fichiers

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

Inf340 Systèmes d information. Deuxième site : approche MVC

Inf340 Systèmes d information. Deuxième site : approche MVC Inf340 Systèmes d information Deuxième site : approche MVC Objectifs Objectif : Reprendre le site précédent en utilisant le patron de conception Modèle Vue Contrôleur. Comprendre l apport d un framework

Plus en détail

Java Avancé - Cours 2

Java Avancé - Cours 2 Java avancé - cours 2 1/8 Java Avancé - Cours 2 Plan 1 Communication entre objets 1 1.1 Motivation....................................................... 1 1.2 Relations entre le panier et le rayon.........................................

Plus en détail

Java Avancé - Cours 3

Java Avancé - Cours 3 Java avancé - cours 3 1/11 Java Avancé - Cours 3 Plan 1 Rappel sur AWT 1 2 Présentation de Swing 1 2.1 Containers de haut niveau............................................... 1 2.2 Containers génériques.................................................

Plus en détail

1- Créer notre DatabaseHelper, enfant de SQLiteOpenHelper (permet de créer nos tables) 2- Créer notre Model qui contiendra les requêtes

1- Créer notre DatabaseHelper, enfant de SQLiteOpenHelper (permet de créer nos tables) 2- Créer notre Model qui contiendra les requêtes B53 Android SQLite SQLite est intégrée au moteur d exécution d Android. Il s agit d un SGBD très apprécié car il fournit une interface SQL tout en nécessitant un minimum de mémoire et en fournissant une

Plus en détail

INF2015 Développement de logiciels dans un environnement Agile. Examen final 24 avril 2014 17:30 à 20:30

INF2015 Développement de logiciels dans un environnement Agile. Examen final 24 avril 2014 17:30 à 20:30 Examen final 24 avril 2014 17:30 à 20:30 Nom, prénom : Code permanent : Répondez directement sur le questionnaire. Question #1 5% Qu'est-ce qu'un test de régression? Question #2 5% Selon extreme Programming,

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

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

Licence Professionnelle Développeur Web Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr)

Licence Professionnelle Développeur Web Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr) Grenoble 1 IMA Informatique & Mathématiques Appliquées UNIVERSITE JOSEPH FOURIER Sciences, Technologie, Médecine Licence Professionnelle Développeur Web Programmation Orientée Objets Gestion de comptes

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

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

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

TD6 Initiation aux EJB3 avec Eclipse Ecriture d une application J2EE complète

TD6 Initiation aux EJB3 avec Eclipse Ecriture d une application J2EE complète TD6 Initiation aux EJB3 avec Eclipse Ecriture d une application J2EE complète Nous allons écrire une application J2EE qui permet dans un navigateur web de gérer des contacts. Pour cela, nous allons suivre

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

Les formations. Développeur Logiciel. ENI Ecole Informatique

Les formations. Développeur Logiciel. ENI Ecole Informatique page 1/8 Titre professionnel : Inscrit au RNCP de Niveau III (Bac + 2) (J.O. du 19/02/13) 24 semaines + 8 semaines de stage (uniquement en formation continue) Développer une application orientée objet

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

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

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 À L INJECTION DE DÉPENDANCES EN JAVA

INTRODUCTION À L INJECTION DE DÉPENDANCES EN JAVA INTRODUCTION À L INJECTION DE DÉPENDANCES EN JAVA Andr0 29 octobre 2015 Table des matières 1 Introduction 5 2 Qu est ce que l injection de dépendances? 7 2.1 Mais une dépendance, c est quoi?.........................

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

Développement Web. Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. 24 janvier 2011

Développement Web. Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer. 24 janvier 2011 1 / 56 Développement Web Le modèle MVC Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer 24 janvier 2011 2 / 56 Objectif Objectif du cours Se familiariser avec

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

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

Cours 1 : Introduction aux patrons

Cours 1 : Introduction aux patrons Cours 1 : Introduction aux patrons jean-michel Douin, douin au cnam point fr version : 10 Septembre 2010 Notes de cours, elles ne remplacent pas la lecture d ouvrages ou de tutoriels sur ce sujet, cf.

Plus en détail

TD/TP PO2 Licence Informatique 3 (2014 2015)

TD/TP PO2 Licence Informatique 3 (2014 2015) TD/TP PO2 Licence Informatique 3 (2014 2015) Exercice 1 Ecrire une interface graphique qui contient : 10 boutons correspondant aux chiffres : 0, 1,,9 4 boutons correspondant aux opérations : + - = clr

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

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

Enregistrer un nouvel évènement

Enregistrer un nouvel évènement Maintenant que nous avons géré les utilisateurs, voyons l'enregistrement d'un nouvel évènement créé par l'utilisateur qui sera connecté au client. Là encore, nous utiliserons une couche DAO formée d'une

Plus en détail

IFT3912 Développement, Maintenance de Logiciels Démo6 : Les Patrons de Conception Professeur: Bruno Dufor

IFT3912 Développement, Maintenance de Logiciels Démo6 : Les Patrons de Conception Professeur: Bruno Dufor IFT3912 Développement, Maintenance de Logiciels Démo6 : Les Patrons de Conception Professeur: Bruno Dufor Démonstrateurs: Marouane Kessentini I. Définition Hassen Grati Un patron de conception (Design

Plus en détail

Master M1 Informatique: Analyse et Conception des Logiciels

Master M1 Informatique: Analyse et Conception des Logiciels Master M1 Informatique: Analyse et Conception des Logiciels Pascal Molli Juin 2008 Les documents de cours sont autorisés 1 Exercice en 5 lignes maximums répondez aux questions suivantes : 1. Qu est ce

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

Introduction à Subversion

Introduction à Subversion Introduction à Subversion Julien Barnier 2 août 2005 Introduction à Subversion 2 Table des matières 1 Introduction 1.1 Objectifs de ce document Ce document a pour objectif de servir d aide-mémoire et de

Plus en détail

GRAILS L'ARCHITECTURE GRAILS

GRAILS L'ARCHITECTURE GRAILS GRAILS L'ARCHITECTURE GRAILS Grails est un serveur d'application web basé sur le langage Groovy, et le framework Spring. Il est édité par la société : SpringSource. Une application Grails se décompose

Plus en détail