Slide 1

Slide 1 text

Software Analytics Softwaresysteme datengetrieben analysieren 09.02.2021 OOP2021 DIGITAL 1 Markus Harrer Software Development Analyst @feststelltaste

Slide 2

Slide 2 text

“ Markus Harrer Senior Consultant, Roth Tools only find, people have to find out!“ • Architektur-, Design- und Code-Reviews • Softwaremodernisierung und -sanierung • Datenanalysen in der Softwareentwicklung 2 Foundation & IMPROVE Instructor

Slide 3

Slide 3 text

@feststelltaste Software Analytics? 3

Slide 4

Slide 4 text

Problem der technischen Probleme 4 Fachliche Features Architektur Erkannte Fehler Technische Probleme sichtbar unsichtbar negativer Wert positiver Wert https://pkruchten.files.wordpress.com/2013/12/kruchten-colours-yow-sydney.pdf

Slide 5

Slide 5 text

Management Entwicklung Kommunikationsbarriere Risikoappetit Technische Probleme 5 Software Analytics

Slide 6

Slide 6 text

“…ist die Analyse von Softwaredaten für Manager und Softwareentwickler mit dem Ziel, es allen an der Entwicklung Beteiligten zu ermöglichen, neue Einsichten aus ihren Daten zu erhalten, um bessere Entscheidungen zu treffen.” Software Analytics… Frei übersetzt nach Tim Menzies und Thomas Zimmermann 6

Slide 7

Slide 7 text

Spezifische Fragen beantworten 7 Häufigkeit Fragen Wichtigkeit Nutze Standard-Tools für allgemeine Fragen Option 2: Setze Software Analytics zur Beantwortung wichtiger Fragen ein! Option 1: Verpenne die anderen Fragen einfach

Slide 8

Slide 8 text

Warum jetzt? • Bezeichner im Code werden immer fachlicher • Analysen können sich mit der Fachlichkeit verbinden • Analysewerkzeuge können nun auch mit stark vernetzten Daten umgehen • Datenanalysen sind einfacher durchzuführen 8

Slide 9

Slide 9 text

@feststelltaste Anwendungsbeispiele 9

Slide 10

Slide 10 text

Ermittlung von Performance-Hotspots über Call-Tree-Analyse 10 https://www.feststelltaste.de/performance-hotspots/ Laufzeit API-Calls zum Backend Einstiegspunkt in die Anwendung Hot-Spot-Metrik (z. B. Anzahl DB-Calls) Ausgangspunkt zum Bottleneck Wo sind die Performance- Hotspots?

Slide 11

Slide 11 text

Analyse der Community-Aktivitäten um Software-Tools 11 Community Wie gut wird das Tool durch die Community supported?

Slide 12

Slide 12 text

Analyse von Softwaresystemen* 12 aus (Graph) Data Science mit Vorgehen, Methoden und Standardwerkzeugen (M)eine Umsetzung von Software Analytics * wird sehr weit aufgefasst

Slide 13

Slide 13 text

@feststelltaste Data Science als Fundament 13

Slide 14

Slide 14 text

Data Science und Softwareentwicklung? 14 “Ein Data Scientist ist besser in Statistik als ein Softwareentwickler und besser in Softwareentwicklung als ein Statistiker.”

Slide 15

Slide 15 text

Data Science Tools 15

Slide 16

Slide 16 text

Interaktives Notebooksystem • Dokumentenzentrierte Analysen • Ausführbare Codeblöcke • Direkt sichtbare Visualisierungen 16

Slide 17

Slide 17 text

Die Programmiersprache für Data Science Einfach Effektiv Schnell 17

Slide 18

Slide 18 text

Pragmatisches Datenanalysewerkzeug Das programmierbare Excel-Arbeitsblatt • Richtig schnell • Flexibel • Ausdrucksstark Sehr gute Integration mit anderen Bibliotheken 18

Slide 19

Slide 19 text

Visualisierungsbibliothek Ermöglicht die programmatische Erstellung von Grafiken • Erstellung von Balken-, Linien-Diagrammen und mehr • Gute Integration mit pandas & Co. Direkte Ausgabe in Jupyter Notebooks 19

Slide 20

Slide 20 text

Application Server Welcher Code in welchen Packages wird nicht verwendet? Demo „Production Coverage“ User Java Web Application Coverage Tool Coverage per Class liefert verwendet PACKAGE,CLASS,LINE_MISSED,LINE_COVERED org.springframework.samples.petclinic,PetclinicInitializer,0,24 org.springframework.samples.petclinic.model,NamedEntity,1,4 org.springframework.samples.petclinic.model,Specialty,0,1 org.springframework.samples.petclinic.model,PetType,0,1 org.springframework.samples.petclinic.model,Vets,4,0 org.springframework.samples.petclinic.model,Visit,0,12 ... 20 →Spezieller Fall mit allgemeinen Analysemustern!

Slide 21

Slide 21 text

@feststelltaste Graph Data Science 21

Slide 22

Slide 22 text

 Verschiedene Datenquellen werden miteinander in Beziehung gesetzt  Neue Konzepte / Perspektiven werden auf feingranulare Daten projiziert  Vielen Einzelheiten werden zu einer besser interpretierbaren Gesamtsicht zusammengefasst Graph-orientierte Analysen 22 Pet 2016-09-31 78,5% PetDBO Coverage Commits God Class Code Smells Entity Pattern Patterns Pet Code „Unsere Entitys tendieren dazu, God Classes zu werden“

Slide 23

Slide 23 text

Graph Data Science Tools 23

Slide 24

Slide 24 text

Die Spezialisten für vernetzte Daten ė Framework zur statischen Architektur- und Code-Analyse auf Basis von Softwaredaten ė Graph-Datenbank zur Ablage und Analyse stark vernetzter Daten [:SPEICHERT_IN] 24

Slide 25

Slide 25 text

Neo4j, Cypher & Jupyter Notebook Cypher-Extension https://github.com/versae/ipython-cypher Alternative: Cypher-Kernel https://github.com/HelgeCPH/cypher_kernel 25

Slide 26

Slide 26 text

Jupyter Notebook + py2neo 26 1. Bibliotheken importieren 2. Verbindung zur laufenden Neo4j Instanz herstellen 3. Abfrage in Cypher absetzen 4. Ergebnis in DataFrame umwandeln 5. Ergebnis von der Graph-Datenbank wird dargestellt https://py2neo.org/

Slide 27

Slide 27 text

Roundtrip pandas ←→ Neo4j 27 pandas DataFrame as input Neo4j output as DataFrame Import code into Neo4j with py2neo

Slide 28

Slide 28 text

@feststelltaste Das war‘s schon wieder :-( 28

Slide 29

Slide 29 text

Klick auf https://mybinder.org/repo/feststelltaste/software-analytics-workshop-guided Dann Klick auf Ordner „tutorial“ Ihr Weg zum Mini-Tutorial 29

Slide 30

Slide 30 text

Weitere Infos 30

Slide 31

Slide 31 text

Sammlung von Ressourcen über Software Analytics https://github.com/feststelltaste/awesome-software-analytics Einstiegshilfen von mir 31

Slide 32

Slide 32 text

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 Einstiegshilfen von mir 32

Slide 33

Slide 33 text

Podcast-Folge „Software Analytics - Mit Data Science Probleme in der eigenen Software finden“ https://www.innoq.com/de/podcast/083-software-analytics/ Vortrag „Software-Systeme datengetrieben analysieren“ https://www.youtube.com/watch?v=v73iPtJEkIs Mein Blog https://feststelltaste.de Weiteres über das Thema von mir 33

Slide 34

Slide 34 text

Bücher zu 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

Slide 35

Slide 35 text

Weitere Details zu jQAssistant/Neo4j https://easychair.org/publications/preprint/893N 35

Slide 36

Slide 36 text

@feststelltaste Software Analytics Training 36

Slide 37

Slide 37 text

Öffentliche Termine ab März 2021 remote, firmenintern nach Abstimmung Software Analytics Training 37

Slide 38

Slide 38 text

Nächste Termine Website: https://www.innoq.com/de/trainings/software-analytics/ Rabatt-Code: OOP2021 38 1. März – 4. März 2021 4 Nachmittage 13:30 bis 16:30 Uhr Deutsche Version 3. Mai – 6. Mai 2021 4 Abende 18:00 bis 21:00 Uhr Englische Version

Slide 39

Slide 39 text

Miro • Online-Whiteboard • Nutzung über anonyme Gastzugänge • Interaktive Übungen zu diversen Themen Zoom • Videokonferenzlösung • Nutzung für Theorie und Übungen • In Übungen meist Arbeit in Kleingruppen (Breakout-Sessions) 39 Remote-Tools zur Durchführung Zusätzlich verwenden wir eine Online-Datenanalyse-Plattform für Pandas, Neo4j & Co.

Slide 40

Slide 40 text

Kollaborative Übungen in Kleingruppen mit Miro Übungen mit Online-Whiteboard Übung zu Software Analytics Canvas Übung zum Aufbau von Datenanalysen 40

Slide 41

Slide 41 text

Kurzbeschreibung Nutzen Sie datengetriebene Softwareanalysen, um Entscheidungen bei der Weiterentwicklung Ihrer Softwaresysteme auf eine solide Faktenbasis zu stellen! Dieser Kurs bietet Ihnen dazu einen kompletten Einstieg in das Thema Software Analytics. Lernen Sie die Methodik, Vorgehensweisen und Werkzeuge, um eigenständig nachvollziehbare Datenanalysen in der Softwareentwicklung durchzuführen. 41

Slide 42

Slide 42 text

Lernziele • Standardwerkzeuge aus dem Data-Science- und Graphdatenbanken-Bereich für die Analyse von Softwaredaten einsetzen • Probleme in der Softwareentwicklung datengetrieben, methodisch und strukturiert herausarbeiten • Handlungsorientierte Schlüsse aus den Analyseergebnissen ableiten • Analysen und Erkenntnisse verständlich kommunizieren 42

Slide 43

Slide 43 text

Inhalte Tag 1 • Grundprobleme der Softwareentwicklung • Einführung in Software Analytics • Datenquellen für Analysen • Herausforderungen bei Analysen im Softwarebereich • Einführung in Reproducible Data Science • Datenanalysen mit Jupyter, Python, pandas & Co. • Visualisierungen mit matplotlib 43

Slide 44

Slide 44 text

Inhalte Tag 2 • Interaktive Visualisierung mit D3 und pypal • Graph-basierte Softwareanalysen mit Neo4j • Integration von Software Analytics in die Softwareentwicklung • Ausblick in das Maschinelle Lernen auf Basis von Softwaredaten 44

Slide 45

Slide 45 text

45 Fragen!? Diskussionen!? Anmerkungen!? Feedback!?

Slide 46

Slide 46 text

46 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 https://feststelltaste.de