Matthias Dräger 0.05.20 Markus Bischoff Semantisches Geschäftsprozessmanagement Übung Aufgabe : ) Vorteile von BPM und Modellierung - Modellierung zum besseren Verständnis eines Systems / eines Geschäftsprozesses / einer Domäne - (Komplexität verringern, auf verschiedenen Ebenen / verschiedener Tiefe / verschiedenem Detailgrad / verschiedenen Teilen, um ein System verständlich zu vermitteln - Überblick geben oder detailliert beschreiben) - dieses Verständnis ist nötig, um die Effizienz des Prozesses zu verbessern => ständige Verbesserung und so die Qualität zu verbessern, Kosten zu reduzieren etc. - Modellierung vor Implementierung, damit man versteht, was man implementieren muss und evtl. Schwächen findet oder Dinge herausfindet, an die man vorher noch nicht gedacht hat (wie z.b.: eine neue Komponente o.ä.) - "Organize before automate" => BPM unterstützt Management mit Tools für die explizite Modellierung 2) (Geschäfts-)Prozess: - werden oft wiederholt (kein definierter Endpunkt) - permanente Routinen (immer wieder dasselbe gemacht) - werden versucht kontinuierlich / immer wieder zu optimieren - können mehrere Unternehmen beinhalten - erzeugen messbaren Wert - können mehrere funktionale oder organisatorische Bereiche / Strukturen überspannen (Geschäfts-)Prozesse sind unabhängig von spezifischen IT Systemen sind abstrakt Workflow: - strukturierte Beschreibung einer Sequenz von Aufgaben ein Modell, das reale Arbeitsschritte darstellt - das Erfüllen der definierten Aufgaben führt mit der Zeit zu gewünschten Ergebnissen - die Aufgaben werden effizient in der vordefinierten Reihenfolge von Menschen oder Maschinen ausgeführt ein Workflow ist eine Implementierung eines (Geschäfts-)Prozesses (bezieht sich z.b. auf ein spezifisches IT System) (semi-) automatisierter Bestandteil eines Prozesses Projekt: - ein Projekt ist endlich - es wird nicht ständig wiederholt, - es hat ein spezifisches Start- und Enddatum - man will ein bestimmtes Ziel erreichen
Matthias Dräger 0.05.20 Markus Bischoff Aufgabe: - ist ein Teil von einer Menge von realen Aktionen, die darauf abzielen ein Problem zu lösen bzw. ein Ziel zu erreichen - Synonym für Aktivität - Aufgaben werden erfüllt, um Geschäftsprozesse auszuführen Aufgabe 2: ) siehe Datei Exercise0.2. - use case diagram.pdf 2) siehe Datei Exercise0.2.2 - class diagram.pdf 3) siehe Datei Exercise0.2.3 - activity diagram.pdf 4) Schwierigkeiten: - Einige Dinge wurden nicht im Text spezifiziert o Es wurde nicht gesagt, dass oder wie sich ein Fahrer für eine Lieferung meldet oder wie er die Lieferanfrage erhält (ob Handy o.ä.) o Im Schema ist ein Bid Request System, also System für Gebote, benannt. Es wurde gar nicht spezifiziert, inwieweit ein Fahrer ein Gebot für eine Lieferung macht. o Es wurde komplett außeracht gelassen, wie das Ranking für Fahrer zustande kommt: Soll der Kunde den Fahrer bewerten oder der Flower Store oder wird dies automatisch getan. o Für das im Schema darstellte Control System wird dargestellt, dass es Assignment und Delivery Alert in das Ranking System eingibt. Dieser Punkt wurde im Text gar nicht beachtet und war daher schwer zu modellieren. o Report wird nur im Schema dargestellt, in der Spezifikation kommt es nie vor. Daher haben wir dies auch nicht weiter modelliert. - Soll der Kunde Bestandteil des gesamten Systems / Prozesses sein oder nicht? o Wir haben ihn rausgenommen. - Inwieweit gehört der Location Service zum System? o Bei uns gehört das GPS nicht zum System, aber eine Klasse, die zum Beispiel die Entfernung zwischen Fahrer und Geschäft berechnet. - Für das Klassendiagramm wurde gesagt, dass Generalisierung etc. genutzt werden sollte o Für uns war nirgends im Text ein Konzept ersichtlich, für welches man Generalisierung, Aggregation o.ä. hätte nutzen können. - Technisch: verschiedene Modellierungs-Tools unterstützen manche Aspekte von UML nicht oder schlecht o Zum Beispiel war es in Eclipse fast unmöglich, ein gutes Aktivitäts-Diagramm zu erstellen. 2
Matthias Dräger 0.05.20 Markus Bischoff Erhaltene Vorteile:. Aus Business Sicht a. Man erhält ein grundlegendes Verständnis des gesamten Geschäftsprozesses b. Man erhält einen Überblick über die einzelnen (Sub-) Systeme und Akteure, die am Prozess / System beteiligt sind. c. Eventuelle Schwachpunkte im Prozess können leichter erkannt werden. d. Optimierung des Prozesses wird leichter, da man den Prozess aus verschiedenen Perspektiven betrachtet hat. (Aktivitäten verbessern / Struktur verbessern) e. Neue Mitarbeiter erhalten durch die Modelle schneller ein Grundverständnis für das System, wodurch die Einarbeitungszeit verringert wird. 2. Aus IT-Sicht: a. Man erhält einen Überblick über das zu bauende System. b. Man erkennt unterspezifizierte Dinge, die noch nachgefragt werden müssen, um eventuelle Missverständnisse auszuräumen. (Oder gar zu vermeiden, dass etwas Falsches gebaut wird.) c. Man kann mit dem Kunden ein gemeinsames Verständnis für das System anhand der Modelle entwickeln und so besser kommunizieren. d. Bessere Kommunikation der Entwickler untereinander, das mithilfe der Modelle ein einheitliches Vokabular geschaffen wird. (Zum Beispiel um ein bestimmtes Subsystem genau benennen zu können, an dem gearbeitet werden muss.) e. Erleichtert die Aufteilung des Gesamtsystems in Subsysteme, sodass mehrere Entwickler parallel daran arbeiten können. Es müssen nur geeignete Schnittstellen zwischen den Subsystemen spezifiziert werden. f. Verbesserung des Systems wird erleichtert (vgl. bei.d) (Im Modell die Schwachpunkte oder Ansatzpunkte für Erweiterungen leichter finden; wenn einige Zeit zwischen Erstellung und Wartung des Systems vergangen ist, können sich die Entwickler durch das Modell leichter wieder in das System einfinden.) 3
Fast Flower Delivery Business getdistance FromStore notifycustomer Location Service prepareorder «extends» «extends» Manually makedeliveryrequest rankvandriver Automatically Flowerstore receivebidrequest configureprofile Van Driver makedeliverybid pickupflowers deliverflowers confirmdelivery
Profile BidRequestSystem LocationService +RankingConstraint +TypeOfDriverAssignment +makedeliveryrequest() +broadcastrequest() +getdriverpositions() +getdriversnearstore(eing. Store : Flowerstore)..* Flowerstore +Address +notifycustomer()..*..*..* DeliveryRequest +pickuptime +deliverytime +flower..*..* assigneddriver..*..* VanDriver +pickupflowers(eing. Request : DeliveryRequest) +deliverflowers(eing. Request : DeliveryRequest) +confirmdelivery(eing. Request : DeliveryRequest)..*..* AssignmentSystem +makedeliverybid(eing. Request : DeliveryRequest) +(eing. Request : DeliveryRequest, eing. Driver : VanDriver) ControlSystem -rankingtable<vandriver, DeliveryRequest, Rank> +addrank(eing. Driver : VanDriver, eing. rank, eing. Request : DeliveryRequest) +getaveragerank(eing. Driver : VanDriver)
Flowerstore Bid Request System Location System createdeliveryrequest makedeliveryrequest getdriversnearstore broadcastrequest Van Driver receivedeliveryrequest Assignment System choosedriver [manual assignment] makedeliverybid [automatic assignment] notifycustomer receiveassignment deliverflover Control System rankdriver deliverflower getdriversnearstore pickupflower getdriverpositions deliver confirmdelivery calcdistancetostore getnearestdrivers