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