Telechargé par Bounab Samia

Data Mining in Software Engineering

publicité
Université BADJI MOKHTAR ANNABA
Faculté des sciences de l’ingéniorat
Département d’informatique
Réalisés par : BOUNAB SAMIA







Introduction
Travaux connexes
Applications de data mining en génie logiciel
Techniques de data mining
Les tâches d'ingénierie logicielle qui bénéficient de data mining
Les limites et les défis de data mining
Conclusion
2

Au cours du développement logiciel, une grande quantité de données est produite, telles que les
référentiels d'attributs logiciels et la trace d'exécution du programme, ce qui peut aider dans les
futures activités de développement et de gestion de projet. Un développement logiciel efficace
nécessite une quantification, une mesure et une modélisation des artefacts logiciels précédents.
Le développement de systèmes logiciels volumineux et complexes est un formidable défi qui
nécessite des activités supplémentaires pour soutenir le développement de logiciels et les
processus de gestion de projet. Dans ce scénario, le data mining (fouille de données) peut
fournir une main utile dans le processus de développement logiciel.
3

Bien que l'application de data mining aux artefacts de génie logiciel soit relativement
nouveau, il existe des lieux spécifiques dans lesquels des articles connexes sont
publiés et des auteurs ont créé des ressources similaires à cette enquête.
Rapport sur l'état de
l'art du DACS
(Mendonca et
Sunderhaft, 1999)
enquête résumant l'état
de datamining pour le
génie logiciel pour le
DACS (Centre de
données et d'analyse
pour les logiciels).
Au fils des 10
ans
(Xie ,2010)
Création d’une
bibliographie en ligne
sur les données de
génie logiciel
d'exploitation
L'atelier Mining
Software
Repositories
(MSR), (2004)
Création de la 1 ère
Conférence
internationale sur le
génie logiciel par MSR
Enquête complète
(Kagdi et al. 2007)
Une étude complète des
approches de la MSR
dans le contexte de
l'évolution des logiciels.
4

La première étape du processus de découverte des
connaissances consiste à mieux comprendre les
données disponibles et les objectifs commerciaux qui
animent le processus . Il existe de nombreuses sources
de données en génie logiciel, nous nous concentrons
uniquement sur quatre grands groupes et décrivons
comment ils peuvent être utilisés pour extraction de
données d'ingénierie logicielle.
Bugzilla Mailings
Code
CVS Execution
repository
traces
5

La majorité des organisations de développement de logiciels collaboratifs utilisent des logiciels
de gestion de versions (par exemple, CVS, Subversion, Git, etc.)

Permet de gérer le développement continu des actifs numériques sur lesquels une équipe de
personnes peut travailler.

Conserver un historique de chaque révision.

Autorisez les utilisateurs à accéder aux versions précédentes et à revenir à celles-ci.

Fournit un moyen d'analyser les artefacts historiques produits pendant le développement du logiciel.

Tels que le nombre de lignes écrites, les auteurs qui ont écrit des lignes particulières ou un certain
nombre de métriques logicielles courantes.
6

La plupart des grandes organisations (et de nombreuses petites) utilisent également un
système de gestion des bogues (tel que Bugzilla ) .

Peut être exploité pour découvrir des modèles dans les processus de développement logiciel,
y compris le temps de réparation, les composants sujets aux défauts,les auteurs
problématiques, etc.

Certains suiveurs de bogues sont capables de corréler les défauts avec le code source dans un
système de révision.
7

Pratiquement toutes les équipes de développement de logiciels utilisent une forme de
communication électronique (e-mail, messagerie instantanée, etc.)

Fait partie du développement collaboratif (la communication en petites équipes peut être
principalement ou exclusivement verbale, mais de tels cas sont sans conséquence du point de
vue de l'exploitation de données).

Les techniques d'exploitation de texte peuvent être appliquées aux archives de ces
communications pour mieux comprendre les processus de développement, les bogues et les
décisions de conception.
8

La documentation logicielle et les bases de connaissances peuvent être extraites pour
fournir des informations supplémentaires sur les processus de développement logiciel.

Utile pour les organisations qui utilisent les mêmes processus sur plusieurs projets et
souhaitent examiner un processus en termes d'efficacité globale ou d'adéquation pour un
projet donné.

Les bases de connaissances peuvent contenir du code source, cette approche se concentre
principalement sur la récupération d'informations à partir de langues naturelles.

9
1.
Règles d'association et modèles fréquents : Une des techniques les plus populaires de
la fouille de données .Un modèle fréquent est un modèle (ensemble d'éléments, de
sous-séquences, de sous-graphiques, etc.) qui se produit fréquemment dans un ensemble
de données. Proposé pour la première fois par Agrawal et al en 1993 dans le contexte
d'ensembles d'articles fréquents et d'exploration de règles d'association pour l’analyse de
base de données de transactions de ventes.
10
2.
3.
4.
Classification : La classification est une fonction d' exploitation de données qui affecte
des éléments d'une collection à des catégories ou des classes cibles. L'objectif de
la classification est de prédire avec précision la classe cible pour chaque cas des données .
Clustering : Le cluster est un groupe d'objets appartenant à la même classe. En d'autres
termes, des objets similaires sont regroupés dans un cluster et des objets différents
sont regroupés dans un autre cluster.
Exploitation de texte : L'exploration de texte, également appelée exploration de
données de texte, à peu près équivalente à l'analyse de texte, est le processus de
dérivation d'informations de haute qualité à partir de texte. Des informations de haute
qualité sont généralement obtenues par la conception de modèles et de tendances par
des moyens tels que l'apprentissage de modèles statistiques
5.

11
aperçu du domaine d'exploration de données de génie
logiciel
programming
defect detection
testing
debugging
maintenance
software engineering tasks
data mining techniques
code
bases
change
history
program
states
structural
entities
bug
reports/nl
software engineering data
12

Le data mining en génie logiciel aide :
au processus de développement,
à l'aspect gestion,
et au processus de recherche pour le développement d'un logiciel ou d'un programme.

Lors du développement d'un logiciel, les développeurs veulent savoir s'il existe un autre logiciel
similaire et ce que les gens n'aiment pas à ce sujet, alors lorsqu'ils développent, ils peuvent
améliorer ces plaintes. Il s'agit d'être meilleur que vos concurrents avec votre logiciel sinon vous
perdrez ou serez dans le même bateau que votre concurrent. Si votre programme est plus
productif et fonctionne plus efficacement, vous aurez l'avantage.
13

il y aura toujours des limites et des défis à l'exploitation de données dans n'importe quel domaine
et ce champ ne sera pas exclu. Trouver des informations pertinentes est toujours très important ,
Car:
 vous pouvez parfois collecter beaucoup d'informations mais si elles ne sont pas pertinentes,
elles sont inutiles.
 la quantité de données qu'ils collectent et stockent :Ils peuvent collecter beaucoup
d'informations qu'ils n'auront peut-être même jamais la possibilité de consulter.
 le type de données lui-même. Comme indiqué dans cette revue :«Les ingénieurs logiciels
utilisent généralement des types de données individuels pour effectuer une tâche d'ingénierie
logicielle. Cependant, le domaine du génie logiciel peut être complexe et, par conséquent, les
tâches de génie logiciel exigent de plus en plus l'exploitation de plusieurs types de données
corrélées pour obtenir les résultats les plus efficaces. En outre, il y a des cas où des informations
importantes ne sont pas seulement associées à des éléments de données individuels mais au lien
entre eux. Ainsi, l'exigence de techniques qui analysent des types de données complexes en tenant
également compte des liens entre les données SE est plus forte que jamais en génie
logiciel.» (Halkidi, 2011).
14
Les processus de génie logiciel sont complexes et les activités connexes
produisent souvent un grand nombre et une grande variété d'artefacts, ce
qui les rend bien adaptés à l'exploration de données. Ces dernières
années, l'utilisation de techniques de datamining
sur tels artefacts a
augmenté dans le but d'analyser et d'améliorer les processus logiciels pour
une organisation ou un projet donné.Le datamining
peut faire une
contribution importante au succès des efforts actuels de génie logiciel,
mais elle a toujours ses défis et ses limites.
15
16
Téléchargement