• Like
  • Save
Le robot agile
Upcoming SlideShare
Loading in...5
×
 

Le robot agile

on

  • 1,182 views

Un micro projet agile

Un micro projet agile
Plan de release
Backlog
2 itérations
Refactoring

Statistics

Views

Total Views
1,182
Views on SlideShare
1,176
Embed Views
6

Actions

Likes
0
Downloads
12
Comments
0

1 Embed 6

http://www.slideshare.net 6

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Le robot agile Le robot agile Presentation Transcript

    • La vie d’un mini projet Agile
      Le Robot Agile
    • ??? Cahier des charges ???
      Faire un jeu, il s’agit d’un robot qui se déplace dans un labyrinthe, il doit ramasser des objets et les rapporter dans la pièce de départ pour gagner. Le robot peut rester bloquer dans une pièce et il ne peut pas porter trop d’objets correspondant à un poids max. Si il est en surcharge, le joueur a perdu.
      http://bernard.vinot.net/exo/robot/robotApplet/AppletRobot.html
    • Le Robot Agile
      Initialisation du projet
      Equipe 2 Dvp + 1 client (25%) + 1 expert JDBC
      Une itération = 1 jour (8h)
      Méthode tendant vers XP
    • Que faire?
      UC-US
      Backlog planning de release
      Iter1
      Tâches
      Modélisation
      Tests
      Codage
      Remaniement
      Doc
      Demo
      Bilan
      Iter2
      ……….
    • Le diagramme des Use Case
    • BackLog du produit
      Les risques?
      Release complète livrée
      dans 3 jours
      Présence de l’expert JDBC
      obligatoire J2
    • Le Robot Agile
      Iter1 : Jouer sans persistance
    • Le Scénario : Jouer
      Deplacer:
      Le joueur choisit Nord, Sud, Est ou Ouest. Si possible, le robot va ds la pièce, sinon un message « pas d’issues »
      Prendre un objet
      Le système propose la liste des objets, le joueur en prend un (possibilité de perdre si surcharge – Fin du jeu)
      Deposer un objet
      Le système propose la liste des objets, le joueur en choisit un (possibilité de gagner - Fin du jeu)
    • I1 : Découpe en tâches
    • I1 : Modélisation (diag classe)
      Discussion avec
      Le client
    • I1 : Les IHM
    • I1 : Configurer Les objets
    • I1 : Exemple de tests (TR)
      Perdu : surcharge
      Gagné
      ………….
      Perdu
      Fichier de sortie (référence)
      Faites votre choix :
      Vous etes dans : Entree et vous …..
      Vous etes dans : Salon et vous …..
      Bascule Oui,Non
      Vous etes dans : Salonet vous …..
      …… nom:Bascule,poids:4000,solide
      Whisky Oui,Non
      Perdu
      Fichier d’entrée
      S
      P
      O
      P
      O
      EOF
    • I1 : Deplacer
    • I1 : Prendre
    • I1 : Deposer
    • I1 : Diagramme de classe
    • I1 : Exemple de test(TU) Junit-Deplacer
      import org.junit.Before;
      import junit.framework.TestCase;
      //TestDeplacer.java
      public class TestDeplacerextendsTestCase{
      private Robot r;
      @Before
      public voidsetUp() throws Exception {
      Piece e = new Piece ("entree");
      Piece s = new Piece ("salon");
      e.AjouterIssue(PointsCardinaux.sud, s);
      s.AjouterIssue(PointsCardinaux.nord,e);
      r = new Robot(e,10 );
      }
      public voidtestDeplacerOK()
      {
      try {
      r.Deplacer(PointsCardinaux.sud);
      assertTrue ( r.GetPiece().GetNom().equals("salon"));
      r.Deplacer(PointsCardinaux.nord);
      assertTrue ( r.GetPiece().GetNom().equals("entree"));
      } catch (ExceptionRobot e) {
      fail();
      }
      }
      public voidtestDeplacerNOK()
      {
      try {
      r.Deplacer(PointsCardinaux.nord);
      fail();
      } catch (ExceptionRobot e) {
      assertTrue (e.getMessage().equals
      ("pas d'issues dans cette direction"));}
    • I1 : Exemple de test(TU-TR) Junit-Gagner
      import org.junit.*;
      import junit.framework.TestCase;
      public class TestGagnerextendsTestCase{
      private Config c;
      @Before
      public voidsetUp() {
      c = new Config();
      }
      public voidtestGagner()
      {
      try{
      c.Deplacer(PointsCardinaux.nord);
      fail();
      }catch (ExceptionRobot e){}
      try{
      c.Deplacer(PointsCardinaux.sud);
      c.Deplacer(1);//sud
      c.Deplacer(3);//ouest
      c.Prendre("Pastis");
      ………………………….
      c.Deplacer(1);//sud
      c.Deplacer(3);//ouest
      c.Prendre("Gauguin");
      c.Deplacer(2);//est
      c.Deplacer(0);//nord
      c.Deposer("Gauguin");
      }catch (ExceptionRobot e)
      {assertEquals(e.getMessage(),"Bravo!!!!!");}
      }
    • I1 : JunitTestSuite
      import junit.framework.Test;
      import junit.framework.TestSuite;
      //AllTests.java
      public class AllTests {
      public static Test suite() {
      TestSuite suite = new TestSuite("Test for default package");
      //$JUnit-BEGIN$
      suite.addTestSuite(TestGagner.class);
      suite.addTestSuite(TestDeplacer.class);
      //$JUnit-END$
      return suite;
      }
      }
    • I1 : Passer les tests NOK
    • I1 : Codage
    • Tests JUNIT
    • I1 : Tests Finaux
    • I1 : Documentation Seq
    • I1 : Documentation : Classe
    • Remaniement
      Mettre une énumération pour les points cardinaux
      Faire une nouvelle classe conteneur d’objets pour éviter les doublons de code
      Retester
    • I1 : Nouveau diagramme
    • Bilan de l’itération 1
      Product backLog estimé à 10 points
      Itération estimée à 8H et réalisée
      Choisir des fonctionnalités de l’itération 2
      Soit la sérialisation (2 points de plus)
      Velocité = 10 + 2
      Iter1
    • I1 : Demo
    • Bilan de l’itération
      Qu’est ce qui a bien marché ?
      Qu’est ce qui n’a pas marché ?
      A-t-on besoin de qq chose ?
      Que faut-il ne plus faire ?
      Comment peut-on améliorer qq chose ?
      ?
      Binôme-Estimation-TU-DP-Moral-Qualité-Client présent
      Applet-Selenium
    • Le Robot Agile
      Iter2 : Configurer
      Prendre en compte les retours utilisateurs et les bugs
      Puis replanifier
    • Le Scénario : Configurer
      Charger une partie à partir d’un nom
      Sauvegarder la partie en cours en lui donnant un nom
      Fabriquer une nouvelle configuration
      Créer les objets
      Tableau (nom, poids, auteur)
      Chaise (nom, poids, solide ou non)
      Bouteille (nom, poids, degré, volume)
      Créer les pièces et les issues
      Ranger les objets dans les pièces
      Créer le robot (poidsMax, Piece)
    • I2 : Découpe en tâches
      IHM pour la configuration (3H)
      Schéma de la base (1H)
      Conversion des objets en base avec l’expert (JDBC – 6H)
      IHM-CONF
      Objets
      IHM JOUER
      ACCESS
      JDBC
      Fichier
      TU-Gagner
      TU-Ga
      Perdu
      Serialisation
    • IHM Configuration
    • I2 : Schéma & contenu de la base
    • I2 : JDBC – ce qu’explique l’expert
      DB_façadePersistent_object
      Persistent_object_list
      Statement
      executeQuery(sql : String) : ResultSet
      executeUpdate(sql : String) : int
      DBPersistentClass
      PersistentClassList
      PersistentClass
      create() : PersistentClass
      getData()
      new()
      read(searchCriteria : string) : PersistentClassList
      setData()
      add(c: PersistentClass)
      update(c : PersistentClass)
      command()
      delete(c : PersistentClass)
      new()
      Persistent_object_list
      DB_façade
      Persistent_object
      PersistenceClient
      Requestor
      SQL_helper
      Persistence -
      RDBMS - JDBC
      ResultSet
      Result
      getString() : string
      Drive_manager
      DB_connection
      DriverManager
      Connection
      createStatement() : Statement
      getConnection(url, user, pass) : Connection
    • Bilan de l’itération 2
      Product backLog estimé à 10H
      Itération estimée à 10H et réalisée
      Itération 3 est aussi terminée !!!
      Iter2
      Iter1
    • Bilan de la release
      Velocite
      30 points en 2 release 2*8H
      Velocite = 15
    • RQM
      Conclusion
      IHM-DOS
      Jouer
      Tests
      JUNIT
      IHM-LUXE
      Jouer
      Objets
      IHM-ACCESS
      Configurer
      Serialization
      JDBC
      IHM
      Configurer
      Fichier
      Access
      Editeur XML
      (notePad)
      Configurer
      Fichier-XML
      A vendre pour l’iter3
    • RQM
      <<Sing>>
      RQM
      ----------------------
      Energie
      ----------------------Deplacer(PC)
      <<TM>>Deposer
      Nourriture
      ----------------------
      energie
      Ne pas les compter en nbObjet