SlideShare a Scribd company logo
1 of 68
Download to read offline
Ergebnisse Masterarbeit
Einsatzmöglichkeiten der
automatisierten Analyse von
Artefakten und Metadaten aus Softwareprojekten
zur Unterstützung der Wartbarkeitsoptimierung
langlebiger Softwaresysteme
Markus Harrer
24.03.2015
(firmenunabhängige Version)
Übersicht
1. Grundlegendes
2. Softwaredatenanalyse
3. Wartbarkeitsoptimierung
4. Fallstudie
5. Handlungsempfehlungen
6. Zusammenfassung
Grundlegendes
Grundlegendes
Vorhaben
Einsatzmöglichkeiten
der automatisierten Analyse
von Artefakten und Metadaten aus Softwareprojekten
zur Unterstützung der Wartbarkeitsoptimierung
langlebiger Softwaresysteme
(das klappt ja schließlich auch bei Unternehmensdatenanalysen...)
Grundlegendes
Ziele (generisch)
Wo liegen die Möglichkeiten und Grenzen von
Softwaredatenanalysen?
Wie kann damit die Verbesserung der Wartbarkeit
unterstützt werden?
Wie weit ist bereits der praktische Einsatz möglich?
Softwaredatenanalyse
Softwaredatenanalyse
Grundidee
Ausgangsbasis
Jeder Schritt in der Entwicklung und Verwendung von Software
erzeugt wertvolle Daten
Ziel
Neues, handlungsunterstützendes Wissen gewinnen
• automatisiert mit Hilfe statistischer Methoden
• aus vorhandenen Daten
Weg (ohne das Rad neu zu erfinden)
Unternehmensdaten Softwaredaten
Data Mining Mining Software Repositories
Business Intelligence Software Intelligence
Data Analytics Software Analytics
Predictive Analytics Recommendation Systems
Softwaredatenanalyse
Auswertebasis
Softwaredaten
Artefakte
Produkt
Machbarkeitsstudien
Softwareanforderungen
Grobentwürfe
Implementierungsdokument
Namenskonventionen
Quellcode
Lebenszyklus
Kommunikationsdaten
Software von Dritten
Entwicklungsumgebungsdaten
Programmnutzungsstatistiken
Ausführungsaufzeichnungen
Internet
Metadaten
Autor
Erstellungsdatum
Änderungsdatum
Änderungsvermerk
Verlinkte Ressourcen
Digital verfügbare Softwaredaten aus Versionskontrollsystemen,
Fehlerdatenbanken, Dateifreigaben, E-Mail-Archiven, Online-Foren
etc.
Softwaredatenanalyse
Möglichkeiten
• Welche meiner Komponenten sollte ich am sorgfältigsten testen?
• Habe ich meinen Quellcode richtig strukturiert?
• Wenn ich Funktion foo() ändere, muss ich dann noch mehr ändern?
• Wie verwenden Benutzer typischerweise meine Software?
• Welche Bestandteile der Software sind beim Kunden am
beliebtesten?
Softwaredatenanalyse
Knackpunkt
Softwaredaten sind selbst nicht auswertbar
Verwendung von Softwaremetriken notwendig
• Drücken bestimmte technische Eigenschaften von Softwaredaten
in Zahlen aus
• Sind aber nur Heuristiken
Softwaredatenanalyse
Limitationen
Unzureichende Qualität der Datenbasis
• Datenbasis kann falsch, unvollständig, unglaubwürdig, veraltet
etc. sein
Kontextabhängigkeit von Auswertungen
• Ergebnisse meist nicht übertragbar
• Teils widersprüchliche Aussagen
(Statistische Unzulänglichkeiten)
• Shotgun Surgery
• Missachtete Einflussfaktoren (Korrelationen, Effektgrößen)
• ...
Softwaredatenanalyse
Was nun?
„Keine auf Empirie basierende Untersuchung
kann ein „allumfassendes Ergebnis“ liefern.“
Betrand Meyer
⇒ Ende des Vortrags? Nein!
Aktives Gegensteuern durch:
 Einschränkung der kontextabhängigen Messergebnisse
 Möglichkeit der manuellen Datenbewertung
Wartbarkeitsoptimierung
Wartbarkeitsoptimierung
Was ist das?
Definition Wartbarkeit
„Software-Wartbarkeit ist ein Maß für die Leichtigkeit, mit
der sich Programme korrigieren, ändern und erweitern
lassen.“ Harry M. Sneed
Maßnahmen zur Optimierung der Wartbarkeit
• Softwaresanierung
• Reengineering
• Rewriting
• Replacing
• Redesign oder Refactoring
Wartbarkeitsoptimierung
„State of the Art“ Wartbarkeitsmessung
Wartbarkeitsoptimierung
„State of the Art“ Wartbarkeitsmessung
Wartbarkeitsoptimierung
„State of the Art“ Wartbarkeitsmessung
Wartbarkeitsoptimierung
„State of the Art“ Wartbarkeitsmessung
Wartbarkeitsoptimierung
„State of the Art“ Wartbarkeitsmessung
Wir haben 5309
Methoden, die zu
komplex sind!
Wir haben 51021 Zeilen
undokumentierten
Code!
Ja und?
Entwickler Entscheider
ExpressionParser hat
eine zyklomatische
Komplexität von 1967!
Wartbarkeitsoptimierung
Lösungsvision
Entwickler EntscheiderAnalyst
NetMAPI.cpp hat
eine zyklomatische
Komplexität von 47!
Zukünftige
Änderungen an der
E-Mailfunktion
können teuer werden
OK, aber das
Risiko gehe
ich ein!
Wartbarkeitsoptimierung
Portfolioanalyse der Wartbarkeit
Entwickler Entscheider
Keine
Wartbarkeits-
optimierungen
Niedrig
priorisierte
Wartbarkeits-
optimierungen
Ersetzung
durch
kommerzielle
Produkte
Kandidaten für
Wartbarkeits-
optimierungen
Wartbarkeit
Nutzen
hoch
hoch
Kosten Qualität = Herstellung +
Erhalt der Qualität
Bewertbare
Quellcode-
bereiche
notwendig!
Wartbarkeitsoptimierung
Lösungsidee
Bewertbare Bereiche aus dem Quellcode extrahieren
Bezeichner wie die Namen von
• Klassen
• Instanzen
• Methoden
• Variablen
• Konstanten etc.
enthalten semantische Informationen.
Mehrere Quelltexte können daher semantisch ähnlich
zueinander sein
Wie lassen sich diese begrifflich abgeschlossenen Bereiche
anhand von Quellcodebezeichnern extrahieren?
Wartbarkeitsoptimierung
Belange
Belange sind begrifflich zusammengehörige Quellcodeteile,
welche einen bestimmten Zweck in der Software realisieren.
„...anything that stakeholders of a software project may want to
consider as a conceptual unit.”
Beispiele
• Funktionalität
• Geschäftsregeln
• Übergreifende Programmfunktionen
• Architektur- oder Entwurfsmuster
Wartbarkeitsoptimierung
Lösungsumsetzung
Wartbarkeit
Wartbarkeit
Wartbarkeit
Nutzen
Wartbarkeit
Wartbarkeit pro
Quellcodedatei
niedrig
hoch
niedrig
hoch
niedrig
hoch hoch
hoch
Überprüfte
Wartbarkeit
pro Belang
Wirtschaftliche
Priorisierung der
Wartbarkeitsoptimierungen
Rechnungs-
erstellung
Kunden-
verwaltung
Fehlerproto-
kollierung
Messung der
Wartbarkeit
Begriffliche
Gruppierung
Manuelle
Bewertung
Priorisierung
nach Nutzen
Wartbarkeit
pro Belang
Hohe DatenqualitätNiedrige Datenqualität
Niedrige DatenquantitätHohe Datenquantität
Bei Gelegenheit
weiter verbessern
Nichts tun
Refactorings
durchführen
Fehlerproto-
kollierung Kunden-
verwaltung
Rechnungs-
erstellung
Rechnungs-
erstellung
Kunden-
verwaltung
Fehlerproto-
kollierung
Wartbarkeitsoptimierung
Zusammenfassung
Bewertung der Wartbarkeit in begrifflich abgeschlossenen
Bereichen
 Nutzenbewertung der Wartbarkeit
nach Belangen (=Kontexte)
 Einschränkung der kontextabhängigen
Messergebnisse
 Möglichkeit der manuellen Datenbewertung
Fallstudie
Fallstudie
Übersicht Umsetzung 1/3
Bezeichnertexte Semantische
Strukturen
Semantische Analyse
Bezeichnerextraktion
aus Quellcodedateien
Bezeichnertexte Semantische
Strukturen
Semantische Analyse
Bezeichnerextraktion
aus Quellcodedateien
Fallstudie
Übersicht Umsetzung 1/3
Fallstudie
Übersicht Umsetzung 2/3
Bildung von Belangen
„Fehler, Protokoll,
speichern“
Ähnlichkeitsberechnung
„Kunde, laden,
speichern“
Fallstudie
Übersicht Umsetzung 2/3
Bildung von Belangen
„Fehler, Protokoll,
speichern“
Ähnlichkeitsberechnung
„Kunde, laden,
speichern“
Fallstudie
Übersicht Umsetzung 3/3
Wartbarkeit
nach Belangen
Priorisierung
nach Nutzen
Wartbarkeitsoptimierung
sofort durchführen
Wartbarkeitsoptimierung
nach hinten stellen
Kunden-
verwaltung
Fehlerproto-
kollierung„Fehler, Protokoll,
speichern“
Fallspezifische
Bewertung
„Kunde, laden,
speichern“
„Fehler, Protokoll,
speichern“
„Kunde, laden,
speichern“
Fallstudie
Übersicht Umsetzung 3/3
Wartbarkeit
nach Belangen
Priorisierung
nach Nutzen
Wartbarkeitsoptimierung
sofort durchführen
Wartbarkeitsoptimierung
nach hinten stellen
Kunden-
verwaltung
Fehlerproto-
kollierung„Fehler, Protokoll,
speichern“
Fallspezifische
Bewertung
„Kunde, laden,
speichern“
„Fehler, Protokoll,
speichern“
„Kunde, laden,
speichern“
Fallstudie
Untersuchtes Produkt
Softwareprodukt
Merkmal
DropOver
Typ Webanwendung
Entstehungsjahr 2013
Programmiersprachen Java
Quellcodedateien 206
Quellcodezeilen 9.781
Fallstudie
Umsetzung 1/3
Bezeichnertexte Semantische
Strukturen
Semantische Analyse
Bezeichnerextraktion
aus Quellcodedateien
Fallstudie
Quellcodedatei
package at.dropover.comment.interactor;
...
public class GetComments implements... {
private final CommentGateway commentGateway;
private final CommentRequestValidator requestValidator;
private final CommentResponseBuilder commentDataBuilder;
@Inject
public GetComments(CommentGateway commentGateway,
CommentRequestValidator validator) {
this.commentGateway = commentGateway;
this.requestValidator = validator;
this.commentDataBuilder = new CommentResponseBuilder();
}
...
Fallstudie
Bezeichneridentifikation
package at.dropover.comment.interactor;
...
public class GetComments implements... {
private final CommentGateway commentGateway;
private final CommentRequestValidator requestValidator;
private final CommentResponseBuilder commentDataBuilder;
@Inject
public GetComments(CommentGateway commentGateway,
CommentRequestValidator validator) {
this.commentGateway = commentGateway;
this.requestValidator = validator;
this.commentDataBuilder = new CommentResponseBuilder();
}
...
Fallstudie
Bezeichnerextraktion
comment interactor util list util locale comment boundary get comments
request model comment boundary get comments response model comment entity
comment comment entity gateway comment gateway comment interactor
validation comment request validator framework boundary synchronous
delivery interactor boundary com google inject inject get comments
synchronous delivery interactor boundary get comments request model get
comments response model comment gateway comment gateway comment request
validator request validator comment response builder comment data builder
inject get comments comment gateway comment gateway comment request
validator validator comment gateway comment gateway request validator
validator comment data builder comment response builder override get
comments response model sync get comments request model request request
validator sync request list comment comments comment gateway read request
site name locale locale request locale comment data builder get comments
comments locale
Bezeichnertexte Semantische
Strukturen
Semantische Analyse
Bezeichnerextraktion
aus Quellcodedateien
Fallstudie
Übersicht Umsetzung 1/3
Fallstudie
Semantische Analyse
Topic-Modeling
• Erkennt semantische Struktur aus einer Menge von
Dokumenten
• Dokumente bestehen aus Mischungen von Themen
• Themen bestehen aus Mischungen von Wörtern
• Zugehörigkeit von Dokumenten zu Themen lässt dann auf die
semantische Ähnlichkeit schließen
Latent-Dirichlet-Allocation
• Einfacher, probabilistisch generativer Topic-Modeling-Ansatz
• Probabilistisch: Mischungen sind diskrete
Wahrscheinlichkeitsverteilungen
• Generativ: Grundidee, dass jedes Dokument aus einer
Dokument-Themen-Verteilung bzw. jedes Thema aus einer
Thema-Wörter-Verteilung generiert wird.
Fallstudie
Semantische Analyse am Beispiel GetComments
Dokument-Themen-
Verteilungen
Thema-Wörter-
Verteilung
Thema 2
Thema 10
Fallstudie
Übersicht Umsetzung 2/3
Bildung von Belangen
„Fehler, Protokoll,
speichern“
Ähnlichkeitsberechnung
„Kunde, laden,
speichern“
Fallstudie
Ähnlichkeitsberechnung
0 1 2
0 0,00 0,44 0,93
1 0,44 0,00 0,76
2 0,93 0,76 0,00
Verteilungen Abstand zwischen Verteilungen
Abstandsberechnung mit Hellinger-Distanz
Abstand zwischen zwei diskreten Wahrscheinlichkeitsverteilungen
⇒semantische Ähnlichkeit zwischen zwei Quellcodedateien
/comment/boundary/AddCommentRequestModel.java
/comment/boundary/ChangeCommentRequestModel.java
/comment/boundary/CommentData.java
/comment/boundary/GetCommentRequestModel.java
/comment/boundary/GetCommentResponseModel.java
...
/todo/boundary/AddTodoRequestModel.java
/todo/boundary/ChangeTodoRequestModel.java
/todo/boundary/DeleteTodoListRequestModel.java
/todo/boundary/DeleteTodoListResponseModel.java
/todo/boundary/DeleteTodoResponseModel.java
...
/comment/boundary/AddCommentRequestModel.java 0,00 0,13 0,39 0,02 0,10 ... 0,63 0,68 0,55 0,49 0,43 ...
/comment/boundary/ChangeCommentRequestModel.java 0,13 0,00 0,34 0,10 0,03 ... 0,67 0,72 0,60 0,56 0,51 ...
/comment/boundary/CommentData.java 0,39 0,34 0,00 0,37 0,34 ... 0,73 0,77 0,68 0,65 0,62 ...
/comment/boundary/GetCommentRequestModel.java 0,02 0,10 0,37 0,00 0,08 ... 0,63 0,69 0,56 0,50 0,44 ...
/comment/boundary/GetCommentResponseModel.java 0,10 0,03 0,34 0,08 0,00 ... 0,66 0,71 0,59 0,54 0,49 ...
Fallstudie
Ähnlichkeitsmatrix
Fallstudie
Ähnlichkeitsmatrizen
mail/...
framework/...
file/...
creator/...
comment/...
scheduling/...
site/...
todo/...
mail/...
framework/...
file/...
creator/...
comment/...
site/...
todo/...
QuellcodedateiennachPfadalphabetischsortiert
Quellcodedateien nach Pfad alphabetisch sortiert
DropOver
scheduling/...
Fallstudie
Umsetzung 2/3
Bildung von Belangen
„Fehler, Protokoll,
speichern“
Ähnlichkeitsberechnung
„Kunde, laden,
speichern“
Fallstudie
Bildung von Belangen
Identifizierte Cluster
Abstand zwischen Verteilungen
0 1 2 ...
0 0,00 0,44 0,93 ...
1 0,44 0,00 0,76 ...
2 0,93 0,76 0,00 ...
... ... ... ... ...
Abstände in 2D
Identifikation der Cluster
Erstellung der
Punktordnung
a) Datenobjekte im zwei-
dimensionalen Raum
c) Cluster
b) Erreichbarkeitsplot
d) Cluster
Fallstudie
Bildung von Belangen
Prinzip des dichtebasierten
Clustering-Verfahrens OPTICS-Xi
Fallstudie
Bildung von Belangen
DropOver
Belang-Cluster-Plot
Fallstudie
Bildung von Belangen
DropOver
Belang-Cluster-Plot
Fallstudie
Bildung von Belangen
DropOver
Belang-Cluster-Plot
Fallstudie
Bildung von Belangen
DropOver
EvaluationstabelleBelang-Cluster-Plot
ID Top 5 Bezeichner Beschreibung Präzision
Treffer-
quote
0 request comment model response gateway Schnittstelle und Use-Cases für Kommentare 91,67% 57,89%
1 todo request model list response Schnittstelle und Use-Cases für Todo-Liste 96,55% 93,33%
2 scheduling request model response gateway Schnittstelle und Use-Cases für Terminplaner 100,00% 73,08%
3,6 request model file gateway response
Schnittstelle, Use-Cases und Entitäten für
Datei-Upload
88,89% 94,12%
4 exception creator site utils invalid Nicht eindeutig, meist Fehlerbehandlung 66,67% 33,33%
5 site location date creator description
Schnittstelle, Use-Cases und Entitäten für
Seitenerstellung
100,00% 45,00%
7 request scheduling model response javax REST-Webschnittstelle 90,00% 94,74%
Durchschnitt 90,54% 70,21%
Fallstudie
Umsetzung 3/3
Wartbarkeit
nach Belangen
Priorisierung
nach Nutzen
Wartbarkeitsoptimierung
sofort durchführen
Wartbarkeitsoptimierung
nach hinten stellen
Kunden-
verwaltung
Fehlerproto-
kollierung„Fehler, Protokoll,
speichern“
Fallspezifische
Bewertung
„Kunde, laden,
speichern“
„Fehler, Protokoll,
speichern“
„Kunde, laden,
speichern“
Fallstudie
Bewertung von Belangen
DropOver
Zyklomatische Komplexität
Fallstudie
Umsetzung 3/3
Wartbarkeit
nach Belangen
Priorisierung
nach Nutzen
Wartbarkeitsoptimierung
sofort durchführen
Wartbarkeitsoptimierung
nach hinten stellen
Kunden-
verwaltung
Fehlerproto-
kollierung„Fehler, Protokoll,
speichern“
Fallspezifische
Bewertung
„Kunde, laden,
speichern“
„Fehler, Protokoll,
speichern“
„Kunde, laden,
speichern“
Fallstudie
Bewertung von Belangen
DropOver
Beispiel 1: Komplexität „Kommentarfunktion“
Fallstudie
Bewertung von Belangen
Beispiel 1: Komplexität „Kommentarfunktion“
DropOver
Fallstudie
Bewertung von Belangen
Beispiel 1: Komplexität „Kommentarfunktion“
DropOver
Super!
Entwickler Entscheider
Die Kommentarfunktion
ist total einfach gestrickt.
Fallstudie
Bewertung von Belangen
DropOver
Beispiel 2: Komplexität „REST-Schnittstelle“
Fallstudie
Bewertung von Belangen
Beispiel 2: Komplexität „REST-Schnittstelle“
DropOver
Fallstudie
Bewertung von Belangen
Beispiel 2: Komplexität „REST-Schnittstelle“
DropOverGenehmigt!
Entwickler Entscheider
Wir müssen etwas bei
unserer technischen
Schnittstelle
vereinfachen.
Fallstudie
Bewertung von Belangen
DropOver
Beispiel 3: Komplexität „Datenpersistenz“
Fallstudie
Bewertung von Belangen
Beispiel 3: Komplexität „Datenpersistenz“
(auch ohne Belang sind Klassen bewertbar)
DropOver
Fallstudie
Bewertung von Belangen
Beispiel 3: Komplexität „Datenpersistenz“
(auch ohne Belang sind Klassen bewertbar)
DropOver
Egal, kommt
bald raus!
Entwickler Entscheider
Der Teil für die
Datenspeicherung ist
komplex!
Handlungsempfehlungen
Handlungsempfehlungen
Belastbare Erkenntnisse
Aus dem theoretischen Teil
• Technologie kein Problem
• Softwareentwicklungswerkzeuge zusammen mit Data-Mining,
Business-Intelligence, Data-Science, Big-Data etc. bieten ausreichend
Unterstützung
• Pauschale Auswertungen nicht sinnvoll
• Datenqualität zu unsicher
• Messungen immer kontextabhängig
Aus der Fallstudie
• Nutzen der Belang-Cluster-Bildung ist fraglich
• Einige „Hot-Spots“ erkannt, aber viele Quellcodeteile nicht erfasst
• Belang-Cluster bereits sehr stark ähnlich der Ordnerstruktur
• Ähnlichkeitsmatrizen können zur Architekturbewertung dienen
• Implizite und explizite „Konzepte“ erkennbar
Handlungsempfehlungen
Ausblick
• Extraktion von Features statt Belangen
• Feingranulare Messungen z. B. nach Use-Cases
• Begrifflicher Abstand als Metrik für Programmverständlichkeit?
• Vorsicht bei Datenschutz und Betriebsrat!
• Weitere Testprojekte nur mit anonymisierten Datenmaterial
aufwandsmäßig vertretbar
Zusammenfassung
Zusammenfassung
• Softwaredatenanalyse bringt frischen Wind in die
Softwareentwicklung
• Aber keine ultimative Methode möglich
• Daher gezielte Eingrenzung des Betrachtungskontextes
vornehmen, um belastbare Aussagen zu schaffen
• Wirtschaftliche Bewertung der Wartbarkeit nach
Belangen durch Entscheider prinzipiell machbar
• Extraktion von Belangen aber nur Symptombekämpfung
• Besser: Quellcode nach begrifflicher Zusammengehörigkeit
strukturieren, dann nach „Verzeichnissen“ (bzw. Modulen
oder Packages) bewerten
• Insgesamt große Ernüchterung

More Related Content

Similar to Einsatzmöglichkeiten der automatisierten Analyse von Artefakten und Metadaten aus Softwareprojekten zur Unterstützung der Wartbarkeitsoptimierung langlebiger Softwaresysteme

BARC Was Datenmanagement Messbar Dazu Beitragen Kann
BARC Was Datenmanagement Messbar Dazu Beitragen KannBARC Was Datenmanagement Messbar Dazu Beitragen Kann
BARC Was Datenmanagement Messbar Dazu Beitragen KannDataValueTalk
 
Cognitive Quality Assurance
Cognitive Quality AssuranceCognitive Quality Assurance
Cognitive Quality AssuranceCapgemini
 
KPIs vs. UX – ist User Experience messbar?
KPIs vs. UX – ist User Experience messbar?KPIs vs. UX – ist User Experience messbar?
KPIs vs. UX – ist User Experience messbar?Matthias Feit
 
Jeder sollte Testen, bevor er in unendliche Weiten aufbricht
Jeder sollte Testen, bevor er in unendliche Weiten aufbrichtJeder sollte Testen, bevor er in unendliche Weiten aufbricht
Jeder sollte Testen, bevor er in unendliche Weiten aufbrichtCognizant
 
Folien2 spss watson roadshow_predictive
Folien2 spss watson roadshow_predictiveFolien2 spss watson roadshow_predictive
Folien2 spss watson roadshow_predictiveClara Ogwuazor Mbamalu
 
Werbeplanung.at SUMMIT 15 - Conversion Optimierung in Echtzeit - Andreas Berth
Werbeplanung.at SUMMIT 15 - Conversion Optimierung in Echtzeit - Andreas BerthWerbeplanung.at SUMMIT 15 - Conversion Optimierung in Echtzeit - Andreas Berth
Werbeplanung.at SUMMIT 15 - Conversion Optimierung in Echtzeit - Andreas BerthWerbeplanung.at Summit
 
Saisonale Planung verbessern mittels Supply Chain Optimierung - Ressourcen ni...
Saisonale Planung verbessern mittels Supply Chain Optimierung - Ressourcen ni...Saisonale Planung verbessern mittels Supply Chain Optimierung - Ressourcen ni...
Saisonale Planung verbessern mittels Supply Chain Optimierung - Ressourcen ni...Wolfgang Schmidt
 
Universität Zürich - erfolgreiches Testing
Universität Zürich - erfolgreiches TestingUniversität Zürich - erfolgreiches Testing
Universität Zürich - erfolgreiches TestingIBM Switzerland
 
SAP Infotag: Security / Erlebe-Software 07-2014
SAP Infotag: Security / Erlebe-Software 07-2014SAP Infotag: Security / Erlebe-Software 07-2014
SAP Infotag: Security / Erlebe-Software 07-2014Erlebe Software
 
Software Quality Lab - Beratung und Training für mehr Qualität und Effizienz ...
Software Quality Lab - Beratung und Training für mehr Qualität und Effizienz ...Software Quality Lab - Beratung und Training für mehr Qualität und Effizienz ...
Software Quality Lab - Beratung und Training für mehr Qualität und Effizienz ...Markus Unterauer
 
Splunk Webinar: Machine Learning mit Splunk
Splunk Webinar: Machine Learning mit SplunkSplunk Webinar: Machine Learning mit Splunk
Splunk Webinar: Machine Learning mit SplunkSplunk
 
Nachvollziehbare, datengetriebene, automatisierte Analysen der Softwareentwic...
Nachvollziehbare, datengetriebene, automatisierte Analysen der Softwareentwic...Nachvollziehbare, datengetriebene, automatisierte Analysen der Softwareentwic...
Nachvollziehbare, datengetriebene, automatisierte Analysen der Softwareentwic...Markus Harrer
 
Traceability von Software Anforderungen
Traceability von Software AnforderungenTraceability von Software Anforderungen
Traceability von Software AnforderungenMarkus Unterauer
 
Application Lifecycle Management _ Was bedeutet das?
Application Lifecycle Management _ Was bedeutet das?Application Lifecycle Management _ Was bedeutet das?
Application Lifecycle Management _ Was bedeutet das?Minerva SoftCare GmbH
 
Solutiontogo webinar top 5 tricks und templates für die Planung mit MS Excel
Solutiontogo webinar top 5 tricks und templates für die Planung mit MS ExcelSolutiontogo webinar top 5 tricks und templates für die Planung mit MS Excel
Solutiontogo webinar top 5 tricks und templates für die Planung mit MS Excelsolutiontogo
 
Tipps für Requirements Management Tools
Tipps für Requirements Management ToolsTipps für Requirements Management Tools
Tipps für Requirements Management ToolsMarkus Unterauer
 
Kennst du ein Unternehmen, dass erfolgreich die QS outtasked hat?“
Kennst du einUnternehmen, dass erfolgreichdie QS outtasked hat?“Kennst du einUnternehmen, dass erfolgreichdie QS outtasked hat?“
Kennst du ein Unternehmen, dass erfolgreich die QS outtasked hat?“hpaustria
 

Similar to Einsatzmöglichkeiten der automatisierten Analyse von Artefakten und Metadaten aus Softwareprojekten zur Unterstützung der Wartbarkeitsoptimierung langlebiger Softwaresysteme (20)

BARC Was Datenmanagement Messbar Dazu Beitragen Kann
BARC Was Datenmanagement Messbar Dazu Beitragen KannBARC Was Datenmanagement Messbar Dazu Beitragen Kann
BARC Was Datenmanagement Messbar Dazu Beitragen Kann
 
Cognitive Quality Assurance
Cognitive Quality AssuranceCognitive Quality Assurance
Cognitive Quality Assurance
 
SAP Business ByDesign - IBIS AG
SAP Business ByDesign - IBIS AGSAP Business ByDesign - IBIS AG
SAP Business ByDesign - IBIS AG
 
KPIs vs. UX – ist User Experience messbar?
KPIs vs. UX – ist User Experience messbar?KPIs vs. UX – ist User Experience messbar?
KPIs vs. UX – ist User Experience messbar?
 
KPIs vs. UX - Ist User Experience messbar?
KPIs vs. UX - Ist User Experience messbar?KPIs vs. UX - Ist User Experience messbar?
KPIs vs. UX - Ist User Experience messbar?
 
Jeder sollte Testen, bevor er in unendliche Weiten aufbricht
Jeder sollte Testen, bevor er in unendliche Weiten aufbrichtJeder sollte Testen, bevor er in unendliche Weiten aufbricht
Jeder sollte Testen, bevor er in unendliche Weiten aufbricht
 
Folien2 spss watson roadshow_predictive
Folien2 spss watson roadshow_predictiveFolien2 spss watson roadshow_predictive
Folien2 spss watson roadshow_predictive
 
Werbeplanung.at SUMMIT 15 - Conversion Optimierung in Echtzeit - Andreas Berth
Werbeplanung.at SUMMIT 15 - Conversion Optimierung in Echtzeit - Andreas BerthWerbeplanung.at SUMMIT 15 - Conversion Optimierung in Echtzeit - Andreas Berth
Werbeplanung.at SUMMIT 15 - Conversion Optimierung in Echtzeit - Andreas Berth
 
Saisonale Planung verbessern mittels Supply Chain Optimierung - Ressourcen ni...
Saisonale Planung verbessern mittels Supply Chain Optimierung - Ressourcen ni...Saisonale Planung verbessern mittels Supply Chain Optimierung - Ressourcen ni...
Saisonale Planung verbessern mittels Supply Chain Optimierung - Ressourcen ni...
 
Universität Zürich - erfolgreiches Testing
Universität Zürich - erfolgreiches TestingUniversität Zürich - erfolgreiches Testing
Universität Zürich - erfolgreiches Testing
 
SAP Infotag: Security / Erlebe-Software 07-2014
SAP Infotag: Security / Erlebe-Software 07-2014SAP Infotag: Security / Erlebe-Software 07-2014
SAP Infotag: Security / Erlebe-Software 07-2014
 
Software Quality Lab - Beratung und Training für mehr Qualität und Effizienz ...
Software Quality Lab - Beratung und Training für mehr Qualität und Effizienz ...Software Quality Lab - Beratung und Training für mehr Qualität und Effizienz ...
Software Quality Lab - Beratung und Training für mehr Qualität und Effizienz ...
 
Splunk Webinar: Machine Learning mit Splunk
Splunk Webinar: Machine Learning mit SplunkSplunk Webinar: Machine Learning mit Splunk
Splunk Webinar: Machine Learning mit Splunk
 
Nachvollziehbare, datengetriebene, automatisierte Analysen der Softwareentwic...
Nachvollziehbare, datengetriebene, automatisierte Analysen der Softwareentwic...Nachvollziehbare, datengetriebene, automatisierte Analysen der Softwareentwic...
Nachvollziehbare, datengetriebene, automatisierte Analysen der Softwareentwic...
 
Traceability von Software Anforderungen
Traceability von Software AnforderungenTraceability von Software Anforderungen
Traceability von Software Anforderungen
 
Xidra 2016 DevOps
Xidra 2016 DevOpsXidra 2016 DevOps
Xidra 2016 DevOps
 
Application Lifecycle Management _ Was bedeutet das?
Application Lifecycle Management _ Was bedeutet das?Application Lifecycle Management _ Was bedeutet das?
Application Lifecycle Management _ Was bedeutet das?
 
Solutiontogo webinar top 5 tricks und templates für die Planung mit MS Excel
Solutiontogo webinar top 5 tricks und templates für die Planung mit MS ExcelSolutiontogo webinar top 5 tricks und templates für die Planung mit MS Excel
Solutiontogo webinar top 5 tricks und templates für die Planung mit MS Excel
 
Tipps für Requirements Management Tools
Tipps für Requirements Management ToolsTipps für Requirements Management Tools
Tipps für Requirements Management Tools
 
Kennst du ein Unternehmen, dass erfolgreich die QS outtasked hat?“
Kennst du einUnternehmen, dass erfolgreichdie QS outtasked hat?“Kennst du einUnternehmen, dass erfolgreichdie QS outtasked hat?“
Kennst du ein Unternehmen, dass erfolgreich die QS outtasked hat?“
 

More from Markus Harrer

Datenanalysen in der Softwareentwicklung (IMPROVE Workshop Wien)
Datenanalysen in der Softwareentwicklung (IMPROVE Workshop Wien)Datenanalysen in der Softwareentwicklung (IMPROVE Workshop Wien)
Datenanalysen in der Softwareentwicklung (IMPROVE Workshop Wien)Markus Harrer
 
Software Analytics - Datenanalysen in der Softwareentwicklung (BigDataMeetup)
Software Analytics - Datenanalysen in der Softwareentwicklung (BigDataMeetup)Software Analytics - Datenanalysen in der Softwareentwicklung (BigDataMeetup)
Software Analytics - Datenanalysen in der Softwareentwicklung (BigDataMeetup)Markus Harrer
 
Datenanalysen in der Softwareentwicklung mit Software Analytics
Datenanalysen in der Softwareentwicklung mit Software AnalyticsDatenanalysen in der Softwareentwicklung mit Software Analytics
Datenanalysen in der Softwareentwicklung mit Software AnalyticsMarkus Harrer
 
Software Analytics with Jupyter, Pandas, jQAssistant, and Neo4j [Neo4j Online...
Software Analytics with Jupyter, Pandas, jQAssistant, and Neo4j [Neo4j Online...Software Analytics with Jupyter, Pandas, jQAssistant, and Neo4j [Neo4j Online...
Software Analytics with Jupyter, Pandas, jQAssistant, and Neo4j [Neo4j Online...Markus Harrer
 
Philosophy screws it all up (Pecha Kucha) [Java Forum Stuttgart 2017]
Philosophy screws it all up (Pecha Kucha) [Java Forum Stuttgart 2017]Philosophy screws it all up (Pecha Kucha) [Java Forum Stuttgart 2017]
Philosophy screws it all up (Pecha Kucha) [Java Forum Stuttgart 2017]Markus Harrer
 
Architektur und Code im Einklang [JUG Nürnberg]
Architektur und Code im Einklang [JUG Nürnberg]Architektur und Code im Einklang [JUG Nürnberg]
Architektur und Code im Einklang [JUG Nürnberg]Markus Harrer
 
Architektur und Code im Einklang [DeveloperCamp 2017]
Architektur und Code im Einklang [DeveloperCamp 2017]Architektur und Code im Einklang [DeveloperCamp 2017]
Architektur und Code im Einklang [DeveloperCamp 2017]Markus Harrer
 
Software Analytics for Pragmatists [DevOps Camp 2017]
Software Analytics for Pragmatists [DevOps Camp 2017]Software Analytics for Pragmatists [DevOps Camp 2017]
Software Analytics for Pragmatists [DevOps Camp 2017]Markus Harrer
 
Erkenntnistheoretische Beurteilung von Extreme Programming
Erkenntnistheoretische Beurteilung von Extreme ProgrammingErkenntnistheoretische Beurteilung von Extreme Programming
Erkenntnistheoretische Beurteilung von Extreme ProgrammingMarkus Harrer
 
An interactive form-based mobile software system with a sample application in...
An interactive form-based mobile software system with a sample application in...An interactive form-based mobile software system with a sample application in...
An interactive form-based mobile software system with a sample application in...Markus Harrer
 
Erkenntnistheoretische Beurteilung von Extreme Programming
Erkenntnistheoretische Beurteilung von Extreme ProgrammingErkenntnistheoretische Beurteilung von Extreme Programming
Erkenntnistheoretische Beurteilung von Extreme ProgrammingMarkus Harrer
 

More from Markus Harrer (11)

Datenanalysen in der Softwareentwicklung (IMPROVE Workshop Wien)
Datenanalysen in der Softwareentwicklung (IMPROVE Workshop Wien)Datenanalysen in der Softwareentwicklung (IMPROVE Workshop Wien)
Datenanalysen in der Softwareentwicklung (IMPROVE Workshop Wien)
 
Software Analytics - Datenanalysen in der Softwareentwicklung (BigDataMeetup)
Software Analytics - Datenanalysen in der Softwareentwicklung (BigDataMeetup)Software Analytics - Datenanalysen in der Softwareentwicklung (BigDataMeetup)
Software Analytics - Datenanalysen in der Softwareentwicklung (BigDataMeetup)
 
Datenanalysen in der Softwareentwicklung mit Software Analytics
Datenanalysen in der Softwareentwicklung mit Software AnalyticsDatenanalysen in der Softwareentwicklung mit Software Analytics
Datenanalysen in der Softwareentwicklung mit Software Analytics
 
Software Analytics with Jupyter, Pandas, jQAssistant, and Neo4j [Neo4j Online...
Software Analytics with Jupyter, Pandas, jQAssistant, and Neo4j [Neo4j Online...Software Analytics with Jupyter, Pandas, jQAssistant, and Neo4j [Neo4j Online...
Software Analytics with Jupyter, Pandas, jQAssistant, and Neo4j [Neo4j Online...
 
Philosophy screws it all up (Pecha Kucha) [Java Forum Stuttgart 2017]
Philosophy screws it all up (Pecha Kucha) [Java Forum Stuttgart 2017]Philosophy screws it all up (Pecha Kucha) [Java Forum Stuttgart 2017]
Philosophy screws it all up (Pecha Kucha) [Java Forum Stuttgart 2017]
 
Architektur und Code im Einklang [JUG Nürnberg]
Architektur und Code im Einklang [JUG Nürnberg]Architektur und Code im Einklang [JUG Nürnberg]
Architektur und Code im Einklang [JUG Nürnberg]
 
Architektur und Code im Einklang [DeveloperCamp 2017]
Architektur und Code im Einklang [DeveloperCamp 2017]Architektur und Code im Einklang [DeveloperCamp 2017]
Architektur und Code im Einklang [DeveloperCamp 2017]
 
Software Analytics for Pragmatists [DevOps Camp 2017]
Software Analytics for Pragmatists [DevOps Camp 2017]Software Analytics for Pragmatists [DevOps Camp 2017]
Software Analytics for Pragmatists [DevOps Camp 2017]
 
Erkenntnistheoretische Beurteilung von Extreme Programming
Erkenntnistheoretische Beurteilung von Extreme ProgrammingErkenntnistheoretische Beurteilung von Extreme Programming
Erkenntnistheoretische Beurteilung von Extreme Programming
 
An interactive form-based mobile software system with a sample application in...
An interactive form-based mobile software system with a sample application in...An interactive form-based mobile software system with a sample application in...
An interactive form-based mobile software system with a sample application in...
 
Erkenntnistheoretische Beurteilung von Extreme Programming
Erkenntnistheoretische Beurteilung von Extreme ProgrammingErkenntnistheoretische Beurteilung von Extreme Programming
Erkenntnistheoretische Beurteilung von Extreme Programming
 

Einsatzmöglichkeiten der automatisierten Analyse von Artefakten und Metadaten aus Softwareprojekten zur Unterstützung der Wartbarkeitsoptimierung langlebiger Softwaresysteme