Cas d'étude : Puissance 4 Analyse des besoins



Documents pareils
Analyse des Besoins (Spécifications)

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Le modèle de données

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

l'ordinateur les bases

Rappel sur les bases de données

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Activités pour la maternelle PS MS GS

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Le module Supply Chain pour un fonctionnement en réseau

Mémo d'utilisation de BD Dico1.6

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

SECTION 5 BANQUE DE PROJETS

SOMMAIRE. Présentation assistée sur ordinateur. Collège F.Rabelais 1/10

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Valeur cible et solveur. Les calculs effectués habituellement avec Excel utilisent des valeurs numériques qui constituent les données d'un problème.

2 Grad Info Soir Langage C++ Juin Projet BANQUE

Internet Explorer. Microsoft. Sommaire :

Introduction : présentation de la Business Intelligence

Publication Assistée par Ordinateur

Access 2007 FF Access FR FR Base

Présentation du tableau blanc interactif Interwrite

Note de compatibilité

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Les nombres entiers. Durée suggérée: 3 semaines

Note de cours. Introduction à Excel 2007

Génie Logiciel. Rappels. C. Crochepeyre Génie Logiciel Rappels 1

Mes premiers diaporamas avec Open Office Impress?

hager Logiciel PC pour configurateur Radio Tebis TX 100 Manuel d utilisation 6T7266

Entrepôt de données 1. Introduction

Évaluation et implémentation des langages

Modèle conceptuel : diagramme entité-association

SAP BusinessObjects Web Intelligence (WebI) BI 4

Distinguer entre «Enregistrer» et «Sauvegarder»

Assistant d e tablissement de Tableaux

Découvrir Open ERP par l'exemple

Interwrite Workspace version 8 avec le projecteur Epson

GUIDE DE PRISE EN MAIN

Guide d'utilisation des appareils DS350E avec tablette Motion LE1700. Dangerfield February 2009 V1.0 Delphi PSS

2010 Ing. Punzenberger COPA-DATA GmbH. Tous droits réservés.

1 sur 5 10/06/14 13:10

NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur "TIJARA" 1

MEMENTO D'UTILISATION Du T.N.I. SmartBoard (Version )

Vous allez le voir au cours de ce premier chapitre, 1. Découvrir l ipad

LE MODELE CONCEPTUEL DE DONNEES

Gestion d Active Directory à distance : MMC & Délégation

Analyse,, Conception des Systèmes Informatiques

Manuel d'utilisation d'apimail V3

GdsCompta. Logiciel de comptabilité générale

Gestion de Projet. Génie Logiciel. Renaud Marlet. LaBRI / INRIA. (d'après A.-M. Hugues) màj 19/04/2007

A. Définition et formalisme

Open Office - Présentation

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX

Parcours FOAD Formation EXCEL 2010

Information utiles. webpage : Google+ : digiusto/

COURS WINDEV NUMERO 3

Les diagrammes de modélisation

Les clients puissance cube

Automatisation d'une Facture 4. Liste Déroulante Remises Case à cocher Calculs

Cours de Génie Logiciel

L informatique en BCPST

Bibliothèque Numérique de l INSA de Toulouse Mode d emploi des livres électroniques NUMILOG

La Clé informatique. Formation Excel XP Aide-mémoire

Méthodes de développement. Analyse des exigences (spécification)

SOMMAIRE. Travailler avec les requêtes... 3

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Symantec Backup Exec Remote Media Agent for Linux Servers

Examen Médian - 1 heure 30

4. EXPRESSION ET ANALYSE DU BESOIN INTRODUCTION LE CAHIER DES CHARGES... 1 Critères de succès...2 Expression du besoin en langage

C.F.A.O. : Conception et Fabrication Assistées par Ordinateur.

Dans la série. présentés par le site FRAMASOFT

VidZone, qu est-ce que c est? INSTALLATION DE VidZone

Série TD 3. Exercice 4.1. Exercice 4.2 Cet algorithme est destiné à prédire l'avenir, et il doit être infaillible! Exercice 4.3. Exercice 4.

Utilisation du logiciel GALAAD

Travail collaboratif avec OpenOffice Texte (Writer)

Les calques : techniques avancées

II. Modèle conceptuel le modèle entité-association

Dossier d'étude technique

Utiliser les supports d'exemplaires

Service de réplication des données HP pour la gamme de disques Continuous Access P9000 XP

CREG : versailles.fr/spip.php?article803

UML (Paquetage) Unified Modeling Language

Rapport projet MMI. Luis Domingues, I3 Naomi Favre, I3 Tiago De Deus, I3. Luis Domingues, Tiago De Deus, Naomi Favre SP Interfaces Multimodales

Dessiner dans Galaad FRANÇOIS PALLUT

EXCEL: Les fonctions financières

Tutoriel - flux de facturation

PC Check & Tuning 2010 Optimisez et accélérez rapidement et simplement les performances de votre PC!

MEGA ITSM Accelerator. Guide de Démarrage

Ceci est un Chromebook, ton ordinateur!

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

Comptabilité : les charges à payer LES CHARGES A PAYER

RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.

AdWords Guide de survie

Autodesk AutoCAD 2015 : la conception détail par détail

Chapitre 4 Pierre, papier, ciseaux

Utiliser un logiciel de présentation assistée par ordinateur

Rendre un plan de cours interactif avec Médiator

Module SMS pour Microsoft Outlook MD et Outlook MD Express. Guide d'aide. Guide d'aide du module SMS de Rogers Page 1 sur 40 Tous droits réservés

Transcription:

1 Génie Logiciel Cas d'étude : Puissance 4 Analyse des besoins Renaud Marlet LaBRI / INRIA http://www.labri.fr/~marlet màj 18/04/2007

2 Exercice Vous êtes employé(e) dans une société qui édite des jeux sur ordinateur. Votre patron est venu vous voir et vous a dit : Je voudrais qu'on ait un «puissance 4» au catalogue pour la rentrée. Et je veux qu'il me batte! Vous êtes allé(e) voir l'équipe marketing et vous les avez aidé à écrire un cahier des charges. Il s'agit maintenant de définir le produit, avec le responsable des développements.

3 Donnée = le cahier des charges Ici volontairement simpliste mais ~ exhaustif (presque) implémentable pendant le cours Documentation = transparents grandes lignes seulement sans les contraintes de forme

Contenu du cahier des charges 4 (rappel) Énoncé du problème à résoudre Liste des fonctionnalités de base requises Caractéristiques techniques du produit Exigences de qualité Priorités éventuelles

Cahier des charges : 5 Énoncé du problème p à résoudre Faire un puissance 4 Règles du jeu précises (omises ici) Pouvoir jouer contre l'ordinateur

Cahier des charges : 6 Liste des fonctionnalités requises (1) Interface : textuelle (les «O» jouent contre les «X») en français entrées au clavier indication de qui doit jouer (ordinateur ou utilisateur)

Cahier des charges : 7 Liste des fonctionnalités requises (2) Commandes utilisateur (avant nouvelle partie) : choix des X ou O, puis choix de qui commence Commandes utilisateur (quand à lui de jouer) : jouer une colonne abandonner la partie (et en commencer une nouvelle) revenir en arrière ou repartir en avant paramétrer la profondeur de réflexion de l'ordinateur Commandes utilisateur (à tout moment) : quitter le jeu

Cahier des charges : 8 Caractéristiques techniques Une seule partie à la fois (pas de simultanées) Pas de limite sur la profondeur de réflexion Pas de limite sur le retour en arrière Performance : suivant la profondeur de réflexion Exécutable sur toute plate-forme : Windows, Unix

Cahier des charges : 9 Exigences de qualité Rapidité moins de 2s à la profondeur de 5 demi-coups Force ne pas rater les coups gagnants battre le boss (au moins 3 parties sur 5) (Pour l'exercice : boss = prof )

Cahier des charges : 10 Priorités 1) Jeu à 1 demi-coup : vérification de la validité des coups ordinateur : coup gagnant ou choix aléatoire valide 2) Jeu à N demi-coups 3) Retour arrière/avant (Disponible «pour la rentrée» = fin du cours )

11 Contenu du cahier des charges Et rien d'autre (pour l 'exercice!) pas de jeu humain contre humain pas de jeu en réseau pas de sauvegarde d'historique pas de sauvegarde de parties en cours pas de high score pas d'aide pas de temps de réflexion...

Exercice : 12 Définir un modèle conceptuel Rappel : 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

13 Exemple de modèle conceptuel (1) Objet : joueur Attributs : couleur : X ou O identité : utilisateur ou ordinateur profondeur de réflexion (ordinat.) : nombre de demi-coups Opérations : affecter une couleur affecter une identité changer la profondeur de réflexion

14 Exemple de modèle conceptuel (2) Objet : grille Attributs : contenu : 7 6 cases pouvant avoir 3 états (X, O,.) («.» représente une case vide) à qui le tour : X ou O Opérations : jouer dans une colonne ( coup joué ou signalé invalide) changer à qui le tour

15 Exemple de modèle conceptuel (3) Objet : partie (pour le retour arrière) Attributs : liste ordonnée des coups joués depuis le début curseur : position dans la liste des coups (différente de la position du dernier élément en cas de retour arrière) Opérations : ajouter un coup en fin de liste déplacer le curseur (vers l'avant ou l'arrière) tronquer la liste des coups au niveau du curseur (au cas où on joue un autre coup au lieu de repartir en avant)

16 Un meilleur modèle conceptuel? Il n'y a pas une réponse unique à la question du modèle conceptuel Mais certaines sont meilleures que d'autres... Exemples ( )

17 Modèle conceptuel : Alternatives (Q1) Attribut contenu dans l'entité grille, ou attribut position dans l'entité jeton?

18 Modèle conceptuel : Alternatives (R1) Attribut contenu dans l'entité grille, ou attribut position dans l'entité jeton? peu d'intérêt à individualiser les jetons en notant la position de chacun imaginer plutôt des marques sur la grille

19 Modèle conceptuel : Alternatives (Q2) Est-ce utile d'avoir une entité jeton?

20 Modèle conceptuel : Alternatives (R2) Est-ce utile d'avoir une entité jeton? oui si l'on veut absolument un modèle de simulation non si l'on conçoit les jetons comme un état de la grille

21 Modèle conceptuel : Alternatives (Q3) Attribut à qui le tour dans entité grille, joueur ou partie?

22 Modèle conceptuel : Alternatives (R3) Attribut à qui le tour dans entité grille, joueur ou partie? pas dans joueur car il serait dupliqué (il y a 2 joueurs) dans grille ou partie

23 Modèle conceptuel : Alternatives (Q4) Opération jouer dans une case ou jouer dans une colonne?

24 Modèle conceptuel : Alternatives (R4) Opération jouer dans une case ou jouer dans une colonne? si on veut absolument un modèle de simulation jouer dans une colonne la grille est en quelque sorte «intelligente» ( coup joué ou signalé invalide) sinon, on sort la «logique de jeu» de la grille, qui devient un objet plus passif jouer dans une case (on peut néanmoins vérifier la validité du coup)

25 Modèle conceptuel : Alternatives (Q5) Opérations ajouter un coup et tronquer réunies?

26 Modèle conceptuel : Alternatives (R5) Opérations ajouter un coup et tronquer réunies? plus facile à expliquer en deux actions séparées mais pas utile en pratique car toujours liées

Exercice : Définir 27 un modèle entité-association Rappel : 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 : (1,1), (0,n),... adhérent emprunte (0,n) emprunter est empruntée (0,1) cassette N exemplaire date d'achat nb emprunts état

Exemple de 28 modèle entité-association liste des coups curseur est représentée par (1,1) partie représenter représente (1,1) grille met en jeu (2,2) contenir (0,42) mettre en jeu contenir mis en jeu par (1,1) est contenu dans (0,1) joueur posséder jeton possède (21,21) est possédé par (1,1) identité couleur prof. de réflexion état à qui le tour couleur joueur Importance de nommer la relation : représenter, contenir,...

Exercice : Dessiner 29 un diagramme états-transitions Rappel ( ) : Commandes utilisateur (avant nouvelle partie) : choix des X ou O, puis choix de commencer ou non Commandes utilisateur (quand à lui de jouer) : jouer une colonne abandonner la partie (et en commencer une nouvelle) revenir en arrière ou repartir en avant paramétrer la profondeur de réflexion de l'ordinateur Commandes utilisateur (à tout moment) : quitter le jeu

Rappel : diagramme états-transitions 30 Ex. cassette dans une vidéothèque Cassette commandée Demande d'emprunt et réponse N de cassette Cassette disponible Livraison de la cassette et enregistrement de l'entrée de la cassette Demande d'emprunt et réponse de refus Cassette empruntée Emprunt de la cassette et enregistrement de l'emprunt Retour cassette et enregistrement du retour Cassette perdue Temps d'emprunt dépassé et enregistrement de la perte de la cassette

Méthodologie de dessin de 31 diagrammes états-transitions (1). Identifier l'état initial (ou les états initiaux) et le dessiner ex. «programme non lancé», «nouvelle partie» (2). Examiner chacune des actions possibles dans cet état, et les états résultants correspondants Si un état résultant a déjà été dessiné, faire une flèche vers l'état résultant, étiquetée par l'action ex. «changer le niveau» Sinon, dessiner un nouvel état et faire une flèche vers le nouvel état, étiquetée par l'action ex. «choix de X ou O» Attention, une même action peut conduire à plusieurs états ex. «choix de qui commence» état «util. joue» ou état «ordi. joue» (3). Recommencer en (2) avec les états nouveaux

Puissance 4 : Exemple de 32 Diagramme états-transitions (1) Lancement du programme Jeu non lancé Quitter le jeu Quitter le jeu Coup valide et partie terminée Ordinateur commence Choix de X ou O À l'ordinateur de jouer Nouvelle partie Qui commence? Coup valide et partie inachevée Utilisateur commence À l'utilisateur de jouer Coup valide et partie terminée Abandon Coup valide et partie inachevée Revenir en arrière Repartir en avant Coup invalide Changement de niveau Revenir en arrière Repartir en avant

Ces états et transitions sont-ils 33 bien définis? Lancement du programme Jeu non lancé Quitter le jeu Quitter le jeu Coup valide et partie terminée Ordinateur commence Choix de X ou O À l'ordinateur de jouer Nouvelle partie Qui commence? Coup valide et partie inachevée Utilisateur commence À l'utilisateur de jouer Coup valide et partie terminée Abandon Coup valide et partie inachevée Revenir en arrière Repartir en avant Coup invalide Changement de niveau Revenir en arrière Repartir en avant

Diagramme états-transitions : 34 attention aux (abus de) notations suite d'actions Lancement du programme Jeu non lancé Quitter le jeu Quitter le jeu Coup valide et partie terminée Ordinateur commence Choix de X ou O À l'ordinateur de jouer Nouvelle partie Qui commence? Coup valide et partie inachevée Utilisateur commence À l'utilisateur de jouer Coup valide et partie terminée Abandon état virtuel (intermédiaire) actions alternatives (réduit le nombre de flèches) Coup valide et partie inachevée Revenir en arrière Repartir en avant Coup invalide Changement de niveau Revenir en arrière Repartir en avant

Un meilleur diagramme 35 états-transitions? Il n'y a pas une réponse unique à la question du diagramme état-transition Mais il y en a peu Exemples ( )

Puissance 4 : Exemple de 36 Diagramme états-transitions (2) état intermédiaire omis Lancement du programme Jeu non lancé Quitter le jeu Quitter le jeu Coup valide et partie terminée Nouvelle partie Choix de X ou O Coup valide et partie terminée Abandon Ordinateur commence Utilisateur commence À l'ordinateur de jouer Coup valide et partie inachevée A l'utilisateur de jouer Coup valide et partie inachevée Revenir en arrière Repartir en avant Coup invalide Changement de niveau Revenir en arrière Repartir en avant

Puissance 4 : Exemple de 37 Diagramme états-transitions (3) état intermédiaire omis Lancement du programme Jeu non lancé Quitter le jeu Quitter le jeu Coup valide et partie terminée Choix X ou O et l'ordinateur commence À l'ordinateur de jouer Nouvelle partie Coup valide et partie inachevée Choix X ou O et l'utilisateur commence À l'utilisateur de jouer Coup valide et partie terminée Abandon Coup valide et partie inachevée Revenir en arrière Repartir en avant Coup invalide Changement de niveau Revenir en arrière Repartir en avant

Puissance 4 : Exemple de 38 Diagramme états-transitions (4) Lancement du programme Jeu non lancé Quitter le jeu Quitter le jeu Nouvelle partie Coup valide (utilisateur) et partie terminée Choix de X ou O Choix de qui commence Coup éventuel de l'ordinateur Abandon Coup valide (utilisateur), réponse (ordinateur), et partie terminée À l'utilisateur de jouer (attente d'une commande) Coup invalide Coup valide (utilisateur), réponse (ordinateur), et partie inachevée Changement de niveau Revenir en arrière Repartir en avant fusion d'états (moins précis)

Puissance 4 : Exemple de 39 Diagramme états-transitions (5) Lancement du programme Jeu non lancé Nouvelle partie Coup valide puis partie terminée Choix de X ou O Choix de qui commence Coup éventuel de l'ordinateur Quitter le jeu Abandon Quitter le jeu À l'utilisateur de jouer (attente d'une commande) Coup invalide Coup valide puis partie inachevée Changement de niveau Revenir en arrière Repartir en avant fusion d'états transitions longues (moins précis)

Exercice : 40 Écrire une table de transition Rappel ( ) : Commandes utilisateur (avant nouvelle partie) : choix des X ou O, puis choix de qui commence Commandes utilisateur (quand à lui de jouer) : jouer une colonne abandonner la partie (et en commencer une nouvelle) revenir en arrière ou repartir en avant paramétrer la profondeur de réflexion de l'ordinateur Commandes utilisateur (à tout moment) : quitter le jeu

Rappel : Table de transition et 41 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 se déloguer lire, écrire logué

42 Puissance 4 : Table de transitions État Opérations autorisées État résultant Jeu non lancé Lancement du programme Nouvelle partie Nouvelle partie Choix de X ou O Qui commence? Nouvelle partie Quitter le jeu Jeu non lancé Qui commence? Ordinateur commence L'ordinateur réfléchit Qui commence? Utilisateur commence L'utilisateur réfléchit L'ordinateur réfléchit Coup valide et partie terminée Nouvelle partie L'ordinateur réfléchit Coup valide et partie inachevée L'utilisateur réfléchit L'utilisateur réfléchit Coup valide et partie inachevée L'ordinateur réfléchit L'utilisateur réfléchit L'utilisateur réfléchit Coup invalide Changement de niveau Revenir en arrière Repartir en avant Coup valide et partie terminée Abandon L'utilisateur réfléchit Nouvelle partie L'utilisateur réfléchit Quitter le jeu Jeu non lancé

Comparer la table de transition au 43 diagramme états-transitions Lancement du programme Jeu non lancé Quitter le jeu Quitter le jeu Coup valide et partie terminée Ordinateur commence L'ordinateur réfléchit Choix de X ou O Nouvelle partie Qui commence? Coup valide et partie inachevée Coup valide et partie inachevée Utilisateur commence L'utilisateur réfléchit Coup valide et partie terminée Abandon Coup invalide Changement de niveau Revenir en arrière Repartir en avant

Comparaison de la table de transition 44 au diagramme états-transitions La représentation graphique est plus simple plus compacte moins redondante plus compréhensible la maintenance et les évolutions sont plus faciles

Exercice : Dessiner un 45 diagramme de flots de données...... pour le traitement de l'entrée utilisateur en cours de partie : jouer une colonne reculer / avancer dans l'historique de la partie abandonner la partie, quitter le jeu Rappel : modéliser les gisements d'information (rectangles) le transit des données (flèches) les traitements (ovales)

Rappel : Diagramme de flot de données 46 Ex. gestion des emprunts refus carte infos film demande d'emprunt référence film vérification cassette vérification client comptes clients N carte refus stock de cassettes N client N cassette enregistrement emprunt carte modifiée cassette

Puissance 4 : Ex. de diagramme de flot 47 de données pour l'entrée utilisateur refus vérification recul / avance nb coups recul/avance nb coups recul/avance enregistrement recul / avance abandonner analyse cmd utilisateur historique nouvelle grille grille entrée utilisateur nouveaux coups quitter N colonne vérification coup valide jeu du coup N colonne refus affichage infos joueurs