Hasso-Plattner-Institut25 Jahre HPI
Hasso-Plattner-Institut25 Jahre HPI
Login
 

Entwicklung von Workflow-Anwendungen (Sommersemester 2011)

Dozent: Prof. Dr. Mathias Weske (Business Process Technology)

Allgemeine Information

  • Semesterwochenstunden: 4
  • ECTS: 6
  • Benotet: Ja
  • Einschreibefrist: 20.04.2011
  • Lehrform: Projektseminar
  • Belegungsart: Wahlpflichtmodul

Studiengänge

  • IT-Systems Engineering BA

Beschreibung

Im Rahmen des Projektes soll eine Workflowanwendung entwickelt werden, die verschiedene Perspektiven der automatischen Prozessausführung (Orchestration) beleuchtet.

Dabei soll der Prozess zur Vergabe von Bachelorprojekten umgesetzt und die Beteiligten bei ihren Aufgaben unterstützt werden. Das Ergebnis des Seminars soll dann bei der Bachelorprojektvergabe am HPI eingesetzt werden.

Grob umrissen umfasst der Prozess die folgenden Phasen:

  1. Themenvorschlag: Die Fachgruppen reichen Themenvorschläge ein, über die gemeinsam abgestimmt wird. Danach werden die Themen an verschiedenen Stellen veröffentlicht.
  2. Voting: Die Studenten wählen interessante Themen aus und geben ihre Wahl in Form einer priorisierten Liste ab.
  3. Zuordnung: Durch geschickte Zuordnung muss gewährleistet werden, dass jeder Student einem Bachelorprojekt auf seiner Liste zugeordnet wird. Dabei sollen möglichst gute Belegungen anhand der priorisierten Liste erfasst werden. Die Studenten werden über die Zuordnung informiert.

Im Kern wird die Anwendung auf Komponenten einer existierenden Workflowengine, d.h. Activiti, aufbauen, sowie um verschiedene Funktionen erweitert werden. Dazu zählen u.A.

  • Prozesskonfiguration (Transformation eines fachlichen Modells in ein technisches, ausführbares Modell)
    • Definition von User Interfaces
    • Definition von Rollenzuordnungen
    • Definition von Service-Schnittstellen
  • Prozessausführung
    • Entwicklung einheitlicher und auf den Anwendungsfall bezogener User Interfaces
    • Entwicklung spezieller Softwarekomponenten für den ausgewählten Prozess
    • Benutzerauthentifizierung via Kerberos
    • Logging der Prozessausführung
  • Prozessmonitoring (Darstellung des aktuellen Ausführungsstandes)
    • interne Sicht: Anzeigen des Prozessmodells, des aktuellen Zustandes, aller bisher Beteiligten, aller Daten 
    • externe Sicht: Definition einer externen Sicht (Prozessabstraktion), Zuordnung des internen Zustandes auf externe Sicht
    • Subscription auf Änderungen des Prozesszustandes (interne und externe Sicht)

Voraussetzungen

Kenntnisse in folgenden Softwaretechnologien

  • Datenbanken
  • Java
  • JavaScript, HTML, CSS

Kenntnisse Prozessorientierter Informationssysteme (insb. POIS I)

Kenntnisse im Projektmanagement, insb. agiles Projektmanagement

Kenntnisse im Umgang mit Werkzeugen zur Versionsverwaltung (z.B. git, svn)

Lern- und Lehrformen

Das Seminar wird als agiles Softwareentwicklungsprojekt durchgeführt, um die Studenten bereits in einem frühen Stadium mit den entsprechenden Methoden und Werkzeugen vertraut zu machen. Daher werden an den meisten Seminarterminen, d.h. fast wöchentlich, Veranstaltungen stattfinden.

In der ersten Phase (ca. 4 Wochen) werden die Studenten den Prozess erfassen und verfeinern, bzw. ausspezifizieren. Parallel dazu werden sich die Studenten mit Werkzeugen und Methoden zur agilen Softwareentwicklung, insbesondere SCRUM, vertraut machen und die gewonnenen Einsichten Ihren Kommilitonen präsentieren. Als Abschluss dieser Phase wird jedem Studenten ein Arbeitspaket zugewiesen, welches er im weiteren Verlauf des Seminars bearbeiten wird.

In der zweiten Phase (ca. 2 Wochen) entwickeln die Studenten User Interface Prototypen für verschiedene Aspekte im Prozess. Parallel dazu entwickeln sie User Stories, die die Einzelheiten ihres jeweiligen Arbeitspaketes beschreiben. Beide Ergebnisse werden in einer Präsentation den Kommilitonen vorgestellt.

In einer Folge von Sprints werden in der dritten Phase (ca. 8 Wochen) die Arbeitspakete umgesetzt, d.h. die User Storys implementiert. Abschließend soll das Gesamtsystem präsentiert werden.

Zum Ende des Semesters müssen dann neben dem wohlkommentierten und umfassend getesteten Programmquelltext auch eine Dokumentation und ein Screencast angefertigt werden.

Leistungserfassung

Das Seminar wird aus mehreren Einzelleistungen bestehen, die sich am Prozessentwicklungsprozess ausrichten, siehe unten. Verschiedene Meilensteine sollen durch entsprechende Präsentationen und Vereinbarungen mit anderen Teilnehmern, z.B. über gemeinsam verwendete Schnittstellen, diskutiert werden.

Die Note ergibt sich dann aus den jeweiligen Einzelleistungen (Präsentationen, Softwareentwicklung und -dokumentation).

Termine

Es werden mehrere (ca. 10) Veranstaltungen im Seminar stattfinden, deren genaue Termine im Laufe des Seminars festgelegt werden.

Der erste Termin (Vorstellung) findet am 13.4.2011 um 9:15 in A-2.1 statt. Dabei werden Seminarthema und -organisation noch einmal detailliert vorgestellt, und Fragen beantwortet. (Download der Folien)

Die Belegungsfrist endet am 20.4.2011.

Am 20.4.2011 wird der o.g. Prozess in einer ersten Iteration erfasst – dabei wird auf die t.BPM-Methode zurückgegriffen.Die Veranstaltung findet in C-2 (Lichthof, Fachbereich Weske) statt!

Am 27.4.2011 stellt Martin die agile Projektmanagment- und Softwareentwicklungsmethode SCRUM vor. (Download der Folien)

Am 4.5.2011 sollen die Tutorials von den Studenten vorgestellt werden.Wir treffen uns bereits 8:55, um alle Tutorials in aller Ruhe präsentieren zu können. Wer möchte kann ab 8:45 die Technik (Projektor, Internet) ausprobieren. Aufgrund der Vielzahl zu erwartender Zuhörer treffen wir uns in A-2.1.

Der 11.5.2011 steht ganz im Zeichen visionärer Ideen zur Umsetzung der einzelnen Prozessphasen. Intuitive User Interfaces, eine flexible Anbindung verschiedener Systeme an die Prozessengine und beispielsweise die Integration verschiedener Nutzergruppen sollen im gemeinsamen Brainstorming erörtert werden. Dazu treffen wir uns in C-2.9.

Bis zum 17.5. um 23:59h (genauer 18.5. um 7:59h) bilden sich Gruppen zu je zwei Studierenden, die sich mit einer priorisierten Liste aus Arbeitspaketen (pdf) per mail an Matthias Kunze bewerben. Zur Auswahl stehen folgende Themen:

  • Arbeitspaket 1 -- Autorisierung und Kofigurationsmanagement
  • Arbeitspaket 2 -- Logging, Portal (Monitoring), Prozessintegration
  • Arbeitspaket 3 -- Themenerfassung und -verwaltung
  • Arbeitspaket 4 -- Themenwahl
  • Arbeitspaket 5 -- Themenzuordnung

Die Zuordnung wird zum nächsten Seminar am 18. 5. 2011 bekanntgegeben. Wir treffen uns in A-2.1, und besprechen die Aufgaben bis zum 25. 5.

Am 25. 5. 2011 in  A-2.1 haben alle Gruppen ein möglichst vollständiges Product Backlog im Pivotal Tracker eingetragen und geschätzt. das Backlog für den ersten Sprint wird am 25. 5. im Seminar vorgestellt. Außerdem soll jede Gruppe bis dato ein Datenmodell für die in ihrem Arbeitspaket zu erfassenden Daten (für ein DB-Schema) erfassen. Folgendes ist zu beachten:

Am 8. Juni 2011 besprechen wir das Ergebnis des ersten Sprints und die Planung des zweiten.

Am 22. Juni 2011 besprechen wir das Ergebnis des zweiten Sprints und die Planung des dritten.

Am 6. Juli 2011 besprechen wir das ERgebnis des dritten Sprints. Je nach Ergebnis wird die Demo für die Abschlusspräsentation besprochen und geplant.

Die Abschlusspräsentation findet am 13. Juli 2011 von 9:00 - 11:30 in C-2.9 statt.

Die Veranstaltung gliedert sich in zwei Teile: die Vorstellung der Einzelleistung im Vortrag, eine gemeinsame Live-Demo der Workflowanwendung, und eine kurze Diskussion/Kritik über Organisation und Umsetzung des Seminars.

  1. Vorstellung der Einzelleistung im Vortrag (gruppenweise)
    Jede Gruppe soll in einem 20-minütigen Vortrag ihre Lösung vorstellen und auf technische Details eingehen:
    • kurze Vorstellung der Aufgabenstellung, und wie sich diese in das Gesamtsystem einordnet (dazu ist es sinnvoll, wenn ihr alle die selbe Vorstellung,  d.h. eine gemeinsame Skizze des Gesamtsystems, erarbeitet habt)
    • Lösung und Umsetzung, inkl. Konzept, ggf. Architektur, und relevanter technische Details
    • (technische) Erfahrungen/Probleme bei der Umsetzung
    Danach können 5 weitere Minuten lang Fragen gestellt werden. Daran sollen sich die jeweils nicht vorstellenden Gruppen aktiv beteiligen.

  2. Live-Demo der Workflow-Anwendung
    In einem künstlich erstellten Szenario soll die Anwendung durchgängig demonstriert werden. Jede Phase soll "spielbar" sein, und auch von uns (BPT-Mitarbeitern) ausprobiert werden können. Dabei betreut jede Gruppe die Demo ihrer jeweiligen Komponenten.
    Dazu müssen ausreichend viele Daten zur Verfügung stehen, und in die Platform übertragen werden können. D.h. ihr müsst vorher Projekte bereithalten, ggf. schon Votes in die Plattform eingetragen haben (damit genügend Votes für die Zuordnung vorliegen), etc.
    Gut wäre es, wenn Gruppe AP2 hierfür die Moderation übernimmt, da sie ja die Portalfunktion realisiert hat. Die Demo soll nicht länger als 20 Minuten dauern.

  3. Diskussion der Seminarorganisation und Umsetzung
    Hier möchte ich ein kleines Forum (im ursprünglichen Sinne) eröffnen und die Organisation des Seminars diskutieren. Es dürfen alle relevanten Punkte sachlich angesprochen werden, ohne dass dies Einfluss auf die Benotung haben wird. Insbesondere erwarte ich eine Diskussion zum Thema Prozessentwicklungsmodell/SCRUM:
    • Was hat sich bewährt?
    • Was hat behindert? Warum?
    • Welche Empfehlung gibt es für zukünftige Seminare?
    Hier sollte sich jeder Teilnehmer äußern können. Dafür plane ich 10 min Zeit ein.

Am 17. August 2011 ist die Abgabefrist für die Seminarergebnisse, das bedeutet:

Der Quelltext der Anwendungen ist vollständig im Repository bei github hinterlegt. Der Quelltext soll (inline) gut dokumentiert sein, z.b. mit JavaDoc, so dass sich die Implementierung leicht nachvollziehen lässt.

Es soll eine Wikiseite angefertigt werden, die für Entwickler beschreibt, wie das jeweilige Arbeitspaket aufgebaut ist, welche Funktionen es zur Verfügung stellt und wo man ansetzen muss, um es zu erweitern.

Ein Screencast soll das System potentiellen Nutzern vorstellen.

Eine Anleitung für Wikiseite und Screencast gibt es hier.

Zurück