Upload
vonguyet
View
216
Download
0
Embed Size (px)
Citation preview
Génie logiciel(Un aperçu)
(sommerville 2010)
Laurent PérochonLaurent PérochonINRAURH63122 St Genès [email protected]
Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
Génie logiciel
Ensemble d’activités conduisant à la production d’un logiciel
Sur un échantillon de 8 380 projets�16 % sont un succès�31 % sont arrêtés en cours de réalisation�53 % aboutissent mais au prix d'un accroissement du délai et du coût tout en offrant moins de fonctionnalités que prévu.
(standish Group, 1995) http://www.volle.com/travaux/methodesprojet.htm
Succès :�implication des utilisateurs et exigences claires�implication des dirigeants
Echec :�manque de clarté des besoins�évolution des spécifications en cours de réalisation
Liste : http://www.csl.sri.com/users/neumann/illustrative.html
Exigence
DirigeantUtilisateur
Evolution
Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
De nombreux processus de développement existent
Génie logiciel
Modèle en cascade
RAD - Développement rapide d'applications
DSDM
UP - Unified Process
Modèle en V
Le choix dépend de :�L’organisation qui développe�Le type de logiciel�Les personnes impliquées
DSDM
XP - eXtreme Programming
Pas de choix
universel
Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
4 activités communes aux processus de développement :- définir les spécifications- conception et implémentation- validation- évolution
Génie logiciel
Ensemble d’activités conduisant à la production d’un logiciel
- évolution
Définir les spécifications : définir les services et les contraintes
Conception et implémentation : convertir des spécification en un système exécutable
Validation : conforme aux spécification et aux attentes de l’utilisateur
Evolution : changements durant ou après le développement du système
Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
Développement incrémental
Génie logiciel
Perspectives
Modèle en cascade
Evolution
Réutilisation de composants logiciels
Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
Spécifications
Conception �beaucoup de documentations�réponse difficile aux
Génie logiciel
Cycle de vie/modèle en cascade
Codageet tests unitaires
Intégration et test global
maintenance
�réponse difficile aux changements des spécifications�utilisation uniquement à partir de la phase de maintenance
Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
Version1
Incrément
Génie logiciel
Développement incrémental
Version2 Version3 Version4 Version5 Version6Version1
Plusieurs versions avant d’obtenir toutes les spécificationsChaque version est testée, reçue par un utilisateur
Version2 Version3 Version4 Version5 Version6
Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
spécification
Développement
Version initiale
Description générale
Activités
Génie logiciel
Développement incrémental
Développement
Validation
Versions intermédiaires
Version finale
Description générale
�Plus d’interactions avec les utilisateurs : plus d’adaptations aux changement des besoins�Au lieu de juger sur des documents, les utilisateurs jugent sur une version qu’ils peuvent tester�Même si toutes les fonctionnalités ne sont pas réalisées, on peut déployer une versionintermédiaire
Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
Spécification
Recherche de composants
Modification des spécifications
Génie logiciel
Réutilisation de composants logiciels
Conception avec composants réutilisables
Développement et intégration de nouveaux composants
Validation
Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
Le logiciel sera en constante évolution. Le coût de la maintenance est beaucoup plus élevé que celui de la conception initiale
Génie logiciel
Evolution
Anticiper les changements Tolérance aux changements
�PrototypageUn prototype teste un aspect particulier
�Développement incrémental
Interface utilisateurValider les besoins fonctionnelsDémontrer la faisabilité du développement aux décideurs
Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
Cycle de vie en cascade
Développement incrémental
Réutilisation de composants logiciels
Génie logiciel
Evolution
Méthodes de développement
Modèle en cascade
RAD - Développement rapide d'applications
DSDM
UP - Unified Process
XP - eXtreme Programming
Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
Génie logiciel
Processus unifié (UP)
Cas d ’utilisation Architecture Itératif et Incrémental
Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
Version 1 Version 2 Version n…
Génie logiciel
Processus Unifié (UP)
Incrément
Mini-projet 1 Mini-projet 2 … Mini-projet m
VERSION1
Chaque version est utilisable!
Inception Elaboration Construction Transition
Incrément
Prototype
Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
Les phases : obtenir une version
Inception
Que va faire essentiellement le logiciel pour les principaux utilisateurs, quelle pourrait être l’architecture, quelle est la planification et le coût ?
Elaboration
Génie logiciel
Processus unifié (UP)
Elaboration
La majorité des spécifications et l’architecture sont définies
Construction
Produit prêt à être transmis au utilisateurs
Transition
Version bêta aux utilisateurs expérimentés, performances, formations ...
Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
Comment mener un mini-projet (prototype) ?
Mini-projet 1 Mini-projet 2 … Mini-projet m
VERS
Génie logiciel
Processus unifié (UP)
Définition des besoinsAnalyseConceptionImplémentationTests
Mini-projet 1
SION1
Ce qui est masqué : besoin en documentation, formalisation UML
Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
Agile Unified Process (AUP), a lightweight variationEnterprise Unified Process (EUP), an extension of the Rational Unified ProcessEssential Unified Process (EssUP), a lightweight variationOpen Unified Process (OpenUP), the Eclipse Process Framework software development processRational Unified Process (RUP), the IBM / Rational Software development processOracle Unified Method (OUM), the Oracle development and implementation process
Variantes à Unified Process
Génie logiciel
Processus unifié (UP)
Oracle Unified Method (OUM), the Oracle development and implementation processRational Unified Process-System Engineering (RUP-SE),
a version of RUP tailored by Rational Software for System Engineering
Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
Le Manifeste Agile
Les quatre valeurs fondamentales Agiles sont:Davantage l’interaction avec les personnes que les processus et les outils.Davantage un produit opérationnel qu’une documentation pléthorique.Davantage la collaboration avec le client que la négociation de contrat.
Génie logiciel
Méthodes de développement agiles
Davantage la collaboration avec le client que la négociation de contrat.Davantage la réactivité face au changement que le suivi d'un plan.
http://fr.wikipedia.org/wiki/Manifeste_agile
Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
Approche plannifiée
Analyse des besoins
Spécification des besoins
Conception et implémentation
Génie logiciel
Plannifiée / Agile
Analyse des besoins
Conception et implémentation
Approche agile
Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
Génie logiciel
Extreme Programming (XP)
Sélectionner un scénario d’un utilisateur
2 semaines
Eclater le scénario en tâches
Planifier la version
2 semainesPaire de programmeursInteraction et choix avec l’utilisateur
Evaluer le système
DéveloppementIntégration
testLogiciel déployé
Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
Méthode Points clés Désavantages
XP
Guidé par les besoins du client.Binômes. Amélioration constanteAdaptativité aux modifications.
au détriment d'une vue globale et des pratiques de management ou de formalisation.
Lourd, largement étendu, il peut être difficile
Génie logiciel
Comparaison de quelques méthodes
http://www.dotnetguru.org/articles/dossiers/devagile/DevelopperAgile.htm
RUP Processus complet assisté par des
outils. Exhaustif.Rôles bien définis, modélisation.
Lourd, largement étendu, il peut être difficile à mettre en oeuvre de façon spécifique. Convient pour les gros projets qui génèrent beaucoup de documentation.
ScrumPetites équipes, itérations de 30 jours,
réunions journalières.
La mise en oeuvre du développement n'est pas précisée, seule compte la gestiondes ressources humaines.
FDD Procédé bien défini et simple, orienté
objet et basé sur le développement.Itérations très courtes.
Uniquement centré sur le développement.
Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
•Séparation infos métiers du technique : pérennité des savoir-faire•Automatisation de modèles, productivité meilleur
PlatformIndependant
PlatformSpecific CODE
Génie logiciel
Model Driven Architecture (MDA)(Object Management Group)
IndependantModel
SpecificModel
CODE
On complètemanuellement
On complètemanuellement
http://www.projet-plume.org/fr/idmhttp://fr.wikipedia.org/wiki/Object_Management_Group
Transformationsautomatiques
Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
Formalisme UML
Séparer le modèle de connaissance de la technique logicielle
Génie logiciel
Modelisation conceptuelle
Modèles à Compartiments Unified Modeling Langage(UML)
(J. Learmount et al. 2006)Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
Génie logiciel
Références
•Kruchten P. Introduction au Rational Unified Process. Eyrolles, 2000. 257 p.•Learmount J. , M.A. Taylor, G. Smith, C. Morgan. A computer model to simulate control of parasitic gastroenteritis in sheep on UK farms. Veterinary Parasitology. V. 142, pp. 312–329. 2006.
Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010
2006.•Rota V.M. Gestion de projet : Vers les méthodes agiles. Eyrolles, 2007. 251 p.•Sommerville I. Software Engineering: International Version. Pearson Education (US); Édition : 9th Revised edition, 2010. 792 pages
http://www.volle.com/travaux/methodesprojet.htmhttp://www.csl.sri.com/users/neumann/illustrative.htmlhttp://fr.wikipedia.org/wiki/Manifeste_agilehttp://www.dotnetguru.org/articles/dossiers/devagile/DevelopperAgile.htmhttp://www.projet-plume.org/fr/idmhttp://fr.wikipedia.org/wiki/Object_Management_Group