syllabus - Université de Lille

publicité
Université De Lille 1 - UFR d'IEEA - LIFL
SYLLABUS
Titre du Cours : PJE (Projet Encadré) - IDM et Génération d'Interface Utilisateur (UI) pour
Androïd
Groupe : 3
Responsable : Cedric Dumoulin
DESCRIPTION DU CONTENU
Ce module vise à apprendre à concevoir et développer un projet réalisé en équipe (en binôme).
Dans ce module, l'étudiant(e) réalisera un projet dont le sujet est proposé en début de semestre.
L'étudiant(e) utilisera un outils de développement intégré comme Eclipse, ainsi qu'un outils de
partage et versioning comme SVN.
Le projet "IDM et Génération d'UI pour Androïd" permettra en outre à l'étudiant(e) d'aborder les
bases de l'IDM (Ingénierie Dirigée par les Modèles) et des UI Androïd. La partie IDM abordera la
métamodèlisation avec EMF, les modèles, les transformation de modèles avec QVTo, la
génération de code avec Acceleo. La partie UI Androïd abordera la conception d'applications
Androïd, notamment les UI ainsi que la simulation des applications. Les étudiants qui le désirent
pourront déployer les applications générées sur leur smartphone.
Tout les développement se font avec Eclipse, en utilisant Java, EMF, Papyrus, QVTo, Acceleo,
XText.
OBJECTIFS DU MODULE
A la fin du cours, l'étudiant(e) devrait être capable de :








Travailler en équipe sur un projet
Utiliser un outil de développement intégré comme Eclipse
Utiliser un outil de partage et versionning comme GIT ou SVN
D'expliquer le principe de l'approche IDM
De construire et maintenir un métamodèle avec EMF
De générer et utiliser les artefacts EMF à partir du métamodèle:
o Les classes Java pour manipuler des instances (modèles)
o Les diagrammes proposant une syntaxe arborescente pour écrire des modèles
correspondant au métamodèle
De générer du code ou du texte à partir d'un modèle (avec Acceleo)




D'expliquer le principe des applications Androïd
D'écrire des UI simples pour les applications Androïd
De compiler et tester sur un simulateur une application Androïd
Si il ou elle le désire, l'étudiant(e) pourra apprendre à déployer une application Androïd sur un
smartphone équipé de Androïd. Dans ce cas, il devra le faire sur son propre matériel, l'université
ne fournissant pas de matériel Androïd.
SUJET DU PROJET
"IDM et Génération d'Interface Utilisateur (UI) pour Androïd"
L'objectif de ce projet est de générer des UIs pour le système Androïd à partir d'une
représentation abstraite de cette UI. La représentation abstraite est appelé "un modèle de la UI" :
ce modèle représente la UI à générer.
Dans le système Androïd, une application ainsi que la UI sont décrites sous la forme de classes
Java. L'ensemble des classes forment l'application.
L'approche IDM permet de proposer des concepts de haut niveau d'abstraction (comme
composant, texte, button, ...), qui sont décrits dans un métamodèle. Ensuite, il est possible de
construire des modèles utilisant ces concepts (par exemple assembler des composants contenant
des Textes et des buttons). La construction de ces modèles se fait à l'aide d'un langage (aussi
appelé syntaxe concrète) qui peut être textuel, graphique ou/et arborescent.
L'approche IDM permet aussi de transformer des modèles conforme à un métamodèle vers
d'autres modèles conforment à d'autre métamodèles. Il est aussi possible de générer du texte ou
du code à partir des modèles.
Le but de l'IDM est de permettre de modéliser une application, ou dans notre cas des UIs, à un
haut niveau d'abstraction, et de préférence sans références à une quelconque technologie cible.
Ensuite, à partir d'un seul modèle, il est possible de générer par transformation et génération de
texte, le code pour différentes technologies. Par exemple, dans notre cas, il sera possible de
modéliser la UI puis de la générer vers différents systèmes (Androïd, IOS, ...).
L'objectif du projet est donc de proposer un mini langage de haut niveau d'abstraction
permettant de modéliser des UI pour systèmes mobiles, puis de générer le code correspondant
pour le système Androïd (et éventuellement pour d'autre système).
Ce projet est la continuité d'un projet déjà existant. L'objectif de l'étudiant(e) sera d'ajouter de
nouvelle fonctionalitées au langage, comme la gestion des listes ou la connexion aux classes du
domaine.
DEROULEMENT ET HORAIRES DES COURS-TD ET TP
Les Cours-TD et TP se font en salle machine aux horaires et lieu spécifiés dans le tableau cidessous.
Intitulé
Cours-TD
TP
Horaire
Jeudi 13h30 - 15h00
Jeudi 15h15-17h15
Lieu
M5-A11
M5-A11
DESCRIPTION DES THEMES ABORDES
Prise en main d'Eclipse


Installation d'Eclipse avec L'environnement IDM et Android
Découverte de l'environnement de développement
Travailler en équipe


Partager les sources à l'aide de GIT ou SVN
Faire remonter les bugs et les traiter (sous reserve)
Initiation a Androïd



Principe de base d'une application Androïd
Réalisation des interfaces sous Androïd
Mini projet : réaliser une petite application Android (mini calculette ?)
Initiation à l'IDM




Principe et objectifs de l'IDM
Construire un métamodèle avec Papyrus et EMF
Générer les artefacts d'un métamodèles avec EMF
Mini projet : Construire un métamodèle simplifié de Java
La génération de code à partir de modèles



principe
génération de code avec Acceleo
Mini projet : Générer du code Java à partir de modèle répondant au métamodèle Java
Réalisation du projet



Proposition / enrichissement d'un mini langage pour la description de UI Android
 Prise en main du code du projet existant
 Proposition de la nouvelle fonctionnalité à ajouter (liste ? association avec le
domaine ? enchainement des pages ?)
 Propositions des concepts du langage
 conception du métamodèle
génération du code Android à partir des modèles
Intégration du générateur dans Eclipse
LIENS ET BIBLIOGRAPHIE








Développement Androïd
o http://developer.android.com
Papyrus
o http://www.eclipse.org/ papyrus/
EMF
o http://www.eclipse.org/ emf/
M2T / Acceleo
o www.eclipse.org/acceleo/
o http://www.omg.org/spec/MOFM2T/1.0/
XText
o www.eclipse.org/Xtext/
o wiki.eclipse.org/Xtext
QVT / QVTo
o fr.wikipedia.org/wiki/QVT
o www.omg.org/spec/QVT/1.0
o http://www.eclipse.org/m2m/qvto/doc/
Eclipse for Mobile developpers
o http://www.eclipse.org/downloads/
Eclipse Modeling Tools
o http://www.eclipse.org/downloads/
EVALUATIONS
Les étudiants doivent effectuer plusieurs rendus de leur projet à des dates spécifiées. Ils doivent
aussi faire un rendu final, accompagné d'un rapport de projet.
L'évaluation du module se fait sur :



les rendus du projet
le rapport du projet
l'examen de fin de semestre
Téléchargement