Icons und Tipps für den Umgang mit dem NEUEN 2010 … · Kontinuierliche Architekturanalyse mit...

32
Kontinuierliche Architekturanalyse mit SonarQube in 3D Stefan Rinderle – PAYBACK softvis3d.com Twitter: @stefanrinderle

Transcript of Icons und Tipps für den Umgang mit dem NEUEN 2010 … · Kontinuierliche Architekturanalyse mit...

Kontinuierliche Architekturanalyse mit SonarQube in 3D

Stefan Rinderle – PAYBACK

softvis3d.com

Twitter: @stefanrinderle

2

PAYBACK in Zahlen

Kontinuierliche Architekturanalyse in 3D

○ 27,4 Millionen aktive Karten in Deutschland

○ 35 "Offline"-Partner und 620 Online-Partner

○ Karteneinsatz Kunden: 3,5 Millionen / Tag

○ PAYBACK.de 9 Millionen Besucher / Tag

○ 8 Millionen APP Downloads

3

PAYBACK DEV

Kontinuierliche Architekturanalyse in 3D

○Agile Software-Entwicklung mit Scrum

- 6 Scrum-Teams

- Flache Hierarchie

○ Kurze Release-Zyklen

- 2014: 4 Releases

- 2015: 11 Releases

○ DevOps Programm seit Anfang 2014

- Automatisierung und deployment mit Ansible und Vagrant

○ Fitnessstudio, Spielzimmer, Kantine und beste Lage an der Theresienwiese in München

4

Software-Visualisierung

○ Visualisierung von Informationen über Softwaresysteme

○ Visualisierung von Klassen und Komponenten

○ Einfache Risikoanalyse für alle Projektbeteiligten

- Risiko und Kosten reduzieren

- Produktivität und Qualität erhöhen

○ Fördert die Kommunikation über die Qualität der Software zwischen verschiedenen Ebenen

Kontinuierliche Architekturanalyse in 3D

Warum wird Software-Visualisierung so selten eingesetzt?

5

Master Thesis – 2012

Kontinuierliche Architekturanalyse in 3D

City Metapher

○ Struktur

○ Metriken

Stadtteile

Grundfläche und

Höhe der Gebäude

6

Problem 1: Kontext

Kontinuierliche Architekturanalyse in 3D

7

Problem 2: Daten

Kontinuierliche Architekturanalyse in 3D

Visualisierungs-

Plattform JDepend

…?

8

Die "Hürde" der Softwarevisualisierung

○ Installation der Plattform

- Desktop-Anwendung

- Server-Anwendung

○ Importieren des Projektes

- Unterstütze Programmiersprachen

- Sicherheitsanforderungen

○ Analyse des Projektes

- Verfügbarkeit von Metriken

- Integration von eigenen Metriken

○ Report

- Verfügbarkeit der Ergebnisse

Kontinuierliche Architekturanalyse in 3D

Wie hoch ist der initiale Aufwand?

9

Kontinuierliche Analyse als Basis

○ Struktur der Software

○ Statische Analyse der Klassen und Komponenten

- Lines of code, Komplexität

- Checkstyle, PMD, Findbugs

○ Testergebnisse

○ Verwaltung von Standards und Regeln

○ Analyse der Ergebnisse über einen großen Zeitraum

Kontinuierliche Architekturanalyse in 3D

10

○ System-Tests

○ Akzeptanz-Tests

○ Performance-Tests

Deployment

Software-Entwicklungs-Zyklus bei PAYBACK

○ Unit-Tests

○ Statische Codeanalyse

Entwicklungsumgebung

○ Unit-Tests

○ Integration-Tests

○ Statische Codeanalyse

Build-Automatisierung

Testergebnisse

Fehler und Warnungen der Codeanalyse

Codequalität und andere Metriken

Risikoanalyse

Jenkins

Kontinuierliche Architekturanalyse in 3D

11

Kontinuierliche Architekturanalyse in 3D

○ Java

○ Web

○ .NET

○ und viele mehr…

○ Entwickler

○ Teamleiter

○ Projektleiter

○ Resultate analysieren

○ Vergleich mit früheren

Ergebnissen

○ Tabellen, Diagramme, …

Programmiersprachen

Risikoanalyse Für alle!

○ Checkstyle

○ PMD, Findbugs

○ Verwaltung und Export

Statische Codeanalyse

12

Deployment

Software-Entwicklungs-Zyklus bei PAYBACK

Entwicklungsumgebung

Build-Automatisierung

Analyse Export

von Regeln

○ Regeln definieren

○ Ergebnisse anzeigen und analysieren

○ Einfach erweiterbar

Kontinuierliche Architekturanalyse in 3D

13

DEMO SonarQube

Kontinuierliche Architekturanalyse in 3D

14

Deployment

Software-Entwicklungs-Zyklus bei PAYBACK

Entwicklungsumgebung

Build-Automatisierung

Analyse Export

von Regeln

○ Regeln definieren

○ Ergebnisse anzeigen und analysieren

○ Einfach erweiterbar

Visualisierung

Kontinuierliche Architekturanalyse in 3D

15

SoftVis3D Sonar-Plugin

○Webpage plugin für SonarQube

- Java Backend mittels Webservice

○ AngularJS Frontend (Menü / Navigation / Interaktion)

○ GraphViz für das Layout

○ threeJS als 3D Framework

Kontinuierliche Architekturanalyse in 3D

16

DEMO SoftVis3D

Kontinuierliche Architekturanalyse in 3D

17

Software-Architektur = Struktur?

Kontinuierliche Architekturanalyse in 3D

P1

P2

C1

P3

C2 C3

Package "1"

○Package "2"

- C1class.java

○Package "3"

- C2class.java

- C3class.java

18

Software-Architektur = Struktur + Abhängigkeiten

Kontinuierliche Architekturanalyse in 3D

Package "1"

○Package "2"

- C1class.java

○Package "3"

- C2class.java

- C3class.java

P1

P2

C1

P3

C2 C3

19

Overflow !

Kontinuierliche Architekturanalyse in 3D

20

Transformation von Abhängigkeiten I

Kontinuierliche Architekturanalyse in 3D

P1

P2

C1

P3

C2 C3

P1

P2

C1

P3

C2 C3

21

Transformation von Abhängigkeiten II

Kontinuierliche Architekturanalyse in 3D

P1

P2

C1

P3

C2 C3

P1

P2

C1

P3

C2 C3

22

Transformation von Abhängigkeiten III

Kontinuierliche Architekturanalyse in 3D

P1

P2

C1

P3

C2 C3

P1

P2

C1

P3

C2 C3

2

2

1 1

23

Visualisierung von Abhängigkeiten I

Kontinuierliche Architekturanalyse in 3D

24

Visualisierung von Abhängigkeiten II

Kontinuierliche Architekturanalyse in 3D

25

Visualisierung von Abhängigkeiten III

Kontinuierliche Architekturanalyse in 3D

26

Zusammenfassung Abhängigkeiten

○ Abhängigkeiten innerhalb eines Paketes

- direkter Pfeil

○ Abhängigkeiten außerhalb eines Paketes

- mittels "shortest path" transformiert und aggregiert

○ Stadtteile wachsen nach unten und werden auf der oberen Plattform repräsentiert

○ "Elevator-Buildings" sind die Verbindung zwischen den Ebenen

- Vereint alle ein- und ausgehenden Abhängigkeiten des Paketes

○ Aggregierte Ansicht der Abhängigkeiten

○ Explorative Analyse bis ins Detail möglich

Kontinuierliche Architekturanalyse in 3D

27

DEMO

Kontinuierliche Architekturanalyse in 3D

28

Kontinuierliche Architekturanalyse in 3D

Management der Code-Qualität

Kontinuierliche Analyse des Quellcodes

Ergebnisse konsolidieren und analysieren

Visualisierung als zusätzliches Hilfsmittel

Zusammenfassung

29

Kontinuierliche Architekturanalyse in 3D

SonarQube-Plugin Zukunft?

○ Seit SonarQube 5.2 (Release November 2015) keine direkte Datenbankverbindung möglich

- Analyse soll kein Zugriff auf die Datenbank mehr benötigen

SoftVis3d Plugin nicht nutzbar in SQ >= 5.2

○Lösung: Umbau auf Webservice-Schnittstelle

- Noch nicht möglich

- Offene Userstory SonarQube SONAR-6948 (Fix Release 5.5 / 04-2016)

30

Kontinuierliche Architekturanalyse in 3D

SoftVis3d Roadmap

○ PRIO: Umbau auf Webservice für SonarQube

○Neue Features

- Gebäudefarbe

- Einbeziehen von SCM Informationen

○Projekt soll unabhängiger von der Plattform werden

- Schnittstelle zu Neo4J-Datenbank zur dynamischen Analyse

- Kooperation mit jQAssistant

31

Kontinuierliche Architekturanalyse in 3D

SoftVis3d Sonarqube plugin

○ Einfache Installation als SonarQube Plugin

○ Open source: https://github.com/stefanrinderle/softvis3d/sonar-softvis3d-plugin

○ Visualisierung von allen in SonarQube vorhandenen Metriken (SonarQube < 5.2)

○ City view / Dependency view

○ Exploratives user interface

○Detaillierte Informationen unter: http://softvis3d.com

32

Danke

PAYBACK GmbH

STEFAN RINDERLE

Software Engineer

Theresienhöhe 12

80339 München

Phone +49 (0) 89 997 41 – 780

[email protected]

PAYBACK.net | PAYBACK.de