provenance of software development processes
DESCRIPTION
TRANSCRIPT
![Page 1: Provenance of Software Development Processes](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/1.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/6.jpg)
Folie 6Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Vorgehen
![Page 7: Provenance of Software Development Processes](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/7.jpg)
Folie 7Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Software-Entwicklungsprozesse
![Page 8: Provenance of Software Development Processes](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/19.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/21.jpg)
Folie 21Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Tool Unterstützung
![Page 22: Provenance of Software Development Processes](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/22.jpg)
Folie 22Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Fragen & Probleme
![Page 23: Provenance of Software Development Processes](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/25.jpg)
Folie 25Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Provenance
![Page 26: Provenance of Software Development Processes](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/29.jpg)
Folie 29Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
ProvenanceKonzept
![Page 30: Provenance of Software Development Processes](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/30.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/31.jpg)
Folie 31Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Provenance PRiME + Adaption
![Page 32: Provenance of Software Development Processes](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/33.jpg)
Folie 33Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Implementierung und Integration
![Page 34: Provenance of Software Development Processes](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/34.jpg)
Folie 34Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Prototyp
![Page 35: Provenance of Software Development Processes](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/35.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/36.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/37.jpg)
Folie 37Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Neoclipse
![Page 38: Provenance of Software Development Processes](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/38.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/39.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/40.jpg)
Folie 40Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Beispiel
![Page 41: Provenance of Software Development Processes](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/41.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/42.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/43.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/44.jpg)
Folie 44Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Demo
![Page 45: Provenance of Software Development Processes](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/45.jpg)
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](https://reader034.vdocuments.site/reader034/viewer/2022051412/5488bc08b47959d30c8b57bd/html5/thumbnails/46.jpg)
Folie 46Using Provenance to Trace Software Development Processes > Heinrich Wendel > 23.07.2010
Fragen?