96
Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 1 Génie Logiciel Génie Logiciel Cas d'étude : Puissance 4 Cas d'étude : Puissance 4 Définition des besoins Définition des besoins Renaud Marlet LaBRI / INRIA http://www.labri.fr/~marlet màj 22/03/2007

Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 1

Génie LogicielGénie Logiciel

Cas d'étude : Puissance 4Cas d'étude : Puissance 4

Définition des besoinsDéfinition des besoins

Renaud Marlet

LaBRI / INRIAhttp://www.labri.fr/~marlet

màj 22/03/2007

Page 2: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 2

ObjectifObjectif

Faire un « puissance 4 »

Page 3: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 3

Puissance 4Puissance 4

Page 4: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 4

Puissance 4Puissance 4

Page 5: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 5

Puissance 4Puissance 4

Page 6: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 6

Puissance 4Puissance 4

Page 7: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 7

Puissance 4Puissance 4

Page 8: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 8

Puissance 4Puissance 4

Page 9: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 9

Puissance 4Puissance 4

Page 10: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 10

Puissance 4Puissance 4

Page 11: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 11

Puissance 4Puissance 4

Page 12: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 12

Puissance 4Puissance 4

Gagné!Gagné!

Page 13: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 13

ExerciceExercice

Vous êtes employé dans une société qui édite des jeux sur ordinateur. Votre patron vient vous voir et vous dit :– Je voudrais qu'on ait un « puissance 4 » au catalogue

pour la rentrée.

Allez voir l'équipe marketing, et aidez-les à écrire un cahier des charges.

On le fera réaliser par l'équipe de développement.

Et je veux qu'il me batte !

Page 14: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 14

Contenu du cahier des chargesContenu du cahier des charges(rappel)(rappel)

● Énoncé du problème à résoudre● Liste des fonctionnalités de base requises● Caractéristiques techniques du produit

– limites, performances, nombre d'utilisateurs, ressources, interfaces avec d'autres produits, fiabilité, disponibilité, sécurité, compatibilité logicielle / matérielle, ...

● Exigences de qualité– facteurs (par ex., rapidité)

– critères (mesurable avec métriques, par ex. temps de réponse)

● Priorités éventuelles

Page 15: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 15

Contenu du cahier des chargesContenu du cahier des charges(rappel)(rappel)

→ Énoncé du problème à résoudre

● Liste des fonctionnalités de base requises● Caractéristiques techniques du produit

– limites, performances, nombre d'utilisateurs, ressources, interfaces avec d'autres produits, fiabilité, disponibilité, sécurité, compatibilité logicielle / matérielle, ...

● Exigences de qualité– facteurs (par ex., rapidité)

– critères (mesurable avec métriques, par ex. temps de réponse)

● Priorités éventuelles

Page 16: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 16

Que doit contenir ici l'éQue doit contenir ici l'énoncé du noncé du problème à résoudre ?problème à résoudre ?

● ...● ...● ...

Page 17: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 17

ÉÉnoncé du problème à résoudrenoncé du problème à résoudre

● Règles du jeu– importance de la précision

● Caractéristiques fonctionnelles majeures, par ex. :– pouvoir jouer contre la machine ou un joueur humain– pouvoir jouer en réseau

Page 18: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 18

Règles du jeu original Règles du jeu original — Exercice— Exercice Quels défauts pour un cahier des charges ?Quels défauts pour un cahier des charges ?

Jeu pour 2 joueurs

De l'astuce, un peu de bon sens, vous êtes alors prêt pour commencer à jouer. Alignez 4 pions horizontalement, verticalement, ou en diagonale.

1. Assemblez la grille.

2. Tirez au sort pour connaître le joueur qui commence la partie. Chaque joueur, à tour de rôle, doit insérer un pion dans l'une des fentes de la grille.

3. Continuez ainsi jusqu'à ce que l'un des joueurs aligne 4 pions. Ils peuvent être alignés horizontalement, verticalement, ou en diagonale.

4. Pour vider la grille et faire tomber les pions, il suffit de faire pivoter la réglette sur le côté. Replacez ensuite la réglette, triez les pions selon leur couleur pour recommencer une nouvelle partie.

Le gagnant : le premier joueur qui a réussi à aligner 4 pions gagne la partie.

Page 19: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 19

Règles du jeu original Règles du jeu original — Exercice— Exercice Quels défauts pour un cahier des charges ?Quels défauts pour un cahier des charges ?

● Vraiment plus d'autres défauts ?

● Est-ce suffisamment précis, non ambigu ?– En mettriez-vous votre main au feu ?

Page 20: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 20

Règles du jeu original Règles du jeu original —— Défauts de Défauts de fond pour un cahier des chargesfond pour un cahier des charges

● Références au jeu matériel inappropriées● Informations manquantes :

– forme et taille de la grille– principe physique de chute et d'empilement des pions– existence de deux couleurs de pion (une par joueur)– existence de parties nulles

● Information imprécises :– alignement continu (sans pions adverses intercalés)– diagonale = à 45°

Page 21: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 21

Règles du jeu original Règles du jeu original — — Défauts de Défauts de forme pour un cahier des chargesforme pour un cahier des charges

● Liste numérotée : bonne idée mais– mélange d'assemblage et de phase de jeu

● Pas un concept par paragraphe

● Redondance inutile (alignement) ? En fait OK :– 1 fois dans l'objectif du jeu (introduction)– 1 fois dans le détail des règles

Page 22: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 22

Aide en ligne d'un logiciel existantAide en ligne d'un logiciel existantQuels défauts pour un cahier des charges ?Quels défauts pour un cahier des charges ?

● Puissance 4 est un jeu qui se joue à deux.

● Chaque joueur est représenté par une couleur (jaune ou rouge). Le but du jeu est d'obtenir quatre jetons de votre couleur alignés dans une ligne, une colonne ou en diagonal. Ceci est réalisé en plaçant les jetons dans les sept colonnes.

● Un jeton remplit une colonne à partir du bas, c'est-à-dire qu'il tombera jusqu'à ce qu'il atteigne le bas ou un autre jeton. Une fois le jeton joué, c'est au tour de l'autre joueur.

● Ceci est répété jusqu'à la fin du jeu, qui se produit lorsqu'un des deux joueurs a quatre jetons alignés dans une ligne, une colonne ou en diagonal, ou bien lorsque plus aucun coup n'est possible parce que le plateau est rempli.

Page 23: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 23

Aide en ligne d'un logiciel existantAide en ligne d'un logiciel existantQuels défauts pour un cahier des charges ?Quels défauts pour un cahier des charges ?

● Vraiment plus d'autres défauts ?

● Est-ce suffisamment précis, non ambigu ?– En mettriez-vous votre main à couper ?

Page 24: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 24

Aide en ligne d'un logiciel Aide en ligne d'un logiciel —— Défauts Défauts de fond pour un cahier des chargesde fond pour un cahier des charges

● Informations manquantes :– forme et nombre des lignes de la grille (colonnes OK)– un pion posé est inamovible

● Informations imprécises :– non superposition des jetons (empilement)– alignement continu (sans pions adverses intercalés)

● Et en étant pointilleux :– impossibilité de jouer un jeton de la couleur adverse– diagonale = à 45°

Page 25: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 25

Aide en ligne d'un logiciel Aide en ligne d'un logiciel —— Défauts Défauts de forme pour un cahier des chargesde forme pour un cahier des charges

● Pas un concept par paragraphe– mauvaise séparation des concepts

● Règles non numérotées– pas de références– mauvaise traçabilité

Page 26: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 26

LeçonsLeçons(é(énoncé du problème à résoudrenoncé du problème à résoudre))

● On n'est jamais assez précis● Ça ne se trouve pas « sur étagère »

Page 27: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 27

MéthodologieMéthodologie(é(énoncé du problème à résoudrenoncé du problème à résoudre))

● faire (quand même) des recherches : web, etc.● relire à froid, avec un regard critique● ne rien supposer connu, implicite, évident

– imaginer que l'autre est un extraterrestre

Page 28: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 28

Contenu du cahier des chargesContenu du cahier des charges(rappel)(rappel)

● Énoncé du problème à résoudre

→ Liste des fonctionnalités de base requises

● Caractéristiques techniques du produit– limites, performances, nombre d'utilisateurs, ressources,

interfaces avec d'autres produits, fiabilité, disponibilité, sécurité, compatibilité logicielle / matérielle, ...

● Exigences de qualité– facteurs (par ex., rapidité)

– critères (mesurable avec métriques, par ex. temps de réponse)

● Priorités éventuelles

Page 29: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 29

Exercice d'imaginationExercice d'imagination

● Imaginez toutes les fonctionnalités possibles du produit → liste de questions à l'équipe marketing

– inclut-on telle ou telle fonctionnalité ?– défi : trouvez-en au moins 30 !

(j'en donne >60 dans la suite)● Ne vous bridez pas!, nous ferons le choix ensuite● Peu de temps dans ce cours

→ style télégraphique

– mais gardez la qualité : précision, non ambiguïté, ...

Page 30: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 30

Liste des fonctionnalitésListe des fonctionnalitéspossibles du produitpossibles du produit

● Modèle conceptuel (type d'interactions...)● Paramétrage● Interface● Fonctions :

– Historique– High score– Aide à l'utilisateur– Jeu en réseau

● Divers

Page 31: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 31

Liste des fonctionnalitésListe des fonctionnalitéspossibles du produitpossibles du produit

● Modèle conceptuel (type d'interactions...) ?● Paramétrage● Interface● Fonctions :

– Historique– High score– Aide à l'utilisateur– Jeu en réseau

● Divers

Page 32: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 32

Modèle conceptuel (1)Modèle conceptuel (1)

● Jeu à deux : qui contre qui ?– humain/machine uniquement ?– ou aussi : humain/humain, machine/machine ?

● Plusieurs parties simultanément ?

● Variabilité (reproductibilité)– dans une situation identique, toujours le même coup

joué ou bien choix aléatoire parmi les meilleurs coups estimés ?

Page 33: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 33

Modèle conceptuel (2)Modèle conceptuel (2)

● En cours de partie, possibilité de :– changer qui est qui ? (pour les mauvais joueurs )

– revenir en arrière ? (combien de demi-coups ?)– repartir en avant ?– abandonner ?– faire une pause (arrêt du décompte de temps) ?

Page 34: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 34

Modèle conceptuel (3)Modèle conceptuel (3)

● Possibilité de sauvegarder / reprendre une partie ?

● Possibilité de rentrer (poser) un problème ?– test de validité / conformité d'un problème rentré ?

Page 35: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 35

Liste des fonctionnalitésListe des fonctionnalitéspossibles du produitpossibles du produit

● Modèle conceptuel (type d'interactions...)● Paramétrage ?● Interface● Fonctions :

– Historique– High score– Aide à l'utilisateur– Jeu en réseau

● Divers

Page 36: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 36

ParamétrageParamétrage

● Niveau variable ?– profondeur de réflexion ? (nb de coups ?)– difficulté (débutant, novice, expérimenté) ?

croissante ?● Temps de réponse ?

– temps maximum de l'ordinateur par coup ?● Temps de réflexion maximum par partie ?

– humain et/ou machine ?● Paramétrage des règles du jeu ?

– nombre de lignes, de colonnes, de pions à aligner...

Page 37: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 37

Liste des fonctionnalitésListe des fonctionnalitéspossibles du produitpossibles du produit

● Modèle conceptuel (type d'interactions...)● Paramétrage● Interface ?● Fonctions :

– Historique– High score– Aide à l'utilisateur– Jeu en réseau

● Divers

Page 38: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 38

Interface : forme (1)Interface : forme (1)

● Interface– textuelle ou graphique ?– choix des formes de pions / symboles ?– choix de la forme de la grille ?– choix des couleurs / textures / photos ?– animation (par ex., chute des pions) ?– effet sonore (par ex., bruit du pion qui tombe) ?– ...

Page 39: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 39

Interface : forme (2)Interface : forme (2)

● Facilités d'entrée– souris et/ou clavier ?– boutons et/ou menus ?

● Internationalisation ?– différentes langues pour les textes

● Accessibilité ?– mal-voyants : grosse grille,– non-voyants : entrée/sortie audio, ...

Page 40: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 40

Interface :Interface :informations présentées (1)informations présentées (1)

● Nom des joueurs et couleurs associées ?● État courant de la grille ? (jeu à l'aveugle)● Parties simultanées :

– affichage regroupé ou une fenêtre par partie ?● Indication du joueur à qui c'est le tour de jouer ?

– marque du joueur (couleur, nom) ?– « barre des tâches » ?

(indication de ce qu'il faut faire en une phrase)

Page 41: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 41

Interface :Interface :informations présentées (2)informations présentées (2)

● Temps de réflexion par joueur ?– écoulé ou restant ?

● Indication que l'application est en pause ?

● Nombre de coups joués ?● Indication (rappel) de la dernière colonne jouée ?● Historique des coups joués ?

Page 42: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 42

Interface :Interface :informations présentées (3)informations présentées (3)

● Niveau de l'ordinateur (lorsqu'il est un joueur) ?● Chances de gagner estimées par l'ordinateur ?

● Nombre total de parties– jouées ?– gagnées, perdues ou nulles pour chaque joueur ?– arrêtées ? (total ou par joueur ?)

● Depuis quand ?– lancement (session) ou installation (historique total) ?

Page 43: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 43

Liste des fonctionnalitésListe des fonctionnalitéspossibles du produitpossibles du produit

● Modèle conceptuel (type d'interactions...)● Paramétrage● Interface● Fonctions :

– Historique ?– High score– Aide à l'utilisateur– Jeu en réseau

● Divers

Page 44: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 44

HistoriqueHistorique

● Niveau de détail– qui a joué contre qui ?, à quelle date ?– mémoire de chaque jeton joué dans chaque partie ?– seulement le résultat : gagné / perdu / nul / abandon ?– mémoire des temps de réflexion utilisés ?– mémoire du nombre de coups joués ?

● Résultats contre autres humains et/ou machine ?– à quel niveau de jeu de la machine ?

● Réinitialisation possible ?

Page 45: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 45

Liste des fonctionnalitésListe des fonctionnalitéspossibles du produitpossibles du produit

● Modèle conceptuel (type d'interactions...)● Paramétrage● Interface● Fonctions :

– Historique– High score ?– Aide à l'utilisateur– Jeu en réseau

● Divers

Page 46: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 46

High scoreHigh score

● Classement contre :– la machine ? (à quel niveau de jeu ?)– d'autres humains ?

● Note pour chaque joueur :– nombre de parties gagnées / perdues / nulles ?– proportion de parties gagnées / perdues / nulles ?

● minimum de N parties ? au moins N joueurs différents ?

– prise en compte de l'abandon dans la note ?● Réinitialisation possible ?

Page 47: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 47

Liste des fonctionnalitésListe des fonctionnalitéspossibles du produitpossibles du produit

● Modèle conceptuel (type d'interactions...)● Paramétrage● Interface● Fonctions :

– Historique– High score– Aide à l'utilisateur ?– Jeu en réseau

● Divers

Page 48: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 48

Aide à l'utilisateurAide à l'utilisateur

● Rappel des règles du jeu ?● Indication des coups valides ?● Indication des coups perdants ?● Conseil sur le meilleur coup à jouer ?

Page 49: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 49

Liste des fonctionnalitésListe des fonctionnalitéspossibles du produitpossibles du produit

● Modèle conceptuel (type d'interactions...)● Paramétrage● Interface● Fonctions :

– Historique– High score– Aide à l'utilisateur– Jeu en réseau ?

● Divers

Page 50: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 50

● 1 (ou +) serveur – N clients ? client = serveur ?● Paramétrage réseau : hôte, port, ... ?● Affichage de l'état réseau (connexions) ?● Affichage des joueurs connectés sur le serveur ?

– par niveau déclaré ?● Protocole de création de partie :

– qui crée une partie / qui se joint à l'autre ?– qui joue quelle couleur ?

Jeu en réseau (1)Jeu en réseau (1)

Page 51: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 51

Jeu en réseau (2)Jeu en réseau (2)

● Boîte de dialogue permettant de discuter ?– envoi à tous les joueurs connectés ?– envoi à l'adversaire ?– envoi à un groupe de joueurs particulier ?– conserver les N derniers messages ?

● Interface :– choix des polices de caractères ? (nom, texte, ...)

Page 52: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 52

Jeu en réseau (3)Jeu en réseau (3)

● Serveur global chez le fournisseur de jeu ?– high score global → fidélité, récompenses, ... ?

– organisation de tournois ?– organisation de paris ?– bibliothèques de parties jouées (pour apprendre) ?

● Réflexion en local ou déportée sur le serveur ?

Page 53: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 53

Liste des fonctionnalitésListe des fonctionnalitéspossibles du produitpossibles du produit

● Modèle conceptuel (type d'interactions...)● Paramétrage● Interface● Fonctions :

– Historique– High score– Aide à l'utilisateur– Jeu en réseau

● Divers ?

Page 54: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 54

DiversDivers

● Diffusion d'annonces de tournoi ?● Possibilité de mise à jour ?

– meilleur algorithme de jeu pour l'ordinateur, ...– par le web ?, par CDROM ?

● Information « À propos » ?– numéro de version– copyright, accord de licence– auteurs– ...

Page 55: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 55

Quelles leçons peut-on en tirer ?Quelles leçons peut-on en tirer ?(liste des fonctionnalités)(liste des fonctionnalités)

● ...● ...● ...

Page 56: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 56

LeçonLeçon(liste des fonctionnalités)(liste des fonctionnalités)

● L'énoncé du problème ne suffit pas– il y a plein de solutions (avec +/- de fonctionnalités)

☛ si on veut être sûr de trouver une certaine fonctionnalité dans le produit, il faut le diredans le cahier des charges !

Page 57: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 57

MéthodologieMéthodologie(liste des fonctionnalités)(liste des fonctionnalités)

● Essayer de lister un maximum de fonctionnalités– si l'on exclut une fonctionnalité, alors ce doit être en

connaissance de cause, pas par omission– chercher des sous-fonctions aux fonctions– affectation de priorités : préparation des évolutions

● fonctions non developpées mais anticipées

Page 58: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 58

MéthodologieMéthodologie(liste des fonctionnalités)(liste des fonctionnalités)

● Définir un modèle conceptuel● Paramétrage :

– degrés de liberté à l'intérieur du modèle● Interface :

– affichages/sons/... et interactions issues du modèle– questions standard pour toute application

● Réutilisations pour un même type d'application :– socle commun des modèles, interfaces, ...– fonctionnalités (historique, high score, réseau, ...)

Page 59: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 59

Problèmes typiques posés par la Problèmes typiques posés par la combinaison de fonctionnalités ?combinaison de fonctionnalités ?

● ...● ...● ...

Page 60: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 60

Problèmes posés par la Problèmes posés par la combinaison de fonctionnalitéscombinaison de fonctionnalités

● Invalidité d'une fonctionnalité due à une autre– ...

● Incompatibilité entre fonctionnalités– ...

● Manque de précision de certaines combinaisons– ...

● Ambiguïté de certaines combinaisons– ...

Page 61: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 61

Combinaison de fonctionnalités (1)Combinaison de fonctionnalités (1)

Invalidité d'une fonctionnalité due à une autre :– invalidité du temps de réflexion limité

● possibilité de faire une pause

– invalidité du high score● temps de réflexion limité et possibilité de faire une pause● possibilité repartir en arrière (après une bourde)● augmentation du niveau de jeu juste avant de gagner

(ou baisse du niveau juste après avoir commencé, suivant le moment où le niveau est pris en comptedans le high score)

Page 62: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 62

Combinaison de fonctionnalités (2)Combinaison de fonctionnalités (2)

Incompatibilité pratique entre fonctionnalités :– affichage des chances de gagner estimées par

l'ordinateur (calculées lorsque l'ordinateur réfléchit avant de jouer) et possibilité de retour arrière

→ chances estimées invalides ?

→ chances estimées valides = mémorisées ?

→ chances estimées valides = recalculées ?

Page 63: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 63

Combinaison de fonctionnalités (3)Combinaison de fonctionnalités (3)

Manque de précision de certaines combinaisons :– L'historique mémorise-t-il les retours arrière ?– La sauvegarde d'une partie inclut-elle le temps de

réflexion restant ?

Page 64: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 64

Combinaison de fonctionnalités (4)Combinaison de fonctionnalités (4)

Ambiguïté de certaines combinaisons :– Le temps de réflexion restant recule-t-il lors d'un

retour arrière ?– Que sauvegarde-t-on en cas de retour arrière : la

partie complète ou la partie tronquée au momentdu retour arrière ?

Page 65: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 65

Quelles leçons peut-on en tirer ?Quelles leçons peut-on en tirer ?(combinaison de fonctionnalités)(combinaison de fonctionnalités)

● ...● ...● ...

Page 66: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 66

LeçonLeçon(combinaison de fonctionnalités)(combinaison de fonctionnalités)

● Les combinaisons de fonctionnalités peuvent créer des « interférences » de l'une sur l'autre– invalidité, incompatibilité, incohérence...– imprécision, ambiguïté, ...

● Ce n'est pas seulement qu'elles le peuvent,elles le font souvent...

Page 67: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 67

MéthodologieMéthodologie(liste des fonctionnalités)(liste des fonctionnalités)

● Examiner toutes les combinaisons possiblesde 2 (ou 3) fonctionnalités

● Pour chacune, se demander :– invalidité ?, incompatibilité ?, incohérence ?, ...– imprécision ?, ambiguïté ?, ...

Page 68: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 68

Contenu du cahier des chargesContenu du cahier des charges(rappel)(rappel)

● Énoncé du problème à résoudre● Liste des fonctionnalités de base requises

→ Caractéristiques techniques du produit– limites, performances, nombre d'utilisateurs, ressources,

interfaces avec d'autres produits, fiabilité, disponibilité, sécurité, compatibilité logicielle / matérielle, ...

● Exigences de qualité– facteurs (par ex., rapidité)

– critères (mesurable avec métriques, par ex. temps de réponse)

● Priorités éventuelles

Page 69: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 69

Exercice : lister des cExercice : lister des caractéristiques aractéristiques techniques possibles du produittechniques possibles du produit

Caractéristiques techniques du produit– limites : liées au modèle, à l'interface, ...

– performances

– nombre d'utilisateurs, de connections, ...

– environnement d'exécution : interfaces avec d'autres produits, compatibilité logicielle / matérielle, ...

– ressources

– fiabilité, disponibilité, ...

– sécurité

– ...

Page 70: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 70

Caractéristiques techniquesCaractéristiques techniquesdu produitdu produit

● Limites liées au modèle :– revenir en arrière : jusqu'à combien de coups ?– profondeur de réflexion quand l'ordinateur joue ?– taille de l'historique ?– temps de réflexion maximum ? (minute, heure, jour)– niveau de détail de l'historique / high score ?– nombre de joueurs connectés simultanément ?

Page 71: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 71

Caractéristiques techniquesCaractéristiques techniquesdu produitdu produit

● Limites liées à l'interface– nombre de parties visualisées simultanément ?– paramétrage des règles : nb de lignes, colonnes ?– nombre de langues supportées ?

Page 72: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 72

Caractéristiques techniquesCaractéristiques techniquesdu produitdu produit

● Performances :– pas plus de N secondes au niveau le plus faible

● Fiabilité :– système pas critique → pas de mention particulière

● Sécurité– connexion au serveur de high-score : infalsifiable

Page 73: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 73

Caractéristiques techniquesCaractéristiques techniquesdu produitdu produit

● Environnement d'exécution– plate-forme cible :

● Windows, Linux, Mac ?● téléphone mobile ?

– technologies réseau spécifiques pour échanger ?● Ressources :

– consommation réduite si le logiciel est « embarqué »– configuration minimale : mémoire, taille d'écran, ...

Page 74: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 74

MéthodologieMéthodologie(caractéristiques techniques du produit)(caractéristiques techniques du produit)

● Check-lists : passer en revue– les fonctionnalités décrites auparavant– les caractéristiques typiques

Page 75: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 75

Contenu du cahier des chargesContenu du cahier des charges(rappel)(rappel)

● Énoncé du problème à résoudre● Liste des fonctionnalités de base requises● Caractéristiques techniques du produit

– limites, performances, nombre d'utilisateurs, ressources, interfaces avec d'autres produits, fiabilité, disponibilité, sécurité, compatibilité logicielle / matérielle, ...

→ Exigences de qualité– facteurs (par ex., rapidité)

– critères (mesurable avec métriques, par ex. temps de réponse)

● Priorités éventuelles

Page 76: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 76

Exercice : Quelles facteurs de Exercice : Quelles facteurs de qualité peut-on poser ?qualité peut-on poser ?

● ...● ...● ...

Page 77: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 77

Facteurs de qualitéFacteurs de qualité

● Rapidité● Facilité d'interaction avec le produit● Force du jeu de la machine● Faible consommation des ressources● Sécurité (high score...)

Page 78: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 78

Exercice : Quelles critères de Exercice : Quelles critères de qualité peut-on poser ?qualité peut-on poser ?

● Rapidité– ...

● Facilité d'interaction avec le produit– ...

● Force du jeu de la machine– ...

● Faible consommation des ressources– ...

● Absence de bugs– ...

● Sécurité

Page 79: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 79

Critères de qualité (1)Critères de qualité (1)

● Rapidité, par ex. :– moins de 1 seconde au niveau le plus bas– moins de 5 secondes au niveau moyen– moins de 20 secondes au niveau difficile– pas de limite si paramétrage explicite du nb de

coups

● Facilité d'interaction, par ex. :– au plus un clic souris ou une touche enfoncée– toutes commandes accessibles par menu

Page 80: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 80

Critères de qualité (2)Critères de qualité (2)

● Force du jeu (difficile à mesurer), par ex. :– logique du jeu :

● ne pas rater les coups gagnants● contrer tous les coups de l'adversaire qui seraient gagnants● etc.

– expérimenter, par ex. sur 5 parties● battre systématiquement un novice (5/5)● battre un produit concurrent (au moins 4/5)● battre le boss (au moins 3/5)● (critère pouvant faire l'objet d'un prototype expérimental)

Page 81: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 81

Critères de qualité (3)Critères de qualité (3)

● Faible consommation des ressources– taille mémoire statique + mesures expérimentales (ou

majoration) de la mémoire dynamique (+ temps CPU, charge réseau, etc.), et comparaison à des seuils

● Sécurité– respect de standards méthodologiques– recommandations (ex. cryptographie : type/taille de clé...)– architecture ouverte (revue par la communauté)– niveau d'évaluation

● par ex., Critères Communs : niveau EAL1 à EAL7

Page 82: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 82

Autres facteurs / critèresAutres facteurs / critèresde qualitéde qualité

● Absence de bug– passage avec succès de tous les tests– validation de la pertinence et de la couverture des

tests ☛ On accepte rarement (mais pas systématiquement ☺) de

laisser des bugs connus dans un produit ! Lister « absence de bug » comme critère suppose ici une attention accrue à la vérification, c.-à-d. supérieure à « la moyenne »).

● Accessibilité● Portabilité● ...

Page 83: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 83

Limite des exigences de qualitéLimite des exigences de qualité

● Certaines qualités sont à la limite entre l'idée du produit et sa réalisation.

● Ex. : plaisir du jeu dans la durée (ne pas se lasser)– difficile à évaluer, même expérimentalement, car

nécessite du temps et un produit fini – si le jeu ne plaît pas dans la durée, c'est sans doute

plus lié au jeu lui-même qu'à sa réalisation particulière dans le produit → mauvais problème, mauvais besoins

→ pas considéré comme un facteur de qualité au sens du cahier des charges

Page 84: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 84

LeçonsLeçons(exigences de qualité)(exigences de qualité)

● Facile de trouver des facteurs de qualité● Difficile de trouver des critères de qualité● Accepter des critères « statistiques »

– c.-à-d. expérimentaux

Page 85: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 85

MéthodologieMéthodologie(exigences de qualité)(exigences de qualité)

● Lister d'abord les facteurs, puis les critères– sinon on peut se brider car les critères sont difficiles

● En cas de difficulté à trouver des critères– essayer le recours à des critères « expérimentaux »– utiliser des critères standards pertinents

Page 86: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 86

Contenu du cahier des chargesContenu du cahier des charges(rappel)(rappel)

● Énoncé du problème à résoudre● Liste des fonctionnalités de base requises● Caractéristiques techniques du produit

– limites, performances, nombre d'utilisateurs, ressources, interfaces avec d'autres produits, fiabilité, disponibilité, sécurité, compatibilité logicielle / matérielle, ...

● Exigences de qualité– facteurs (par ex., rapidité)

– critères (mesurable avec métriques, par ex. temps de réponse)

→ Priorités éventuelles

Page 87: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 87

ExerciceExercice

Classer par ordre de priorité :– Aide de l'utilisateur– High score– Historique– Interface– Jeu en réseau– Logique du jeu– Paramétrage

Page 88: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 88

Priorités :Priorités :une des solutions plausiblesune des solutions plausibles

1) Interface

2) Logique du jeu

3) Paramétrage

4) Aide de l'utilisateur

5) High score

6) Jeu en réseau

7) Historique

Page 89: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 89

MéthodologieMéthodologie(priorité des fonctionnalités)(priorité des fonctionnalités)

● Essayer de lister un maximum de fonctionnalités– (↑)

● Affectation de priorités aux fonctionnalités :– préparation des évolutions futures– fonctions non developpées mais anticipées

Page 90: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 90

MéthodologieMéthodologie(priorités)(priorités)

1) Ce qui est indispensable

2) Compromis entre– ce qui est faisable facilement / rapidement– ce qui va être utile aux premiers acheteurs (entrée

sur le marché)● avoir une idée des acheteurs de la première version

– ce qui va être utile pour la deuxième vague d'acheteurs (consolidation sur le marché)

● mettre à jour les besoins / désirs des utilisateurs

Page 91: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 91

Quelles questions de droitsQuelles questions de droitsfaut-il aussi se poser ?faut-il aussi se poser ?

● Propriété intellectuelle– ...

● Droits d'exploitation de l'utilisateur– ...

● Conditions d'utilisation– ...

● Dispositions légales– ...

cf. cours «Introduction»

Page 92: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 92

Questions de droits :Questions de droits :Propriété intellectuellePropriété intellectuelle

● Marque « puissance 4 » déposée ?● Règles du jeu protégées par un droit d'auteur ?

→ demander l'autorisation

→ payer des droits

● Question à se poser sur un produit innovant :

→ y a-t-il des concepts originaux à breveter / déposer ?

Page 93: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 93

Questions de droits :Questions de droits :Droits d'exploitation de l'utilisateurDroits d'exploitation de l'utilisateur

● Gestion des licences logicielles :– licences par machine, par site, flottantes, ... ?

● Contrôle :– numéro d'enregistrement, dongle, ... ?

Page 94: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 94

Questions de droits :Questions de droits :Conditions d'utilisationConditions d'utilisation

● Acceptation par l'utilisateur– Pack physique :

● « en brisant ce sceau, vous acceptez ... »

– Accord électronique :● boutons « I accept » / « I refuse »

☛ ici, peu pertinent

(un jeu n'est pas un système critique)

Page 95: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 95

Questions de droits :Questions de droits :Dispositions légalesDispositions légales

● Loi informatique et liberté (CNIL)– enregistrement nominatif des licences ?– noms dans l'historique ?

(Rappel : autres questions, ici non pertinentes :– incitation à la violence, à la haine raciale, ...– interdiction d'accès aux mineurs– règles éthiques, déontologie, ...)

Page 96: Cas d'étude : Puissance 4 Définition des besoinsimagine.enpc.fr/~marletr/LaBRI/teaching/GenLog/slides/GenLogP4... · joueur, à tour de rôle, doit insérer un pion dans l'une des

Génie logiciel – Cas d'étude : Puissance 4 – Définition des besoins © 2005-2007 Renaud Marlet 96

LeçonsLeçons(questions de droits)(questions de droits)

● Il y a des questions de droit à se poser en marge du cahier des charges

● Le cahier des charges ne contient pas que des informations techniques ou technologiques