Teamwork mit GitLab - Übungen zu Software Engineering

Ziele/Motive/Ausgangslage/Problemstellung

Software ist eine wichtige Komponente in Computern, Steuerungsanlagen, Fahrzeugen und vielen alltäglichen Geräten und technischen Produkten. Die Qualität der verwendeten Software ist essentiell für den Erfolg des Gesamtproduktes. In der Lehrveranstaltung „Software Engineering“ soll den Studierenden der Studienrichtungen Montanmaschinenbau und Industrielogistik, die systematische Erstellung von größeren Softwaresystemen vermittelt werden. In der Vorlesung werden die grundlegenden theoretischen Schritte sowie die zugehörigen Techniken beim Software Engineering besprochen.

 

In den „Übungen zu Software Engineering“ sollen die vermittelten Grundlagen der Vorlesung an einem praktischen Projekt angewendet werden. Komplexere Softwaresysteme können heutzutage nicht mehr von einer einzelnen Person entwickelt werden. Ein Unternehmen benötigt ein gut eingespieltes Team, welches komplexe Probleme analysiert, diese komplexen Probleme in handhabbare Teilprobleme aufteilt, sodass in der Folge ein testbares und qualitativ hochwertiges Softwareprodukt entsteht.

 

Die Studierenden an der Montanuniversität sind keine Informatiker, aber sie werden unter Umständen in ihrer zukünftigen Arbeitswelt in Teams mitarbeiten, die eine Problemanalyse und eine Anforderungsanalyse von komplexen Systemen erstellen müssen. Das vorgestellte Projekt hat das Ziel, die notwendigen Kompetenzen für eine solche Teamarbeit in den Übungen zu vermitteln. Der Fokus wird hierbei in der Übung auf die Problemanalyse, die Anforderungsanalyse und der Qualitätssicherung im Softwareprojekt gelegt.

Kurzzusammenfassung des Projekts in deutscher Sprache

Die Softwareentwicklung durch Teamwork ist ein komplexer Prozess und benötigt viele fachübergreifende Kompetenzen, um am Ende als Team erfolgreich zu sein. Das Ziel der Übung ist es, den Studierenden aus unterschiedlichen Studienbereichen eine gemeinsame Wissensbasis zu vermitteln, damit diese die benötigten fachübergreifenden Kompetenzen für die Softwareentwicklung erlernen können.

Dazu bekommt jedes Team einen individuellen Auftrag zur Entwicklung einer bestimmten Software. Die Softwareentwicklung durchläuft mehrere Projektphasen, wobei in jeder Phase regelmäßige online Feedback-Meetings stattfinden. Die Lehrperson berät, unterstützt und zeigt alternative Lösungsstrategien in diesen Feedback-Meetings auf, damit die Studierenden die Projektphasen mit neu erlernten Kompetenzen abschließen können.

Eine wichtige Komponente in den Übungen stellt das praxisrelevante Werkzeug GitLab dar. GitLab ist eine Projektverwaltung für die Softwareentwicklung. Durch die Verwendung gibt es einen zentralen Ort im Internet, der den Projektfortschritt für alle Teilnehmer/innen sichtbar macht. Diese Sichtbarkeit erhöht die Motivation bei den Studierenden und gibt der Lehrperson die Möglichkeit, rechtzeitig in den Lernprozess einzugreifen, falls es zu Problemen bei den zu erlernenden Kompetenzen gibt. Die Lehrperson nimmt während des gesamten Projektes eine unterstützende und beobachtende Rolle im Sinne der didaktischen Methode „Shift from Teaching to Learning“ ein.

Kurzzusammenfassung des Projekts in englischer Sprache

Software development through teamwork is a complex process and requires many cross-disciplinary competencies to be successful. The goal of the exercise is to provide students from different disciplines a common knowledge base so that they can learn the required cross-disciplinary competencies which are required to develop software.

Each team is given an individual assignment to develop a specific piece of software. The software product goes through several project phases, with regular online feedback meetings in each phase. The teacher advises, supports and shows alternative solutions in these feedback meetings so that the students can complete the project phases with newly learned competencies.

An important element in the exercises is the practice-related tool GitLab. GitLab is a project management tool for software development. It is a central place on the Internet that makes the project progress visible to all participants. This visibility increases the motivation of the students and gives the teacher the possibility to intervene in the learning process. The teacher takes a supporting and observing role during the whole project in the sense of the didactic method "shift from teaching to learning".

Nähere Beschreibung des Projekts

Das vorgestellte didaktische Konzept ermöglicht es den Studierenden, die Entwicklung eines Softwareproduktes, in einem Projektteam möglichst praxisnah durchzuführen und fachübergreifende Kompetenzen zu erlernen. Die Lehrperson unterstützt die Teams bei der Bewältigung der jeweiligen Aufgabenstellungen. Die Arbeitsgeschwindigkeit, die genaue Nutzung der Werkzeuge und die interne Aufteilung der Arbeit bleibt den Studierenden in den Teams überlassen.

 

Ablauf der Lehrveranstaltung:

In der ersten Übungseinheit werden Teams von vier bis sechs Studierenden gebildet. Aus der Erfahrung der letzten Jahre hat sich gezeigt, dass Teams besser zusammenarbeiten, wenn sich Studierende selbst ihre Teammitglieder auswählen dürfen. Eine zufällige Einteilung durch die Lehrperson hat sich als kontraproduktiv erwiesen.

Studierende die keinen Gruppenanschluss finden, werden durch die Lehrperson aufgeteilt und zu bestehenden kleineren Teams zugeteilt. Eine ganze Gruppe aus „übriggeblieben“ Studierenden zu bilden, ist aus Erfahrungen der letzten Jahren ebenfalls zu vermeiden. Solche Teams haben ein hohes Risiko die Übung mit einer negativen Note abzuschließen. Die Integration in bestehende Teams ist daher vorzuziehen.

 

In den ersten zwei Übungseinheiten werden die wichtigsten Begriffe, die zu verwendenden Werkzeuge und der Übungsablauf vorgestellt. Nach der zweiten Einheit nimmt jeder Studierende an einer kurzen Überprüfung mittels Multiple-Choice-Tests teil, der Test erfolgt derzeit online über Moodle. Dies Überprüfung stellt sicher, dass alle Teammitglieder über das notwendige Basiswissen verfügen, damit die Studierenden die späteren Aufgaben effizient und gemeinsam lösen können.

Nach der Überprüfung bekommen die Teams individuelle Arbeitsaufträge. Jeder Arbeitsauftrag beinhaltet die Entwicklung eines komplexen Softwaresystems. Die Lehrperson wählt die Themen der Softwaresysteme in geeigneter Weise aus, damit diese in späteren Arbeitsaufträgen zu einem größeren Softwaresystem zusammengeschlossen werden können. Ein Beispiel aus dem letzten Jahr: Ein Team entwickelt eine Software für ein Versanddienstleistungsunternehmen, das andere Team eine Software für einen Onlineshop. In späteren Arbeitsaufträgen können die Teams eine gemeinsame Schnittstelle zwischen den einzelnen Softwaresystemen ausarbeiten und somit wird auch die Interaktion und Kommunikation zwischen den einzelnen Teams gefördert.

 

Am Anfang bearbeiten die Teams jede ihrer Aufgabenstellungen unabhängig und innerhalb ihrer Gruppe. Zum besseren Verständnis der Aufgabenstellungen muss das Team gemeinsam eine Produkt-Vision ausarbeiten. Das Team darf hier selbst entscheiden, für welche Benutzergruppen die Software entwickelt wird und welche Funktionen ihr Softwaresystem am Ende des Entwicklungszyklus haben soll. Die Lehrperson lenkt durch ihre Erfahrung den Umfang des Projektes und gibt Korrekturvorschläge oder Hinweise auf mögliche zukünftige Probleme. Die finale Produkt-Vision wird als kurze Projektbeschreibung in das Projektverwaltungswerkzeug GitLab eingetragen.

GitLab ist eine Webanwendung zur Projektverwaltung von Softwareprojekten. Die Software ist frei verfügbar und kann auf der eigenen Infrastruktur installiert werden. Als modernes Werkzeug zur Softwareentwicklung stellt es wichtige Funktionen zur Anforderungsanalyse bereit. Die zukünftigen Funktionen der Software werden in GitLab von den Teammitgliedern erarbeitet und dokumentiert. Die Lehrperson überlässt es jedoch der Gruppe, wie die bestehende Funktionalität von GitLab in der täglichen Gruppenarbeit eingebaut wird.

 

Durch regelmäßige Online-Meetings wird mit den Studierenden der Projektfortschritt diskutiert und die Anforderungen und Funktionen der zukünftigen Software genauer spezifiziert. Wenn die Anforderungen ausreichend genau in GitLab spezifiziert wurden, geht das Projekt in die nächste Phase über. In dieser Phase muss sich die Gruppe über das Design der Software einigen, dazu wird ein UML-Klassendiagramm als Ergebnis in die Projektverwaltung GitLab hochgeladen. Auch hier gibt es wieder Feedback durch mehrere Online-Meetings, bis ein ausreichend genaues Design der Software durch die Gruppe erarbeitet wurde.

 

In der letzten Phase werden Testfälle für die ausgearbeiteten Funktionen in der Programmiersprache Java geschrieben. Diese Phase gibt den Studierenden automatisch Feedback über ihre eigene Arbeitsleistung in den vorherigen Phasen. Bei genauer Bearbeitung der vorherigen Phasen ist das Schreiben der Testfälle schnell erledigt, bei ungenauer Ausarbeitung der vorherigen Phasen muss die fehlende Genauigkeit in der letzten Phase durch zusätzliche Arbeiten und Verbesserungen in den vorherigen Phasen kompensiert werden. Am Ende gibt es eine letzte Besprechung über das Gesamtprojekt.

Mehrwert

Gruppenarbeiten werden von einigen Studierenden als kritisch gesehen, da es in Gruppen immer auch Studierenden gibt, welche sehr wenig zur Gruppenarbeit beitragen. Durch die Verwendung der Projektverwaltung GitLab ist der Arbeitsfortschritt der Teams jederzeit ersichtlich, außerdem ist die Arbeitsleistung jedes einzelnen Studierenden einsehbar. Die Lehrperson hat jederzeit einen Überblick über den aktuellen Status der Gruppenarbeit und die Verteilung der Arbeitsaufträge innerhalb der Gruppe. Alle Studierenden sehen in der Projektverwaltung auch ihre eigene Beiträge und die Beiträge der anderen Teammitglieder, diese Sichtbarkeit erhöht die Motivation zur aktiven Mitarbeit in der Gruppe.

Nachhaltigkeit

Die Sichtbarkeit und Nachverfolgbarkeit des aktuellen Projektfortschrittes hat sich als wichtiger Faktor für eine erfolgreiche Teamarbeit erwiesen. In der Softwareentwicklung sind entsprechende Werkzeuge über Jahrzehnte entstanden und diese wurden in der Lehrveranstaltung benutzt. Für andere Formen von Gruppenarbeiten gibt es diese Werkzeuge vielleicht nicht, aber trotzdem sollte man sich über die Sichtbarkeit der einzelnen Teilleistungen der Studierenden Gedanken machen.

 

Das Lehrkonzept wird laufend angepasst und unterläuft jedes Jahr einen eigenen Review-Prozess, um Verbesserungen für die Studierenden und eine Reduktion des Verwaltungsaufwands für die Lehrperson zu erreichen.

Aufwand

Der Aufwand für die individuelle Betreuung der einzelnen Gruppen darf nicht unterschätzt werden, jedoch kann durch moderne Kommunikationsplattformen (GitLab, Online-Meetings) die Betreuung sehr effizient und flexibel gestaltet werden.

 

Die eingesetzten Tools für die Projektverwaltung müssen auf Servern installiert und gewartet werden, in diesem Punkt war der Aufwand sehr gering, da die Universität diese Tools für den Forschungsbetrieb schon in Verwendung hatte.

 

Die Entwicklung eines komplexen Softwaresystems ist mit hohem Aufwand verbunden. Einige Kompetenzen können aber durch reduzierte Beispiele nicht erworben werde, daher wurde der Arbeitsaufwand für die Studierenden reduziert, indem der Fokus auf die Anforderungsanalyse und die Überprüfbarkeit der Anforderungen gelegt wurde. Der Aufwand ist bei einigen Teams durch ineffiziente Kommunikation höher und verbessert sich im Verlauf des Semesters mit den neu erworbenen Kompetenzen der Studierenden.

Positionierung des Lehrangebots

Die Lehrveranstaltung „Übungen zu Software Engineering“ ist ein Pflichtfach im zweiten Semester des Masterstudiums Industrielogistik und ein gebundenes Wahlfach im Bachelorstudiums Montanmaschinenbau an der Montanuniversität Leoben. Der Arbeitsaufwand der Übung ist in beiden Studien mit zwei ECTS-Punkten festgelegt.

 

An der Montanuniversität haben alle Studierenden einen Programmierkurs in Java besucht. Dieser Kurs befähigt die Studierenden einfache Problemstellungen aus Wirtschaft und Technik mit dem Computer zu lösen. Diese Grundlagen werden in der Lehrveranstaltung vorausgesetzt.

Das Beispiel wurde für den Ars Docendi Staatspreis für exzellente Lehre 2022 nominiert.
Ars Docendi
2022
Kategorie: Kooperative Lehr- und Arbeitsformen
Ansprechperson
Martin Antenreiter, Dipl.-Ing. Dr.mont.
Lehrstuhl für Informationstechnologie
+43/3842/402-1506
Nominierte Person(en)
Martin Antenreiter, Dipl.-Ing. Dr.mont.
Lehrstuhl für Informationstechnologie
Themenfelder
  • Lehr- und Lernkonzepte
  • Erfahrungslernen
  • Digitalisierung
  • Rund ums Prüfen
Fachbereiche
  • Mathematik, Informatik, Naturwissenschaften, Technik/Ingenieurwissenschaften