gms | German Medical Science

53. Jahrestagung der Deutschen Gesellschaft für Medizinische Informatik, Biometrie und Epidemiologie e. V. (GMDS)

Deutsche Gesellschaft für Medizinische Informatik, Biometrie und Epidemiologie

15. bis 18.09.2008, Stuttgart

Ein Werkzeug zur Erstellung von Semesterplänen

Meeting Abstract

  • Florian Kärcher - Hochschule Heilbronn, Michelfeld, Deutschland
  • Anne Sauer - Hochschule Heilbronn, Heidelberg, Deutschland
  • Frederik Reifschneider - Hochschule Heilbronn, Mannheim, Deutschland
  • Na Zhen - Hochschule Heilbronn, Heilbronn, Deutschland

Deutsche Gesellschaft für Medizinische Informatik, Biometrie und Epidemiologie. 53. Jahrestagung der Deutschen Gesellschaft für Medizinische Informatik, Biometrie und Epidemiologie (gmds). Stuttgart, 15.-19.09.2008. Düsseldorf: German Medical Science GMS Publishing House; 2008. DocP-48

Die elektronische Version dieses Artikels ist vollständig und ist verfügbar unter: http://www.egms.de/de/meetings/gmds2008/08gmds234.shtml

Veröffentlicht: 10. September 2008

© 2008 Kärcher et al.
Dieser Artikel ist ein Open Access-Artikel und steht unter den Creative Commons Lizenzbedingungen (http://creativecommons.org/licenses/by-nc-nd/3.0/deed.de). Er darf vervielf&aauml;ltigt, verbreitet und &oauml;ffentlich zug&aauml;nglich gemacht werden, vorausgesetzt dass Autor und Quelle genannt werden.


Gliederung

Text

Einleitung und Motivation

Jedes Semester müssen Studiengangleiter eines Studiengangs Semesterpläne erstellen, in denen die geplanten Lehrveranstaltungen den Dozenten zugeteilt werden. Dafür dient als Ausgangsbasis der papierbasierte Semesterplan des vergangenen Semesters. Dieser wird vom Studiengangleiter an die aktuellen Gegebenheiten angepasst und an alle beteiligten Dozenten verteilt. Falls ein Dozent Änderungswünsche hat, werden diese dem Studiengangleiter per Mail oder mündlich mitgeteilt. Dieser arbeitet die Änderungswünsche in den Semesterplan ein und verteilt den Plan neu. Der beschriebene Prozess ist mühsam und ineffizient. Deshalb bestand der Wunsch eine internetbasierte Lösung für den Fachbereich der Medizinischen Informatik Heilbronn bereit zu stellen.

Im Rahmen des Praktikums „Internet Applikationen“ haben wir in einem Team von vier Personen eine geeignete Lösung mit modernsten Werkzeugen und Frameworks aus dem Bereich der objektorientierten Software-Entwicklung entwickelt.

Im Folgenden diskutieren wir die Anforderungen an das System, sowie dessen Architektur, seine Umsetzung und die eingesetzten Frameworks.

Material und Methoden

Anforderungen

Der Semesterplaner soll ein Rollenkonzept bereit halten, durch das Dozenten, Studiengangleiter und der Administrator unterschiedliche Rechte besitzen. Die Benutzer sollen sich per LDAP oder direkt am Semesterplaner anmelden können.

Der Administrator verwaltet die Studiengänge und die Studiengangleiter. Nebenbei hat er die gleichen Rechte wie die Rollen „Studiengangleiter“ und „Dozent“. Semesterpläne können Aktoren, die mit der Rolle „Studiengangleiter“ versehen sind, erstellen. Dabei wird dem Studiengangleiter eine entsprechende Vorlage des letzten Semesterplans angeboten, die er entsprechend anpassen kann. Außerdem hat er die Möglichkeit die eingetragenen Dozenten zu ändern, neue Dozenten oder Lehrveranstaltungen hinzuzufügen bzw. zu entfernen. Die entsprechenden Dozenten werden in definierten Zeitabständen, per E-Mail über Änderungen informiert. Durch ein Versionierungskonzept sollen Änderungen gezielt rückgängig gemacht werden können. Benutzer mit der Rolle „Dozent“ können sich bei einer Lehrveranstaltung eintragen bzw. austragen. Das Erstellen der Reports ist als HTML-Seite wie auch als PDF möglich.

Technische Umsetzung

Für die Implementierung des Web-Clients verwendeten wir das Google Web Toolkit (GWT http://code.google.com/webtoolkit/): Dies ist ein Ajax Framework zur Entwicklung von Desktop-ähnlichen Benutzeroberflächen in Web-Browsern. Seine Besonderheit ist ein Java-nach-Javascript-Compiler, so dass nahezu die gesamte Entwicklung von Client und Server auf Basis von Java realisiert werden kann. Das Arbeiten mit GWT ist ähnlich wie mit Swing. Das Hibernate Framework (Hibernate http://www.hibernate.org/) ermöglicht es, den Zustand eines Objekts in einer relationalen Datenbank zu speichern und aus Datensätzen wiederum Objekte zu erzeugen. Der Entwickler muss keine SQL-Abfragen programmieren und hält die Applikation unabhängig vom SQL-Dialekt der verwendeten Datenbank. Als Datenbanksystem kam HSQL zum Einsatz (HSQL http://hsqldb.org/). Es handelt sich um ein sehr kompaktes relationales Datenbanksystem, welches vollständig in Java implementiert und integriert ist. (Dieses Produkt können wir dennoch im Rahmen unserer Architektur ohne großen Aufwand durch ein anderes System austauschen.) Durch funktionale JUnit-Tests haben wir eine testgetriebene Entwicklung propagiert und eine hohe Qualität der Implementierung erreicht.

Abbildung 1 [Abb. 1]

Ergebnisse

Entstanden ist eine intuitive und funktionale Applikation, die sich von klassischen Web-Anwendungen klar unterscheidet. Dabei entfällt die typische Seitennavigation völlig – die Benutzeroberfläche ähnelt eher der einer komfortablen Desktop-Anwendung. Wie man in Abbildung 2 [Abb. 2] erkennen kann, lassen sich durch Auswahl einer Lehrveranstaltung unten die entsprechenden Details einblenden. In diesem Detail-Fenster lassen sich direkt Änderungen vornehmen.

Das ausgearbeitete Versionierungskonzept (Abbildung 3 [Abb. 3]) ist ein weiteres Highlight der Anwendung: Damit können Änderungen verschiedener Benutzer auf dem gemeinsamen Semesterplan verfolgt, verglichen und falls nötig rückgängig gemacht werden.

Diskussion

Das Framework GWT ist noch in der Entwicklung und hält dadurch noch einige Probleme bereit: Die mitgelieferten Widgets sind teilweise verbesserungswürdig, weshalb wir die GWT-Ext Bibliothek (GWT-Ext http://code.google.com/p/gwt-ext/) zusätzlich eingesetzt haben. Diese bietet eine Vielzahl vorgefertigter hochwertiger Widgets, wie z.B. Bäume mit Drag & Drop, Tab Panels, Menüs und Toolbars. Durch den Einsatz von vielen Bibliotheken hat sich gezeigt, dass diese nicht immer optimal aufeinander abgestimmt sind. Dadurch sind Fehler entstanden, die nicht durch die Entwickler selbst verursacht wurden.


Literatur

1.
[GWT] [Webseite] 2008; http://code.google.com/webtoolkit/
2.
[GWT-Ext] [Webseite] 2008; http://code.google.com/p/gwt-ext/
3.
[Hibernate] [Webseite] 2006; http://www.hibernate.org/
4.
[HSQL] [Webseite] 2007; http://hsqldb.org/