Masterprojekt Kooperative Realisierung verteilter und nebenläufiger Software-Systeme
Lehrende:
Dr. Daniel Moldt; David Christopher Mosteller
Weitere Informationen:
Das Projekt bietet die Möglichkeit relevante software-technische Erfahrungen im Bereich der verteilten Software-Entwicklung zu sammeln und dabei neuste Konzepte des agilen, kooperativen Arbeits kennen zu lernen und zu erproben. Da dieses Projekt mit einem BSc-Projekte gemeinsam stattfindet, sollen Projektmanagementaufgaben insbesondere von den MSc-Studierenden übernommen werden. Dies erfordert ein entsprechendes Engagement.
Aktuelle Hinweise zum Projekt finden sich unter http://www.informatik.uni-hamburg.de/TGI/lehre/vl/aose/
Kommentare/ Inhalte:
Das Projekt bietet die Möglichkeit relevante software-technische Erfahrungen im Bereich der verteilten Software-Entwicklung zu sammeln und dabei neuste Konzepte des agilen, kooperativen Arbeitens kennen zu lernen und zu erproben. Da dieses Projekt mit einem BSc-Projekte gemeinsam stattfindet, sollen Projektmanagementaufgaben insbesondere von den MSc-Studierenden übernommen werden. Dies erfordert ein entsprechendes Engagement.
Aktuelle Hinweise zum Projekt finden sich unter https://www.inf.uni-hamburg.de/inst/ab/art/teaching.html
Entwicklung komplexer Software erfordert hinreichend leistungsfähige Software-Entwicklungsansätze. Diese werden innerhalb eines Kontextes angewendet:
- Paradigmen (z.B. Objekt-, Komponenten-, Dienst- oder Agentenorientierung),
- Prinzipien (Teile-und-Herrsche, Musterverwendung, Standards, Teamgeist, etc.),
- Techniken (Programmiersprachen (Java, Javascript), Spezifikations- und Entwurfstechniken (UML, Petrinetze, BPMN, eEPKs, etc.)),
- Methoden (agiles Vorgehen, Prototyping, RUP, Paose, etc.),
- Werkzeuge (IDEs, Compiler, Ticketing-Systeme, Wikis, Rahmenwerke (Gitlab, Docker, Kubernetes, …) sowie
- Ressourcen jeglicher Art.
Im diesem agentenorientierten Projekt werden diese Facetten eines agilen, kooperativen Ansatzes ganzheitlich angewendet. Dazu wird im Projekt nach einer Einarbeitungsphase gemeinsam an einem einzigen Software-Produkt gearbeitet. Den Herausforderungen, die sich durch die notwendige Kommunikation, Koordination und Kooperation ergeben, wird gezielt durch den verwendeten Ansatz im Projekt begegnet. Die Teilnehmenden erwerben so neue, relevante software-technische Kenntnisse und Fähigkeiten, die bisher im Studium nur bedingt behandelt wurden, da diese Art von Herausforderungen sich nur in einem größeren Team ergeben.
Ein Schwerpunkt dieses Masterprojektes liegt auf der Reflektion der konkreten Durchführung von Softwareentwicklungsprojekten. Diese beinhaltet es auf einer höheren Abstraktionsebene Mittel für die Software-Entwicklung und Modellierung zu reflektieren, als dies bei bisher kennengelernten Entwicklung und Modellierung der Fall ist. Somit werden Techniken, Methoden und Werkzeuge zur Generierung von Software, Modellen, Umgebungen, Sprachen, Techniken etc. eingesetzt. Durch die wesentliche höhere Abstraktion kann produktiver gearbeitet werden. Die dafür notwendigen Kenntnisse werden im Projekt vermittelt.
Lernziel:
Inhaltlich werden wesentliche Facetten eines Ansatzes erworben oder vertieft. Aufgrund deren Vielzahl können alle Teilnehmenden je nach ihren persönlichen Voraussetzungen unterschiedliche Themen erlernen und bearbeiten. Neben den software-technischen Aspekten lernen die Teilnehmenden, ein Projekt mit einem konkreten Ziel durchzuführen und somit zeitlich und räumlich verteilte Aufgaben mit einem großen heterogenen Team zu bearbeiten.
Das Projekt spiegelt durch das gleichzeitig stattfindende Bachelorprojekt sehr gut die Heterogenität der Beteiligten in der Praxis wider. Die jeweiligen Lernziele werden zudem studiengangs- und personenbezogen angepasst.
Vorgehen:
Eine kurze Einführung in die relevanten Facetten des verwendeten Ansatzes wird zu Beginn durch die Veranstalter gegeben. Dies umfasst, in Abhängigkeit von den Vorkenntnissen der Teilnehmenden, z.B. Eclipse, Redmine, Renew, Versionierungssysteme, Datenbanken, Continuous Integration, Programmiersprachen oder Metamodellierung. Die koordinierte Zusammenarbeit einer größeren Anzahl Personen mit dem Ziel, erfolgreich ein gemeinsam verantwortetes Software-Produkt zu entwickeln, ist zentraler Bestandteil des vorgestellten Ansatzes.
Unter Verwendung der agentenorientierten Konzepte werden die Möglichkeiten der existierenden Werkzeuge für ein Rapid-Prototyping Verfahren ausgenutzt. Es wird dem Vorgehen "Programmierung durch Modellierung" in agiler Weise gefolgt. Diese seit langem angewandte modellgetriebene Software-Entwicklung erlaubt eine nahtlose Integration von Spezifikationsmodellen mit den letztendlich laufenden Programmen. Die Möglichkeiten der Metamodellierung werden an den geeigneten Stellen zielgerichtet eingesetzt.
Die Entwicklung von neuen, innovativen Modellierungstechniken, die im Kontext von Open Source Projekten zur Organisation und / oder zur Erstellung der Softwareartefakte eingesetzt werden können, steht im Mittelpunkt der praktischen Arbeit. Aufgrund der hohen Produktivität werden so zahlreiche Varianten von ausführbaren Modellen / Programmen mit Hilfe der Metamodellierung generiert.
Diese Veranstaltung ist Bestandteil des semesterübergreifenden Forschungsprojekts "Agentenorientierung" des Labors für agenten- und organisationsorientierte Softwareentwicklung (Laos). Im Rahmen des Forschungsprojektes besteht die Möglichkeit zur Abfassung von Projekt-, Bachelor-, Baccalaureats-, Master- und Diplomarbeiten. Das Seminar vertieft die Konzepte des Projektes.
Literatur:
Literatur kann vorab bei den Veranstaltern erfragt werden und wird zudem in der Veranstaltung bekanntgegeben.
Zusätzliche Hinweise zu Prüfungen:
Scheine und Noten können entsprechend der jeweiligen Prüfungsordnungen erworben werden.
Das Projekt eignet sich aufgrund der allgemeinen Themenstellung für alle Masterstudiengänge!