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

Software-Systeme datengetrieben analysieren (INNOQ Technology Lunch)

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.

9f8d7084bb37f5cb2a72796918fc5d2f?s=128

Markus Harrer

October 21, 2020
Tweet

Transcript

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

    Software Development Analyst Twitter: @feststelltaste Blog: feststelltaste.de
  2. The original horror show IMAGE: sethJreid/Pixabay LEGACY systemS

  3. 3 Nach https://pkruchten.files.wordpress.com/2013/12/kruchten-colours-yow-sydney.pdf

  4. None
  5. 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
  6. THE STRIKES BACK

  7. None
  8. None
  9. None
  10. DIE SOFTWAREDATEN VON VON ENTWICKLERN

  11. 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
  12. 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>
  13. = 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
  14. Inhaltliche Expertise Data Science Machine Learning Gefahren- zone Klassische Forschung

    Data Science Venn Diagramm von Drew Conway
  15. None
  16. Python 3 3 Python 1 … and matplotlib, numpy, scikit-learn,

    NLTK, Pygments, py2neo, requests, BeautifulSoup, Pygal …
  17. code and data in love Computational Notebook

  18. 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
  19. Jupyter Notebook

  20. None
  21. None
  22. None
  23. Graph-basierte Analyse https://commons.wikimedia.org/wiki/File:Netbeans-Duke.png

  24. 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
  25. jQAssistant & Neo4j Pet birthDate getBirthDate setBirthDate Entity name Table

    @Entity @Table(name = "pets") public class Pet { Pet
  26. 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 &
  27. jQAssistant & Neo4j Pet 2016-09-31 78,5% Entity name Table God

    Class + Entity Pattern Pet
  28. Attribution: Tobias ToMar Maier, https://commons.wikimedia.org/wiki/File:VHS_tape_with_time_scale.jpg Demos Miami Cops Police Academy

  29. 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
  30. ASK ´ EM ALL

  31. 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
  32. 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
  33. 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
  34. 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
  35. Weitere Details zu jQAssistant/Neo4j https://easychair.org/publications/preprint/893N

  36. Öffentliche Termine ab Januar 2021 remote, firmenintern nach Abstimmung https://www.innoq.com/de/trainings/software-analytics

    Software Analytics Trainings
  37. 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 markus.harrer@innoq.com @feststelltaste