lutz prechelt, prechelt@inf.fu-berlin.de 1 seminar komponenten tools for light weight knowledge...
Post on 05-Apr-2015
109 Views
Preview:
TRANSCRIPT
Lutz Prechelt, prechelt@inf.fu-berlin.de 1
Seminar „Komponenten“
„Tools for light weight knowledge sharing in open-source software
development“
Maximilian Höflich
Freie Universität Berlin, Institut für Informatikhttp://www.inf.fu-berlin.de/inst/ag-se/
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 2
• Wissensmanagement Probleme traditionelle Organisationen “Free and Open Source Software”
(FOSS) Projekte
• Informationensmedien synchrone Medien asynchrone Medien versteckte Wissensspeicher
• Light weight knowledge sharing Hipikat Strathcona ROSE
• Zusammenfassung
Fragestellung:“Wie kann einem neu zu
einem Projekt hinzugestossenem Programmierer der Einstieg am besten
erleichtert werden ?”
Antwort:“Diese Aufgabe versucht
Wissensmanagement unter anderem zu lösen”
ABER:Wissensmanagement ist
keine Formel, die einfach nur angewendet werden
muss, sondern hängt von vielen Faktoren ab
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 3
Wissensmanagement
• Organisation der Wissensbasis• Wissen ist an Personen gebunden
explizites Wissen implizites Wissen
Das Münchener Modell
• Wissensmanagement erzeugt im Optimalfall einen Kreislauf
• dies erfordert einen grossen Koordinationsauswand
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 4
Probleme
Probleme:
• Kollektivierung des Wissens “Wissen ist Macht”
• Institutionalisierung des Wissens schnelles und zuverlässiges Finden? leicht verständliche und ausrechende Informationen?
• Akzeptanzproblem wird das entsprechende Medium akzeptiert? Änderung von Strukturen, Regeln und Handlungsweisen
• Rückkopplungsproblem zyklischer Prozess muss in Gang gehalten werden
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 5
• Kollektivierungproblem grösste Motivation der Mitarbeiter: Geld und Karriere
• Akzeptanzproblem finanzielle Anreize alteingesessene Mitarbeiter
• Institutionalisierungsproblem weniger• Rückkopplungsproblem weniger
Parameter:
fester Wissensmanager (in grösseren Betrieben) feste Niederlassung Mentoring leicht möglich Wissensmanager ist vorhanden
traditionelle Organisationen
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 6
Je weiter Kapital gestreut wird, desto mehr verliert es an Wert.
Je weiter Wissen gestreut wird, desto mehr gewinnt es an Wert.
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 7
• grosse Motivation der Mitarbeiter: Wissenszuwachs (oftmals) kaum Kollektivierungsprobleme
• Akzeptanz- und Institutionalisierungsproblem wie in traditionelle Organisationen hohes Bewusstsein für Wissensvermittlung
Parameter:
hohe Mitgliederfluktuation über viele Länder und Kontinente verteilt verschiedene Zeitzonen verschieden Muttersprachen meist kein Wissensmanager vorhanden
FOSS Projekte
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 8
Fragestellung: “Wie kann einem neu zu einem FOSS-Projekt hinzugestossenem Programmierer der Einstieg am besten erleichtert werden ?”
Antwort:”Durch Mentoring und zur Verfügung gestellte Dokumentationen.”
Informationssuche über Mentoring meist synchron.
Informationssuche über Dokumentationen meist asynchron.
InformationsMedien
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 9
• Instant Messanger (ICQ,AIM,...)• GnomeMeeting , NetMeeting (Audio/Video)• ICQ
Grösstes Problem: keine gut funktionierenden Archivierungsmechanismen langsame Wissensübertragung (ausser Gnomemeeting) kaum Metakommunikation
synchrone Informationsmedien
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 10
• Wissensportale• statische Homepage• CMS Homepage• Wiki
Grösstes Problem: Möglichkeiten bestimmen den Einsatz Informationsmedium sagt nichts über die Qualität der
Informationen aus benötigen meist Administratoren
asynchrone Informationsmedien
• Sourcedokumentationen (JavaDoc)• BugZilla• Mails• Mailinglisten/ Newsgroups
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 11
• CVS Metainformationen in Commitnachrichten
• Bugzilla BugzillaIDs in Dokumentationen oder CVS-Commits
Grösstes Problem: Informationen sind zu verstreut kaum durch Menschen auswertbar
versteckte Wissensspeicher
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 12
• kein Informationsmedium ist eine Gesamtlösung• Informationen teilweise weit verteilt• Verknüpfungen zwischen Informationen erschliessen neue
Informationen für Menschen nur mit viel Aufwand herauszulesen
• Light weight knowledge sharing Benutzung von “common practice” Werkzeugen sollen bestimmte Dokumentationen ergänzen oder ersetzen
• durch automatische Erstellung von Verknüpfungen• strukturierte Aufbearbeitung• verbesserte Suche
fiktives Beispiel: Die “Supersuchmaschine für Programmierer”
Light weight knowledge sharing
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 13
• Bugzilla als Taskmanagementsystem Erleichterung der Abarbeitung eines Tasks
• Client-Server System Client als Eclipse Plugin, standalone Server
• Verknüpft Informationen aus: Bugzilla CVS Homepage Newsgroups
• automatisiertes Formen eines “Gruppengedächnisses” aus diesen Informationen
semantisch verknüpfte Informationen contextbezogene Anfragen
• Mögliche Anfrage: “Ich soll Task #123 abarbeiten. Bitte liefere mir ähnliche Tasks.” “Task #102 ist meinem sehr ähnlich, bitte liefere mir die dazu
relevanten Informationen (wie Quelltextänderungen, Newsgroupbeiträge, ...)”
Hipikat
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 14
• “Update Module” Durchsuchen des Informationsquellen Eintragen von neuen Informationen in die Datenbank
• “Identification Module” Erstellen der Verknüpfungen in der Datenbank
• “Selection Module” Beantwortung einer Anfrage des Clients
Hipikat – Erstellung des Gruppengedächnisses
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 15
Identifikation
• Erstellung der Verknüpfungen mit “log matcher” “activity Matcher” “text similarity matcher” “newsgroup thread matcher”
Selection
• Erstellen einer Antwortliste spezialisierte submodule Suche ausgehend von einer Entität in der Datenbank
Hipikat
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 16
Eine Anfrage stellen – Der Client1. Einstiegspunkt ist nicht offener Bugzillaeintrag2. ähnliche Eintrage über “similar” Beziehung3. relevante Informationen über “implements”, “documents” und
“about”
Antwort als Liste von Informationsquellen mit Relevanz (Numerischer Wert).
Darstellung der Informationen in Eclipse über Editoren CVS Browser Bugzilla Browser (externes plugin)
Hipikat
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 17
• Probleme keine Personalisierung des Benutzers keine Rückmeldungen über Nützlichkeit von Informationen Authoren werden nicht berücksichtigt für Relevanzwerte benötigt ausführliche CVS Commitnachrichten sehr Bugzilla-zentrisch
• Vorteile benötigt keine neuen Informationsmedien setzt keine Formatierung von Informationen voraus ersetzt Dokumentation
Hipikat
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 18
Ziel Strathconas ist es einem Programmierer die Arbeit mit grossen Frameworks/APIs zu vereinfachen, indem es Informationen aus Beispielprojekten kontextbezogen liefern kann.
komplexe Abläufe oft kaum/keine strukturierte Dokumentationen für jedes Problem andere Beispielprojekte schwer durchsuchbar
• Client/Server System Client als Eclipse Plugin standalone Server
• Mögliche Anfrage: “Ich habe die Funktionalität bis hierher verstanden und implementiert, aber jetzt weiss ich nicht weiter.”
Strathcona
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 19
Den Server füllen
• benötigt Beispielprojekte, die das Framework benutzen
• bildet die Struktur der Beziehungen in einer DB ab
“Funktion a mit den Parametern x,y und dem Rückgabewert z gehört zu Klasse H mit der SuperKlasse U, welche die Interfaces HIJ implementiert.”
“In Funktion a werden die Funktionen b,c,d aufgerufen, und Typen K,L,M instantiert.”
Strathcona
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 20
• Der Client
EclipsePlugin, das die Usereingaben überwacht Anfrage an C, m oder f)
• C = Klasse• m = Methode• f = Variablendeklaration
Erstellen des strukturellen Kontextes für Klasse, die C,m oder f enthält
• Superklasse, Interfaces• Funktiosaufrufe aus Methode m (beschränkt auf relevante
Funktionen, z.B. keine Java API)
Strathcona
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 21
Annahme: Programmierer weiss bereits ungefähr, wie das Framework zu bedienen ist
• Vergleichsheuristiken für strukturellen Kontext
Inheritance Heuristik Calls Heuristik
• basic calls• calls best fit• calls with inheritance
Uses Heuristik• basic uses• uses with inheritance
Strathcona
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 22
10 Resultate als Antwort
Jedes Resultat ist ein Tripel
• strukturelle Darstellung• Liste der Heuristiken• Quelltext
Strathcona
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 23
• Testumgebungen Eclipse Pluginentwicklung 2 Probanden mit wenig Erfahrung mit Eclipse verschiedene Aufgaben nur Eclipseeigene Tools und Strathcona zur Lösung des Problems
Strathcona
• Kaum Aussagekraft zu wenig Probanden nur ein Projekt
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 24
• Probleme Qualität hängt von Beispielprogrammen ab (z.B. Anzahl) Falsche Resultate können sehr viel Zeit kosten Context kann falsch gedeutet werden Copy'n'Paste Programmieren wird gefördert
• kein Verständnis, unnütze Codefragmente (evtl. Fehlverhalten)• gemildert durch mehrere Ergebnisklassen
• Vorteile automatisches Suchen von relevanten Quelltextpassagen keine spezielle Anfragesprache ersetzt Dokumentation über Beispielsammlungen
=> erleichtert die Arbeit der Entwickler eines Frameworks
Strathcona
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 25
• Auswertung von CVS Daten Amazon: “Kunden, die dieses Buch kauften, haben auch
auch folgende gekauft ...” ROSE: “Entwickler, die diese Klasse geändert haben, haben auch
folgende geändert ...”
Konstruktion der Zusammenhänge über Transaktionen auf dem CVS über
• gleicher “Commit”• zeitliche Nähe der Commits
Wenn in 90% der Fälle, in denen die Klasse Bar geändert wurde auch die Datei web.xml geändert wurde, dann wird ROSE darauf hinweisen
ROSE
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 26
• FOSS Projekte lassen kaum raditionellen Wissenstransfer zu• synchrone Informationsmedien sind sehr effektiv• asynchrone Informationsmedien sind archivierbar, erreichen viele
• Light weight knowledge sharing kann bestimmte Dokumentationen ersetzen wären überflüssig, wenn jeder gute Dokumentation schreiben
würde funktionert nur wenn bestimmte Umgebungsfaktoren bereits
existieren
ROSE
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 27
Danke!
Maximilian Höflich hoeflich@inf.fu-berlin.de
Lutz Prechelt, prechelt@inf.fu-berlin.de 28
• Wissensmanagement: Management von Expertise• Herausforderung Wissensmanagement• Learning Communities und Wissensmanagement • Tool Support for Inter-Team Learning in Agile Software Organisations (Thomay
Chau, Frank Maurer)• Integrated Process Support and Light Weight Knowledge Sharing for Agile Software
Organisations (Thomas Chau, Frank Maurer)• Effective Work Practices for Software Engineering: Free/Libre Open Source Software
Development (Kevin Crowston, Hala Annabi, James Howsion& Shengai Masango)• Hipikat: Recommenting Pertinent Software Development Artifacts (Davor Cubranic,
Gail C. Murphy)• Integrated Process Support and Light Weight Knowledge Sharing for Agile Software
Organisations• Tools for Light Weight Knowledge Sharing in open-source software development
(Davor Cubranic, Reid Holmes, Annie T.T. Ying, Gail C. Murphy)• Wissensmanagement• Wissen als Produktionsfaktor• Using Structural Context to Recomment Source Code Examples (Reid Holmes, Gail
C. Murphy)• Mining Version Histries to Guide Software Changes (Thomas Zimmermann, Peter
Weißgerber, Stephan Diehl, Andreas Zeller)
Quellen
Maximilian Höflich hoeflich@inf.fu-berlin.de
top related