provenance of software development processes

46
Folie 1 Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010 Using Provenance to Trace Software Development Processes Master-Kolloquium – Universität Bonn – Institut für Informatik III Heinrich Wendel

Upload: heinrich-wendel

Post on 05-Dec-2014

701 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Provenance of Software Development Processes

Folie 1Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Using Provenance to Trace Software Development Processes

Master-Kolloquium – Universität Bonn – Institut für Informatik IIIHeinrich Wendel

Page 2: Provenance of Software Development Processes

Folie 2Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

DLR – Deutsches Zentrum für Luft- und Raumfahrt

Daten6500 Mitarbeiter29 Forschungsinstitute13 Standorte

AufgabenForschungseinrichtungRaumfahrt-AgenturProjektträger

ForschungsgebieteLuftfahrtRaumfahrtEnergieVerkehr

Koeln

Oberpfaffenhofen

Braunschweig

Goettingen

Berlin

Bonn

Neustrelitz

Weilheim

Bremen Trauen

Lampoldshausen

Hamburg

Stuttgart

Page 3: Provenance of Software Development Processes

Folie 3Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Software-Entwicklung im DLRGrößenordnung

Über 1000 Mitarbeiter des DLR entwickeln Software

DLR ist eines der größten Software-Häuser Deutschlands

Das sind >100 Millionen EUR Personalkosten pro Jahr

Page 4: Provenance of Software Development Processes

Folie 4Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Einrichtung Simulations- und SoftwaretechnikInnovatives Software-Engineering für das DLR

Rolle und AufgabenErarbeitung neuer SW-Technologien und Untersuchung der Relevanz für DLR, Einführung in DLR Instituten

Forschungsgebiete: Software Engineering, Verteiltes Rechnen, Integration, Daten- und Wissensmanagement, High-Performance Computing, Concurrent Engineering, VR

Software Engineering NetzwerkSoftware KatalogWerkzeugsuiteSchulungenSoftware Standards

Mitarbeiter: ca. 30

Page 5: Provenance of Software Development Processes

Folie 5Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Motivation

„Warum schlägt ein Unit Test fehl?“

Page 6: Provenance of Software Development Processes

Folie 6Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Vorgehen

Page 7: Provenance of Software Development Processes

Folie 7Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Software-Entwicklungsprozesse

Page 8: Provenance of Software Development Processes

Folie 8Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Software-Entwicklungsprozesse

„ein für die Softwareentwicklung angepasstes Vorgehensmodell bei der professionellen Anwendungsentwicklung“ (Wikipedia)

NATO Konferenz über Software Engineering 1968Steigende Komplexität von Software

HistorieStatisch, Wasserfall Modell, 80er JahreIterativ, Rational Unified Process, 90er JahreAgile, Flexibel, aktuell

FazitDer Prozess muss individuell angepasst werden

Page 9: Provenance of Software Development Processes

Folie 9Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Typischer DLR Prozess

Grafik

DLR Software Projekt- und Entwicklerhandbuch, M. Bock, A. Hermann, T. Schlauch, 22.10.2009

Page 10: Provenance of Software Development Processes

Folie 10Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

AnwendungsfallRemote Component Environment (RCE)

RCE ist ein allgemein verwendbares Integrations-FrameworkBasierend auf Eclipse / OSGi

AnwendungsfälleSchiffsentwurfsystemConcurrent Engineering FacilityIntegration von Strömungslöser

Daten + FaktenLaufzeit: 5 JahreMitarbeiter: 44 (17 Entwickler)Issues: 1034 / 4914Wiki Seiten: 589 / 4155Commits: ~ 10.000Releases: 15 + 42 Snapshots

Page 11: Provenance of Software Development Processes

Folie 11Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

RCE Entwicklung

Grafik

DLR Software Projekt- und Entwicklerhandbuch, M. Bock, A. Hermann, T. Schlauch, 22.10.2009

Mantis / Jour Fix

Page 12: Provenance of Software Development Processes

Folie 12Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

RCE Entwicklung

Grafik

DLR Software Projekt- und Entwicklerhandbuch, M. Bock, A. Hermann, T. Schlauch, 22.10.2009

Issue zu Version zuordnen

Page 13: Provenance of Software Development Processes

Folie 13Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

RCE Entwicklung

Grafik

DLR Software Projekt- und Entwicklerhandbuch, M. Bock, A. Hermann, T. Schlauch, 22.10.2009

Design Meetings, Protokoll auf Homepage (Wiki)

Page 14: Provenance of Software Development Processes

Folie 14Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

RCE Entwicklung

Grafik

DLR Software Projekt- und Entwicklerhandbuch, M. Bock, A. Hermann, T. Schlauch, 22.10.2009

Eclipse / Maven / Junit / Powermock / Checkstyle / Cobertura / Doc in Wiki

Page 15: Provenance of Software Development Processes

Folie 15Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

RCE Entwicklung

Grafik

DLR Software Projekt- und Entwicklerhandbuch, M. Bock, A. Hermann, T. Schlauch, 22.10.2009

Branch Konzept / Repoguard / Zugriffsrechte / Mantis ID

Page 16: Provenance of Software Development Processes

Folie 16Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

RCE Entwicklung

Grafik

DLR Software Projekt- und Entwicklerhandbuch, M. Bock, A. Hermann, T. Schlauch, 22.10.2009

Hudson / Nightly Builds (Different Platforms) / Unit

Tests / Code Coverage

Page 17: Provenance of Software Development Processes

Folie 17Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

RCE Entwicklung

Grafik

DLR Software Projekt- und Entwicklerhandbuch, M. Bock, A. Hermann, T. Schlauch, 22.10.2009

API Doc / Documentation in Wiki

Page 18: Provenance of Software Development Processes

Folie 18Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

RCE Entwicklung

Grafik

DLR Software Projekt- und Entwicklerhandbuch, M. Bock, A. Hermann, T. Schlauch, 22.10.2009

Code Reviews / Neue Issues in Mantis / Wiki Protokoll

Page 19: Provenance of Software Development Processes

Folie 19Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

RCE Entwicklung

Grafik

DLR Software Projekt- und Entwicklerhandbuch, M. Bock, A. Hermann, T. Schlauch, 22.10.2009

Administrator Guide / User Guide

Page 20: Provenance of Software Development Processes

Folie 20Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

RCE Entwicklung

Grafik

DLR Software Projekt- und Entwicklerhandbuch, M. Bock, A. Hermann, T. Schlauch, 22.10.2009

Bash Script / Tagging / Versions-Schema / Sourceforge / Mailinglist

Page 21: Provenance of Software Development Processes

Folie 21Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Tool Unterstützung

Page 22: Provenance of Software Development Processes

Folie 22Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Fragen & Probleme

Page 23: Provenance of Software Development Processes

Folie 23Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Fragen und Probleme

Fehlerbehebung Welches Changeset war dafür verantwortlich, dass ein UnitTest nicht mehr funktioniert?

Qualitätssicherung Wie viele Releases wurden dieses Jahr gemacht?

Prozess Validierung Von welcher Revision wurde ein bestimmtes Release gebaut?

Monitoring Wie lange hat es gedauert um einen bestimmten Fehler zu beheben?

Statistische Analysen Welche Entwickler haben zu einem Release beigetragen?

Entwickler Bewertung Welcher Entwickler hat am meisten Dokumentation geschrieben?

Informativ Welche Features sind in Release X neu?

Page 24: Provenance of Software Development Processes

Folie 24Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Fragen und ProblemeKategorisierung

Single Tool

Einfach Wie ist die aktuelle CodeCoverage vom gesamten Projekt?

Aggregiert Wie hat sich die Anzahl der UnitTests im letzten Monat verändert?

Multi Tool

Entwickler Wie viele Fehler wurde von einem bestimmten Entwickler für ein Release behoben?

Anforderungen Wie viel Zeit wurde gebraucht um eine bestimmte Anforderungen zu implementieren?

Fehler Welche Version von Maven wurde benutzt als der Build fehlgeschlagen ist?

Page 25: Provenance of Software Development Processes

Folie 25Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Provenance

Page 26: Provenance of Software Development Processes

Folie 26Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

ProvenanceDefinition

DudenProvenienz, die; -, -en [zu lat. provenire = hervorkommen, entstehen], Herkunft, Ursprung

InformatikAufzeichnung von Prozessdaten zur Laufzeit des Prozesses zum Zweck

Ermittlung des Ursprung der DatenÜberprüfung der Konformität des (Daten-) erzeugenden Prozess

Die Provenienz einer Information ist die Geschichte ihrer Erzeugung

Page 27: Provenance of Software Development Processes

Folie 27Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Provenance

Forschungsgebiet seit ca. 2002Luc Moreau. The foundations for provenance on the web. Foundations and Trends in Web Science, November 2009. Simmhan, Yogesh L., Beth Plale, and Dennis Gannon: A survey of data provenance in e-science.

Page 28: Provenance of Software Development Processes

Folie 28Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

ProvenanceAnwendungsgebiete

MedizinÜberblick über alle früheren Behandlungen von Patienten

IngenieurwissenschaftenNachvollziehbarkeit der Entstehungsgeschichte einer Berechnung

KlimaforschungUrsprung eines Klimamodells

BioinformatikNachvollziehbarkeit der Effizienz von Protein Sequences

PharmazieNachvollziehbarkeit von Produktentwicklung

FinanzwirtschaftNachvollziehbarkeit von Finanztransaktionen

Page 29: Provenance of Software Development Processes

Folie 29Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

ProvenanceKonzept

Page 30: Provenance of Software Development Processes

Folie 30Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

ProvenanceOpen Provenance Modell

Artifact (A): Beliebige nicht änderbare Zustände, z.b. Daten, Dateien, …Process (P): Aktionen die zu einem Artifact geführt habenAgent (Ag): Entität kontrolliert oder startet Ausführung eines Prozesses

Page 31: Provenance of Software Development Processes

Folie 31Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Provenance PRiME + Adaption

Page 32: Provenance of Software Development Processes

Folie 32Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Modell Schema

Actors (Sub-Prozesse)Issue TrackingEntwicklungContinuous IntegrationDokumentationRelease

InteraktionenUserIssueRevisionRelease

Page 33: Provenance of Software Development Processes

Folie 33Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Implementierung und Integration

Page 34: Provenance of Software Development Processes

Folie 34Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Prototyp

Page 35: Provenance of Software Development Processes

Folie 35Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Datenspeicherung

NoSQL Trend (no:sql(east), 2009)Key-Value StoresBig Table ClonesDocument DatabasesGraph Databases

„Choosing a Data Model and Query Language for Provenance“Relationale DatenbankenXML & XPathRDF & SPARQLSemistructural

Page 36: Provenance of Software Development Processes

Folie 36Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Neo4j

Java Graph Datenbank7 Jahre im produktiven EinsatzTransaction ManagementUnterstützt Domain ModelleGraph Traversal FrameworkDual lizensiert: AGPLv3/CommerziellMehrere Milliarden Knoten/Kanten/PropertiesSupport für Python, Ruby, Lisp, Scala, GroovySemantic Web Technologien: RDF/SPARQLIndizierung durch LuceneEinfach zu benutzen und Klein (<500kb)

Page 37: Provenance of Software Development Processes

Folie 37Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Neoclipse

Page 38: Provenance of Software Development Processes

Folie 38Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Graph DatenbankProperty Graph Model

GraphGerichtetMulti-RelationalKey-Value basiert

KnotenEindeutiger IdentifierEin-/Ausgehende KantenProperties

KantenEindeutiger IdentifierEin-/Ausgehender KnotenLabelProperties

Page 39: Provenance of Software Development Processes

Folie 39Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Gremlin

Graphen ProgrammierspracheNicht „nur“ Abfragesprache

XPath 1.0 basierend

Turing-Vollständig

Erweiterbar durch eigene Funktionen (Java / Gremlin)

Unterstützt verschiedene BackendsNeo4jMemory…

Page 40: Provenance of Software Development Processes

Folie 40Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Beispiel

Page 41: Provenance of Software Development Processes

Folie 41Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Beispiel QueryWieviele Commits hat Entwickler X zu Release Y beigetragen?

Page 42: Provenance of Software Development Processes

Folie 42Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Beispiel QueryWieviele Commits hat Entwickler X zu Release Y beigetragen?

$release := g:key($_g, 'string', string($release))

$commits := $release/outE/inV/inE/outV[@type='commit']

$relevant := $commits[outE/inV[@type='user' and @name=string($developer)]]

$count := count($relevant)

Page 43: Provenance of Software Development Processes

Folie 43Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Komplexität

QueryIndex -> LogarithmischTraversal -> Linear

Insertion•Index -> Logarithmisch•Einfügen -> Linear

Query Insertion

Erste Avg. 10 Erste Avg. 10

Leer 782ms 303ms 47ms 0ms

Halb-Voll 1047ms 345ms 1110ms 204ms

Voll 1297ms 350ms 3890ms 415ms

Datenbank Größe:114102 Knoten / 177261 Kanten / 364931 Properties

Page 44: Provenance of Software Development Processes

Folie 44Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Demo

Page 45: Provenance of Software Development Processes

Folie 45Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

To be continued…

Was wurde gemachtNeuer Anwendungsfall für ProvenanceAllgemeine Vorgehensweise gezeigtNeue Technologien zur Speicherung und Abfrage von Daten

Es existiert ein funktionierender Prototyp -> Einbindung in den Prozess

Offene Punkte / Weitere IdeenModell/Index/Query Strukturen optimierenVisualisierung / Grafische Queries / TimelineProzess ValidierungProzess OptimierungEinsatz in anderen ProzessenDatenschutz

Page 46: Provenance of Software Development Processes

Folie 46Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010

Fragen?