Université Paris-Sud L3 MIAGE apprentissage Année 2014-2015 Génie logiciel avancé Analyse des besoins et spécification Delphine Longuet delphine.longuet@lri.fr
Analyse des besoins et spécification Objectif Fournir une vue claire de ce que doit faire le logiciel : le cahier des charges fonctionnel Définir les fonctionnalités du produit Déterminer les contraintes de conception du logiciel Clarifier le cahier des charges (ambiguïtés, contradictions) Enjeu Contrat entre le client et le fournisseur : Pour le client : tous les besoins sont exprimés Pour le fournisseur : tous les besoins exprimés sont réalisables Méthode Raffinement du cahier des charges initial validé par des allers-retours avec le client D. Longuet - Génie logiciel 2
Spécification vs. conception Spécifier = Décrire le problème «Que doit faire le logiciel?» Concevoir = Élaborer une solution «Comment le réaliser?» D. Longuet - Génie logiciel 3
Contenu du cahier des charges fonctionnel Description générale Contexte d'utilisation (utilisateurs, environnement) Fonctionnalités Interface utilisateur Contraintes matérielles, de performance, de sécurité... Spécification des exigences Exigences fonctionnelles : spécification des cas d'utilisation, scénarios d'utilisation Interface : prototype, storyboard, lien avec les fonctionnalités Exigences non fonctionnelles : utilisabilité, performance, sécurité... D. Longuet - Génie logiciel 4
Contexte d'utilisation Contexte d'utilisation Utilisateurs : expérience, compétences, connaissance du système Utilisation : fréquence, durée d'utilisation Environnement technique : matériel, ressources, réseau Permet de spécifier les contraintes de qualité en termes de facilité d'utilisation efficacité, performance fiabilité, portabilité D. Longuet - Génie logiciel 5
Description des cas d'utilisation Objectif : Comprendre les besoins du client pour rédiger le cahier des charges Principe : Définir les limites du système Définir l'environnement du système : les utilisateurs ou éléments qui interagissent avec le système Définir les utilisations principales du système : à quoi sert-il? Éléments constitutifs : Diagrammes des cas d'utilisation Description textuelle des cas d'utilisation Diagrammes de séquence des scénarios d'utilisation D. Longuet - Génie logiciel 6
Cas d'utilisation Fonctionnalités principales du système du point de vue extérieur Acteur : Entité qui interagit avec le système Personne, chose, logiciel, extérieur au système décrit Représente un rôle (plusieurs rôles possibles pour une même entité) Identifié par le nom du rôle Cas d'utilisation : Fonctionnalité visible de l'extérieur Action déclenchée par un acteur Identifié par une action (verbe à l'infinitif) Vision du système centrée sur l'utilisateur D. Longuet - Génie logiciel 7
Spécification des cas d'utilisation Diagrammes des cas d'utilisation + Description textuelle Rôle 1 Rôle 2 Système Cas 1 Acteur : Acteur A Cas 1 Cas 3 Cas 4 Cas 5 «extends» Cas 2 Contexte : Entrées : Sorties : Scénario principal : 1. 2. 3. Variantes : 1a. 1b. 3a. + A:Rôle :Système A:Rôle :Système B:Rôle Scénarios d'utilisation D. Longuet - Génie logiciel 8
Diagramme des cas d'utilisation S'identifier cas d'utilisation acteur Client Commander Souscrire une assurance action déclenchant le cas d'utilisation Modifier son adresse Désactiver son compte Site de vente en ligne limites du système nom du système D. Longuet - Génie logiciel 9
Relations entre cas d'utilisation Inclusion : S'identifier est nécessaire pour Commander «includes» Commander S'identifier Utiliser seulement si cas nécessaire à plusieurs cas Extension : Souscrire une assurance est une option possible pendant le scénario de Commander Commander «extends» Souscrire une assurance Généralisation : Modifier son adresse est un cas particulier de Gérer son compte Modifier Gérer son compte son adresse D. Longuet - Génie logiciel 10
Relation entre acteurs Généralisation : Un Client adhérent peut faire tout ce que fait un Client, et peut également utiliser ses points de fidélité Site de vente en ligne Client Commander cas particulier Client adhérent Utiliser points fidélité D. Longuet - Génie logiciel 11
Diagramme des cas d'utilisation optionnel Client Commander «extends» «includes» Souscrire une assurance Gérer son compte «includes» S'identifier cas particulier de Client Modifier son adresse Désactiver son compte cas particuliers nécessaire Utiliser points fidélité Client adhérent Site de vente en ligne D. Longuet - Génie logiciel 12
Rester lisible Recommandations Pas plus d'une dizaine de cas dans un diagramme Au besoin, faire plusieurs diagrammes (si cas disjoints entre acteurs, pour détailler un cas...) Relations entre cas seulement si nécessaires et pas trop lourdes Accompagner le diagramme d'un glossaire expliquant le vocabulaire Pour chaque acteur et chaque cas d'utilisation, une phrase expliquant le rôle de l'acteur et le scénario représenté par le cas Expliquer les relations entre acteurs et entre cas (hiérarchie, extends, includes...) Pour les détails, privilégier la description textuelle des cas d'utilisation D. Longuet - Génie logiciel 13
Extrait d'un glossaire Client : Un client est un internaute inscrit sur le site. Client adhérent : Un client adhérent est un client particulier inscrit au programme de fidélité du site. Commander : Commander un ensemble de produits proposés sur le site. Il faut posséder un compte et être identifié en tant que client pour pouvoir passer une commande. Gérer son compte : Regroupe les opérations de modifications de ses coordonnées et la possibilité de désactiver son compte. Il faut être identifié en tant que client pour gérer son compte. Utiliser points fidélité : Possibilité d'utiliser tout ou partie des points de fidélité acquis pendant une commande, de manière à bénéficier de réductions. D. Longuet - Génie logiciel 14
Description textuelle des cas d'utilisation Diagrammes de cas d'utilisation Utiles pour discussion avec le client car intuitifs et concis Pas suffisants pour l'équipe de développement Nécessité d'une description détaillée des scénarios représentés par chacun des cas : Description textuelle en langue naturelle structurée Vocabulaire précis correspondant aux diagrammes D. Longuet - Génie logiciel 15
Cas d'utilisation détaillé Description textuelle d'un cas d'utilisation Nom du cas d'utilisation Brève description Acteurs Contexte Données en entrée et pré-conditions Données en sortie et post-conditions Scénario principal pour ce cas d'utilisation Étapes à suivre pour réaliser ce cas Variantes, cas d'erreur Déviations des étapes du scénario principal, scénarios alternatifs, scénarios d'erreur D. Longuet - Génie logiciel 16
Cas d'utilisation détaillé Nom : Commander Acteur : Client Données d'entrée : Produits sélectionnés par le client Le cas d'utilisation commence lorsque le client clique sur le bouton «Commander» Scénario principal : 1. Le système demande au client de saisir son identifiant et son mot de passe. 2. Le client saisit son identifiant et son mot de passe et valide. 3. Le système demande au client de choisir son adresse de livraison parmi sa liste d'adresses ou d'en saisir une nouvelle. 4. Le client choisit une adresse de livraison et valide. 5. Le système demande au client de choisir un mode d'expédition parmi une liste prédéfinie (à préciser). 6. Le client choisit un mode d'expédition et valide. D. Longuet - Génie logiciel 17
Cas d'utilisation détaillé 7. Le système affiche un récapitulatif de la commande, indique le montant total de la livraison et demande au client de choisir un mode de paiement parmi une liste prédéfinie (à préciser). 8. Le client choisit un mode de paiement et valide. 9. Le système demande au client de saisir ses informations de paiement. 10. Le client saisit ses informations de paiement et valide. 11. Le système informe le client que la transaction s'est effectuée correctement et un e-mail récapitulatif de la commande est envoyé au client. D. Longuet - Génie logiciel 18
Cas d'utilisation détaillé Scénario d'erreur : Client inconnu 3a. Le client n'est pas connu du système. Le système affiche un message d'erreur. Retour à l'étape 1. Scénario alternatif : Nouvelle adresse de livraison 4a. Le client saisit une nouvelle adresse de livraison et valide. Le scénario reprend à l'étape 5 Scénario alternatif : Modifications des choix de livraison 8a. Le client demande à modifier son adresse de livraison. Retour à l'étape 3. 8b. Le client demande à modifier le mode de livraison. Retour à l'étape 5. Scénario d'erreur : Transaction impossible 11a. Le système informe le client que ses informations de paiement sont incorrectes. Retour à l'étape 9. D. Longuet - Génie logiciel 19
Exemple de liens entre diagramme et texte Client cas nécessaire S'identifier «includes» Commander Commander un produit «extends» cas particuliers Souscrire Commander une assurance un service cas optionnel Commander Acteur : Client Pré-condition : Le client doit être identifié Scénario principal 1.... 2.... 3.1 L'objet de la commande est un produit. Déclenchement du cas Commander un produit. 3.2 L'objet de la commande est un service. Déclenchement du cas Commander un service. Scénario alternatif 2a. Le client choisit de prendre une assurance. D. Longuet - Génie logiciel 20
Diagramme de séquence niveau analyse Niveau analyse Objectifs Système vu comme une boîte noire : pas d'échanges de messages internes au système (conception) Représentation de scénarios d'utilisation particuliers, séquentiels : pas de boucles ou de branchements Illustrer chaque cas isolément (scénario principal et alternatives) Illustrer les interactions entre cas (scénarios d'utilisation) Mise en forme Messages informels (pas des appels de méthodes) Noms des messages liés aux cas d'utilisation Mise en avant des données utiles au scénario (arguments) D. Longuet - Génie logiciel 21
Illustration d'un cas d'utilisation Scénario principal Client Commander(identifiant, produits) TransactionConfirmee EmailConfirmation Site Cas d'erreur : client inconnu Client Commander(identifiant, produits) ErreurClientInconnu Site identifiant inconnu Cas d'erreur : transaction impossible Client Commander(identifiant, produits) ErreurTransactionImpossible Site informations de paiement incorrectes D. Longuet - Génie logiciel 22
Illustration d'un scénario d'utilisation Principe : Mettre en évidence les relations entre les différents cas Client Site de vente en ligne Commander(identifiant, produits) ErreurClientInconnu Sinscrire(identifiant,motdepasse) InscriptionConfirmee Commander(identifiant, produits) CommandeOk id inconnu authentification ok suite inscription Mise en évidence de la nécessité d'être inscrit pour pouvoir commander D. Longuet - Génie logiciel 23
Scénario d'utilisation concret Principe : Variables remplacées par des valeurs concrètes. Permet de construire des scénarios d'utilisation complexes pour le test Sam:Client :Site de vente en ligne choix de valeurs déclenchant le scénario d'erreur Commander("Sam", ["Paradise Lost"]) ErreurClientInconnu Sinscrire("Sam",11111) InscriptionConfirmee Commander("Sam", ["Paradise Lost"]) CommandeOk id inconnu authentification ok suite inscription Mise en évidence de la nécessité d'être inscrit pour pouvoir commander D. Longuet - Génie logiciel 24
Scénario avec plusieurs acteurs Scénario d'utilisation = interactions entre les acteurs et le système Pas de messages entre acteurs Jules:Abonné :ForumFruitsLikers Marie:Abonné Publier("Mangez des pêches") Publication(125) NotificationRéponse(125,1) Répondre(125,"En conserve!") RéponseOk(125,2) Répondre(125,"Pas la saison...") RéponseOk(125,1) NotificationRéponse(125,2) D. Longuet - Génie logiciel 25
Prototype d'interface utilisateur Écrans, boutons, menus Interface utilisateur Transitions entre écrans, pop-ups, messages d'erreur Storyboards Cohérence avec les cas et scénarios d'utilisation Scénarios d'utilisation = suite d'actions dans l'interface qui permet de réaliser un cas d'utilisation D. Longuet - Génie logiciel 26
Prototype d'interface utilisateur 1 3 4 Choix 1 Choix 2 Choix 3 LOGO LOGO Choix 1 login pwd Choix 2 OK Choix 3 Quitter Quitter Choix 1 Choix 2 Choix 3 Choix 1 Choix 2 Choix 3 LOGO login inconnu ou pwd erroné Retour 2 6 5 Quitter Quitter D. Longuet - Génie logiciel 27
Mise en garde Besoins Cahier des charges fonctionnel Document de conception Validation Tous les besoins sont exprimés Précisions ajoutées acceptées par le client Réalisabilité Tous les besoins exprimés sont réalisables sous les contraintes du projet D. Longuet - Génie logiciel 28