Détail du sujet

30/11/2018 Sujet 37 :  Modélisation automatique des applications Android sous forme de graphe
Auteur : Sarra Habchi  Ecrire 
(Responsable Informatique : Romain Rouvoy  Ecrire )

Contexte

Avec des millions d’applications disponibles en open-source sur des plates-formes comme GitHub, le concept de Big Code a émergé [1]. L’idée est de profiter de cette grande masse de données structurées et des avancés dans le domaine du machine learning pour apprendre des nouvelles tâches de développement. Cet apprentissage permettrait de résoudre divers problèmes de génie logiciel, comme la correction de bugs et la génération automatique de code source [2].


Problématique

Cependant, la structure des applications n’est pas toujours adaptée pour l’application des algorithmes de machine learning, d’où le besoin d’une représentation plus abstraite.

En effet, la représentation en graphe est une des solutions les plus intuitives mais aussi les plus efficaces pour représenter les complexes relations entres les entités du code source. Ainsi, des études précédentes ont déjà proposé différentes représentations en graphes du code source [3].


Travail à effectuer

L’objectif de ce projet est de s’inspirer de ces études pour proposer et générer une représentation en graphe des applications Android. Les applications Android sont désormais des applications complexes avec des spécificités techniques et métiers. Ainsi, la représentation en graphe doit considérer les structures conceptuelles et sémantiques de ces applications.

La réalisation de ce projet consiste à accomplir les tâches suivantes:
1) Faire un état de l’art des représentations en graphe pour le code source,
2) Choisir ou proposer une représentation adéquate pour les applications Android,
3) Implémenter un outil qui génère la représentation. Pour cet effet, nous avons déjà des outils d’analyse des applications Android qui peuvent être réutilisés.


Bibliographie

[1] http://learnbigcode.github.io/
[2] https://github.com/src-d/awesome-machine-learning-on-source-code
[3] Allamanis, M., Brockschmidt, M., & Khademi, M. (2017). Learning to represent programs with graphs. arXiv preprint arXiv:1711.00740.


Autres références:

[4] Bichsel, B., Raychev, V., Tsankov, P., & Vechev, M. (2016, October). Statistical deobfuscation of android applications. In Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security (pp. 343-355). ACM.
[5] Bielik, P., Raychev, V., & Vechev, M. (2016, June). PHOG: probabilistic model for code. In International Conference on Machine Learning (pp. 2933-2942).
[6] Allamanis, M., Barr, E. T., Devanbu, P., & Sutton, C. (2018). A survey of machine learning for big code and naturalness. ACM Computing Surveys (CSUR), 51(4), 81.

Liens associés :
Sujet non-attribué