La facilité avec laquelle nous téléchargeons des applications mobiles sur nos téléphones et nos tablettes n’a d’égale que la rapidité avec laquelle nous les supprimons. «Une application sur cinq est désinstallée après seulement une journée, et seulement 3 sur 10 sont encore utilisées trois mois après leur téléchargement», souligne la professeure du Département d’informatique Naouel Moha, spécialisée dans l’évaluation de la qualité et de l’évolution des systèmes informatiques.
Depuis 2014, Naouel Moha et ses collègues du Laboratoire de recherche sur les technologies émergentes de l’Internet (LATECE) analysent des applications mobiles dont le code source est en libre accès avec des chercheurs de l’Université de Lille, en France, dans le cadre du groupe de recherche SOMCA. Ce groupe est soutenu par l’Institut national de recherche en informatique et en automatique (Inria) et par le Fonds de recherche du Québec – Nature et technologies. «La première thèse que j’ai codirigée dans le cadre de ce partenariat était celle de Geoffrey Hecht (Ph.D. informatique, 2017), qui portait sur la détection et l’analyse de l’impact des défauts de code dans les applications mobiles, et qui a donné lieu à la publication d’un article très référencé dans le domaine», indique Naouel Moha, qui coordonne les activités du groupe de recherche.
Un autre langage
Selon les chiffres publiés à la fin de l’année 2019, on trouvait 2,57 millions d’applications disponibles sur Google Play pour les utilisateurs Android, tandis que le App Store d’Apple en proposait 1,84 million. «Les applications sont analysées avant leur publication, surtout pour les failles de sécurité, mais les tests auxquels elles sont soumises ne relèvent pas nécessairement les défauts de conception», explique Naouel Moha. Les raisons pour lesquelles nous supprimons une application sont variées, mais, la plupart du temps, la facilité d’utilisation et/ou la performance sont en cause, ajoute-t-elle. «Pour qu’une application soit optimale, il faut pouvoir naviguer facilement d’une page à l’autre, obtenir une réponse rapide lorsqu’on effectue une requête, et son fonctionnement doit consommer peu d’énergie. Or, toutes ces caractéristiques sont liées à la conception de l’application.»
Contrairement à ce que l’on pourrait penser, la conception d’une application mobile n’a rien à voir avec celle d’un logiciel «traditionnel» pour ordinateur. «Il s’agit d’un autre langage», nous apprend Naouel Moha. Les gens qui conçoivent les applications mobiles, explique-t-elle, n’ont pas besoin d’être des experts en codage. «Par exemple, si je souhaite créer une application utilisant les taux de la Bourse, il est possible de trouver ce que l’on appelle un “service” pour cela dans le cloud. Je peux très bien concevoir une application mobile en combinant plusieurs services existants. C’est ce que l’on nomme des appels de services.»
Sous sa direction, le diplômé Abdelkarim Belkhir (M.Sc. informatique, 2019) a consacré son mémoire aux bonnes pratiques en matière d’appels de services en analysant plus de 1500 applications Android de toutes sortes: jeux, réseaux sociaux, finance, éducation, voyage, communication, etc. L’article tiré de son mémoire lui a valu le Prix du meilleur article présenté dans le cadre de la 6e conférence internationale MOBILESoft, qui avait lieu à Montréal l’an dernier. L’une des coauteurs de l’article, la doctorante Manel Abdellatif, qui est également chargée de cours à l’ÉTS, a remporté plusieurs prix pour ses articles au cours des dernières années, souligne Naouel Moha, qui codirige sa thèse.
Lorsqu’ils analysent des applications et qu’ils décèlent des défauts de conception, les chercheurs du SOMCA alertent les développeurs afin de leur recommander de meilleures pratiques. «Il existe des répertoires listant les vulnérabilités connues, mais les développeurs ne les consultent pas systématiquement, explique la professeure. Certains tiennent compte de nos recommandations et sont heureux d’échanger avec nous, d’autres non. L’idéal, ce serait qu’ils intègrent dans leur environnement de développement une étape d’évaluation de la qualité et de l’évolution de leur application.»
La sécurité des données
Y a-t-il des applications plus vulnérables que d’autres ? «Certainement, répond Naouel Moha. On ne peut pas comparer, par exemple, une application de base comme une calculatrice avec une application qui renfermerait des données médicales. Quand on récupère des librairies de code par appel de services, il se peut qu’une partie de ce code soit vulnérable. Plus le code est complexe, plus il y a de risques d’y avoir des failles de sécurité.»
Récemment, une équipe de chercheurs du Luxembourg spécialisée en défauts de sécurité s’est jointe à l’équipe SOMCA. «Le doctorant Arthur Sawadogo, qui est en cotutelle, s’intéresse aux vulnérabilités dans le code des logiciels en développement libre», précise Naouel Moha, qui se réjouit de cette nouvelle collaboration avec l’Université du Luxembourg.
Les avis des usagers
Existe-t-il une corrélation entre les évaluations des utilisateurs et la qualité du code d’une application? «Nous n’avons pas réussi à le démontrer, indique Naouel Moha. Il y a sans doute des applications mal codées qui sont appréciées des utilisateurs, et donc évaluées positivement, tant que les failles ne sont pas apparentes et n’entravent pas l’expérience. Si les usagers détectent des problèmes de performance ou de consommation de batterie, ils ne tarderont pas à supprimer l’application et à l’évaluer négativement.»
La ville intelligente
Le développement des applications mobiles n’est pas un domaine parvenu à maturité, constate Naouel Moha, qui s’intéresse de plus en plus aux applications utilisées dans le contexte de la ville intelligente. «Les applications connectées dans un environnement dynamique comme celui d’une ville font interagir des masses de données, dont plusieurs proviennent des citoyens. Cela soulève la question de la sécurité des données et complexifie d’autant plus le développement des applications mobiles», conclut la professeure.