Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Software-Systeme datengetrieben analysieren (IN...

Software-Systeme datengetrieben analysieren (INNOQ Technology Lunch)

In Unternehmen werden Datenanalysen intensiv genutzt, um aus Geschäftsdaten wertvolle Einsichten zu gewinnen. Warum nutzen wir nicht auch Datenanalysen, um bessere Einsichten in unsere Software und deren Entwicklung zu bekommen?

In diesem Vortrag stelle ich „Software Analytics“ vor, wo Daten rund um die Software-Entwicklung analysiert werden, um eine mehr faktenbasierte Weiterentwicklung von Software-Systemen zu ermöglichen. Wir blicken dazu auch auf das Fundament „Data Science“ und zugehörige Werkzeuge (wie Jupyter, pandas, jQAssistant, Neo4j und Co.) zur Umsetzung. Wir sehen uns zudem an, was wir durch Analysen von Git-Repositories, Performance-Daten oder auch direkt aus dem Programmcode herausfinden können.

Markus Harrer

October 21, 2020
Tweet

More Decks by Markus Harrer

Other Decks in Technology

Transcript

  1. Software-Systeme datengetrieben analysieren INNOQ TECHNOLOGY LUNCH, 21.10.2020 1 Markus Harrer

    Software Development Analyst Twitter: @feststelltaste Blog: feststelltaste.de
  2. Adaptiert von Ray Koopa https://commons.wikimedia.org/wiki/File:Lcars_wallpaper.svg (CC BY-SA 4.0) THE ULTIMATE

    QUALITY DASHBOARD SHIPPING APP DEVELOPER‘S INSANITY PROJECT‘S BUDGET
  3. Häufigkeit Fragen Wichtigkeit Software analytics: KEINE 0815 Fragen Nutze Standard-Tools

    für allgemeine Fragen Option 2: Setze Software Analytics zur Beantwortung wichtiger Fragen ein! Option 1: Verpenne die anderen Fragen einfach
  4. JUDGMENT DAY Beispiele von DatenAnalysen zum Terminieren von Problemen 

    Quantifizierung des Wissensverlusts bei Entwicklerfluktuation  Verprobung von Modularisierungsvarianten (“virtuelles Refactoring”)  Ermittlung von Performance-Hotspots über Call-Tree-Analyse  Tracking von umfangreichen Code-Umbauarbeiten  Analyse der Community-Aktivitäten um Open-Source-Software  <weitere, ganz spezifische Analysen in ganz spezifischen Situationen>
  5. = EIN WEG ZUR UMSETZUNG VON SOFTWARE ANALYTICS R E

    P R O D U C I B L E D A T A A N A L Y S I S offen verständlich nachvollziehbar systematisch automatisiert
  6. Python 3 3 Python 1 … and matplotlib, numpy, scikit-learn,

    NLTK, Pygments, py2neo, requests, BeautifulSoup, Pygal …
  7. Computational Notebook Komplett automatisiert Kontext dokumentiert Ideen, Daten, Annahmen und

    Vereinfachungen aufgeführt Berechnungen verständlich dargelegt Zusammenfassungen erklärt Jupyter Notebook Context Idea Analysis Conclusion Data-driven Software Analysis
  8. jQAssistant & Neo4j Pet birthDate getBirthDate setBirthDate public class Pet

    { private LocalDate birthDate; public LocalDate getBirthDate(){ return this.birthDate; } public void setBirthDate(LocalDate birthDate){ this.birthDate = birthDate; } Java Code jQAssistant Neo4j
  9. jQAssistant & Neo4j Pet birthDate getBirthDate setBirthDate Entity name Table

    @Entity @Table(name = "pets") public class Pet { Pet
  10. Pet Entity name Table jQAssistant & Neo4j @Entity @Table(name =

    "pets") public class Pet { Entity Pet MATCH (p:Class)-[:DEPENDS_ON]->(e:Type) WHERE p.name = "Pet" AND e.name = "Entity" RETURN p, e &
  11. Die Rückkehr der Vernunft Die Zwei Tipps Die Gefahren A

    u t o m a t i s i e r u n g a c h v o l l z i e h b a r k e i t Meta Metric Anzahl der gelösten Probleme NO Metric To Rule Them All werde wieder mit datengetriebenen Softwareanalysen N
  12. Jupyter Notebook, Python, pandas, matplotlib Repo https://github.com/feststelltaste/software-analytics/tree/master/demos/20201021_INNOQ_Technology_Lunch Interaktive Online-Version https://mybinder.org/v2/gh/feststelltaste/software-

    analytics/master?filepath=demos%2F20201021_INNOQ_Technology_Lunch%2FRefactoring.ipynb jQAssistant & Neo4j Repo Spring PetClinic https://github.com/javaonautobahn/spring-petclinic Repo DesignSmells https://github.com/feststelltaste/designsmells Infos zu den Demos Notebook hiermit ausführen
  13. Mein Blog https://feststelltaste.de TOP 5 Software Analytics https://www.feststelltaste.de/top-5-software-analytics/ Mein Software

    Analytics Repository https://github.com/feststelltaste/software-analytics Mini-Tutorial und mehr zu Software Analytics https://github.com/feststelltaste/software-analytics-workshop Einstieg in Software Analytics
  14. Mehr Infos zu Software Analytics Noch mehr: https://github.com/feststelltaste/awesome-software-analytics Adam Tornhill:

    Software X-Ray Tim Menzies, Laurie Williams, Thomas Zimmermann: Perspectives on Data Science for Software Engineering Christian Bird, Tim Menzies, Thomas Zimmermann: The Art and Science of Analyzing Software Data
  15. Infos zu Data Science Meine TOP5s • https://www.feststelltaste.de/top5-jupyter/ • https://www.feststelltaste.de/top5-pandas/

    • https://www.feststelltaste.de/top5-python/ 34 Jeff Leek: The Elements of Data Analytic Style Roger D. Peng: Report Writing for Data Science in R Wes McKinney: Python for Data Analysis
  16. 37 Vielen Dank! innoQ Deutschland GmbH Krischerstr. 100 40789 Monheim

    am Rhein Germany +49 2173 3366-0 Ohlauer Str. 43 10999 Berlin Germany Ludwigstr. 180E 63067 Offenbach Germany Kreuzstr. 16 80331 München Germany Gewerbestr. 11 CH-6330 Cham Switzerland +41 41 743 01 11 Albulastr. 55 8048 Zürich Switzerland innoQ Schweiz GmbH www.innoq.com Markus Harrer [email protected] @feststelltaste