génie logiciel
Transcription
génie logiciel
Génie logiciel (Un aperçu) (sommerville 2010) Laurent Pérochon INRA URH 63122 St Genès Champanelle [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. 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 Exigence Dirigeant (standish Group, 1995) http://www.volle.com/travaux/methodesprojet.htm Liste : http://www.csl.sri.com/users/neumann/illustrative.html Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010 Evolution Utilisateur Génie logiciel De nombreux processus de développement existent Modèle en cascade UP - Unified Process Modèle en V RAD - Développement rapide d'applications DSDM XP - eXtreme Programming Pas de choix universel Le choix dépend de : L’organisation qui développe Le type de logiciel Les personnes impliquées 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 4 activités communes aux processus de développement : - définir les spécifications - conception et implémentation - validation - é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 Génie logiciel Perspectives Développement incrémental Modèle en cascade Evolution Réutilisation de composants logiciels Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010 Génie logiciel Cycle de vie/modèle en cascade Spécifications Conception Codage et tests unitaires beaucoup de documentations réponse difficile aux changements des spécifications utilisation uniquement à partir de la phase de maintenance Intégration et test global maintenance Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010 Génie logiciel Développement incrémental Incrément Version1 Version2 Version3 Version4 Version5 Plusieurs versions avant d’obtenir toutes les spécifications Chaque version est testée, reçue par un utilisateur Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010 Version6 Génie logiciel Développement incrémental Activités spécification Version initiale Description générale Développement Versions intermédiaires Validation Version finale 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 version intermédiaire Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010 Génie logiciel Spécification Réutilisation de composants logiciels Recherche de composants Modification des spécifications 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 Génie logiciel Evolution Le logiciel sera en constante évolution. Le coût de la maintenance est beaucoup plus élevé que celui de la conception initiale Anticiper les changements Tolérance aux changements Développement incrémental Prototypage Un prototype teste un aspect particulier Interface utilisateur Valider les besoins fonctionnels Démontrer la faisabilité du développement aux décideurs Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010 Génie logiciel Cycle de vie en cascade Développement incrémental Réutilisation de composants logiciels Evolution Méthodes de développement UP - Unified Process Modèle en cascade RAD - Développement rapide d'applications DSDM 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 Génie logiciel Processus Unifié (UP) Version 1 Version 2 … Version n Incrément Chaque version est utilisable! Mini-projet 1 Mini-projet 2 … Mini-projet m Prototype Inception Elaboration Construction Transition Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010 V E R S I O N 1 Génie logiciel Processus unifié (UP) 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 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 Génie logiciel Processus unifié (UP) Comment mener un mini-projet (prototype) ? Mini-projet 1 Mini-projet 2 … Définition des besoins Analyse Conception Implémentation Tests Mini-projet 1 Mini-projet m Ce qui est masqué : besoin en documentation, formalisation UML Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010 V E R S I O N 1 Génie logiciel Processus unifié (UP) Variantes à Unified Process Agile Unified Process (AUP), a lightweight variation Enterprise Unified Process (EUP), an extension of the Rational Unified Process Essential Unified Process (EssUP), a lightweight variation Open Unified Process (OpenUP), the Eclipse Process Framework software development process Rational Unified Process (RUP), the IBM / Rational Software development process Oracle Unified Method (OUM), the Oracle development and implementation process Rational 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 Génie logiciel Méthodes de développement agiles 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. 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 Génie logiciel Plannifiée / Agile Approche plannifiée Analyse des besoins Spécification des besoins Conception et implémentation Approche agile Analyse des besoins Conception et implémentation 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 Eclater le scénario en tâches Planifier la version 2 semaines Paire de programmeurs Interaction et choix avec l’utilisateur Evaluer le système Logiciel déployé Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010 Développement Intégration test Génie logiciel Comparaison de quelques méthodes Méthode XP Points clés Guidé par les besoins du client. Binômes. Amélioration constante Adaptativité aux modifications. RUP Processus complet assisté par des outils. Exhaustif. Rôles bien définis, modélisation. Scrum Petites équipes, itérations de 30 jours, réunions journalières. FDD Procédé bien défini et simple, orienté objet et basé sur le développement. Itérations très courtes. Désavantages au détriment d'une vue globale et des pratiques de management ou de formalisation. 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. La mise en oeuvre du développement n'est pas précisée, seule compte la gestion des ressources humaines. Uniquement centré sur le développement. http://www.dotnetguru.org/articles/dossiers/devagile/DevelopperAgile.htm Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010 Génie logiciel Model Driven Architecture (MDA) (Object Management Group) •Séparation infos métiers du technique : pérennité des savoir-faire •Automatisation de modèles, productivité meilleur Platform Independant Model Platform Specific Model CODE On complète manuellement On complète manuellement Formalisme UML http://www.projet-plume.org/fr/idm http://fr.wikipedia.org/wiki/Object_Management_Group Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010 Transformations automatiques Génie logiciel Modelisation conceptuelle Séparer le modèle de connaissance de la technique logicielle Modèles à Compartiments (J. Learmount et al. 2006) Unified Modeling Langage (UML) 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. •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.htm http://www.csl.sri.com/users/neumann/illustrative.html http://fr.wikipedia.org/wiki/Manifeste_agile http://www.dotnetguru.org/articles/dossiers/devagile/DevelopperAgile.htm http://www.projet-plume.org/fr/idm http://fr.wikipedia.org/wiki/Object_Management_Group Laurent Pérochon, Envol 2010, Autrans, du 27/09 au 01/10/2010