Concepts et méthodes du génie logiciel, capture des besoins Grégory Bonnet, Yann Mathet, Bruno Zanuttini Lundi 7 septembre 2015 Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 1/27
La «crise»du logiciel Étude (1995) : 8280 projets, 16 % de réussite, 31 % d échec le reste (51%) a connu des difficultés budgets, délais, bugs... taux de succès avec taille du projet et des entreprises Questions fondamentales : comment faire des logiciels de qualité comment spécifier les critères de qualité logicielle maîtriser le processus de fabrication de logiciels Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 2/27
Qu est-ce que le génie logiciel? Programmer concevoir un système informatique/un logiciel Vraies difficultés : organisation et gestion difficulté de formalisation multitude des paramètres et des facteurs gestion des humains Génie logiciel Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 3/27
Objectifs de qualité d un logiciel Qualités fonctionnelles : correction robustesse extensibilité Qualités structurelles : réutilisabilité compatibilité Qualités de mise en œuvre : portabilité efficacité ergonomie Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 4/27
Cycle de vie du logiciel Principales méthodologies Capture des besoins Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 5/27
Étapes de la vie du logiciel Étude d opportunité Analyse des besoins, étude de faisabilité, spécification Cahier des charges + élaboration tests de recettes Conception architecturale + élaboration tests d intégration Conception détaillée + élaboration tests unitaires Codage Tests unitaires et d intégration Implantation chez le commanditaire Essais avec les utilisateurs et validation Formation des utilisateurs Utilisation, maintenance, évolution Retrait Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 6/27
Délivrables Exemples : fichiers binaires (logiciel lui-même) code source (éventuellement) manuel d installation manuel d utilisation résultats des tests cahier des charges... Objectifs : documenter chaque étape capitaliser les connaissances sur le projet obtenir des retours du client Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 7/27
Cycle de vie du logiciel Principales méthodologies Capture des besoins Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 8/27
Cycle en cascade Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 9/27
Cycle en cascade Avantages : aisé à comprendre et à mettre en œuvre forte structuration : définition puis réalisation la documentation guide les étapes Inconvénients : modèle idéalisé, ne tient pas compte de la nature itérative d un projet logiciel délivré seulement à la fin du projet coût de gestion en amont important Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 10/27
Cycle en V Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 11/27
Cycle en V Avantages : plus réactif que le modèle en cascade force l identification de blocs fonctionnels forte structuration des étapes de test Inconvénients : hypothèse de stricte séparation entre implantation et spécification logiciel délivré seulement à la fin du projet Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 12/27
Cycle en spirale Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 13/27
Cycle en spirale Avantages : combine les avantages des modèles en cascade/v tient compte de la nature itérative d un projet bonne visibilité au cours du cycle de vie Inconvénients : difficile à comprendre sans être expert technique nécessite capacité à bien analyser les risques nécessite gestionnaires compétents Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 14/27
Quelques méthodologies Nombreuses méthodologies : RAD extreme Programming Scrum RUP 2TUP Merise SADT HERMES... Trois grandes familles : ascendante descendante agile Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 15/27
Le Manifeste Agile (2001) Privilégions : l interaction avec les personnes un produit opérationnel la collaboration avec le client la réactivité face au changement Plutôt que : les processus et les outils une documentation pléthorique la néociation de contrats le suivi d un plan Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 16/27
Douze principes des méthodes agiles Satisfaire le client en livrant tôt et régulièrement des logiciels utiles Accepter le changement même tardivement dans le développement Livrer une application fonctionnelle toutes les 2 semaines/1 mois Faire collaborer quotidiennement les experts métier et les développeurs Bâtir le projet autour de personnes motivées Converser en face à face pour transmettre l information Mesurer la progression du projet à ses prototypes Avoir un rythme de développement soutenable Prendre le temps de faire de la veille technologique Faire simple en maximisant la quantité de travail à ne pas faire Permettre aux équipes de s auto-organiser Faire régulièrement des séances de débriefing pour s améliorer Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 17/27
extreme Programming, Scrum... Réactivité et implication forte du commanditaire : approches en spirale (ou itératives) implication forte du commanditaire dans la boucle travail de codage à plusieurs techniques de prototypage rapide Approches fondées sur l IHM : partie IHM en taille et en qualité faire intervenir l utilisateur très tôt dans la conception s intéresser à l interface puis définir les fonctions à programmer Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 18/27
Cycle de vie du logiciel Principales méthodologies Capture des besoins Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 19/27
Cahier des charges Définition : recense spécifications et exigences résulte de l analyse contractuel entre client et entreprise, validé par les deux Qualités attendues (norme IEEE 830) : non ambigu complet vérifiable cohérent modifiable traçable utilisable durant la maintenance indépendant des solutions Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 20/27
Plan type Introduction Contexte Spécifications fonctionnelles Exigences : charte graphique matériel interfaçage sécurité charge à supporter comportement en cas de panne... Organisation, priorités, versions Évolutions Annexes Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 21/27
Outils pour la capture des besoins Diagramme des cas d utilisation Entretiens réguliers avec le client et validation Observation des futurs utilisateurs dans leur pratique actuelle Scénarios d interaction Exemples d écrans, maquettes Prototypage rapide Technique du magicien d Oz Premier jet du manuel des utilisateurs Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 22/27
Diagramme des cas d utilisation Traitement de texte : Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 23/27
Diagramme de cas d utilisation Site WWW d une association : Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 24/27
Scénarios d interaction L utilisateur ouvre un document, change ses marges et l imprime 1. L utilisateur sélectionne le document à ouvrir 2. Le document est affiché en mode éditable 3. L utilisateur choisit un aperçu avant impression 4. Le document est affiché tel qu il sera imprimé, non éditable 5. Des champs affichent les marges et permettent de les modifier 6. L utilisateur modifie les marges et valide 7. L affichage est mis à jour 8. Si l utilisateur le souhaite, il peut les modifier à nouveau (retour en 6) 9. L utilisateur choisit d imprimer 10. Le document est envoyé à l imprimante Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 25/27
Scénarios d interaction Un membre du CA valide un concert Prérequis : un visiteur a proposé un concert, non encore validé le membre du CA est identifié sur la partie administration 1. La liste des concerts non validés est affichée 2. Le membre du CA sélectionne le concert proposé 3. Le membre du CA visualise les détails du concert 4. Un bouton permet de valider ou de supprimer le concert 5. Le membre du CA valide le concert 6. Si le concert est déjà passé, le membre du CA peut le supprimer 7. Le concert est retiré de la liste des concerts non validés 8. Si le concert n est pas passé, il est ajouté à la liste des concerts 9. Si le concert est passé, il est ajouté aux archives Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 26/27
Maquettes Par l exemple Grégory Bonnet, Yann Mathet, Bruno Zanuttini Génie logiciel 27/27