Analyse des Besoins (Spécifications)
Transcription
Analyse des Besoins (Spécifications)
Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 1 Génie Logiciel (d'après A.-M. Hugues) Analyse des Besoins (Spécifications) Renaud Marlet LaBRI / INRIA http://www.labri.fr/~marlet màj 17/04/2007 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Analyse des besoins : Position dans le cycle de vie ● Contexte : – ● problème posé par le client : cahier des charges Phase d'analyse des besoins : – formulation d'une réponse à ce problème (proposition) → dossier d'analyse ● Phase suivante : planification ● Terminologie alternative : – définition du produit, spécification 2 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Objectifs de ce cours ● ● Donner des éléments structurants – points clés du dossier d'analyse – techniques et outils standards de spécification Intérêt – pour celui qui va écrire des spécifications – pour celui qui va lire des spécifications – techniques réutilisables dans d'autres contextes 3 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 4 Plan du cours ● Dossier d'analyse – ● Techniques et outils de spécification – ● modèles, représentations, ... Interface utilisateur – ● contenu, importance, qualité, ... méthodologie, ergonomie, ... Maquettage et prototypage – nature, intérêt, ... Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 5 Plan du cours → Dossier d'analyse – ● Techniques et outils de spécification – ● modèles, représentations, ... Interface utilisateur – ● contenu, importance, qualité, ... méthodologie, ergonomie, ... Maquettage et prototypage – nature, intérêt, ... Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Contenu du dossier d'analyse (1) ● Description des fonctions du produit – complète et détaillée – y compris dans sa relation avec l'environnement Attention : – seules sont décrites les fonctions visibles de l'usager – pas l'architecture modulaire du produit → « boîte noire » 6 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Contenu du dossier d'analyse (2) ● spécifications fonctionnelles ● spécifications non-fonctionnelles ● première version du glossaire (et dans le cas d'un cycle de vie en V : + tests de validation et de qualification + première version du manuel utilisateur) 7 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 8 Cycle de vie : modèle en V (rappel) (Expression des besoins) (Validation des besoins) Spécifications Qualification Conception globale Tests d'intégration Conception détaillée Programmation Tests unitaires Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Importance du dossier d'analyse ● Erreur dans la spécification → coût important si découvert trop tard ● À la base du contrat – protection du client (engagement du fournisseur) – protection du fournisseur (attente client bien définie) 9 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Dossier d'analyse : fait par qui ? ● Généralement réalisé par – ● Parfois réalisé par le client – ● des membres de l'unité de développement attente d'un produit précis Parfois donné par une norme – protocole, format d'échange, ... ☛ exercice : citez des exemples 10 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Dossier d'analyse : fait pour qui ? ● Pour le client : – description précise de ce qui sera réalisé → permet d'anticiper la mise en exploitation ● Pour les développeurs : – référence précise et non ambiguë → ce qu'il s'agit de réaliser → ce qu'il s'agit de tester 11 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Plan type du dossier d'analyse ☛ plan indicatif ! (ne pas nécessairement le suivre à la lettre) 1) Introduction – objectifs – fonctionnalités attendues – environnement – faisabilité et justifications – ressources nécessaires – éléments de coût et échéancier 12 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Plan type du dossier d'analyse 2) Concepts et terminologie – glossaire de l'application ☛ Peut être en annexe, ou bien un document autonome utilisé et partagé dans tout le projet 13 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Plan type du dossier d'analyse 3) Description fonctionnelle externe 3.1) Pour chaque « fonction » : (☛ fonctionnalité abstraite, pas une routine de programme !) ● entrées (multi-canales) ● traitement ● sorties (multi-canales) : effets ● détails éventuels : – – – conditions d'arrêt exceptions, points de reprise, traitement des anomalies si traitement trop complexe à décrire : algorithme suggéré 14 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Plan type du dossier d'analyse 3) Description fonctionnelle externe (suite) ... 3.2) Organisation logique des données ● types de données ● domaines de variation 3.3) Interface homme-machine ● fenêtres et écrans ● états (représentés ou non) et transitions 15 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Plan type du dossier d'analyse 4) Description interne 4.1) Interaction avec l'environnement ● composants logiciels nécessaires aux fonctions en 3.1 (ex. base de données existante) 4.2) Contraintes ● contraintes de réalisation (ex. encombrement mémoire) ● contraintes de qualité (ex. précision du calcul) ● performances ● critères de vérification des contraintes ● priorités 16 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Plan type du dossier d'analyse 5) Questions ouvertes et réponses apportées par les développeurs – précisions, faisabilité (éléments de prototypage) – ... 6) Éléments de livraison – cahier provisoire de recette ● constitution des lots ● tests de recette ● dates issues de la planification 17 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Qualités du dossier d'analyse (1) ● Précis – ● formulation non ambiguë Cohérent – pas de contradictions 18 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Qualités du dossier d'analyse (2) ● Complet – ● pas d'oublis ● couverture de tous les besoins (→ cahier des charges) ● description exhaustive des fonctionnalités Argumenté – liaison claire (références) avec ● des besoins exprimés dans le cahier des charges ● (des objectifs exprimés dans la spécification d'objectifs) ☛ critère de traçabilité (→) 19 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Qualités du dossier d'analyse (3) ● Traçable – ● pouvoir suivre le devenir des fonctionnalités dans les phases ultérieures (implémentation, test) Maintenable / flexible – comment prendre en compte les évolutions futures? 20 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Forme du dossier d'analyse ● Séparation des concepts = 1 concept par paragraphe ● Numérotation des paragraphes et/ou sections → facilité de référence → traçabilité (dans les phases ultérieures) 21 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 22 Plan du cours ● Dossier d'analyse – contenu, importance, qualité, ... → Techniques et outils de spécification – ● Interface utilisateur – ● modèles, représentations, ... méthodologie, ergonomie, ... Maquettage et prototypage – nature, intérêt, ... Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Modèle conceptuel ● Donne une image « mentale » du produit (!) ● Recense les fonctionnalités attendues ● Point de départ à : – l'analyse des besoins – l'interface utilisateur ☛ Extrême importance 23 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Modèle conceptuel ● Élaboré à partir des interviews d'utilisateurs ● Définit, pour chaque grande fonction du produit : – les objets (ou entités) que le produit crée/manipule – les attributs de ces objets – les opérations à réaliser sur ces objets 24 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Exercice : Définir un modèle conceptuel ● Messagerie téléphonique du type SMS / texto : – – – – – – ● consulter les messages dans la boîte de réception supprimer un message envoyer un message faire suivre ou répondre à un message consulter les contacts dans le répertoire ajouter et supprimer des contacts dans le répertoire Quels sont les objets et les relations (notamment de possession) entre objets ? 25 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Objets et relations dans une messagerie textuelle téléphonique ● ● Objets – boîte de réception – message (2 types : reçu, en cours de rédaction) – répertoire – contact Relations – la boîte de réception contient une liste de messages – un message provient de / est destiné à un numéro – un contact a un nom et un numéro 26 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Modèle conceptuel de la messagerie Exercice : remplir le tableau Grand type de fonction du produit gestion de la boîte de réception gestion d'un message reçu création d'un nouveau message gestion du répertoire gestion d'un contact Objet (et attributs) Liste des opérations Exemple de contraintes éventuelles 27 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Exemple de modèle conceptuel de la messagerie Grand type de fonction du produit Objet (et attributs) Liste des opérations Exemples de contraintes éventuelles gestion de la boîte de réception boîte de réception (liste de messages reçus) consulter la liste, sélectionner un msg nombre maximum de messages gestion d'un message reçu message reçu (suite de caractères non modifiable) lire, faire suivre, répondre, supprimer création d'un nouveau message message en cours (suite de caractères) éditer, envoyer, annuler taille maximum d'un message gestion du répertoire répertoire (liste de contacts) consulter la liste, ajouter un contact, sélectionner un contact nombre maximum de contacts gestion d'un contact contact (nom, numéro) modifier, supprimer taille maximum du nom, du numéro 28 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Choix dans le modèle conceptuel ● Ajout et de suppression de message – ● opération sur un message sur la boîte de réception ? Ajout et suppression de contact – opération sur un contact ou sur le répertoire ? Plus généralement, il y a un choix quand une opération – relie deux objets – en particulier : un contenant avec un contenu 29 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Importance du modèle conceptuel ● Il structure – ● ● identification de concepts, objets, attributs, opérations et de leur articulation Il fonde l'intuition – image mentale : analogie avec des concepts, objets, attributs et opérations connus – apprentissage réduit Il facilite l'interaction – efficacité, productivité 30 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Importance du modèle conceptuel ● Impact sur tout les acteurs – utilisateur – développeur (projet complexe) – décideur 31 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Différents types de modèles conceptuels ● Modèle de simulation – ● lien avec un existant concret Modèle structurel – abstraction → On va en donner des exemples 32 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Modèle conceptuel de simulation Exemple : traitement de texte 33 (d'après P. Baudelaire) ☛ Recréer une technologie connue → Machine à écrire, papier – – page = zone rectangulaire contenant ● des cellules (caractères ou blancs) [regroupées en lignes] ● un curseur (là où le prochain caractère s'imprime) actions ● surimpression d'un caractère où se trouve le curseur → écrire, effacer (blancs), copier des caractères [sur une ligne] Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Modèle conceptuel structurel Exemple : traitement de texte 34 (d'après P. Baudelaire) ☛ Manipulation et représentation d'entités abstraites → Document = chaîne de caractères arbitrairement longue, organisée hiérarchiquement en sections, paragraphes, mots... – manipulations à travers cette structure logique ● insérer, détruire, remplacer, déplacer, copier ● pas de limitation à des opérations sur une seule ligne ● spécification et enregistrement de règles de formatage → changer le style sans changer le contenu Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Comparaison des différents types de modèles conceptuels ● ● Modèle de simulation – avantage : intuition facile – inconvénient : peut être limitatif Modèle structurel – avantage : plus général, plus puissant – inconvénient : peut demander un plus grand travail de conceptualisation 35 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 36 Dictionnaire de données ● Souvent amorcé par le modèle conceptuel ● Constitué au fur et à mesure de l'analyse → Nom de tous les objets utilisés (+ attributs, opérations, ...) – classement alphabétique (+ synonymes ou alias) – lien avec de futures entités issues du développement ● variables, fonctions, classes, ... Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Modèle conceptuel et besoins de spécification ● Descriptions avec des mots – ● concepts, objets, attributs, opérations... Besoin de structuration – pour la précision – pour la complétude (comment être systématique?) – pour la lisibilité → Représentations tabulaires 37 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Table de décision ● ● Définition des valeurs de sorties en fonctions des valeurs d'entrée et de leurs combinaisons Adapté aux systèmes dont les sorties ne dépendent que des entrées (et pas de l'état courant) 38 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Exemple : « date et heure » de MAC OS X 39 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Table de décision : Exemple « date et heure » de MAC OS X Affichage du jour de la semaine (lundi, mardi, ...) : – – Paramètres d'entrée : ● « Afficher dans » : [barre des menus] ou [fenêtre] ● « Affichage » : [numérique] ou [analogique] Paramètre de sortie : ● « Afficher le jour de la semaine » : oui, non, optionnel Afficher le jour de la semaine Afficher dans : barre des menus Afficher dans : fenêtre Affichage : numérique Affichage : analogique optionnel non oui non 40 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Table de décision : Exemple « date et heure » de MAC OS X Affichage de l'heure avec les secondes – – Paramètres d'entrée : ● « Afficher dans » : [barre des menus] ou [fenêtre] ● « Affichage » : [numérique] ou [analogique] Paramètre de sortie : ● « Afficher l'heure avec les secondes » : oui, non, optionnel Afficher l'heure avec les secondes Afficher dans : barre des menus Afficher dans : fenêtre Affichage : numérique Affichage : analogique optionnel non non optionnel 41 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 42 Question Quelle structure de table – s'il y a plusieurs paramètres de sortie ? Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 43 Réponses possibles Quelle structure de table – s'il y a plusieurs paramètres de sortie ? → Autant de tables que de paramètres de sortie (↑) → Liste des sorties dans chaque case (→) Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Table de décision : Exemple « date et heure » de MAC OS X Affichage du jour de la semaine et des secondes : – Paramètres de sortie : ● « Afficher le jour de la semaine » : oui, non, optionnel ● « Afficher l'heure avec les secondes » : oui, non, optionnel Afficher le jour et/ou les secondes Afficher dans : barre des menus Afficher dans : fenêtre Affichage : numérique Affichage : analogique jour optionnel secondes optionnelles jour absent secondes absentes jour présent secondes absentes jour absent secondes optionnelles 44 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 45 Question Quelle structure de table – s'il y a plus de deux paramètres d'entrée ? Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Réponse possible Quelle structure de table – s'il y a plus de deux paramètres d'entrée ? → Combinatoire – autant de colonnes que de paramètres d'entrée – et toutes les combinaisons possibles 46 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 47 Table de décision : Exemple (1) ● 3 paramètres d'entrée (booléens) ● 1 paramètre de sortie (booléen) A B C (A ∧ B) ∨ C V V V V V V F V V F V V V F F F F V V V F V F F F F V V F F F F N.B. pas de titre pour les lignes Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 48 Table de décision : Exemple (2) ● 3 paramètres d'entrée (booléens), 1 de sortie (booléen) ● résultats intermédiaires pour la compréhension A B C A∧B (A ∧ B) ∨ C V V V V V V V F V V V F V F V V F F F F F V V F V F V F F F F F V F V F F F F F N.B. pas de titre pour les lignes Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 49 Question Quelle structure de table – s'il y a plusieurs paramètres d'entrée et plusieurs paramètres de sortie ? Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Réponse possible Quelle structure de table – s'il y a plusieurs paramètres d'entrée et plusieurs paramètres de sortie ? → Combinatoire – autant de colonnes que de paramètres d'entrée et de paramètres de sortie – et toutes les combinaisons possibles 50 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Table de décision : Exemple « date et heure » de MAC OS X ● Deux paramètres d'entrée : – ● « afficher dans », « affichage » Deux paramètres de sortie : – jour de la semaine, heure avec les secondes Afficher dans Affichage Jour de la semaine Secondes barre des menus numérique optionnel optionnel barre des menus analogique non non fenêtre numérique oui non fenêtre analogique non optionnel 51 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Capacité de représentation d'une table de décision ● Exprimer une fonction = sorties définies en fonction des entrées ● Exprimer une relation = quelles combinaisons d'entrées et de sorties sont acceptables – peu courant ● non-déterminisme ● confusions / oublis possibles 52 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Table de décision et besoins de spécification (1) ● Table de décision : – ● sorties en fonction (ou en relation avec) des entrées Limites : besoin de modéliser – l'état du système – des relations entrées-sorties dépendant de l'état – des relations entrées-sorties modifiant l'état → Comment faire ? 53 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Table de décision et besoins de spécification (2) ● Besoin de modéliser – l'état du système → traiter l'état comme un paramètre ordinaire – des relations entrées-sorties dépendant de l'état → état comme paramètre d'entrée supplémentaire – des relations entrées-sorties modifiant l'état → état comme paramètre de sortie supplémentaire → Table de transition 54 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 55 Table de transition ● ● Automate modélisant la dynamique du système Adapté aux systèmes dont les sorties sont déterminées – non seulement par les entrées – mais aussi par l'état/historique des entrées antérieures Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Table de transition : Exemple autorisation d'accès par login ● 2 états : – ● logué, délogué 4 opérations : – se loguer, se déloguer, lire, écrire État Opérations autorisées État résultant délogué se loguer logué logué lire, écrire logué logué se déloguer délogué 56 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 57 Question Structures de table : – Quels cas sont bien traités ? – Quels cas ne sont pas bien traités ? Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Tables (de décision, de transition) et besoins de spécification ● ● Bien adaptées tant que le problème est petit Ne passent pas à l'échelle (s'il y a un grand nombre de paramètres d'entrée, de sortie ou d'états) – croissance exponentielle – mauvaise lisibilité – risque d'erreurs (oublis, incohérences, ...) ☛ Comment faire ? 58 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Représentations graphiques ● Pouvoir d'expression : – ● représentation des données et des traitements Caractéristiques : – plus synthétiques que les tables – sans nécessairement perte de précision 59 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Représentations graphiques Pas un dessin arbitraire ! – en fait, « langage » normalisé – sémantique non ambiguë (ou peu ambiguë, si accompagnées de textes en langue naturelle) ☛ Représentations « semi-formelles » 60 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Intérêt des représentations graphiques ● Renforcement de la précision et de la lisibilité ● Réduction du risque d'oubli (→ systématique) ● Passage à l'échelle (éventuellement en rajoutant de la modularité) ● Plus intuitives bien que plus formelles → favorisent la communication entre le développeur et l'utilisateur (le client) 61 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Représentations graphiques ● Modèle entité-association ● Diagramme de flot de données ● Diagramme états-transitions ● Réseau de Petri ● ... 62 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Modèle entité-association ● ● Date de 1976 (P. Chen) mais toujours très utilisé Représentation des données d'un système et des relations les liant (Utilisé notamment pour la conception de bases de données relationnelles, mais avec des contraintes supplémentaires, ex. non circularité) 63 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Modèle entité-association ● ● Une entité est – un objet que l'on sait distinguer d'un autre – ex. : livre dans une bibliothèque Chaque entité a des attributs (ou propriétés) – ● ex. : titre, nom, numéro, ... Chaque attribut prend ses valeurs sur – un domaine de valeurs autorisées – ex. : chaîne de caractères, entier de 1 à 31, ... 64 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 65 Modèle entité-association ● ● Les entités peuvent être regroupées en des ensembles d'entités ayant – les mêmes attributs avec des valeurs différentes – ex. : livres d'une bibliothèque, clients d'une entreprise Une clé ou un identifiant – permet de distinguer une entité (ou un ensemble d'entités) d'un(e) autre – ex. : titre d'un livre, ou numéro de référence si plusieurs exemplaires du même livre Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Modèle entité-association ● ● Une relation entre différentes entités ou ensemble d'entités est – un lien d'association entre eux (possession, dépendance, ...) – ex. : un livre possède un auteur, un client d'une banque possède un ou des comptes en banque La cardinalité d'une relation est – le nombre de liens (minimum, maximum) pour un ensemble d'entités 66 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Modèle entité-association : Notations graphiques ● Entités représentées par des rectangles ● Attributs attachés aux entités : liste d'attributs ● Identifiant de l'entité : item souligné dans la liste ● Relations : ovales ● Cardinalités : (x,y) c.-à-d. entre x et y emprunte (0,n) adhérent emprunter est empruntée (0,1) cassette N°exemplaire date d'achat nb emprunts état 67 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 68 Modèle entité-association Exemple : vidéothèque N°exemplaire date d'achat nb emprunts état date emprunte (0,n) adhérent numéro nom caution nb films possède (1,1) emprunter cassette réserve (0,n) posséder reproduit (1,1) réserver est possédée (1,1) carte est empruntée (0,1) reproduire est réservé (0,n) est reproduit par (0,n) fournisseur numéro ref fournisseur nom fournisseur adresse fournisseur téléphone fournisseur responsable commercial fournit (1,n) film est fourni (1,n) fournir prix code film titre réalisateur acteurs genre résumé Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Modèle entité-association et besoins de spécification ● Relations ↔ états statiques possibles ● Ne rend pas compte de la dynamique – des traitements – du flux d'information → Diagrammes de flot de données 69 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Diagramme de flot de données ● ● Modélise – les gisements d'information – le transit des données – les traitements Exprime – comment chaque processus (traitement) transforme ses entrées en sorties (flot entrant et sortant) (aussi appelé « diagramme de contexte » = idem avec agents extérieurs intervenant sur le produit) 70 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Diagramme de flot de données Exemple : gestion des emprunts refus carte infos film demande d'emprunt N°carte vérification client référence film stock de cassettes N°client refus comptes clients vérification cassette N°cassette enregistrement emprunt carte modifiée cassette 71 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Diagramme de flot de données Affinements successifs : – zoom sur une boîte – numérotation arborescente (ex. : A.D.3) – veiller à la cohérence des entrées et sorties 72 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Diagramme de flot de données Conseils : – Entre 2 et 6 activités par diagramme (sinon découper) – Flot globalement de gauche à droite, de bas en haut – Éviter les croisements de flèches (↑) 73 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Diagrammes de flot de données et besoins de spécification ● Ne conviennent pas pour le flot de contrôle ☛ ce ne sont pas des organigrammes ! ● Ne rendent pas compte de – la dynamique des traitements – l'enchaînement des traitements dans le temps → Diagrammes états-transitions 74 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Diagramme états-transitions Graphe : – nœud = état – arête = transition, étiquetée par ● les événements qui provoquent la transition ● ou les événements provoqués par la transition Représentation ordinaire des automates finis 75 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Diagramme états-transitions : Ex. Cassette dans une vidéothèque 76 Cassette commandée Livraison de la cassette et enregistrement de l'entrée de la cassette Demande d'emprunt et réponse N° de cassette Cassette disponible Emprunt de la cassette et enregistrement de l'emprunt Demande d'emprunt et réponse de refus Cassette empruntée Retour cassette et enregistrement du retour Temps d'emprunt dépassé et enregistrement de la perte de la cassette Cassette perdue Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Diagrammes états-transitions ● ● Rendent compte de : – la dynamique des traitements – l'enchaînement des traitements dans le temps Exemples d'application – comportement d'un objet réactif – enchaînements d'écrans avec IHM complexes 77 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Comparaison : Table de transition et Diagramme états-transitions État Opérations autorisées État résultant délogué se loguer logué logué lire, écrire logué logué se déloguer délogué délogué se loguer lire, écrire logué se déloguer 78 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 79 Non-déterminisme (1) ● ● Plusieurs transitions avec la même étiquette, partant d'un même état Transition : sans événement attaché Ex. transitions de l'état 1 à l'état 2 = {acd, a, b, f, aef} a c b d a 1 2 f e Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Non-déterminisme (2) ● ● Automate déterministe – plus lisible (une seule transition à suivre) – moins compact si le problème comporte de l'indéterminisme (peut être exponentiellement plus grand) Automate non déterministe – moins lisible (suivre des transitions en parallèle) – plus compact (donc plus lisible ☺) 80 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Diagramme états-transitions et besoins de spécification ● Ne permettent pas d'exprimer la « concurrence » (= parallélisme) → Réseaux de Petri 81 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 82 Réseau de Petri ● ● Graphe biparti – sommets répartis en 2 groupes – chaque arête a une extrémité dans un groupe et une extrémité dans l'autre groupe Sommets (nœuds) – place → état ● – place entrée (pré-condition) marques (jetons) dans certaines places, à un instant donné transition → changement d'état • •• place entrée (pré-condition) transition place sortie (post-condition) Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 83 Réseau de Petri Déclenchement d'une transition : – présence de jetons dans toutes les places entrée – décrémentation du nb de marques des places entrée – incrémentation du nb de marques des places sortie – non-déterministe, atomique • •• • • • • Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Réseau de Petri : Exemple Délivrance d'une cassette • P1 P1 : emprunt demandé P2 : vérification de la cassette P3 : vérification de l'adhérent P4 : emprunt refusé P5 : emprunt possible P6 : emprunt possible P7 : emprunt refusé P8 : emprunt autorisé T1 P2 T2 P4 P3 T3 T4 P5 P6 T6 T5 P7 T1 : préparation de la vérification (action) T2 : cassette empruntée (condition) T3 : cassette disponible (condition) T4 : adhérent en règle (condition) T5 : adhérent pas en règle (condition) T6 : autoriser l'emprunt (action) P8 emprunt autorisé si cassette disponible et adhérent en règle 84 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Réseau de Petri ● Ordonnancement des activités ● Modélisation ● – systèmes parallèles à événements discrets – concurrence, coopération – ex. exclusion mutuelle, producteur/consommateur Extensions – ● marques colorées, arcs inhibiteurs, limites de taille, transitions sources, transitions puits, ... Variante (dual) : Grafcet 85 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Méthodes semi-formelles ● Répandues dans l'industrie ● Nombreux outils qui les implémentent ● Inconvénient : manque (parfois) de rigueur mathématique → Méthodes formelles 86 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Méthodes d'analyse formelles : Caractéristiques ● Spécifications formelles = objets mathématiques → modélisations analysables par les mathématiques ● Nécessité d'une analyse profonde du problème → meilleure maîtrise ● Preuves formelles (mathématiques) → certaines propriétés garanties (sûreté, sécurité, ...) ex. correction : programme conforme à sa spécification 87 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Méthodes d'analyse formelles : Capacités automatiques ● ● Aide au développement – debug de spécification (vérification de cohérence) – génération (semi-)automatique de code – génération (semi-)automatique de tests Animation d'une spécification ~ génération de prototype 88 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Méthodes d'analyse formelles : Problèmes objectifs ● Certains problèmes difficilement spécifiables – ● Manque de formation – ● interface homme-machine, système temps-réel, ... ingénieurs logiciel ≠ mathématiciens, logiciens Efforts plus sur les notations que sur les outils – preuves faisables mais difficiles à réaliser en pratique 89 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Méthodes d'analyse formelles : Croyances ● ● ● Croyances (conservatrices) du management – rentabilité pas prouvée – en fait : souvent plus cher mais de meilleure qualité Croyance (frileuse) des développeurs : – peu de problèmes spécifiables formellement – en fait : gros systèmes déjà spécifiés (gestion de fichiers Unix, JavaCard, systèmes de transport, ...) Croyance (naïve) des chercheurs : – problèmes de développement résolus dès qu'on adopte des méthodes formelles 90 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Méthodes d'analyse formelles : Quelques formalismes ● Spécifications opérationnelles (= enchaînement des actions) ● – automates, systèmes de transition, logique de Hoare – langages : VDM, Z, B, ... Spécifications axiomatiques (= propriétés que doivent satisfaire les implémentations) – spécifications algébriques : OBJ, Larch, ... 91 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Méthodes d'analyse formelles : La situation aujourd'hui ● Peu répandues – ● Mais représentent l'avenir de la spécification – ● utilisées pour des systèmes critiques (sécurité) mais avenir lointain Besoin d'outils – plus simples (moins d'expertise nécessaire) – plus puissants (moins de choses à expliciter) 92 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 93 Et aussi... ● Critères Communs (CC) – ● ... sécurité Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Récapitulatif des Techniques et outils de spécification ● Modèle conceptuel ● Représentations tabulaires : ● ● – table de décision – table de transition Représentations graphiques semi-formelles : – modèle entité-association – diagramme de flot de données – diagramme états-transitions – réseau de Petri, ... Méthodes formelles 94 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 95 Plan du cours ● Dossier d'analyse – ● contenu, importance, qualité, ... Techniques et outils de spécification – modèles, représentations, ... → Interface utilisateur – ● méthodologie, ergonomie, ... Maquettage et prototypage – nature, intérêt, ... Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Interface utilisateur ● Souvent objet de concurrence entre applications (peu de différences « sous le capot ») ● Reflet des fonctionnalités du produit [ Terminologie : – français : interface homme-machine (IHM), interface graphique – anglais : graphical user interface (GUI) ] 96 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Spécification de l'interface utilisateur ● Tôt dans le cycle de vie – ● spécifications fonctionnelles Nombreuses discussions avec l'utilisateur/client – maquette pour valider l'interface (~ seul moyen efficace d'une discussion profitable) 97 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Interface utilisateur : Méthodologie ● ● Partir du modèle conceptuel des données et traitements Définir un modèle conceptuel du dialogue – représentation de l'information – interactions ☛ Choix crucial d'un bon modèle conceptuel 98 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Interface utilisateur : Ergonomie (1) ● ● Convivialité – facilité d'utilisation – mesure : ex. nombre de jours d'apprentissage Efficacité – productivité des utilisateurs (→ mesure) – caractériser les types d'utilisateurs ciblés ● compétence ● but du travail ● performances attendues, ... 99 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 100 Interface utilisateur : Ergonomie (2) ● Lisibilité – – – – – ● mise en avant des données pertinentes/prioritaires regroupement des données similaires alignement visuel des données sens/ordre de lecture « ordinaire » stabilité d'un écran à l'autre Standardisation – – – marché, influence du système d'exploitation/fenêtrage normes de l'entreprise conventions liées au domaine Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Interface utilisateur : Outils (1) ● Utilisation de « briques de base » standards – fenêtres, boîtes de dialogue, onglets – menus : fixes, déroulants, pop-up – boutons, jauges – choix : cases à cocher, boutons radio, vidéo inverse – raccourcis clavier – aides visuelles : icônes, couleurs – effets visuels : images, animations – ... 101 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Interface utilisateur : Outils (2) ● Utilisation de bibliothèques standards – X Athena Widget – Motif – Tk – Swing – GTK, GTK+ – OpenGL – ... 102 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 103 Plan du cours ● Dossier d'analyse – ● Techniques et outils de spécification – ● contenu, importance, qualité, ... modèles, représentations, ... Interface utilisateur – méthodologie, ergonomie, ... → Maquettage et prototypage – objectifs, nature, intérêt, ... Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Maquettage et prototypage ● Quand : – ● après le premier jet des spécifications fonctionnelles Objectifs : – montrer au client à quoi ressemblera le produit – valider les besoins et les spécifications 104 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 105 Maquette ● Système incomplet dont l'aspect extérieur est +/- le même que le produit à réaliser ● Destiné à tester l'ergonomie du produit ● Instaure un dialogue développeur-utilisateur ● Ne permet pas le test de performance ● Souvent jetable Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 106 Prototype ● ● Esquisser ce que sera le produit final – les fonctionnalités – sans contraintes (fiabilité, ...) Valider les besoins utilisateur – ● Valider les spécifications – ● réalisables ? complètes, réalistes, non contradictoires ? Souvent jetable (sinon = prototype évolutif) Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 107 Prototype Intérêt – évaluer rapidement la faisabilité, mais aussi : – mettre en évidence les incompréhensions développeur-utilisateur – identifier les services difficiles à utiliser – découvrir les contradictions – détecter les oublis de spécification – servir de base à l'écriture de spécifications complètes Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 108 Prototype Ignorer les critères non-fonctionnels : – temps de réponse, contraintes mémoire – traitements d'erreur – standards – fiabilité, robustesse – ... (sauf si la faisabilité en dépend !) Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 109 Prototype Choix d'un langage de prototypage adapté – impératif : perl, shell, java, ... – fonctionnel : ML, lisp, scheme, ... – déclaratif : prolog, ... – spécifique à un domaine ● ex. programmation réactive : ESTEREL, SIGNAL, LUSTRE ● ex. modélisation de processus : SIMULA, QNAP2 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Prototyper n'est pas spécifier Un prototype ne remplace pas des spécifications – il ignore les critères non fonctionnels – il ne peut être une base fiable du contrat (à la différence du dossier d'analyse) 110 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet Du prototype à l'implémentation Ré-implémentation toujours recommandable – difficulté à intégrer des contraintes non fonctionnelles – dégradation de la structure après prises en compte successives des demandes de l'utilisateur Mais – réutilisation possible de certains composants du prototype – réimplémentation plus rapide grâce à une bonne connaissance du problème 111 Génie logiciel – Définition des besoins © 2005-2007 Renaud Marlet 112 À retenir ● Qualités du dossier d'analyse – ● Extrême importance du modèle conceptuel – ● ● précis, cohérent, complet, argumenté, traçable, flexible image mentale : concepts, objets, attributs, opérations Représentations graphiques semi-formelles – synthétiques, normalisées, non ambiguës – des diagrammes différents pour des usages différents Ne pas oublier : – aspects non fonctionnels