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 [17.05.2020 13:20] zef42810arbeiten:novizen-zentriertes_re-design_eines_code-review-prozesses [14.02.2022 08:35] (aktuell) – [Data-Entry] Alexander Bazo
Zeile 2: Zeile 2:
  
 ---- dataentry StudentischeArbeit ---- ---- dataentry StudentischeArbeit ----
-Thema                       : Novizen-zentriertes Re-Design eines Code-Review-Prozesses +Thema                                  : Novizen-zentriertes Re-Design eines Code-Review-Prozesses  
-Art_thesistypes             : BA +Art_thesistypes                        : BA  
-BetreuerIn_thesisadvisor    : Alexander Bazo +BetreuerIn_thesisadvisor               : Alexander Bazo  
-BearbeiterIn                : Fabian Zeiher +BearbeiterIn                           : Fabian Zeiher  
-ErstgutachterIn_thesisprofessor  :  +ErstgutachterIn_thesisprofessor         #  
-ZweitgutachterIn_secondthesisprofessor :  +ZweitgutachterIn_secondthesisprofessor :  #  
-Status_thesisstate          Entwurf +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                            #  
-Antrittsvortrag_dt          :  +Antrittsvortrag_dt                     2020-09-28 #  
-Abschlussvortrag_dt         :  +Abschlussvortrag_dt                     #  
-Abgabe_dt                   :  +Abgabe_dt                               #  
-Textlizenz_textlicense      : ##Lizenz|## +Textlizenz_textlicense                  # #Lizenz|## 
-Codelizenz_codelicense      : ##Lizenz|##+Codelizenz_codelicense                  # #Lizenz|##
 ---- ----
 +
 +
 +
  
 === Hintergrund === === Hintergrund ===
  
-Code Reviews sind eine in der Industrie übliche und in der Wissenschaft anerkannte Methode zur Sicherung von Code Qualität. 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. +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 bei der Lehre eingesetzt werden. Programmiernovizen lernen vom gegenseitigen Austausch und der gezielten Auseinandersetzung mit Programmcode den sie nicht selbst geschrieben haben. Sie erfahren direkt wie sich Code-Formatierung und Sauberkeit auf die Lesbarkeit und Verständlichkeit des Programmcodes auswirken.+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).
  
-Code-Reviews werden bereits im Kurs Multimedia Engineering am Lehrstuhl versuchsweise eingesetzt. Allerdings bieten die für die Industrie konzipierten Plattformen wenig Funktionendie Programmiernovizen an das Thema Code-Review heranführen können und sind teilweise nur aufwendig in die Lehre zu integrieren. 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 nur untergeordnet Wert gelegt werden und der Fokus lag auf der Implentierung der Plattform als solchesAufbauend auf dieser sehr guten Grundlage soll die Code-Review-Plattform weiter ausgebaut 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 solcheEs 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, innerhalb der bestehenden Code-Review-Plattform ein Tool zu implementieren, dass Programmiernovizen - also die Studierenden - bei der Erstellung von Reviews für ihre Kommilitonen unterstützt. 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.+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 ===
  
 - Anforderungserhebung bei den Studierenden, die im aktuellen MME Kurs Reviews für ihre Kommilitonen erstellen (1 Woche) - Anforderungserhebung bei den Studierenden, die im aktuellen MME Kurs Reviews für ihre Kommilitonen erstellen (1 Woche)
-- Konzeption des Tools mit must-have und nice-to-have Funktionalitäten (1 Woche) +- Konzeption des Tools nach den Ergebnissen der Anforderungserhebung (1 Woche) 
-- Implementierung des Code-Review-Tools innerhalb der Plattform (Wochen) +- Implementierung des Code-Review-Tools innerhalb der Plattform (Wochen) 
-- Test des Code Review Prozesses mit den Studierenden des aktuellen MME Kurses im Vergleich zur Ursprünglichen Plattform und in der Industrie gängigen Lösungen (2 Wochen)+- Test des Code Review Editors, beispielsweise im Vergleich zur Ursprünglichen Plattform (2 Wochen
 +- Finalisierung der schriftlichen Arbeit (1 Woche)
  
  
Zeile 44: Zeile 50:
 === Weiterführende Quellen === === Weiterführende Quellen ===
  
--+[1] Bacchelli, A., & Bird, C. (2013). Expectations, Outcomes, and Challenges of Modern Code Review. In D. Notkin (Ed.), 35th International Conference on Software Engineering (ICSE), 2013: 18 26 May 2013, San Francisco, California, USA ; proceedings (pp. 712–721). Piscataway, NJ: IEEE. Retrieved from https://dl.acm.org/doi/10.5555/2486788.2486882 
 + 
 +[2] Bavota, G., & Russo, B. (2015). Four eyes are better than two: On the impact of code reviews on software quality. In R. Koschke, J. Krinke, & M. Robillard (Eds.), 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME 2015): Bremen, Germany, 29 September - 1 October 2015 (pp. 81–90). Piscataway, NJ: IEEE. https://doi.org/10.1109/ICSM.2015.7332454 
 + 
 +[3] Fagan, M. E. (1976). Design and code inspections to reduce errors in program development. IBM Systems Journal, 15(3), 182–211. https://doi.org/10.1147/sj.153.0182 
 + 
 +[4] Fritsche, A. (2019). Design und Implementierung einer prototypischen Code-Review-Plattform für peer-based Feedback im Rahmen der Softwaretechnikausbildung (Bachelorarbeit). Universität Regensburg, Regensburg.  
 + 
 +[5] Hyyrynen, V., Hämäläinen, H., Ikonen, J., & Porras, J. (2010). Mypeerreview. In C. Schulte (Ed.), Proceedings of the 10th Koli Calling International Conference on Computing Education Research (pp. 94–99). New York, NY: ACM. https://doi.org/10.1145/1930464.1930481 
 + 
 +[6] Krathwohl, D. R. (2002). A Revision of Bloom's Taxonomy: An Overview. Theory into Practice, 41(4), 212–218. https://doi.org/10.1207/s15430421tip4104_2 
 + 
 +[7] MacLeod, L., Greiler, M., Storey, M.-A., Bird, C., & Czerwonka, J. (2018). Code Reviewing in the Trenches: Challenges and Best Practices. IEEE Software, 35(4), 34–42. https://doi.org/10.1109/MS.2017.265100500 
 + 
 +[8] Rigby, P. C., & Bird, C. (2013). Convergent contemporary software peer review practices. In B. Meyer, L. Baresi, & M. Mezini (Eds.), Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering - ESEC/FSE 2013 (p. 202). New York, New York, USA: ACM Press. https://doi.org/10.1145/2491411.2491444 
 + 
 +[9] Rivera, V., Aslam, H., Naumchev, A., Carvalho, D. de, Khazeev, M., & Mazzara, M. (2020). Towards Code Review Guideline in a Classroom. In J.-M. Bruel, A. Capozucca, M. Mazzara, B. Meyer, A. Naumchev, & A. Sadovykh (Eds.), Frontiers in Software Engineering Education (pp. 88–105). Cham: Springer International Publishing. 
 + 
 +[10] Sondergaard, H. (2009). Learning from and with peers. ACM SIGCSE Bulletin, 41(3), 31. https://doi.org/10.1145/1595496.1562893
  
 +[11] Trytten, D. A. (2005). A design for team peer code review. In W. Dann, T. Naps, P. Tymann, & D. Baldwin (Eds.), Proceedings of the 36th SIGCSE technical symposium on Computer science education - SIGCSE '05 (pp. 455–459). New York, New York, USA: ACM Press. https://doi.org/10.1145/1047344.1047492