L’analyse exploratoire de logiciels fait référence aux analyses spécifiques aux systèmes logiciels et aux processus de développement de logiciels associés. Il vise à décrire, prévoir et améliorer le développement, la maintenance et la gestion de systèmes logiciels complexes. Les méthodes et techniques d’analyse logicielle reposent généralement sur la collecte, l’analyse et la visualisation des informations trouvées dans les multiples sources de données dans le cadre des systèmes logiciels et de leurs processus de développement logiciel — l’analyse logicielle « la transforme en informations exploitables pour éclairer de meilleures décisions liées à logiciel ».
L’analyse exploratoire de logiciels représente un composant de base du diagnostic logiciel qui vise généralement à générer des résultats, des conclusions et des évaluations sur les systèmes logiciels et leur mise en œuvre, leur composition, leur comportement et leur évolution. L’analyse exploratoire de logicielles utilise et combine fréquemment des approches et des techniques issues des statistiques, de l’analyse des prévisions, de l’exploration de données et de la visualisation scientifique. Par exemple, l’analyse exploratoire de logicielles peut cartographier les données au moyen de cartes logicielles permettant une exploration interactive.
Les données explorées et analysées par l’analyse exploratoire de logiciels existent dans le cycle de vie du logiciel, y compris le code source, les spécifications des exigences logicielles, les rapports de bogues, les cas de test, les traces/journaux d’exécution et les commentaires des utilisateurs du monde réel, etc. Les données jouent un rôle essentiel dans le développement de logiciels modernes, car cachés dans les données se trouvent les informations sur la qualité des logiciels et des services, l’expérience que les utilisateurs de logiciels reçoivent, ainsi que la dynamique du développement logiciel.
Les informations perspicaces obtenues par l’analyse exploratoire de logiciels sont des informations qui transmettent une compréhension ou des connaissances significatives et utiles pour l’exécution de la tâche cible. En règle générale, des informations pertinentes ne peuvent pas être facilement obtenues par une enquête directe sur les données brutes sans l’aide de technologies analytiques.
Les informations exploitables obtenues par l’analyse exploratoire de logiciels sont des informations sur lesquelles les praticiens du logiciel peuvent proposer des solutions concrètes (meilleures que les solutions existantes, le cas échéant) pour accomplir la tâche cible.
L’analyse exploratoire de logiciels se concentre sur la trinité des systèmes logiciels, des utilisateurs de logiciels et du processus de développement de logiciels :
- Systèmes logiciels. Selon l’échelle et la complexité, le spectre des systèmes logiciels peut s’étendre des systèmes d’exploitation pour les appareils aux grands systèmes en réseau qui se composent de milliers de serveurs. La qualité du système, telle que la fiabilité, les performances et la sécurité, etc., est la clé du succès des systèmes logiciels modernes. À mesure que l’échelle et la complexité du système augmentent considérablement, une plus grande quantité de données, par exemple des traces d’exécution et des journaux, est générée ; et les données deviennent un moyen essentiel pour surveiller, analyser, comprendre et améliorer la qualité du système.
- Utilisateurs de logiciels. Les utilisateurs ont (presque) toujours raison car au final ils utiliseront les logiciels et les services de diverses manières. Par conséquent, il est important de fournir en permanence la meilleure expérience aux utilisateurs. Les données d’utilisation collectées dans le monde réel révèlent comment les utilisateurs interagissent avec les logiciels et les services. Les données sont extrêmement précieuses pour les praticiens du logiciel afin de mieux comprendre leurs clients et de mieux comprendre comment améliorer l’expérience utilisateur en conséquence.
- Processus de développement logiciel. Le développement de logiciels a évolué de sa forme traditionnelle pour présenter différentes caractéristiques. Le processus est plus agile et les ingénieurs sont plus collaboratifs que par le passé. L’analyse des données de développement de logiciels fournit un mécanisme puissant que les praticiens du logiciel peuvent exploiter pour atteindre une productivité de développement plus élevée.
En général, les principales technologies employées par l’analyse exploratoire de logiciels comprennent des technologies analytiques telles que l’apprentissage automatique, l’exploration de données et la reconnaissance de formes, la visualisation d’informations, ainsi que le calcul et le traitement de données à grande échelle.
Histoire
En mai 2009, l’analyse exploratoire de logiciels a été inventé et proposé pour la première fois lorsque le Dr Dongmei Zhang a fondé le Software Analytics Group (SA) chez Microsoft Research Asia (MSRA). Le terme est devenu bien connu dans la communauté de recherche en génie logiciel après qu’une série de tutoriels et de conférences sur l’analyse exploratoire de logiciels ont été données par le Dr Dongmei Zhang et ses collègues, en collaboration avec le professeur Tao Xie de l’Université d’État de Caroline du Nord, lors de conférences sur le génie logiciel, notamment un tutoriel à la Conférence internationale IEEE/ACM sur le génie logiciel automatisé (ASE 2011), une conférence à l’International Workshop on Machine Learning Technologies in Software Engineering (MALETS 2011), un tutoriel et un discours d’ouverture donné par le Dr Dongmei Zhang à la Conférence IEEE-CS sur l’éducation et la formation en génie logiciel (CSEE&T 2012), un didacticiel à la Conférence internationale sur le génie logiciel (ICSE 2012) – Piste de génie logiciel dans la pratique, et un discours liminaire donné par le Dr Dongmei Zhang lors de la conférence de travail sur Référentiels de logiciels miniers (MSR 2012).
En novembre 2010, Software Development Analytics (l’analyse exploratoire de logiciels avec un accent sur le développement de logiciels) a été proposé par Thomas Zimmermann et ses collègues du Empirical Software Engineering Group (ESE) de Microsoft Research Redmond dans leur article FoSER 2010. Une table ronde sur l’analyse exploratoire du développement logiciel a été organisée par Thomas Zimmermann et le professeur Tim Menzies de l’Université de Virginie-Occidentale lors de la Conférence internationale sur le génie logiciel (ICSE 2012).
Fournisseurs d’analyse de logiciels
- CAST Software
- IBM Cognos Business Intelligence
- Kiuwan
- Microsoft Azure Application Insights
- Nalpeiron Software Analytics
- New Relic
- Squore
- Tableau Software
- Trackerbird Software Analytics
Source: Drew Bentley, Business Intelligence and Analytics. © 2017 Library Press, License CC BY-SA 4.0. Traduction et adaptation: Nicolae Sfetcu. © 2022 MultiMedia Publishing, L’informatique décisionnelle et l’analyse exploratoire des données dans les entreprises, Collection Sciences de l’information
Laisser un commentaire