provenance of software development processes
DESCRIPTION
TRANSCRIPT
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
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
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
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
Folie 5Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Motivation
„Warum schlägt ein Unit Test fehl?“
Folie 6Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Vorgehen
Folie 7Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Software-Entwicklungsprozesse
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
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
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
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
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
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)
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
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
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
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
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
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
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
Folie 21Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Tool Unterstützung
Folie 22Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Fragen & Probleme
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?
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?
Folie 25Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Provenance
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
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.
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
Folie 29Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
ProvenanceKonzept
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
Folie 31Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Provenance PRiME + Adaption
Folie 32Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Modell Schema
Actors (Sub-Prozesse)Issue TrackingEntwicklungContinuous IntegrationDokumentationRelease
InteraktionenUserIssueRevisionRelease
Folie 33Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Implementierung und Integration
Folie 34Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Prototyp
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
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)
Folie 37Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Neoclipse
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
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…
Folie 40Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Beispiel
Folie 41Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Beispiel QueryWieviele Commits hat Entwickler X zu Release Y beigetragen?
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)
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
Folie 44Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Demo
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
Folie 46Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Fragen?