arbeiten:novizen-zentriertes_re-design_eines_code-review-prozesses

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
arbeiten:novizen-zentriertes_re-design_eines_code-review-prozesses [26.10.2020 13:10] zef42810arbeiten:novizen-zentriertes_re-design_eines_code-review-prozesses [14.02.2022 08:35] (aktuell) – [Data-Entry] Alexander Bazo
Zeile 8: Zeile 8:
 ErstgutachterIn_thesisprofessor        :  #  ErstgutachterIn_thesisprofessor        :  # 
 ZweitgutachterIn_secondthesisprofessor :  #  ZweitgutachterIn_secondthesisprofessor :  # 
-Status_thesisstate                     : in Bearbeitung #  +Status_thesisstate                     : abgeschlossen #  
-Stichworte_thesiskeywords              :  +Stichworte_thesiskeywords              : Assistentssysteme für die Programmierausbildung 
 angelegt_dt                            : 2020-04-03 #  angelegt_dt                            : 2020-04-03 # 
 Anmeldung_dt                           :  Anmeldung_dt                           : 
Zeile 18: Zeile 18:
 Codelizenz_codelicense                 :  # #Lizenz|## Codelizenz_codelicense                 :  # #Lizenz|##
 ---- ----
 +
 +
  
  
 === Hintergrund === === Hintergrund ===
  
-Peer-Code-Review(oder einfach Code-Review) ist der Prozess einer Code-Analyse in der festgestellt werden soll, ob ein Code-Artefakt qualitativ ausreichend ist, um in den Produktionscode integriert zu werden (Bavota & Russo, 2015, S. 81). Die heutige Form des Peer-Code-Review entstand aus den traditionellen, formalen „Software Inspections“ (P. C. Rigby & Bird, 2013, S. 202). Diese wurden von Micheal Fagan in den 80er Jahren entwickelt und in einem ausführlichen Artikel 1976 vorgestellt (M. E. Fagan, 1976). Code-Reviews sind eine in der Industrie übliche und in der Wissenschaft anerkannte Methode zur Sicherung von Code Qualität(MacLeod et al., 2018, S. 34). Darüber hinaus helfen Code Reviews in einem Team dabei, alle Mitglieder über den aktuellen Entwicklungsstand zu informieren. Außerdem profitieren Junior-Entwickler vom Wissen der erfahreneren Entwickler, indem sie sich mit deren Code auseinandersetzten(Bacchelli & Bird, 2013, S. 717). +Peer-Code-Review(oder einfach Code-Review) ist der Prozess einer Code-Analyse in der festgestellt werden soll, ob ein Code-Artefakt qualitativ ausreichend ist, um in den Produktionscode integriert zu werden (Bavota & Russo, 2015, S. 81). Die heutige Form des Peer-Code-Review entstand aus den traditionellen, formalen „Software Inspections“ (P. C. Rigby & Bird, 2013, S. 202). Diese wurden von Micheal Fagan in den 80er Jahren entwickelt und in einem ausführlichen Artikel 1976 vorgestellt (M. E. Fagan, 1976). Code-Reviews sind eine in der Industrie übliche und in der Wissenschaft anerkannte Methode zur Sicherung von Code Qualität(MacLeod et al., 2018, S. 34). Darüber hinaus helfen Code Reviews in einem Team dabei, alle Mitglieder über den aktuellen Entwicklungsstand zu informieren. Außerdem profitieren Junior-Entwickler vom Wissen der erfahreneren Entwickler, indem sie sich mit deren Code auseinandersetzten (Bacchelli & Bird, 2013, S. 717). 
-Damit können Code-Reviews auch als didaktisches Hilfsmittel für den Erwerb von sowohl "Hard-Skills" als auch "Soft-Skills" in der Lehre eingesetzt werden(Rivera et al., 2020, S. 103). Programmiernovizen lernen vom gegenseitigen Austausch und der gezielten Auseinandersetzung mit Programmcode den sie nicht selbst geschrieben haben, sie entdecken schlechte Funktionen und Features und heben besonders gute Eigenschaften hervor(Hyyrynen et al., 2010, S. 94). Zudem erfahren sie direkt wie sich Code-Formatierung und Sauberkeit auf die Lesbarkeit und Verständlichkeit des Programmcodes auswirken(Rivera et al., 2020, S. 103).+Damit können Code-Reviews auch als didaktisches Hilfsmittel für den Erwerb von sowohl "Hard-Skills" als auch "Soft-Skills" in der Lehre eingesetzt werden (Rivera et al., 2020, S. 103). Programmiernovizen lernen vom gegenseitigen Austausch und der gezielten Auseinandersetzung mit Programmcode den sie nicht selbst geschrieben haben, sie entdecken schlechte Funktionen und Features und heben besonders gute Eigenschaften hervor (Hyyrynen et al., 2010, S. 94). Zudem erfahren sie direkt wie sich Code-Formatierung und Sauberkeit auf die Lesbarkeit und Verständlichkeit des Programmcodes auswirken (Rivera et al., 2020, S. 103).
  
-Allerdings benötigt die Methode, für den Einsatz als effektives Lehrmittel, viel Kompetenz bei den Studierenden. Nach Trytten (2005, S. 456) ist ein ordentlich durchgeführtes Code-Review eine „Evaluation“ und damit eines der höchsten und anspruchsvollsten Lernziele nach „Bloom’s Taxonomy“ (Krathwohl, 2002). Umalso in vollem Umfang von der Methodik zu profitieren, sollten die Studierenden durch die richtigen Mittel unterstützt werden.+Allerdings benötigt die Methode, für den Einsatz als effektives Lehrmittel, viel Kompetenz bei den Studierenden. Nach Trytten (2005, S. 456) ist ein ordentlich durchgeführtes Code-Review eine „Evaluation“ und damit eines der höchsten und anspruchsvollsten Lernziele nach „Bloom’s Taxonomy“ (Krathwohl, 2002). Um also in vollem Umfang von der Methodik zu profitieren, sollten die Studierenden durch die richtigen Mittel unterstützt werden.
  
-In den letzten Jahren wurde der Einsatz von Online Tools, speziell für den Code-Review-Prozess im universitären Kontext, viel diskutiert (Sondergaard, 2009, S. 31). Auch am Lehrstuhl werden Code-Reviews bereits im Kurs Multimedia Engineering versuchsweise eingesetzt. Allerdings hat sich gezeigt, dass die für die Industrie konzipierten Plattformen wenig Funktionen bieten die Programmiernovizen an das Thema Code-Review heranführen können und sich teilweise nur aufwendig in die Lehre integrieren lassen. Deshalb wurde bereits 2019 von Alicia Fritsche prototypisch eine Code-Review-Plattform gezielt für Studierende entwickelt. Allerdings konnte dabei auf die Erstellung der Reviews an sich nur untergeordnet Wert gelegt werden und der Fokus lag eher auf der Implementierung der Plattform als solche.+In den letzten Jahren wurde der Einsatz von Online Tools, speziell für den Code-Review-Prozess im universitären Kontext, viel diskutiert (Sondergaard, 2009, S. 31). Auch am Lehrstuhl werden Code-Reviews bereits im Kurs Multimedia Engineering versuchsweise eingesetzt. Allerdings hat sich gezeigt, dass die für die Industrie konzipierten Plattformen wenig Funktionen bieten die Programmiernovizen an das Thema Code-Review heranführen können und sich teilweise nur aufwendig in die Lehre integrieren lassen. Deshalb wurde bereits 2019 von Alicia Fritsche prototypisch eine Code-Review-Plattform gezielt für Studierende entwickelt. Allerdings konnte dabei auf die Erstellung der Reviews an sich nur untergeordnet Wert gelegt werden und der Fokus lag eher auf der Implementierung der Plattform als solche. Es fehlt also ein nutzbarer Code-Review-Editor für die Anwendung in der Lehre.
  
 === Zielsetzung der Arbeit === === Zielsetzung der Arbeit ===
  
-Ziel der Arbeit ist es, im Kontext der bestehenden Code-Review-Plattform, einen Code-Review-Editor zu implementieren, der Programmiernovizen - also die Studierenden - bei der Erstellung von Reviews für ihre Kommilitonen unterstützt und begleitet. Die spezifischen Anforderungen der Programmiernovizen und der Nutzungskontext, als didaktisches Hilfsmittel innerhalb der Programmierausbildung, sollen berücksichtigt werden. Dabei steht die Frage "Wie sollte ein Novizen zentriertes Tool für die Erstellung von Code-Reviews gestaltet sein?" im Mittelpunkt. In einer zum aktuellen Zeitpunkt noch nicht weiter definierten Studie soll das entstandene Tool evaluiert werden.+Ziel der Arbeit ist es, im Kontext der bestehenden Code-Review-Plattform, einen Code-Review-Editor zu implementieren, der Programmiernovizen - also die Studierenden - bei der Erstellung von Reviews für ihre Kommilitonen unterstützt und begleitet. Die spezifischen Anforderungen der Programmiernovizen und der Nutzungskontext, als didaktisches Hilfsmittel innerhalb der Programmierausbildung, sollen berücksichtigt werden. Dabei steht die Frage "Wie sollte ein Novizen-zentriertes Tool für die Erstellung von Code-Reviews gestaltet sein?" im Mittelpunkt. In einer zum aktuellen Zeitpunkt noch nicht weiter definierten Studie soll das entstandene Tool evaluiert werden.
  
 === Konkrete Aufgaben === === Konkrete Aufgaben ===