Introduction au génie logiciel et aux cycles de vie
Transcription
Introduction au génie logiciel et aux cycles de vie
Introduction au génie logiciel et aux cycles de vie PR000 Luc LAVOIE, Christina KHNAISSER Département d’informatique Faculté des sciences [email protected] http://pages.usherbrooke.ca/llavoie 2012-08-29 TABLE DES MATIÈRES PR000!: Introduction au génie logiciel et aux cycles de vie (230a) – Lavoie, Khnaisser !! Qu'est-ce que le génie logiciel!? !! Procédés du génie logiciel !! Procédés du développement logiciel !! Vocabulaire usuel !! À suivre !! Références 2 2012-08-29 QU'EST-CE QUE LE GÉNIE LOGICIEL!? PR000!: Introduction au génie logiciel et aux cycles de vie (230a) – Lavoie, Khnaisser !! Hist orique !! Défi nition !! Prin cipaux d omaines connaiss de ance 3 2012-08-29 !! 1968!: PR000!: Introduction au génie logiciel et aux cycles de vie (230a) – Lavoie, Khnaisser QU'EST-CE QUE LE GÉNIE LOGICIEL ? HISTORIQUE la «!crise du logiciel!» éclate!! !! Un groupe de travail se réunit à Garmisch-Partenkirchen en Allemagne, sous le parrainage de l'OTAN. !! Le génie logiciel est né. !! Les propositions qui en découlent sont pour la plupart !! !! toujours pertinentes, très partiellement mises en application. 4 2012-08-29 PR000!: Introduction au génie logiciel et aux cycles de vie (230a) – Lavoie, Khnaisser QU'EST-CE QUE LE GÉNIE LOGICIEL ? DÉFINITION !! Le mise en oeuvre logiciel traite de la configuration (programmation) d’une machine universelle (ordinateur) dans le but d’atteindre un objectif spécifique. !! Le but du génie logiciel est d’optimiser le coût et la qualité de mise en oeuvre (développement, évolution et maintien) du logiciel. !! L’ingénierie des exigences fait partie des activités couvertes par le génie logiciel. 5 2012-08-29 QU'EST-CE QUE LE GÉNIE LOGICIEL ? !! Compréhension PR000!: Introduction au génie logiciel et aux cycles de vie (230a) – Lavoie, Khnaisser PRINCIPAUX DOMAINES DE CONNAISSANCE et résolution de problèmes complexes !! Application de connaissances mathématiques et scientifiques !! Prise de décision !! Planification et organisation !! Algorithmique et programmation !! Recherche opérationnelle !! Compilation et théorie des langages 6 2012-08-29 PROCÉDÉS DU GÉNIE LOGICIEL PR000!: Introduction au génie logiciel et aux cycles de vie (230a) – Lavoie, Khnaisser !! Mod èle IEEE !! Cycl e de vie d u logiciel 7 2012-08-29 =3#$(>-.)/0( 402(%)$* 768#..#10* +0*-.)/0( +,*-.)/0( 7630")--080$( !"#$%&%'#(%)$*+,*-.)/0( !%")(#10*0(*2,%3%*+,*-.)/0( * * 8#%$(0$#$'0 ;3#",#(%)$ PR000!: Introduction au génie logiciel et aux cycles de vie (230a) – Lavoie, Khnaisser PROCÉDÉS DU GÉNIE LOGICIEL & & & & MODÈLE IEEE <0(.#%( Disposition des produits (archivage) 402(%)$*+0*5,#"%(6 !.)'6+6*+0*+630")--080$(*")1%'%0" Activités techniques ;(,+0* -.6#"#C"0 :6.%&%'#(%)$*0(*3#"%+#(%)$ <0(.#%( D#%$(0$#$'0* 0(*#22%2(#$'0 402(%)$*+0*"#*')$&%1,.#(%)$ 7630")--080$(*+0*"#*+)',80$(#(%)$ 9).8#(%)$ AB'"0*+0*+630")--080$(*+,*")1%'%0" AB'"0*+0*3%0*+,*")1%'%0" 8 2012-08-29 =3#$(>-.)/0( 402(%)$* 768#..#10* +0*-.)/0( +,*-.)/0( 7630")--080$( !"#$%&%'#(%)$*+,*-.)/0( !%")(#10*0(*2,%3%*+,*-.)/0( + CVL * * 8#%$(0$#$'0 ;3#",#(%)$ PR000!: Introduction au génie logiciel et aux cycles de vie (230a) – Lavoie, Khnaisser PROCÉDÉS DU GÉNIE LOGICIEL MODÈLE IEEE & & & & <0(.#%( Disposition des produits (archivage) 402(%)$*+0*5,#"%(6 !.)'6+6*+0*+630")--080$(*")1%'%0" Activités techniques ;(,+0* -.6#"#C"0 :6.%&%'#(%)$*0(*3#"%+#(%)$ <0(.#%( D#%$(0$#$'0* 0(*#22%2(#$'0 402(%)$*+0*"#*')$&%1,.#(%)$ 7630")--080$(*+0*"#*+)',80$(#(%)$ 9).8#(%)$ AB'"0*+0*+630")--080$(*+,*")1%'%0" AB'"0*+0*3%0*+,*")1%'%0" 9 entation !! Proc édés préd ictifs !! Proc édés syn thétique s !! Proc édés rétr o-ingénie rie PR000!: Introduction au génie logiciel et aux cycles de vie (230a) – Lavoie, Khnaisser !! Prés 2012-08-29 PROCÉDÉS DU DÉVELOPPEMENT LOGICIEL 19 procédé de développement logiciel est une façon d’articuler entre eux les nombreux processus nécessaires au développement logiciel. !! On distingue trois familles importantes de tels procédés!: Prédictifs (y compris les précédés itératifs) !! Synthétiques (y compris les procédés agiles) !! Rétro-ingénierie !! PR000!: Introduction au génie logiciel et aux cycles de vie (230a) – Lavoie, Khnaisser !! Un 2012-08-29 PROCÉDÉS DU DÉVELOPPEMENT LOGICIEL PRÉSENTATION 20 sous-catégories !! Réactifs Cascade !! V !! … !! !! Itératifs Cascade itératif !! RUP !! … !! !! Prédictifs, donc planifiés !! nécessitant une portée connue au départ !! !! Réactifs, lorsque la rétroaction corrective n’est pas planifiée contrairement aux procédés itératifs PR000!: Introduction au génie logiciel et aux cycles de vie (230a) – Lavoie, Khnaisser !! 2 2012-08-29 PROCÉDÉS DU DÉVELOPPEMENT LOGICIEL PROCÉDÉS PRÉDICTIFS 21 fondés sur une approche empirique, expérimentale mettant à profit une interaction intense et continue avec le client. !! Exemples XP !! Scrum !! Kaban !! … !! PR000!: Introduction au génie logiciel et aux cycles de vie (230a) – Lavoie, Khnaisser !! Procédés 2012-08-29 PROCÉDÉS DU DÉVELOPPEMENT LOGICIEL PROCÉDÉS SYNTHÉTIQUES 22 !! !! Il Activité qui consiste à étudier un objet pour en déterminer le fonctionnement interne ou la méthode de fabrication. existe plusieurs procédés spécifiquement orientés vers la rétro-ingénierie, dont un de l’IEEE. PR000!: Introduction au génie logiciel et aux cycles de vie (230a) – Lavoie, Khnaisser !! Rétro-ingénierie 2012-08-29 PROCÉDÉS DU DÉVELOPPEMENT LOGICIEL PROCÉDÉS DE RÉTRO-INGÉNIERIE 23 intégrant les approches prédictives et synthétiques !! nécessitant une adaptation spécifique à chaque projet pour un tirer un procédé !! nécessitant une très grande expertise. !! PR000!: Introduction au génie logiciel et aux cycles de vie (230a) – Lavoie, Khnaisser !! Modèle 2012-08-29 PROCÉDÉS DU DÉVELOPPEMENT LOGICIEL META-PROCÉDÉ SPIRALE 24 PR000!: Introduction au génie logiciel et aux cycles de vie (230a) – Lavoie, Khnaisser de vie du logiciel !! Génie logiciel !! Procédé !! Cycle 2012-08-29 VOCABULAIRE USUEL 25 Walter G. Vincenti. What Engineers Know and How They Know it. The John Hopkins University Press, 1990. ISBN 0-8018-3974-2 !! Fairley, chapitre 2 !! Pressman, chapitres 2, 3 et 4 !! Leffingwell, chapitre 3 !! Vincenti, chapitre 1 !! IEEE 12207 !! ISO12207 PR000!: Introduction au génie logiciel et aux cycles de vie (230a) – Lavoie, Khnaisser !! 2012-08-29 RÉFÉRENCES 26 !! Procédés prédictifs !! PR002!: !! Procédés synthétiques !! PR003!: !! Procédés de rétro-ingénierie !! PR004!: !! Méta-procédé Spirale PR000!: Introduction au génie logiciel et aux cycles de vie (230a) – Lavoie, Khnaisser !! PR001!: 2012-08-29 À SUIVRE… 27