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

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 » ................................

Plus en détail