23
Génie logiciel (Un aperçu) (sommerville 2010) Laurent Pérochon 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 - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

Embed Size (px)

Citation preview

Page 1: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

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

Page 2: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

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

Page 3: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

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

Page 4: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

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

Page 5: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

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

Page 6: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

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

Page 7: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

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

Page 8: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

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

Page 9: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

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

Page 10: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

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

Page 11: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

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

Page 12: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

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

Page 13: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

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

Page 14: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

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

Page 15: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

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

Page 16: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

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

Page 17: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

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

Page 18: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

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

Page 19: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

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

Page 20: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

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

Page 21: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

•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

Page 22: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

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

Page 23: génie logiciel - PLUME · Processus unifié (UP) La majorité des spécifications et l’architecture sont définies Construction Produit prêt à être transmis au utilisateurs

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