Skip to topic | Skip to bottom
Home
Linfo
Linfo.ProjetDeLicence201415r1.29 - 26 Apr 2015 - 19:13 - PhilippeCollettopic end

Start of topic | Skip to actions

Projet de Licence (2014-2015)

Fiche signalétique

Volume : 7 * 1h30 de cours, 10 * 3h de TD par sujet (encadrement de 2h sur les 3).

Parcours : Informatique (obligatoire)

Semestre : 6

Objectif : Réalisation, en équipe, d'un développement Java/Android avec interface graphique sur tablette, avec gestion explicite du projet et gestion d'un changement conséquent en cours de réalisation.

Intervenants

Cours : Philippe Collet, Philippe Renevier

TD/suivi des projets : Philippe Collet, Philippe Renevier

Organisation

Cours le jeudi matin, TD de suivi le jeudi matin :

  • 6h de cours sur le développement logiciel et la gestion de projet (agilité, TDD, mocking)
  • 12h de cours sur les principes d'IHM, leur réalisation sur Android
  • 10 séances de TD de suivi du projet

Support

Les exemples :

  • Exemple de Fragment, Menu, Sauvegarde Locale et Test Unitaire : ExempleTest.zip
  • Exemple d'AsyncTask : AsyncTask.zip
  • Exemple de CountDownTimer et de lancement d'activités (sans résultat) : CountDown.zip
  • Exemple MediaPlayer / Service (Il faut ajouter un fichier song.mp3 dans res/raw. MediaIntentService ne fonctionne pas avec MediaPlayer, il est là comme illustration théorique) : TestMedia.zip
  • Exemple de Gesture (incrément de l'exemple du CountdownTimer) : Gesture.zip
  • pour charger / écrire dans des fichiers "public" :
private void loadConfig(EditText login) {   
        // getExternalFilesDir is a method of Context
        File fileConf = new File(getExternalFilesDir(null), "nomdufichier"); // the file is in /sdcard/android/data/<full qualified name of the application>/files/
        if (fileConf.exists()) {
            try {
                BufferedReader br = new BufferedReader(new FileReader(fileConf));
                String line = br.readLine(); // read a line, return a string....

            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
  • pour tester si un "sensor" est disponible
// inside an activity
PackageManager pm = getPackageManager();

for(FeatureInfo fi : pm.getSystemAvailableFeatures()) {
           // show in the logcat all available sensors
            Log.d("Feature", "name = "+fi.name+" / "+fi);
}

// test if SENSOR_STEP_COUNTER is available
if (pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_STEP_COUNTER)) {
            // yes, it is
        }
else {
          // no, it isn't...
        }

Evaluation

  • une note de TP IHM (10%) : maquette(s) et tâches ; découpage des maquettes en fonction des jalons (à placer sur le repository git dans un dossier "doc/maquette" pour le vendredi 20 février, 23h59)
  • une note de "gestion de projet" (20%)
    • à rendre pour le vendredi 20 février, 23h59 : les jalons (cad les versions, elles sont uniquement manipulables par le chef de projet) avec leur date prévue de livraison, le découpage en tâche du premier jalon de développement visible dans le kanban créé pour votre projet, et la répartition des tâches avec une prévision de temps, le tout grâce sur la plateforme JIRA mise à disposition
  • une note de soutenance (20%),
  • une note de réalisation du projet (architecture, code, test, couverture, prise en compte du changement, évolution des interfaces graphiques, etc.) (50%)

Pas de 2nde session car rattrapage impossible à organiser dans la même année universitaire.

Sujet unique

Il s'agit de réaliser un système informatique permettant de réaliser des parcours de santé.

Un parcours de santé peut être défini par différents moyens :

  • un temps précis (en secondes) entre des exercices,
  • un nombre de pas à réaliser entre les exercices (l'application détecte les pas),
  • un déplacement précis d'un point à un autre entre les exercices (l'application détecte la position par le GPS),
  • une combinaison des moyens précédents.

Chaque exercice consiste en une activité physique mesurable à l'aide de l'application, par exemple :

  • flexions, sauts, mouvements divers en tenant la tablette/le smartphone,
  • petites courses rapides,
  • etc.

Tout au long du parcours, l'application mesure le temps, la réalisation des différents exercices afin de les enregistrer et de les comparer avec les précédentes exécutions du même parcours :

  • pour un intervalle de temps entre exercices, on comptera la distance parcourue et le nombre de pas,
  • pour un nombre de pas, on comptera le temps mis et la distance parcourue,
  • etc. Une fois un parcours déjà fait, l'application peut être utilisée en mode "ghost" en comparant en temps-réel la réalisation du parcours et des exercices avec la meilleure performance.

L'architecture du système sera composé :

  • d'une partie mobile sous Android (1 tablette fournie par équipe)
  • d'une partie "serveur" qui contiendra les données des parcours (positions, exercices, classement individuel, etc.)

Changement de cahier des charges du 26 mars

Le client demande une fonctionnalité supplémentaire prioritaire :

  • publication des résultats des exercices (après une séance) sur un réseau social (Facebook, twitter ou autre)

Planning

  • jeudi 22 janvier : 8h-11h15 : cours (P. Collet)
  • jeudi 29 janvier : 8h-11h15 : cours (P. Renevier)
  • jeudi 5 février : 8h-11h15 : cours (P. Renevier) / 11h15-13h : TP (démarrage du projet)
  • jeudi 12 février : 8h-11h15 : cours (P. Collet) / 11h15-13h : TP (atelier)
  • jeudi 19 février : 8h-9h30 cours (P. Renevier)/ 9h45-13h : TP
  • jeudi 26 février : pause pédagogique
  • jeudi 5 mars : 8h-9h30 cours (P. Renevier) / 9h45-13h : TP
  • jeudi 12 mars : 8h-9h30 cours (P. Renevier) / 9h45-13h : TP
  • jeudi 19 mars : 8h-11h15 : TP (ronde des facs, TP plus tôt)
  • jeudi 26 mars : 9h45-13h : TP + changement dans le cahier des charges (voir ci-dessus)
  • jeudi 2 avril : 9h45-13h : TP
  • jeudi 9 avril : 9h45-13h : TP
  • jeudi 16 avril : 9h45-13h : TP
  • jeudi 23 avril : soutenance sur toute la matinée

Livraison et soutenance

Contenu de la livraison finale

La livraison finale doit contenir :

  • code, test, et maquettes initiales disponibles sur le repository git
  • le dernier commit de référence doit être taggé FINAL (voir ci-dessous)
  • un fichier README.pdf doit expliqué brièvement l'état de votre projet, et surtout vos choix de conception (définition d'un exercice, d'un parcours, répartition client / serveur, etc.)

Gestion des tags en git

Pour tagger la tête de votre repository local avec un tag (nommé ESSAI ici) :

  • git tag ESSAI
  • git push origin ESSAI
Vous pouvez aussi exécuter "git push origin --tags" pour pusher tous les tags existants à la fois.

Si vous souhaitez déplacer le tag FINAL, vous pouvez d'abord l'effacer :

  • git tag -d ESSAI
  • git push origin :refs/tags/ESSAI
Puis retagger comme vu précédemment.

Pour information, je clonerai votre projet par une commande "git clone" classique, puis je récupérerai votre code par :

  • git checkout FINAL
Si vous n'êtes pas capable d'exécuter la dernière commande sur un autre clone de votre git, c'est que le tag est mal fait, ou pas pushé...

Déroulement de la soutenance

Chaque soutenance dure 25 minutes (amener un portable avec une sortie vga) :

  • 15 minutes de présentation : chaque présentation doit faire intervenir tous les membres de l'équipe de façon équivalente. La soutenance doit idéalement aborder les thèmes suivants :
    • Introduction et rappel du sujet
    • Fonctionnalités réalisées : bilan à gros grain de ce qui a été fait, est resté en chantier, a été écarté par rapport à ce qui était attendu : évolution de la gestion du projet (contenu des jalons)
    • Grands choix de conception et approche suivie : les jalons et tickets doivent vous servir à facilement établir, au fur et à mesure de votre avancement, les éléments à mettre en avant dans cette partie
    • Evolution des IHM depuis les maquettes
    • Problèmes rencontrés et solutions apportées (correction, changement dans la conception, abandon d'une fonctionnalité...)
    • Éventuellement mini-démo finale (attention au timing)
  • 10 minutes de question :
    • Chaque membre du projet doit être capable de répondre aux questions sur les choix de conception généraux, les parties qu'il a développées, etc.

Planning:

  • 8h15 : LTIPLIQUB : Dib Dominique, Finkelstein Arthur, Giangrasso Rémy, Heitzler Charles (4)
  • 8h50 : LTIPLIQUA : Diana Resmerita, Kévin Cauchteur, Raphael Touitou (3)
  • 9h25 : LTIPLIQUC : LEPETIT Guélaud, BAYA Aymen, YOUSSEF Yassine (3)
  • 9h50 : PAUSE
  • 10h05 : LTIPLIQUF : ROUIS Myriam, EL HAJAMI Mehdi, LIMAM Mohamed (3)
  • 10h40 : LTIPLIQUE : Audibert Julien, Bergmann Anna Katharina, Ellapin Mathias, Fagard Christophe (4)
  • 11h15 : LTIPLIQUD : Iilunga-katumba Joel, Moussa Diene (2)

Equipes

  • LTIPLIQUA : Diana Resmerita, Kévin Cauchteur, Raphael Touitou (3)
  • LTIPLIQUB : Dib Dominique, Finkelstein Arthur, Giangrasso Rémy, Heitzler Charles (4)
  • LTIPLIQUC : LEPETIT Guélaud, BAYA Aymen, YOUSSEF Yassine (3)
  • LTIPLIQUD : Iilunga-katumba Joel, Moussa Diene (2) + Papasergio Anthony
  • LTIPLIQUE : Audibert Julien, Bergmann Anna Katharina, Ellapin Mathias, Fagard Christophe (4)
  • LTIPLIQUF : ROUIS Myriam, EL HAJAMI Mehdi, LIMAM Mohamed (3)

-- PhilippeCollet - 09 Apr 2015
to top

I Attachment sort Action Size Date Who Comment
ProjetLic-Org-1415.pdf manage 146.5 K 21 Jan 2015 - 19:42 PhilippeCollet  
ProjetLic-TDD-Mockito-1415.pdf manage 151.0 K 21 Jan 2015 - 19:42 PhilippeCollet  
aTestDrivenDemo-1415.pdf manage 862.7 K 21 Jan 2015 - 19:43 PhilippeCollet  
PL-s6-PRG-01-IHM.pdf manage 6163.1 K 29 Jan 2015 - 07:07 PhilippeRenevier cours IHM
PL-s6-PRG-02-IntroAndroid.pdf manage 3609.2 K 29 Jan 2015 - 08:36 PhilippeRenevier intro Android
PL-s6-PRG-03-Android-Fragement.pdf manage 2584.9 K 19 Feb 2015 - 06:51 PhilippeRenevier seconde partie de l'intro android
ProjetLic-TDD-Kanban-Planning-1415c.pdf manage 367.9 K 11 Feb 2015 - 21:26 PhilippeCollet  
ProjetLic-Sonar-1415.pdf manage 142.4 K 11 Feb 2015 - 22:10 PhilippeCollet  
Metrics-Lanza-Extract-1314c.pdf manage 2789.4 K 11 Feb 2015 - 22:11 PhilippeCollet  
PL-s6-PRG-04-Android-test.pdf manage 2728.4 K 19 Feb 2015 - 06:52 PhilippeRenevier tests unitaires et android
ExempleTest.zip manage 57.1 K 19 Feb 2015 - 08:39 PhilippeRenevier Exemple de Fragment, Menu, Sauvegarde Locale et Test Unitaire
PL-s6-PRG-05-Android-thread.pdf manage 3943.8 K 04 Mar 2015 - 10:00 PhilippeRenevier les thread en java et en android
AsyncTask.zip manage 117.8 K 04 Mar 2015 - 10:04 PhilippeRenevier exemple d'AsyncTask
CountDown.zip manage 79.0 K 04 Mar 2015 - 10:05 PhilippeRenevier Exemple de CountDownTimer? et de lancement d'activités (sans résultat)
PL-s6-PRG-06-Android-Interactions.pdf manage 2896.2 K 12 Mar 2015 - 10:32 PhilippeRenevier Interactions (Gesture, Audio, Sensors) & Service
TestMedia.zip manage 30.9 K 12 Mar 2015 - 10:35 PhilippeRenevier Exemple MediaPlayer? / Service. Il faut ajouter un fichier song.mp3 dans res/raw. MediaIntentService? ne fonctionne pas avec MediaPlayer?, il est là comme illustration théorique
Gesture.zip manage 410.6 K 18 Mar 2015 - 17:00 PhilippeRenevier Exemple de Gesture (incrément de l'exemple du CountdownTimer?)

You are here: Linfo > ProjetDeLicence201415

to top

Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding WIKIDeptinfo? Send feedback