• Keine Ergebnisse gefunden

On the comprehension of program comprehension

N/A
N/A
Protected

Academic year: 2022

Aktie "On the comprehension of program comprehension"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

On the Comprehension of Program Comprehension

Walid Maalej, Rebecca Tiarks Universit¨at Hamburg, Hamburg, Deutschland

maalej, tiarks@informatik.uni-hamburg.de Tobias R¨ohm

Technische Universit¨at M¨unchen, M¨unchen, Deutschland roehm@in.tum.de

Rainer Koschke

Universit¨at Bremen, Bremen, Deutschland koschke@tzi.de

Abstract:Dieser Vortrag stellt unser TOSEM Papier [MTRK14] vor und pr¨asentiert eine Umfrage unter 1.477 Softwarentwicklern zum Thema Wissensaustausch. Die Umfrage untersucht den Wissensbedarf von Entwicklern, Kan¨ale f¨ur das Teilen von und den Zugriff auf Wissen sowie Probleme und Herausforderungen beim Wissens- austausch. Die Umfrage erg¨anzt Resultate einer Beobachtungsstudie [RTKM12] zum Programmverstehen von Entwicklern.

Entwickler haben aufgrund von fehlendem Wissen h¨aufig Probleme, wenn sie Fehler beheben (Reproduktion von Fehlern, Identifikation der Fehlerursache, Identi- fikation einer Fehlerbehebung), Softwarekomponenten wiederverwenden (Verst¨andnis der Komponentenfunktionalit¨at, Nutzung einer API, Konfiguration einer Komponente) oder den Quelltext anderer analysieren (Identifikation der Intention des Implementie- rers sowie der beabsichtigten Nutzung). Unsere Ergebnisse best¨atigen die Wichtig- keit von pers¨onlicher Kommunikation zum Wissensaustausch, Web Ressourcen f¨ur den Wissenszugriff sowie informeller Artefakte f¨ur das Teilen von Wissen. Die Team- gr¨oße, seine Verteilung sowie Erfahrung mit Open-Source-Software beeinflussen das Entwicklerverhalten beim Wissensaustausch. Spezielle Werkzeuge zur Erfassung von Wissen werden selten genutzt. Stattdessen bevorzugen Entwickler pragmatische, inte- grierte Ans¨atze wie Kommentare in Fehlerberichten, Quelltext-Kommentare, Commit- Nachrichten oder E-Mails. Beim Wissensaustausch unter Entwicklern treten folgende Probleme auf: Streuung von Wissen, Wissen ohne Kontextinformationen, Zeitknapp- heit sowie die Identifikation von geeigneten Kontaktpersonen. Weiterhin haben wir fol- gende f¨unf Herausforderungen des Wissensaustausches identifiziert: (1) Pers¨onliche Kommunikation ist effektiv, aber nicht immer effizient, (2) Erfahrung ist sehr wich- tig, aber meist implizit, (3) die Auswahl eines Ansatzes zum Wissensaustausch pas- send zur aktuellen Situation, (4) ein Konflikt zwischen Dokumentationsqualit¨at und -effektivit¨at sowie (5) Unterschiede zwischen dem Teilen von und dem Zugriff auf Wissen.

65

(2)

Abstract:This talk introduces our TOSEM paper [MTRK14] and presents a survey among 1,477 developers investigating how software developers exchange knowled- ge. More specifically, we study knowledge needs, channels for sharing and accessing knowledge, and knowledge exchange problems and challenges. The survey comple- ments findings of a previous observational study [RTKM12] to understand how devel- opers comprehend software.

Developers frequently face problems due to missing knowledge when fixing bugs (reproducing bugs, identification of bug cause, identification of bug fix), reusing com- ponents (comprehension of functionality, how to use an API, how to configure a com- ponent), and understanding other’s code (identification of implementer intention and intended usage). Our results confirm the importance of personal communication for knowledge exchange, Web resources for accessing knowledge, and informal artifacts to share knowledge. The team size, its distribution, and open-source experience in- fluence knowledge exchange behavior. Dedicated tools for capturing knowledge are barely used. Instead, developers prefer pragmatic and integrated solutions such as bug report comments, code comments, commit messages, and emails. When exchanging knowledge, developers face problems of knowledge scatter, knowledge without con- text, time shortage, and the identification of suitable contact persons. Furthermore, we identified the following five knowledge exchange challenges: (1) personal communi- cation is effective but not always efficient, (2) experience is key but remains tacit, (3) choosing among patterns of knowledge exchange, (4) a tradeoff between documenta- tion quality and efficiency, and (5) mismatches between sharing and access behavior.

Literatur

[MTRK14] Walid Maalej, Rebecca Tiarks, Tobias Roehm und Rainer Koschke. On the Comprehen- sion of Program Comprehension.ACM Trans. Softw. Eng. Methodol., 23(4):31:1–31:37, September 2014.

[RTKM12] Tobias Roehm, Rebecca Tiarks, Rainer Koschke und Walid Maalej. How Do Profes- sional Developers Comprehend Software? InProceedings of the 34th International Conference on Software Engineering, ICSE ’12, Seiten 255–265, Piscataway, NJ, USA, 2012. IEEE Press.

66

Referenzen

ÄHNLICHE DOKUMENTE

Although the revelation principle is fundamental in the field of mechanism design, in this paper we will argue that there are bugs in two versions of proofs.. The rest of the paper

If we take into account how subjects work with source code, we can compute weighted software measures, which reflect program comprehension better.. However, this eliminates one

All over, we see source code and the means of separating concerns as being similar to the different theories of how categories are arranged.. Our main point is that means of

Up to today, there are only few empirical studies that evaluate the effect of feature-oriented software development on program comprehension.. With our work, we aim at filling this

Our results indicate that, as opposed to purely object-oriented code: (1) annotations can have positive effects on program comprehension; (2) decomposition can have a negative impact

More precisely, we investigated whether the well-known forgetting model of Ebbinghaus applies to software familiarity, analyzed three factors (i.e., number of edits, ratio of own

Figure 2: Percentages of used (review, 25 papers) and preferred (sur- vey, 26 responses) tasks for evaluating program comprehension.. Measurements To evaluate task

Abstract—Program comprehension is an important aspect of developing and maintaining software, as programmers spend most of their time comprehending source code. Thus, it is the focus