Human Centered Computing

Nutzerzentrierte Überführung einer mobile WebApp in eine gebrauchstaugliche Open Source Struktur

CassisSucheMensa
CassisSucheMensa
Betreuer: Prof. Dr. Claudia Müller-Birn
Fach: Data/Community Analytics
Abschluss: Master of Science (M.Sc.)

Voraussetzungen:

  • Sehr gute Kenntnisse im Bereich Webtechnologien 
  • Interesse an Open-Source Software 
  • Sehr gute Englischkenntnisse für die Literaturanalyse

Inhalt

Die Projektgruppe Mobile Learning als Teil des BMBF-geförderten Projekts Learning Environments Online (LEON) geht zum Sommersemester 2016 mit der mobilen WebApp Cassis (cassis.fu-berlin.de) online. Cassis möchte Studierende der Freien Universität Berlin bei der Organisation des Studiums unterstützten und startet dazu mit einer Campus-Karte, Terminen (Stundenplan) und Aufgaben, die jeweils mit der Karte bzw. Orten verknüpft werden können. Eine sehr wichtige Funktion von Cassis ist die Möglichkeit, Ideen zur Weiterentwicklung der App einzureichen und für diese innerhalb der App abzustimmen.

Mittelfristig ist vorgesehen, dass Studierende selbst Funktionen für Cassis entwickeln können, um so eine dynamische und nutzerzentrierte Studierenden-Anwendung zu etablieren. Eine wichtige Grundvoraussetzung dafür ist eine Open Source Projektstruktur, die es potenziellen Entwicklern ermöglicht:

  • die Architektur und den Quelltext leicht zu verstehen.
  • selbst entwickelte Komponenten schnell in die Grundstruktur einbinden zu können und schnell zu Erfolgen zu kommen.
  • den Programmieraufwand in Teams einfach zu verteilen.
  • Qualitätsmerkmale heranzuziehen, die eine Rückführung in die originale Code-Basis ermöglichen bzw. erleichtern.

Zielsetzung

Die für Cassis verantwortlichen Entwickler am Center für Digitale Systeme (CeDiS) wollen Cassis als nachhaltiges Open Source Projekt etablieren. Aktuell existieren jedoch keine wissenschaftlichen Untersuchungen, wie early stage Projekte zu gestalten sind, damit sie eine hohe Gebrauchstauglichkeit und Attraktivität für potenzielle Teilnehmer/Entwickler aufweisen. Darüber hinaus gibt es nur wenige Aussagen, welche Maßnahmen zu ergreifen sind, um eine funktionierende Open Source Community aufzubauen und zu fördern. In erster Linie soll das Ergebnis der Masterarbeit daher die Grundlage zur Veröffentlichung des Quelltexts von Cassis unter Open Source Lizenz darstellen. Daher wird ein Resultat erwartet, dass den Quelltext und die Architektur von Cassis für neue Entwickler einfach zugänglich und transparent gestaltet aber auch Empfehlungen ausspricht, wie das Open Source Vorhaben durch CeDiS zu begleiten ist. Ziel dieser Arbeit ist es folglich, die aktuelle Projektstruktur von Cassis zu analysieren und eine Refaktorisierung daran durchzuführen. Dieses soll nutzerzentriert und iterativ mit anderen (potenziellen) Softwareentwicklern durchgeführt werden. Die gewählten Umstrukturierungen und Maßnahmen sollen daher im Softwareprojekt Learning Environments Online eingesetzt und im Rahmen der Masterarbeit evaluiert und gegebenenfalls angepasst werden.

Vorgehen

  • Analyse der Codebasis von Cassis
  • Identifikation von wiederkehrenden Mustern bzw. Paradigmen
  • Vereinheitlichung/Refaktorisierung des gesamten Projekts
  • Beschreibung und Umsetzung von Maßnahmen, um Cassis in ein gebrauchstaugliches Open Source Projekt zu überführen
  • Entwurf von Qualitätsmerkmalen und Mechanismen zur Einbindung von neu entwickelten Codeteilen in die Codebasis von Cassis (merge)
  • Evaluation der Refaktorisierung und der gewählten Maßnahmen im Rahmen des Softwareprojekts Learning Environments Online (ab Mitte August 2016)
  • Anpassungen und Vorbereitungen zur Veröffentlichung von Cassis unter einer Open Source Lizenz

Stand der Arbeit

Cassis geht zum Sommersemester 2016 als clientseitig gerenderte „single page webapp“ online. Cassis ist mit dem JavaScript Framework ember.js entwickelt worden. Ursprünglich (<v1.10, etwa Jahresmitte 2015) orientierte sich Ember an MVC, setzt inzwischen aber verstärkt auf einen „unidirectional data flow“ (wie react.js) und entsprechenden Komponenten. Diese gravierende Änderung hat zur Folge, dass aktuell viele Ember Projekte heterogene Architekturen aufweisen, da es häufig mehrere Wege zur Migration gibt und das Team hinter Ember nicht zwangsläufig einen Weg vorschreibt (und vereinzelte Features erst noch nachgereicht werden mussten, um die Migration bestimmter Funktionen durchführen zu können). Auch bei Cassis existieren folglich Strukturen, die entweder noch nach alten Herangehensweisen funktionieren, in die neuen überführt wurden oder komplett nach den neuen Grundsätzen gestaltet wurden. Aus Erfahrungen mit später einsteigenden Entwicklern ist diese historisch gewachsene Architektur nur sehr schwer nachzuvollziehen. Weitere Bibliotheken, die in Cassis integriert sind: openlayers.js, fullcalendar.js,  moment.js und hammer.js