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