1. La production de logiciels ` l’IRCAD
a
J. Moreau
IRCAD
24 septembre 2012
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 1 / 72
2. Qui suis-je ?
Johan Moreau
@ : Johan.Moreau sur gmail.com
R.S.I de l’Institut de Recherche contre les Cancers de l’Appareil Digestif
Ing´nieur d´veloppement et r´seaux dans l’´quipe R&D
e e e e
http://www.ircad.fr/
Membre du bureau des associations Clusir-Est et Elsass-JUG
Participation ` divers projets opensource (nagios-i18n, kosmos-i18n,
a
SConspiracy, FW4SPL, RMLL, ...)
Enseignements : G´nie logiciel/POO, SSI/SSR, ...
e
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 2 / 72
3. Objectif de cette pr´sentation
e
Pr´senter l’environnement, les objectifs et les processus
e
Pr´senter les architectures choisies et les outils
e
Pr´senter les r´alisations
e e
Partager l’exp´rience et d´battre sur les choix
e e
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 3 / 72
4. Institut et objectifs
Plan
1 Institut et objectifs
2 Production et m´thodes
e
3 Framework de d´veloppement : FW4SPL
e
4 Logiciels bas´s sur FW4SPL
e
5 Prototypes et explorations
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 4 / 72
5. Institut et objectifs
Evolution de la chirurgie
→
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 5 / 72
6. Institut et objectifs
1987 France : Chirurgie mini-invasive
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 6 / 72
7. Institut et objectifs
IRCAD : 4100 chirurgiens par an, 92 pays
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 7 / 72
8. Institut et objectifs
IRCAD : 17 tables d’op´rations
e
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 8 / 72
9. Institut et objectifs
2`me ´volution de la chirurgie
e e
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 9 / 72
10. Institut et objectifs
IRCAD : 600 chirurgiens par an
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 10 / 72
11. Institut et objectifs
IRCAD : Enseignement en ligne >250 000 membres
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 11 / 72
12. Institut et objectifs
IHU : Chirurgie mini-invasive hybride guid´e par l’image
e
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 12 / 72
13. Institut et objectifs
IHU : Chirurgie mini-invasive hybride guid´e par l’image
e
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 13 / 72
14. Institut et objectifs
IHU : Le bloc op´ratoire de demain
e
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 14 / 72
15. Production et m´thodes
e
Plan
1 Institut et objectifs
2 Production et m´thodes
e
3 Framework de d´veloppement : FW4SPL
e
4 Logiciels bas´s sur FW4SPL
e
5 Prototypes et explorations
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 15 / 72
16. Production et m´thodes
e
Production logiciel en g´n´ral
e e
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 16 / 72
17. Production et m´thodes
e
M´thodologie Scrum
e
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 17 / 72
18. Production et m´thodes
e
Probl´matique ´quipe Recherche et D´veloppement
e e e
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 18 / 72
19. Production et m´thodes
e
Conception logiciel ` l’IRCAD
a
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 19 / 72
20. Production et m´thodes
e
Du macroplanning ` la ligne de code
a
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 20 / 72
21. Production et m´thodes
e
Du macroplanning ` la ligne de code : les outils
a
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 21 / 72
22. Production et m´thodes
e
Gestion des sources
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 22 / 72
23. Production et m´thodes
e
Gestion des sources avec des partenaires
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 23 / 72
24. Production et m´thodes
e
Politique de branches et d´pˆts
e o
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 24 / 72
25. Production et m´thodes
e
R´partition sources publiques/priv´es : trac
e e
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 25 / 72
26. Production et m´thodes
e
Zone de collaborations : Co’Lab
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 26 / 72
27. Production et m´thodes
e
Zone publique : Google Code
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 27 / 72
28. Production et m´thodes
e
R´partition code d´velopp´/code utilis´
e e e e
Librairies utilis´es dans les projets :
e
ann, apr, aprutil, boost, camp, cfitsio, cppunit, dbghelp, dcmtk, expat,
fits2itk, freetype, gdcm, glew, glext, glut, graphviz, icu4c, itk, jpeg, lib3ds,
libiconv, libpng, libxml2, log4cxx, mathplotlib, numpy, ogre, opencv,
openssl, python, qt, sofa, tiff, uuid, vmtk, vtk, vtkinria3d, vxl, wxwidgets,
zlib, ...
Ceci repr´sente :
e
4,5 Go de donn´es en comparaison de 66 Mo pour FW4SPL
e
Rapport de 1 pour 60 !
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 28 / 72
29. Production et m´thodes
e
Les tests : cppunit, sikuli, testlink, ...
Pour les tests :
Les tests unitaires avec cppunit
Les tests fonctionnels automatiques avec sikuli
Les tests fonctionnels manuels avec testlink
Pour les aspects qualit´/qualim´trie :
e e
La qualit´ C++ avec cppcheck
e
La gestion m´moire avec Valgrind
e
CCCC pour la complexit´
e
Pour les documents des d´veloppeurs :
e
Convention de codage
Convention de niveau de log et d’exception
Documentation sur Mercurial et SConspiracy, etc ...
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 29 / 72
30. Framework de d´veloppement : FW4SPL
e
Plan
1 Institut et objectifs
2 Production et m´thodes
e
3 Framework de d´veloppement : FW4SPL
e
4 Logiciels bas´s sur FW4SPL
e
5 Prototypes et explorations
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 30 / 72
31. Framework de d´veloppement : FW4SPL
e
PASSPORT
Patient-Specific Simulation for Pre-Operative Realistic Training of Liver
Surgery
FP7, ICT-2007.5.3 : 2008-2011
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 31 / 72
32. Framework de d´veloppement : FW4SPL
e
Processus IRCAD : bas´ sur FW4SPL
e
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 32 / 72
33. Framework de d´veloppement : FW4SPL
e
Objectifs
D´veloppement rapide pour cr´er des applications/prototypes
e e
m´dicaux en multi OS, multi architecture
e
R´utilisation maximale du code source
e
Int´grer les travaux des collaborations (priv´e/open) et des stagiaires,
e e
th´sards et chercheurs
e
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 33 / 72
34. Framework de d´veloppement : FW4SPL
e
FrameWork for Software Production Line
Architecture bas´e composant et centr´e sur les donn´es
e e e
C++/Python - LGPL 1
OSX/Linux/Windows - iOS/Meego/Android en cours
Utilisation maximale des FLOSS (gdcm, Qt, wxWidgets, VTK/ITK,
Ogre, openni, sofa, ...)
1. http://code.google.com/p/fw4spl
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 34 / 72
35. Framework de d´veloppement : FW4SPL
e
Historique
2004-2007 : projet FW4SPL (non FLOSS)
2007-2009 : VRRender (freeware)
09/2009 : FW4SPL en FLOSS
2010 : Sofa, VRRender WLE 2 (freeware)
2011 : Kinect, VRRender 0.9 (FLOSS)
2012 : Ogre, multithread, ...
2. www.websurg.com/softwares/vr-render/
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 35 / 72
36. Framework de d´veloppement : FW4SPL
e
Architecture centr´e sur les donn´es
e e
Design traditionnel : les besoins fonctionnels et structurels sont
stock´s dans la mˆme classe
e e
Design FW4SPL : Les structures sont atomiques (les plus petites
possibles) avec un syst`me d’extension dynamique 3
e
D´j` pr´sent dans des langages de haut-niveau (Python, Ruby, etc
ea e
...), mais plus complexe sur du C++
3. A design pattern coupling role and component concepts : Application to medical
software. Jean-Baptiste Fasquel, Johan Moreau
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 36 / 72
37. Framework de d´veloppement : FW4SPL
e
Architecture bas´e composants
e
Design traditionnel : logiciel monolithique (ou avec 1 syst`me de
e
point d’entr´e : plugin)
e
Design FW4SPL : Toutes les parties des logiciels bas´s sur FW4SPL
e
peuvent ˆtre ´tendues
e e 4
Autres exemple de CBSE (Component-based software engineering)
XP-Com (Mozilla), OSGi (Eclipse), Unity3D
4. A modular and evolutive component oriented software architecture for patient mo-
deling. Jean-Baptiste Fasquel, Guillaume Brocker, Johan Moreau
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 37 / 72
38. Framework de d´veloppement : FW4SPL
e
B´n´fice de l’architecture
e e
Am´liore l’extensibilit´ (fonctionnelle et technique)
e e
Simplifie la maintenance (tests simples toujours possible)
Facilit´ le remaniement (ajout de nouveau concept dans le noyau avec
e
un effort correct)
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 38 / 72
39. Framework de d´veloppement : FW4SPL
e
Visualisation et diagramme OSR
Application basique centr´e sur un maillage avec 3 services
e
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 39 / 72
40. Framework de d´veloppement : FW4SPL
e
Visualisation et diagramme OSR
Mˆme exemple avec 2 donn´es : maillage et image
e e
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 40 / 72
41. Framework de d´veloppement : FW4SPL
e
Dossier d’un composant
Fichier de description XML ( plugin.xml ) pour d´crire le contenu de
e
la librairie dynamique
Librarie dynamique ( .so, .dll, .dylib)
Autres ressources ( icones, fichier xsd, sons, ... )
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 41 / 72
42. Framework de d´veloppement : FW4SPL
e
Exemples de composants
Exemples de composants
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 42 / 72
43. Framework de d´veloppement : FW4SPL
e
Exemples de composants
Composants utilis´s
e VR-Render
(open-source)
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 43 / 72
44. Framework de d´veloppement : FW4SPL
e
Exemples de composants
Composants utilis´s
e
AR-Surg (close-source)
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 44 / 72
45. Framework de d´veloppement : FW4SPL
e
Exemples de composants
Composants utilis´s
e
VR-Anat (closed-source)
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 45 / 72
46. Framework de d´veloppement : FW4SPL
e
Fonctionnalit´s ” coeur”
e du
Configuration de l’application (IHM inclue) via XML
Synchronisation d’´v`nement
e e
S´rialisation de donn´es en XML/ZIP
e e
Gestion de la m´moire intra-application
e
Scene 2D/3D g´n´rique (VTK/Ogre/Qt)
e e
Python embarqu´
e
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 46 / 72
47. Framework de d´veloppement : FW4SPL
e
Fonctionnalit´s ”
e utilisateur”
Gestion des donn´es chirurgicales et radiologiques
e
Visualisation d’image 2D/3D et de maillages
Rendu volumique GPU/CPU
Rendu mixte volumique et surfacique
Lecture/Ecriture d’images et de maillages dans de nombreux formats
Interaction 2D/3D (lab´lisation, mesures, ...)
e
”Tracking” calibration, recalage, traitement d’images, ...
,
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 47 / 72
48. Framework de d´veloppement : FW4SPL
e
Exemple de rendu
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 48 / 72
49. Framework de d´veloppement : FW4SPL
e
Exemple de rendu
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 49 / 72
50. Framework de d´veloppement : FW4SPL
e
Exemple de rendu
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 50 / 72
51. Framework de d´veloppement : FW4SPL
e
Recalage automatique du mod`le 3D et des vues r´elles
e e
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 51 / 72
52. Framework de d´veloppement : FW4SPL
e
Sofa et Kinect
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 52 / 72
53. Framework de d´veloppement : FW4SPL
e
M´triques
e
Augmentation de 100% des KLOC en 2011
Estimation ohloh.net : 4 400 k$ (sans d´pendances externes)
e
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 53 / 72
54. Framework de d´veloppement : FW4SPL
e
Avenir
Finir l’int´gration du multithread dans le coeur, graphe de sc`ne, ...
e e
Remaniement des structures de donn´es (introspection) et de la
e
s´rialisation
e
Am´lioration des performances et du support vid´o
e e
Ajout du traitement d’image avanc´ (support OpenCL)
e
Int´gration dans les distributions Linux (via Debian-med)
e
Internationalisation
Am´lioration des tests unitaires et fonctionnels et couverture
e
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 54 / 72
55. Framework de d´veloppement : FW4SPL
e
Autres FLOSS @ IRCAD : Pr´c´demment
e e
vgSDK :
moteur 3D
http ://code.google.com/p/vgsdk
LGPL depuis 2004 - a ´volu´ vers d’autres horizons
e e
yams++ :
Syst`me de construction (cible C++) / BSD
e
fork vers SConspiracy
BSD depuis 2004 - projet abandonn´e
dicomLib :
Librairie Dicom / LGPL
Uniquement CT-Scan
LGPL depuis 2004 - projet abandonn´
e
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 55 / 72
56. Framework de d´veloppement : FW4SPL
e
Autres FLOSS @ IRCAD : SConspiracy
Syst`me de construction (cible C++)
e
Gestion des cibles simplifi´es (´xecutable, librairie, etc ...)
e e
Gestion des d´pendances simplifi´es
e e
Gestion des librairies externes (Boost, Qt, VTK, ITK, ...)
Syst`me de plugin (color, cppunit, qt, doxygen, qtcreator, eclipse, ...)
e
Licence BSD, Python 2.7, SCons >= 1.3
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 56 / 72
57. Framework de d´veloppement : FW4SPL
e
Autres FLOSS @ IRCAD : IRCADb
Base de donn´es m´dicale en licence
e e
Creative Commons Tumeurs h´patiques du
e
foie (20 cas)
Mod`le patient (10 cas)
e
Image m´dicale +
e
Image m´dicale + mod`les 3D
e e
segmentaton + mod`les
e
Mod`le de respiration (1 cas)
e 3D
Image m´dicale + segmentations +
e
En cours
mod`les 3D
e
parathyroides(20),
foies(30), ...
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 57 / 72
58. Logiciels bas´s sur FW4SPL
e
Plan
1 Institut et objectifs
2 Production et m´thodes
e
3 Framework de d´veloppement : FW4SPL
e
4 Logiciels bas´s sur FW4SPL
e
5 Prototypes et explorations
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 58 / 72
59. Logiciels bas´s sur FW4SPL
e
Traitement d’images : VR-Anat 5
5. An interactive medical image segmentation system based on the optimal manage-
ment of regions of interest using topological medical knowledge. Jean-Baptiste Fasquel,
Vincent Agnus, Johan Moreau
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 59 / 72
60. Logiciels bas´s sur FW4SPL
e
Traitement d’images : VR-Anat
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 60 / 72
61. Logiciels bas´s sur FW4SPL
e
Traitement d’images : VR-Anat
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 61 / 72
62. Logiciels bas´s sur FW4SPL
e
Les autres sujets
Traitement d’images interactif
R´alit´ augment´e (tracking, calibration, ...)
e e e
Simulation
...
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 62 / 72
63. Logiciels bas´s sur FW4SPL
e
Visible Patient Lite
Smartphone avec OpenGL ES via
Web avec WebGL dans MIDAS
VES
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 63 / 72
64. Prototypes et explorations
Plan
1 Institut et objectifs
2 Production et m´thodes
e
3 Framework de d´veloppement : FW4SPL
e
4 Logiciels bas´s sur FW4SPL
e
5 Prototypes et explorations
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 64 / 72
65. Prototypes et explorations
Prototype Python
stagiaires
th´sards
e
exp´rimentation particuli`re
e e
outils p´riph´riques (build, ticket, ...)
e e
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 65 / 72
66. Prototypes et explorations
PyMetris - Tracking d’endoscope : Aurora
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 66 / 72
68. Prototypes et explorations
pyMetris - Utilisations des packages pour pyMetris
Tracking Rendering
pyMetris
Softwares Analysis
IPython NumPy + SciPy
Eric IDE
Serialization
cPickle
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 68 / 72
69. Prototypes et explorations
Autres usages de Python
Stage en cours
Traitement d’images m´dicales
e
LINC-IPB / Julien Lamy
http ://code.google.com/p/medipy/
Interconnexion FW4SL - medipy
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 69 / 72
70. Un peu de pub ...
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 70 / 72
71. elsassjug et elsassaug
11 octobre - OSGI
18 octobre - Agile Tour Strasbourg
24 octobre - Plus belle la vie avec HTML5 et CSS3
J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 71 / 72
72. J. Moreau (IRCAD) La production de logiciels ` l’IRCAD
a 24 septembre 2012 72 / 72