source: presentations/trunk/DevCollaboratifs/Index.htm@ 324

Last change on this file since 324 was 265, checked in by garnier, 17 years ago

preparation avant remodelage repository

File size: 14.8 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" dir="ltr" lang="fr">
3
4<head>
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
6 <meta http-equiv="Content-Language" content="ja">
7 <meta http-equiv="Content-Style-Type" content="text/css">
8 <meta http-equiv="Content-Script-Type" content="text/javascript"><title>JI'06:Intro</title>
9
10 <meta name="author" content="Vincent Garonne">
11 <meta name="description" content="description€‚">
12 <meta name="keywords" content="XHTML, CSS, HTML, (X)HTML">
13 <link rev="made" href="mailto:garonne@lal.in2p3.fr">
14
15 <link rel="stylesheet" href="../../tags/Tools/v2/css/screen.css" type="text/css" media="screen, projection, tv, print">
16 <link rel="stylesheet" href="../../tags/Tools/v2/Slidy/slidy-toc.css" type="text/css" media="screen, projection, print">
17
18 <script src="../../tags/Tools/v2/Slidy/slidy.js" type="text/javascript"></script>
19 <script src="../../tags/Tools/v2/Slidy/slidy-toc.js" type="text/javascript"></script>
20</head>
21
22<body style="font-size: 18pt;">
23
24<!-- Cover -->
25<div class="slide" id="cover">
26
27 <div class="callout">
28 <p id="title">Introduction:<br> Les outils de d&#233;veloppement collaboratif</p>
29 <p class="serif" xml:lang="fr"><q>Le soft pour le soft</q></p>
30 </div>
31 <!--<q></q>-->
32 <p id="author"><a href="http://www.lal.in2p3.fr/~garonne">Vincent Garonne</a>,
33 &lt;<a href="mailto:garonne@lal.in2p3.fr">garonne@lal.in2p3.fr</a>&gt;</p>
34 <br>
35 <p id="date">20 Septembre 2006<br></p>
36 <p id="event"><a href="http://ji.in2p3.fr/">Journées Informatique IN2P3-DAPNIA</a>, Lyon-Valpr&#233;</p>
37</div>
38
39<!--<div class="slide toc"> <h1>Table of contents</h1> </div> -->
40
41<!-- Introduction [Start] -->
42<div class="slide">
43 <br>
44 <div class="callout">
45 <h2>Sommaire</h2>
46 <ol>
47 <li><a href="#(3)">Contexte, problématique et motivations</a></li>
48 <li>Les phases d'un projet
49 <ol>
50 <li><a href="#(5)">Conception</a></li>
51 <li><a href="#(6)">Codage & compilation</a></li>
52 <li><a href="#(10)">Distribution</a></li>
53 <li><a href="#(11)">Support</a></li>
54 </ol>
55 </li>
56 <li><a href="#(12)">Conclusion</a></li>
57 </ol>
58 </div>
59</div>
60<!-- -->
61
62<!-- Introduction [Start] -->
63<div class="slide">
64 <h1>De quoi allons nous parler ?</h1>
65 <ul class="outline">
66 <li>Concevoir, développer et distribuer des applications avec des technologies distribuées
67 <ul>
68 <li>Infrastructure distribuée pour passer au stade de développement collaboratif</li>
69 <li>Mutualiser les ressources et faire communiquer les membres d'une équipe</li>
70 <li>Fédérer les développements, éviter les dispersions d'énergie et permettre l'évolution du produit</li>
71 </ul>
72 </li>
73 <li>Adapt&eacute; &agrave; notre communauté
74 <ul>
75 <li>Utilisateurs/développeurs géographiquement distribués pour une expérience, e.g:
76 <ol>
77 <li>ATLAS: 500 développeurs sur trois continents</li>
78 <li>LHCb: 500 utilisateurs dans 50 instituts</li>
79 </ol>
80 </li>
81 </ul>
82 </li>
83 <li>Présentation des <q>bonnes</q> pratiques et outils
84 <ul>
85 <li>Vue subjective et non exhaustive basée sur notre expérience</li>
86 <li>Vision <q>Open Source</q></li>
87 </ul>
88 </li>
89 </ul>
90</div>
91
92<!-- Introduction [1] -->
93<div class="slide">
94
95 <h1>Les phases d'un projet</h1>
96
97 <div class="incremental" style="margin-left: 4em; position: relative;">
98 <img src="Images/cycle5.png" style="position: static;" />
99 <img src="Images/cycle4.png" style="position: absolute; left: 0pt; top: 0pt;" />
100 <img src="Images/cycle3.png" style="position: absolute; left: 0pt; top: 0pt;" />
101 <div>
102 <img src="Images/cycle2.png" style="position: absolute; left: 0pt; top: 0pt;" />
103 <div class="sidebar" style="position: absolute; left: 65%;top: 0pt; font-size:0.7em;">
104 <h3>Diffusion:</h3>
105 <li>Plate-forme locale </li>
106 <li>Distribution</li>
107 </div>
108 </div>
109 <img src="Images/cycle1.png" style="position: absolute; left: 0pt; top: 0pt;" />
110 <div>
111 <img src="Images/cycle.png" style="position: absolute; left: 0pt; top: 0pt;" />
112 <br>
113 <div class="sidebar" style="position: relative; left: 0pt; top: 0% ;font-size:0.7em;">
114 <h3>Execution:</h3>
115 <li>Rapports d'erreurs</li>
116 <li>Retours utilisateurs</li>
117 <li>Modifications/Ajout fonctionnalit&eacute;s</li>
118 <li>D&eacute;boguage</li>
119 <li>....</li>
120 </div>
121 </div>
122 </div>
123</div>
124
125
126<!-- Diapo -->
127<div class="slide" >
128 <h1>Conception & codage</h1>
129 <ul>
130 <li>Conception:
131 <ul>
132 <li>Cibler la communaut&eacute;</li>
133 <li>D&eacute;finir les r&ocirc;les:
134 <ul>
135 <li>Responsable de projet/sous-projets, d&eacute;veloppeurs, testeurs, ...</li>
136 </ul>
137 </li>
138 <li>&Eacute;tablir une feuille de route (roadmap)
139 <li>Choisir un cycle de d&eacute;veloppement
140 <ul>
141 <li>En V, incr&eacute;mental, en spiral, <q><a href="http://www.la-rache.com/">La RACHE<a></q> ;), ....</li>
142 </ul>
143 </li>
144 <li>...</li>
145 </ul>
146 </li>
147 <li>Codage:
148 <ul>
149 <li>Fixer des normes
150 <ul>
151 <li>R&egrave;gles de nommage et formatage (checkstyle, PMD, ...)</li>
152 </ul>
153 </li>
154 <li>Tests unitaires
155 <ul>
156 <li><a href="http://www.junit.org/index.htm">JUnit</a>, <a href="http://cunit.sourceforge.net/">CUnit</a>, ...</li>
157 </ul>
158 </li>
159 <li>Environnement de d&eacute;veloppement
160 <ul>
161 <li>Xcode, Visual, Eclipse, ...</li>
162 </ul>
163 </li>
164 </ul>
165 </li>
166 </ul>
167</div>
168
169<!-- Diapo -->
170<div class="slide" >
171 <h1>Organisation du d&eacute;veloppement</h1>
172 <ul>
173 <li>Outil de contr&ocirc;le de version:
174 <ul>
175 <li>C&oelig;ur d'un syst&egrave;me de d&eacute;veloppement collaboratif
176 <ul>
177 <li>E.g: CVS, SVN (voir <a href="">pr&eacute;sentation SVN</a>), ...</li>
178 </ul>
179 </li>
180 </ul>
181 </li>
182 <li>Mais les besoins de partager et de communiquer d&eacute;passent largement le cadre du code source</li>
183 <li>Outils synchrones: chat, web conf&eacute;rences, etc. </li>
184 <li>Utiliser une plate-forme int&eacute;gr&eacute;e de gestion de d&eacute;veloppement:
185 <ul>
186 <li>Savannah, <a href="http://gforge.org/">GForge</a>, <a href="http://trac.edgewall.org/">Trac</a> (voir <a href="">pr&eacute;sentation Trac</a>), ...</li>
187 </ul>
188 </li>
189
190 <li>Portabilit&eacute;:
191 <ul>
192 <li>Configurer et activer l'environnement de d&eacute;veloppement, de compilation et d'ex&eacute;cution
193 </li>
194 <li>E.g: autoconf, automake, libtool, Ant, CMT(voir <a href="">pr&eacute;sentation CMT</a>)
195 </li>
196 </ul>
197 </li>
198 <li>Liaison entre packages (externes?)
199 <ul>
200 <li>E.g: <a href="http://maven.apache.org" />Maven</a>, <a href="http://freehackers.org/~tnagy/bksys.html">Waf</a>, CMT(voir <a href="">pr&eacute;sentation CMT</a>)
201 </li>
202 </ul>
203 </li>
204 <li>G&eacute;rer la documentation du code
205 <ul>
206 <li>E.g: <a href="http://www.stack.nl/~dimitri/doxygen/">Doxygen</a>
207 </li>
208 </ul>
209 </li>
210 <!-- spécifier des dépendances externes, structurer, taille du software, comment distribué, MàJ) -->
211 <ul>
212</div>
213
214<!-- Diapo -->
215<div class="slide" >
216 <h1>Phase de mise au point</h1>
217 <ul>
218 <li>Validation progressive des versions:
219 <ul>
220 <li>Alpha: pour les d&eacute;veloppeurs</li>
221 <li>B&ecirc;ta: pour les contributeurs</li>
222 <li>Release Candidate: pour les sympathisants</li>
223 <li>Final, corrections: pour tous les utilisateurs</li>
224 </ul>
225 </li>
226 <li>Num&eacute;rotation des versions doit &ecirc;tre clairement formalis&eacute;e pour:
227 <ul>
228 <li>les changements apport&eacute;s</li>
229 <li>les proc&eacute;dures de mise &agrave; jour</li>
230 <li>Plusieurs formes possibles
231 <ul>
232 <li>1.05, 2.7.18, 1_5_0_06, 5.7-2, ...</li>
233 </ul>
234 </li>
235 </ul>
236 </li>
237 </ul>
238</div>
239
240<!-- Diapo -->
241<div class="slide" >
242 <h1>Exemple de num&eacute;rotation (1)</h1>
243 <br /><br />
244 <div class="hvfill">
245 <img src="Images/release.png" style="position: static;"/>
246 </div>
247</div>
248
249<!-- Diapo -->
250<div class="slide" >
251 <h1>Exemple de num&eacute;rotation (2)</h1>
252 <ul>
253 <li>Major number:
254 <ul>
255 <li>Changement tr&egrave;s important (protocole, architecture, ...)</li>
256 <li>Incompatibilit&eacute; assur&eacute;e entre acteurs de versions diff&eacute;rentes</li>
257 </ul>
258 </li>
259
260 <li>Minor number:
261 <ul>
262 <li>Changement important (ajout/retrait de fonctionnalit&eacute;s, ...)</li>
263 <li>Incompatibilit&eacute; possible (&agrave; d&eacute;terminer clairement)</li>
264 </ul>
265 </li>
266
267 <li>Patch level:
268 <ul>
269 <li>Changement mineur (correction de bug, am&eacute;lioration de l'interface, ...)</li>
270 <li>Compatibilit&eacute; assur&eacute;e </li>
271 </ul>
272 </li>
273
274 <li>Release number:
275 <ul>
276 <li>Pas de changement fonctionnel</li>
277 <li>Changement dans la documentation, les exemples, ...</li>
278 </ul>
279 </li>
280
281 </ul>
282</div>
283
284<!-- Diapo -->
285<div class="slide" >
286 <h1>La distribution</h1>
287 <ul>
288 <li>Sous quelle forme ?
289 <ul>
290 <li>tarball, RPM, ...</li>
291 </ul>
292 </li>
293 <li>Pour quelle plate-forme ?
294 <ul>
295 <li>Grande contrainte des grilles</li>
296 <li>Cross-building</li>
297 </ul>
298 </li>
299 <li>Pr&eacute;voir des mises &agrave; jours automatiques et fa&ccedil;iles</li>
300 <li>Outils pour le d&eacute;ploiement
301 <ul>
302 <li>Int&eacute;grer un syst&egrave;me de distribution</li>
303 <li>CPAN, fink, <a href="http://physics.bu.edu/~youssef/pacman/">Pacman</a>, ...</li>
304 </ul>
305 </li>
306 <li>Probl&egrave;me des versions concurrentes
307 <ul>
308 <li>Indispensable dans un environnement grille</li>
309 </ul>
310 </li>
311 </ul>
312
313</div>
314
315<!-- Diapo -->
316<div class="slide" >
317 <h1>Le support</h1>
318 <ul>
319 <li>Beaucoup de sollicitations:
320 <ul>
321 <li>Rapports d'anomalie (bug reports)
322 </li>
323 <li>Demandes de fonctionnalit&eacute;s (feature requests)</li>
324 <li>Probl&egrave;mes d'installation/configuration</li>
325 <li>Questions diverses</li>
326 </ul>
327 </li>
328 <li>Capitaliser:
329 <ul>
330 <li>Structurer le support dans la documentation
331 <ul>
332 <li>FAQs, Documentation, Tutoriels, Wiki, ...</li>
333 </ul>
334 </li>
335 <li>Utiliser des listes de discussion archiv&eacute;es/Forum/Flux rss d'annonce/ ...</li>
336 </ul>
337 </li>
338 <li>Utiliser une plate-forme int&eacute;gr&eacute;e de gestion de d&eacute;veloppement:
339 <ul>
340 <li>Savannah, <a href="http://gforge.org/">GForge</a>, <a href="http://trac.edgewall.org/">Trac</a> (voir <a href="">pr&eacute;sentation Trac</a>), ...</li>
341 </ul>
342 </li>
343 </ul>
344</div>
345
346<!-- Diapo -->
347<div class="slide" >
348 <h1>Faire des pr&eacute;sentations &agrave; plusieurs</h1>
349 <ul>
350 <li>Pb: Documents binaires uniques
351 <ul>
352 <li>PowerPoint, OpenOffice
353 <ul>
354 <li>Pro: universel, maitris&eacute;, fichier unique ...</li>
355 <li>Cons: non versionnable, mal adapt&eacute;
356 &agrave; l'&eacute;dition collaborative</li>
357 </ul>
358 </li>
359 </ul>
360 </li>
361 <li>Documents texte
362 <ul>
363 <li>Versionnable, adapt&eacute; &agrave;
364 l'&eacute;dition collaborative, <em><q>Open Source</q></em></li>
365 <li>LaTeX
366 <ul>
367 <li>Ex.: <a href="http://latex-beamer.sourceforge.net/" >Beamer</a></li>
368 <li>Pro: fichier produit unique, multi formats, esth&eacute;tique</li>
369 <li>Cons: <br />r&eacute;serv&eacute; aux amateurs de LaTeX</li>
370 </ul>
371 </li>
372 </ul>
373 <ul>
374 <li>Xhtml+CSS+JavaScript
375 <ul>
376 <li>Ex.: <a href="http://www.w3.org/Talks/Tools/ outils du W3C], [http://www.w3.org/Talks/Tools/Slidy/" >Slidy</a>, <a href="http://meyerweb.com/eric/tools/s5/" >S5</a>, <a href="http://goessner.net/articles/slideous/slideous.html" >Slideous</a>, <a href="[http://icant.co.uk/domslides/" >DomSlides</a>, <a href="http://dret.net/projects/xslidy/" >XSlidy</a></li>
377 <li>
378 Cons: <br />r&eacute;serv&eacute; aux amateurs de
379 CSS/JavaScript, <br />pas d'&eacute;diteur
380 sp&eacute;cialis&eacute; pour l'instant, &eacute;diteur <em>Ajax</em> annonc&eacute;
381 </li>
382 </ul>
383 </li>
384 </ul>
385 </li>
386 </ul>
387</div>
388
389
390<!-- Diapo -->
391<div class="slide" >
392 <h1>Conclusion</h1>
393 <ul>
394 <li>&Ecirc;tre rigoureux dans le d&eacute;veloppement
395 <ul>
396 <li>Les environnements distribu&eacute;s apportent d&egrave;s le d&eacute;part des contraintes sur la conception/impl&eacute;mentation</li>
397 </ul>
398 </li>
399
400 <li>Soigner davantage la documentation</li>
401
402 <li>Communiquer, former</li>
403
404 <li>Assumer le support
405 <ul>
406 <li>&Eacute;norme consommation de temps</li>
407 </ul>
408 </li>
409 <!--Pascal Aubry-->
410 </ul>
411</div>
412
413<!-- Thank You [Start] -->
414<div class="slide" id="thanks">
415 <p>Questions ?</p>
416</div>
417
418
419<!-- [End] -->
420</body>
421</html>
Note: See TracBrowser for help on using the repository browser.