DM Génie Logiciel Projet Serious Game
Transcription
DM Génie Logiciel Projet Serious Game
NAIT SIDOUS Mehdi RICM 4 GINOUX Pierre-Henri DM Génie Logiciel Projet Serious Game 2013-2014 1 ETABLIR UN CAHIER DES CHARGES DE VOTRE PROJET INOVANT But du projet : - Evaluer scientifiquement si la gestualité manuelle peut aider des enfants présentant des troubles communicatifs (Trisomie 21) à mieux apprendre de nouveaux mots. - Proposer un outil facilement utilisable par un maximum d’utilisateurs implémentant une méthode d’apprentissage de nouveaux mots en utilisant la gestualité manuelle. Le cahier des charges a été établi grâce aux mails reçus ainsi qu'avec l'aide des chercheuses lors de notre rencontre. Cahier des charges de l'application : – Système de Log In permettant d'identifier chaque enfant de manière unique. – Application contenant un seul jeu dans un premier temps, mais avec la possibilité d'ajouter facilement de nouveaux jeux. – Système de stockage de données en local permettant d'enregistrer toutes les actions effectuées durant une partie et qui sont utiles pour les chercheuses. – Les données stockées peuvent être uploadées vers un site web ou bien récupérées directement. – Il est possible de modifier un fichier de configuration “général” qui affecte le niveau de l'ensemble des jeux proposés par l'application. – L'ensemble de l'application doit être réalisée en Python en utilisant Kivy. Cahier des charges du jeu : – Utiliser les ressources (images et sons) mis à disposition par les chercheuses. – Proposer un ou plusieurs jeux simples et ludiques. – La manière de jouer doit être intuitive. Le joueur doit être capable de comprendre les mécanismes de jeu en quelques minutes. – L’enfant peut faire bouger tous les personnages et les véhicules, et quand il clique sur un item, le jeu dit son nom. – Possibilité de dire à l’enfant quand il prend le mauvais personnage . – Intégration d'un système de récompense (nouveau contenu, vidéos...). 2 DIAGRAMME UML DE CONTEXTE Parent Help the children Data for researches Play and Learn Serious Game Application T21-Child Researcher 3 DIAGRAMME UML DE CAS D’UTILISATION Start a Game T21-child Change Game Settings <<include>> <<include>> Switch Game <<include>> Researcher Log In <<include>> <<include>> Download stored data Change General Settings Acteurs : Researcher, T21-Child, Parent CU : Start a Game, Change Game Settings, Switch Game, Log In, Change General Settings, Download stored data from data base 4 Parent DIAGRAMME UML DE CLASSE Dans ce diagramme, il y a très peu d’attributs car nous n’avons pas eu de consignes particulières les concernant. Nous sommes seulement chargés pour le moment de développer une application fonctionnelle, qui permet d’ajouter des jeux par la suite. L’ajout/suppression d’attributs est facile à faire care la base de donnée est créé en local et en dynamique. C’est seulement dans les versions ultérieures que nous introduirons une standardisation pour permettre de grouper toute les données dans une base en ligne (qui ne sera probablement pas réalisés durant le cursus de notre projet). Les associations entre la base de données la classe abstraite contenant les éléments de base du jeu ont une multiplicité 0..*. Cela peut paraitre étrange, mais comme le stockage des données se fait en local et que la base est créée en dynamique, il y a plusieurs table regroupant les statistiques d’un même jeu, l’ensemble des statistiques sauvegardées pour un jeu est contenu dans plusieurs bases de données. DataBase Object +Db_Name 0..* 0..* Person +IdPerson +Name +FirstName +NameObj +Size +Shape Character House 1..* 0..* Game_Interface 0..* 0..* Vehicle 1 1 Child Researcher Parent +Age Game1 5 Game2 GameApp DIAGRAMME UML D’OBJETS House_1 : House +UsePicture +IsUsedIn Jeremy : Child +IsPlayedBy +PlayTo +IsDraggedBy New_Game : Game1 +IsUsedIn +IsUsedBy +IsSavingIn +UsePicture +IsDragging Car_1 : Vehicle 6 DB_1 : DataBase DIAGRAMME UML DE SEQUENCE Parent/Researcher Child-T21 Identification Game_Interface Game1 DataBase 1 : Identification() 2 : Identification_Sucess() 3 : Choisir un Jeu() 4 : LancerUnePartie() 5 : Jeu() 6 : Sauvegarde des Actions() 7 : Affichage score final() 8 : Retour au Menu() On a ici simplifié un peu par rapport à la réalité, notamment au niveau des sauvegardes dans la base de données. 7 DIAGRAMME UML D’ETAT Sauvegarde dans la DataBase Identification Log In Menu Principal Choix Du Jeu Début du Jeu BoutonOptGen()/permission=true BtnOpt() BtnBack() BtnBack() Options du jeu BtnQuit() BtnQuit() Options Générales BtnQuit() Ici aussi on a un peu simplifié le diagramme par rapport à la réalité pour que cela reste lisible sur une seule page. 8 EXPRESSIONS OCL Context Child inv : Inv : Self.age >0 and Self.age < 20 Context Game_Interface::updateSettings() pre: IsResearcher(self.id) 9 EDITEUR UTILISE Nous avons choisis d’utiliser l’éditeur StarUML. Nous avons fait ce choix car nous avions déjà utilisé cet éditeur par le passé, c’est un éditeur gratuit, simple d’utilisation et très efficace pour ce que l’on fait. Sa prise en main est très rapide, il suffit de choisir le type de diagramme que l’on veut créer et d’ajouter toute les composantes nécessaires grâce à la barre d’outils proposée. Les modifications sont simples à apporter, il est très facile d’optimiser le placement de tous les éléments pour obtenir un meilleur rendu. De plus, la fonction « copy diagram » permet de coller directement le diagramme dans un fichier Word sans passer par un logiciel annexe. On notera la possibilité de personnaliser la police, les couleurs et divers paramètres pour embellir les diagrammes. De plus, ce logiciel fonctionne très bien sous Windows, que nous avons choisis d’utiliser pour effectuer ce DM. Nous avons également consultés des avis en ligne avant de nous lancer avec StartUML, et nous avons trouvés des avis positifs d’étudiants l’ayant utilisé au cours de leur parcours scolaire. Nous avons par conséquent utilisé cet outil pour crée, optimiser et personnaliser tous nos diagrammes pour ce DM, en les redimensionnant une fois sur Word. 10 BONUS 1 Pour notre projet, nous avons choisi de ne pas utiliser d'outil de génération de code à cause de la singularité du framework Kivy. En effet, il peut être difficile de gérer l'arbre des widgets et les callbacks quand l'application devient grande. Pour résoudre ce problème, Kivy encourage la séparation du code (dans le fichier file.py) et de l'agencement des widgets (dans le fichier file.kv). Notre manque d'expérience avec ce framework nous a poussés à produire du code simple et clair. D'autre part, nous utilisons Eclipse+PyDev comme environnement de travail, et n'avons pas trouvé d'outil de génération de code stable. 11
Documents pareils
Uml 2 Contexte mfworld42 Free Fr
Figure 1: Recensement de tous les acteurs en interaction avec le système .......................................... 2
Figure 2: Le système vu comme une « boîte noire » ................................