Accueil > FR > Informations générales > Stages > Analyse de code mobile Objective-C (iOS)

Analyse de code mobile Objective-C (iOS)

Profil Etudiant en fin 2ème ou 3ème master en informatique
Prérequis Bonnes notions de génie logiciel, bon niveau de programmation OO et expérience en programmation mobile (si possible Objective-C)
Durée min 8 semaines - stage adapté à la durée

Contexte

Les apps mobiles sont loin d’être parfaites (coté sécurité, gaspillage des ressources système, plantage...), malgré le screening (souvent opaque) mis en place par les "markets" d’applications. L’utilisateur doit en fin de compte faire confiance à la réputation d’une application qui n’est en général pas aisé à établir. Des études montrent que toutes les plateformes sont impactées (voir figure).

Dans le cadre de ce stage, nous nous intéressons à la plateforme iOS (iPhone, iPad) d’Apple et plus spécifiquement à son langage natif de développement : Objective-C. Il s’agira de contribuer à la mise en place d’une analyse de code indépendante des stores pouvant donner plus de garantie

  • au développeur (qui désire s’assurer de la qualité de son application)
  • au client, par exemple si le code est disponible en open source ou s’il est rendu disponible à la plateforme d’analyse qui agit comme tierce partie de confiance

A cette fin, le département SSE dispose d’une plateforme d’analyse basées sur un format de manipulation du code nommée QualiXML (notamment parce que les représentations de références passent pas ce format) qui supporte déjà JAVA et C++, il s’agira d’étendre le support à Objective-C. Par ailleurs le département dispose aussi d’outils Objective-C tels que OCLint et d’experts internes à la fois en analyse de code et en programmation Objective-C.

Travail à réaliser

Le travail consistera à concevoir, développer et expérimenter une solution d’analyse de code source adaptée aux caractéristiques spécifiques de code mobile Objective-C.

Le travail comportera les étapes suivantes :

  • parfaire ses connaissances avec la plateforme iOS notamment les aspects performance et sécurité
  • état de l’art des outils existants/émergeant adapté à l’analyse de ce type d’application. Une liste de quelques un de ces outils est disponible dans la section référence.
  • établissement d’un modèle de qualité ciblant les applications mobiles (des modèles qualité pour des applications client-serveur standard sont disponibles). En particulier les axes de sécurité/confiance et de performance (utilisation des ressources) seront développés en profondeur et de manière spécifique au domaine mobile.
  • l’implémentation d’outils permettant d’évaluer automatiquement le modèle de qualité
  • le développement d’un plug-in SonarQube permettant de bénéficier des nombreux services offerts par cette plateforme open source

Le travail sera validé progressivement sur des exemples d’abord partiels (problèmes spécifiques) puis des applications complètes de taille et complexité croissante. En fin de stage, une analyse pourra être réalisée en collaboration avec une ou plusieurs entreprises collaborant avec le CETIC et ayant des besoins en la matière.

Les développements seront réalisés en Java et une attention particulière sera portée à la qualité du code développé.

Ce stage permettra à l’étudiant de gagner en autonomie dans un milieu propice au développement de ces compétences professionnelles. Tout particulièrement, ce stage permettra à l’étudiant d’approfondir ses connaissances sur l’écosystème iOS et les spécificités techniques de ses librairies. Il permettra également de comprendre les enjeux et la valeur de l’utilisation des bonnes pratiques lors d’un développement logiciel, ainsi que d’acquérir une expertise en matière de qualité logicielle tant en matière de méthodes que d’outils.

Références

iOS
Objective-C
OCLint
SonarQube