Kurzlink zu dieser Seite: https://git.io/vxLQL
Herzlich Willkommen auf der Begleitseite zu "Datenanalysen in der Softwareentwicklung mit Software Analytics"!
Hier findet ihr alle notwendigen Informationen, um im Mini-Workshop mitmachen zu können.
Gleich vorab: Wer sofort richtig loslegen möchte, kann sich gerne eine "lokale Umgebung" einrichten auf seinen eigenen Computer einrichten. Wer noch zögerlich ist, kann auch die zur Verfügung stehenden Online-Testumgebungen nutzen (welche aber vermutlich nicht so performant und zuverlässig sein werden).
Hier geht es um den Einstieg in die Datenanalyse mit Python und Pandas mittels Daten aus dem Versionskontrollsystem Git. Wir wollen einige einfache Statistiken über das Open-Source-Betriebssystem Linux erheben:
- Wer sind die TOP-10-Committer?
- In welcher Zeitzone leben die meisten Entwickler?
- Zu welchen Uhrzeiten arbeiten die Entwickler?
- Wie verteilen sich die Commits über die Jahre?
Mit dem Ergebnis bekommen wir zahlreiche Einblicke in das Leben eines der berühmtesten Open-Source-Projekte.
Zur Offline-Nutzung auf dem eigenen Rechner kann die "Eierlegendewollmilchsau"-Python-Distribution Anaconda 5.0.1+ (Python 3.6) installiert werden:
Alternativ kann auch Docker verwendet werden
Zum Starten des Jupyter Servers
- unter Windows die Verknüpfung "Jupyter Notebook" anklicken
- unter Linux den Befehl
~/anaconda3/bin/jupyter notebook
ausführen
Hinweis: Um ein bestimmtes Verzeichnis für den Jupyter Server anzugeben, bitte in der Verknüpfung bzw. auf der Shell den entsprechenden Verzeichnisnamen an die jeweiligen Startbefehle (nach einem Leerzeichen) ergänzen.
Alternativ kann das Hands-On auch online mittels https://mybinder.org/ durchgeführt werden. Hier ist dann lediglich ein Computer mit Browser und Internetzugang notwendig.
Zum Vorab-Test gibt es hier eine Online-Testumgebung:
Für das Treffen selbst wird es noch eine separate Online-Testumgebung geben. Die Links werden beim Treffen bekanntgegeben.
Für beide Varianten ist hier die URL zum notwendigen Dataset (~5 MB):
https://github.com/feststelltaste/software-analytics/raw/master/demos/dataset/git_demo_timestamp_linux.gz
Zur Offline-Nutzung empfiehlt sich natürlich ein entsprechender Download vorab.
Hier analysieren wir eine Java-Anwendung mit Hilfe des statischen Codeanalysewerkzeugs jQAssistant und der Neo4j Graphdatenbank. Wir wollen in einer Java-Anwendung die von uns identifizierten Probleme für Nicht-Techniker verständlich aufbereiten.
Dazu werden wir
- Code Smells in der Anwendung identifizieren
- unsere Ergebnisse fachlichen Bereichen (etwa, was ein Entscheider oder Kunde versteht) zuordnen
Mit dem Ergebnis können wir Probleme im bestehenden Softwaresystem nach den Geschäftszielen priorisieren.
Voraussetzung ist eine eingerichtete, lokale Umgebung vom 1. Hands-On. Zusätzlich wird noch folgendes benötigt:
Diese Bibliothek kann z. B über den "Anaconda Prompt" (Windows) oder direkt auf der Kommandozeile mit Hilfe des Python-Paketmanagers pip
installiert werden:
pip install py2neo
Dieses Open-Source-Projekt ist eine mit jQAssistant ausgestattete (und von mir bewusst verschlechterte) Java-Web-Applikation. Sie ist unter
zu finden. Die dortige Anleitung schildert die Installationsschritte:
https://github.com/JavaOnAutobahn/spring-petclinic#refuctored-spring-petclinic-sample-application
Zur Offline-Nutzung empfiehlt es sich, die Anwendung wie in der Anleitung beschrieben komplett zu bauen und alles auszuführen.
Zum Treffen wird eine gesonderte Neo4j-Instanz zur Verfügung stehen. Weitere Details zur Nutzung folgen beim Treffen.
Wer an den Themen Gefallen gefunden hat, findet auf meinem Blog https://www.feststelltaste.de noch zahlreiche andere Anwendungsfälle. Über ein Feedback zur Veranstaltung per Mail freue ich mich sehr!
Markus Harrer
@feststelltaste
markusharrer.de