1 / 46

Étude empirique en génie logiciel

Étude empirique en génie logiciel. Application sur GitHub et Alexa Xavier Blanc – IUF – Bordeaux Univ . - ProMyze. Génie Logiciel.

stevenj
Télécharger la présentation

Étude empirique en génie logiciel

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Étude empirique en génie logiciel Application sur GitHub et Alexa Xavier Blanc – IUF – Bordeaux Univ. - ProMyze EJCP - Strasbourg - Juin 2019

  2. Génie Logiciel • Le génie logiciel repose sur l’application systématique des connaissances, méthodes, compétences scientifiques et technologiques nécessaires à la modélisation, l’implémentation, les tests, la maintenance et la documentation de ces logiciels qui structurent de plus en plus notre société. • La recherche en génie logiciel fédère l’ensemble des activités qui permettent de définir, formaliser et évaluer les concepts, méthodes et outils qui portent la production logicielle actuelle et future. EJCP - Strasbourg - Juin 2019

  3. Exemple : Performance Site Web EJCP - Strasbourg - Juin 2019

  4. Exemple : Performance Site Web Faire peu de requêtes CSS améliore la performance ! EJCP - Strasbourg - Juin 2019

  5. Comment Evaluer ? EJCP - Strasbourg - Juin 2019

  6. Etude Empirique : Observation & Expérimentation • Les études empiriques permettent d’évaluer des concepts, méthodes et outils en réalisant des expérimentations et en observant les résultats obtenus EJCP - Strasbourg - Juin 2019

  7. 1. Etudes Quantatives EJCP - Strasbourg - Juin 2019

  8. Définition • Quantitative: quantifying a relationship or comparing two or more groups. Identify a cause-effect. EJCP - Strasbourg - Juin 2019

  9. Principles Effect Cause Theory Observation Treatment Outcome Independent variable Dependent variable EJCP - Strasbourg - Juin 2019

  10. Concepts • Dependent variable (response variable): the studied variable • Independent variables: variables that can be either controlled or manipulated. • Factors: independent variables that will change (manipulated) • Treatment: Value of a factor Object Ind. vars Dep.var EJCP - Strasbourg - Juin 2019

  11. Process Idea • Definition • Planning • Operation • Analysis & Interpretation • Package • Conclusion EJCP - Strasbourg - Juin 2019

  12. Definition: Goal Template • Analyze <Object(s) of study> • For the purpose of <Purpose> • With respect to their <Quality focus> • From the point of vies of the <Perspective> • In the context of <Context> EJCP - Strasbourg - Juin 2019

  13. Definition: Examples EJCP - Strasbourg - Juin 2019

  14. Planning: 7 steps • Contextselection • Hypothesis formulation • Variables selection • Selection of subjects • Experiment design • Instrumentation • Validityevaluation • Experiment design EJCP - Strasbourg - Juin 2019

  15. Planning: 1- contextselection Trade-off between cost and generalisation • Student vs Professionals • Toy vs real software • Off-line vs on-line EJCP - Strasbourg - Juin 2019

  16. Planning: 2 - Hypothesis • Null hypothesis (H0): No effect. • So we expect to reject it ! • Alternative hypothesis (Ha, H1, etc.): Effect. • We expect to accept it! • Type-I-Error: Reject H0 although it is true (Conclude that there is an effect although there is no). • P(Type-I-Error)=P(reject H0 | H0 is true) • Type-II-Error: Not reject H0 although it is false (Conclude that there is no effect although there is one). • P(Type-II-Error)=P(not reject H0 | H0is false) EJCP - Strasbourg - Juin 2019

  17. Planning: 3 – Variables Selection • Independent Variables: • No advice or guideline. • Requires domain knowledge. • Include the choice of the scale. • Dependent Variables: • Support for the hypothesis. • Have to be easily measurable (!metrics aggregation). EJCP - Strasbourg - Juin 2019

  18. Planning: 4 – Selection of Subjects • Large impact on the generalisation • Randomized • Pure random • Quota • Blocked EJCP - Strasbourg - Juin 2019

  19. Planning 5 – Experiment Design • One factor with two treatments • One factor with more than two treatments • Two factors with two treatments • More than two factors each with two treatments EJCP - Strasbourg - Juin 2019

  20. Planning 6 - Instrumentation • Objects • Guidelines • Measurement EJCP - Strasbourg - Juin 2019

  21. Planning 7 – Validityevaluation • Conclusion validity • Lowstatistical power, … • Internalvalidity • History, maturity, … • Constructvalidity • Mono-methodbias, … • Externalvalidity • Selection, … EJCP - Strasbourg - Juin 2019

  22. Analysis • Descriptive Statitics • Data set reduction • Hypothesistesting EJCP - Strasbourg - Juin 2019

  23. Analysis: Descriptive Statistics EJCP - Strasbourg - Juin 2019

  24. Analysis: Outliers • Remove data thatclearlydoes not fit the sample • outlier • • • • • • • • • • • Scatter plots EJCP - Strasbourg - Juin 2019

  25. Analysis: HypothesisTesting 1/2 • Rewrite the null hypothesis according to the measure • Ex: one factor, two treatments => same probability p(A)=p(B)=1/2 • Test Error-I : p(Reject Ho | Ho is true) • p(Reject | p(A)=p(B)=1/2) • If we have 15 tests. P(4 or less) = 0.059, P(5 or less) = 0.1509. If we obtain 4 or less A then, this is not due to hazard. If we obtain 5 or less, then it may be due to hazard. • 0, 1, 2, 3 or 4 => reject • 5, 6 … => cannot reject EJCP - Strasbourg - Juin 2019

  26. Analysis: HypothesisTesting 2/2 • Find the test that fits your design • Chi2, F-Test, T-Test, Cor.Test, Anova, EJCP - Strasbourg - Juin 2019

  27. Example • Goal: Show that our tool improves efficiency for developers to evolve their software • H0: time needed to realize an evolution is the same with or without our tool (one factor, two treatment) • t-test to compare the mean (check normal law) • Two groups (with and without our tool) • Object: realize one evolution on an existing product EJCP - Strasbourg - Juin 2019

  28. Ref “Experimentation in Software Engineering, An introduction”. C. Wohlin, P. Runeson, M. Höst, M.C. Ohlsson, B. Regnell, A. Wesslén. Kluwer Academic Publishers. EJCP - Strasbourg - Juin 2019

  29. Exemple : Performance Site Web • Objectif : • Il faut faire « peu » de requêtes CSS • Planning : https://github.com/xblanc33/cssoptimizationfinder.git • Contexte – Step 1 • Hypothèse, Instrumentation – Step 2 • Evaluation – Step 3 EJCP - Strasbourg - Juin 2019

  30. Exercice : Ownership Il faut que les développeurs soient propriétaires EJCP - Strasbourg - Juin 2019

  31. Exercice : Turnover Il faut un peu de turnover EJCP - Strasbourg - Juin 2019

  32. Exercices … • Le clean code permet d’éviter des bugs (permet une maintenance moins cher) • Le couplage est source de bug • Le typage permet d’éviter des bugs • http://earlbarr.com/publications/typestudy.pdf [ICSE 2017] EJCP - Strasbourg - Juin 2019

  33. MSR : Exploiter les plates-formes Git • https://github.com/search/advanced • https://www.softwareheritage.org/mission/an-essential-infrastructure-for-science/?lang=fr • https://github.com/jrfaller/diggit EJCP - Strasbourg - Juin 2019

  34. 2. Etudes Qualitatives Il y a les statistiques et la vraie vie ! EJCP - Strasbourg - Juin 2019

  35. Numbers, numbers, numbers … EJCP - Strasbourg - Juin 2019

  36. Laboratory vs real world Object Ind. vars Dep.var Object EJCP - Strasbourg - Juin 2019

  37. Qualitative vs Quantitative EJCP - Strasbourg - Juin 2019

  38. Objectives • discover new ideas from data instead of testing pre-designed research questions EJCP - Strasbourg - Juin 2019

  39. Method EJCP - Strasbourg - Juin 2019

  40. Ref • « Real World Research », C. Robson, K. McCartan EJCP - Strasbourg - Juin 2019

  41. Exemple : Themis EJCP - Strasbourg - Juin 2019

  42. Exemple : Performance Site Web • Pourquoi certains sites n’ont pas de CSS ? • Qui décide de l’intégration des CSS dans le HTML ? Et quand ? EJCP - Strasbourg - Juin 2019

  43. Exemple : Linters • Pourquoi les développeurs n’exploitent-ils pas les linters ? • Pourquoi les testeurs ont du mal à introduire de la diversité dans leur tests ? EJCP - Strasbourg - Juin 2019

  44. Synthèse EJCP - Strasbourg - Juin 2019

  45. Evaluation quantitative et qualitative • Mise en œuvre (coût) • Retours terrain EJCP - Strasbourg - Juin 2019

  46. Exemple : ExploratoryTesting • Approche Hybride EJCP - Strasbourg - Juin 2019

More Related