Lutz Prechelt, [email protected] 1 Seminar Komponenten Tools for light weight knowledge...

28
Lutz Prechelt, [email protected] 1 Seminar „Komponenten“ „Tools for light weight knowledge sharing in open- source software development“ Maximilian Höflich Freie Universität Berlin, Institut für Informatik http:// www.inf.fu-berlin.de / inst / ag-se / Maximilian Höflich [email protected] berlin.de

Transcript of Lutz Prechelt, [email protected] 1 Seminar Komponenten Tools for light weight knowledge...

Page 1: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 2: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 3: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 4: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 5: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 6: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 7: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 8: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 9: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 10: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 11: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 12: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 13: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 14: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 15: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 16: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 17: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 18: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 19: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 20: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 21: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 22: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 22

10 Resultate als Antwort

Jedes Resultat ist ein Tripel

• strukturelle Darstellung• Liste der Heuristiken• Quelltext

Strathcona

Maximilian Höflich [email protected]

Page 23: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 24: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 25: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 26: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]

Page 27: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 27

Danke!

Maximilian Höflich [email protected]

Page 28: Lutz Prechelt, prechelt@inf.fu-berlin.de 1 Seminar Komponenten Tools for light weight knowledge sharing in open-source software development Maximilian.

Lutz Prechelt, [email protected] 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 [email protected]