03 Ereignisdiskrete Prozessmodellierung mit der UML Flashcards
Modell
Ein Modell ist ein System, das als Repräsentant eines komplizierten Originals aufgrund mit diesem gemeinsamer, für eine bestimmte Aufgabe wesentlicher Eigenschaften von einem dritten System benutzt, ausgewählt oder geschaffen wird, um letzterem die Erfassung oder Beherrschung des Originals zu ermöglichen oder zu erleichtern, beziehungsweise um es zu ersetzen.
Kerneigenschaften eines Modells
o Ziel: Umweltverständnis, Ideenentwicklung und -umsetzung
o Semantik: Bedeutung des Modells
o Notation: Erscheinungsbild des Modells
Merkmale eines Modells
- Abbildungsmerkmal
- Verkürzungsmerkmal
- Pragmatisches Merkmal
Merkmale eines Modells: Abbildungsmerkmal
Bei Modellen handelt es sich um Abbildungen und Repräsentationen natürlicher und künstlicher Originale.
Technischer, natürlicher Originale
Symbole, Vorstellungen, Begriffe, physische Originale
Räumliche, zeitliche Originale/Veränderungen
Merkmale eines Modells: Verkürzungsmerkmal
Modelle erfassen nicht alle Attribute des durch sie repräsentierten Originals, sondern die für den Ersteller eines Modells oder für die Benutzer des Modells relevant sind.
Modell- und Originalattribute müssen bekannt sein
Attribute des Originals werden im Modell reduziert
Zu modellierende Attribute sind subjektiv und/oder zielgerichtet
Merkmale eines Modells: Pragmatisches Merkmal
Modelle sind ihren Originalen nicht immer eindeutig zugeordnet und können sie auch ersetzen.
Modell ersetzt das Original für eine bestimmte Person & einen bestimmten Zeitraum
Modell ersetzt das Original unter Einschränkungen gedanklicher/tatsächlicher Operationen
Modellierung: Analyseprozess
o Mit der Erhebung der Anforderungen kommt ein Analyseprozess in Gang, der über die Dokumentation und Validierung der Anforderungen zu einer Spezifikation führt.
o Im Anschluss an Analyseprozess folgt die Festlegung der technischen Spezifikation und die Implementierung
Modellierung: Vorgehen im Analyseprozess
Analytiker und Fachexperten finden Fakten -> Wissensträger steuern das Fachwissen bei, Analytiker das methodische Wissen
Fakten werden in Diagrammen und Dokumenten repräsentiert -> Normalerweise durch Analytiker
Wissensträger validiert Fakten
Modellierung: Analyseprozess - Techniken für die Validierung von Fakten
- Beobachtung im Feld
- Mitarbeit bei den zu untersuchenden Prozessen
- Übernahme der Rolle eines Außenstehenden
- Verwendung von Fragebogen
- Durchführung von Interviews
- Brainstorming mit den Beteiligten
- Diskussion mit Fachexperten
- Durchsicht bestehender Formulare, Dokumentationen, Beschreibungen und Handbücher
- Beschreibung der Aufbau- und Ablauforganisation
Resultat des Analyseprozesses
Spezifikation, die aus ihrem Modell und anderen Repräsentationen besteht
Vorüberlegung zur Modellierung - Fragen zur Definition von Zweck und Zielgruppe
o Wer spezifiziert?
o Für wen wird spezifiziert?
o Was soll spezifiziert werden?
o Zu welchem Zweck soll das Modell benutzt werden?
o Wie tief ist das Business-Know-how?
o Welchen Detaillierungsgrad verlangt die Zielgruppe?
o Wie viel Zeit steht der Zielgruppe zur Verfügung, um die Modelle zu lesen und zu interpretieren?
o Welche Sprache kann in dem Modell verwendet werden?
o Welche Abstraktionsebene soll gewählt werden?
Grafische Beschreibungssprachen - Untergruppen
- Funktionsorientiert
- Prozessorientiert
- Objektorientiert
Grafische Beschreibungssprachen zur Modellierung von Arbeitsprozessen - Funktionsorientiert
- Structured Analysis and Design Technique (SADT)
- IDEF-Diagramme (Integration DEFinition)
- Datenflussdiagramm (Data Flow Diagram DFD)
Grafische Beschreibungssprachen zur Modellierung von Arbeitsprozessen - Prozessorientiert
- Petri-Netze
- K3 (Koordination, Kooperation, Kommunikation)
- Erweiterte Ereignisgesteuerte Prozesskette (eEPK)
- Business Process Modeling Notation (BPMN)
- DIN 66001
Grafische Beschreibungssprachen zur Modellierung von Arbeitsprozessen - Objektorientiert
- Unified Modeling Language
Funktionsorientierte Modellierungsansätze: Structured Analysis and Design Technique (SADT)
Methode für den Entwurf und die Analyse von Systemen unterschiedlicher Art.
Funktionselemente, deren Input und Output genau angegeben wird, werden differenziert, sowie die Regelungs- und Steuerungsfunktion
Notwendige Mechanismen zur Ausführung der Funktion werden spezifiziert
Funktionsorientierte Modellierungsansätze: IDEF-Diagramme
Oberbegriff für eine auf SADT basierende Menge von Werkzeugen zur Modellierung von Prozessen
Funktionsorientierte Modellierungsansätze: Datenflussdiagramme
Können Funktionalitäten eines Realsystems durch Prozesse und Aktivitäten grafisch abbilden (Ausdrucks- und Anwendungsmöglichkeiten jedoch sehr beschränkt)
Funktionsorientierte Sprachen eignen sich nur bedingt zur Modellierung von Arbeitsprozessen. -> Meist Spezialisiert und eignen sich hauptsächlich zur funktionalen Dekomposition von Systemkomponenten, Modellierung von Elementen und deren Beziehungen sowie dynamisches Prozessverhalten nur eingeschränkt oder gar nicht möglich
Prozessorientierte Modellierungsansätze: Petri-Netze
Formale Methode zur mathematischen Modellierung von Systemen, in denen mehrere Prozesse simultan bzw. nebenläufig ablaufen können.
Eignen sich aufgrund der formalen Beschreibung und geringen Anschaulichkeit eher zur theoretischen Analyse und Simulation von Arbeitsprozessen.
Prozessorientierte Modellierungsansätze: eEPK
Dienen der Darstellung von Geschäfts- und Arbeitsprozessen aus Sicht der Wirtschaftsinformatik
Werden häufig zur Analyse von Abläufen auf Abteilungsebene sowie zur computergestützten Optimierung eingesetzt.
Prozessorientierte Modellierungsansätze: UML
Standardisierte Sprache zur Modellierung von Systemen.
Für die Modellierung von Geschäftsprozessen können je nach Zweck unterschiedliche Diagrammtypen eingesetzt werden.
Prozessorientierte Modellierungsansätze: K3-Methode
Speziell für die Modellierung kooperativer, schwach strukturierter Arbeitsprozesse entwickelt, findet aber auch Verwendung in der Modellierung stark strukturierter Geschäftsprozesse
Koordination, Kooperation, Kommunikation
Prozessorientierte Modellierungsansätze: BPMN
Grafische Spezifikationssprache mit Ursprung in der Wirtschaftsinformatik
Stellt eine umfangreiche Notation zur Verfügung, mit denen Fach- und Software-Spezialisten Geschäfts- und Arbeitsprozesse modellieren können.
UML - Definition
Die UML ist eine Sprache und Notation zur Spezifikation, Konstruktion, Visualisierung und Dokumentation von Modellen für Softwaresysteme.
o UML kann als Basis für verschiedene Methoden sein -> Stellt eine definierte Menge von Modellierungskonstrukten mit einheitlicher Notation und Semantik bereit
UML - Ziel
Spezifikation, Konstruktion und Dokumentation von Software und Systemen
UML - Grundidee
Der objektorientierten Programmierung (OOP) ein standardisiertes Entwickler- und Analysetool zur Seite stellen
- Eignet sich für konkurrierende, verteilte, zeitkritische, sozial eingebettete Systeme und mehr
UML - Bestandteile
o Im Zentrum steht das Objekt. Es enthält Attributfelder, in welchen die Daten stehen
o Welche Attributfelder das Objekt besitzt hängt von seiner Klasse ab
o Klassen sind das Äquivalent von Entitätstypen
o Assoziationen Beziehungen, Beziehungstypen und Kardinalität
o Sieht in der Realität vorkommende Gegenstände als Objekte an. Objekte können sich wiederum aus anderen Objekten zusammensetzen
UML - Objekte
- Besitzen Eigenschaften (Attribute)
- Zeigen Verhalten (Methoden)
- Kommunizieren mit anderen Objekten (Nachrichten)
UML - Akteure
- Verwenden das System
- Stellen Anforderungen (Requirements) an das System
UML - Klassen
Fassen mehrere ähnliche Objekte (Instanzen) zusammen
Unterschiedliche Sichten innerhalb der UML
o Benutzersicht
-> Anwendungsfalldiagramme
o Strukturelle Sicht
-> Klassendiagramme, Objektdiagramme
o Verhaltenssicht
-> Sequenz-, Interaktions-, Zustands-, Aktivitätsdiagramme
o Implementierungssicht
-> Komponentendiagramme, Modell-Management Diagramme
o Umgebungssicht
-> Einsatzdiagramme
o Anforderungen
-> Anwendungsfalldiagramme
o Statistische Sicht
-> Klassendiagramme, Objektdiagramme
o Dynamische Sicht
-> Sequenz-, Interaktions-, Zustands-, Aktivitätsdiagramme
Besondere Stärke der UML
Bereitstellung von standardisierten Modellierungsnotationen und -prinzipien zur Modellierung unterschiedlicher Ansichten
UML-Verhaltensdiagramme
Ein Verhaltensdiagramm modelliert die dynamischen Aspekte eines Systems
- Soll Klarheit bspw. über interne Abläufe, Geschäftsprozesse oder das Zusammenwirken verschiedener Systeme schaffen.
Verhalten
Menge von Prozessen, grundsätzliche strukturelle Merkmale eines Objektes über den Verlauf der Zeit
Prozess
Ablauf von Aktivitäten zur Erreichung eines vorgegebenen Ziels
o Gerichteter Ablauf
o Verschachtelung möglich
UML-Verhaltensdiagramme: Modelliert werden…
o Abläufe mit mehreren Objekten
o Interaktionen zwischen Objekten
o Objekte, die ihre Zustände durch Verhalten ändern können
UML-Verhaltensdiagramme: Annahmen zur Spezifikation eines Verhaltens
o Verhalten geht immer von Instanzen (Objekten) aktiver Klassen aus
o Verhalten ist immer ereignisgesteuert
UML-Verhaltensdiagramm: Aktion
Fundamentale Bausteine der Verhaltensbeschreibung
o Aktionen können mit anderen Verhaltensbeschreibungen (Aktivitäten, Interaktionen oder Zustandsautomaten) kombiniert werden
UML-Verhaltensdiagramm: Verhaltensbeschreibungen
Besitzen Parameter, mit denen vor der Verhaltensführung Werte übergeben werden können
* Parameter sind Platzhalter, über die nach der Verhaltensführung Werte zurückgeliefert werden
Können auf andere Modellelemente innerhalb eines Kontexts zugreifen
UML-Verhaltensdiagramm: Zustandsdiagramm
Ein Zustandsdiagramm zeigt eine Folge von Zuständen, die ein Objekt im Laufe seines Lebens einnehmen kann und aufgrund welcher Stimuli Zustandsänderungen stattfinden
o Beschreibt eine hypothetische Maschine (endlicher Automat), die sich zu jedem Zeitpunkt in einer Menge endlicher Zustände befindet und besteht aus:
Einer endlichen, nicht-leeren Menge von Zuständen
Einer endlichen, nicht-leeren Menge von Ereignissen
Zustandsübergängen
Einen Anfangszustand
Und einer Menge von Endzuständen
Zustandsdiagramm: Ereignis
Vorkommnis, das in einem gegebenen Kontext eine Bedeutung hat, sich räumlich und zeitlich lokalisieren lässt und gewöhnlich einen Zustandsübergang (Transition) auslöst
Ereignisse lösen Übergänge von einem Zustand zum nächsten aus
Ein Ereignis besteht aus einem Namen und einer Liste möglicher Argumente
Ursachen für Ereignisse:
* Das Objekt erhält eine Nachricht
* Eine (für einen Übergang definierte) Bedingung wird erfüllt
* Zeitereignisse:
o After: relativer Zeitpunkt -> z.B. nach 30 min
o At: exakter Zeitpunkt -> z.B. wenn… (Vorlagedatum)
Zustandsdiagramm entwickeln - Checkliste
- Vollständigkeit prüfen -> Sind alle fachlich zulässigen Zustände des Objektes dokumentiert?
- Implikationen identifizieren -> Sind die Implikationen der identifizierten Zustände durchdacht und berücksichtigt worden?
- Folgezustände/Transitionen untersuchen Sind die möglichen Folgezustände und Transitionen zu jedem einzelnen Zustand untersucht worden?
- Operationen kennzeichnen -> Sind alle Operationen der betroffenen Klasse als zustandsabhängig bzw. -unabhängig gekennzeichnet worden (z.B. durch einen entsprechenden Eigenschaftswert)?
UML - Interaktionsdiagramme
Interaktionsdiagramme zeigen, wie Nachrichten zwischen verschiedenen Interaktionspartnern in einem bestimmten Kontext ausgetauscht werden.
Interaktion
Aufeinander bezogenes Handeln zweier oder mehrerer Akteure/Objekte
o Wechselbeziehung zwischen Akteuren/Objekten
o Ziel: Nachrichten- Datenaustausch
o Interaktionsinhalt: Signale, Operationsaufrufe
o Interaktionssteuerung: Bedingungen, Zeitliche Ereignisse
o Interaktionen werden als Signale und Nachrichten dargestellt
-> Signale werden versendet, ein Feedback wird nicht zwangsläufig erwartet (Asynchrone Kommunikation)
Bestandteile von Interaktionsdiagrammen
Interaktionsdiagramme bestehen immer aus
Kommunikationspartner/Objekte und deren Lebenslinien
Interaktionen
Nachrichten
Mittel zur Flusskontrolle
Arten von Interaktionsdiagrammen
- Sequenzdiagramm
- Kommunikationsdiagramm
- Zeitdiagramm
- Interkationsübersichtsdiagramm
Interaktionsdiagramme: Sequenzdiagramm
Interaktionspartner/Objekte werden horizontal angeordnet, während die Zeit vertikal verläuft
Nachrichtenaustausch zwischen den Interaktionspartnern wird über Pfeile ausgedrückt
Stellt in der Regel einen Weg durch einen Entscheidungsbaum innerhalb eines Systemablaufes dar.
-> Zeitlich, logisch
-> Fokus: Zusammenarbeit der Interaktionspartner
Interaktionsdiagramme: Kommunikationsdiagramm
Strukturell orientiert, keine Zeitachse
Hauptziel: Aufzeigen der Beziehung zwischen den einzelnen Interaktionspartnern
Zeigt ähnliche Sachverhalte wie Sequenzdiagramm, jedoch aus anderer Perspektive Rollen und ihre Zusammenarbeit untereinander stehen im Vordergrund
Interaktionsdiagramme: Zeitdiagramm
Ermöglichen den Ausdruck von Zustandsänderungen
Zustände können detaillierter spezifiziert werden
Ein Interaktionspartner befindet sich immer in einem bestimmten Zustand
Zustände, die ein Interaktionspartner annehmen kann, können explizit eingezeichnet werden -> Übergänge von Zuständen lassen sich darstellen
-> Zeitlich präzise
Interaktionsdiagramme: Interaktionsübersichtsdiagramm
Verknüpft unterschiedliche Interaktionsdiagramme miteinander
Können für komplexe Systeme sehr groß werden
-> Interaktionsorientiert
Einsatzbereiche von Interaktionsdiagrammen
o Modellierung von Interaktionen eines Systems mit seiner Umwelt
o Modellierung des Zusammenspiels der internen Struktur einer Klasse, Komponente oder Kollaboration
o Modellierung der Spezifikation von Schnittstellen zwischen Systemteilen (Zusammenspiel angebotene/benutzte Schnittstellen)
o Interaktionsdiagramme eignen sich nicht in das Innere der Systemgrenzen zu schauen -> Black Box
UML-Verhaltensdiagramme: Sequenzdiagramm
Zeigt eine Reihe von Nachrichten, die eine ausgewählte Menge von Beteiligten (Rollen und Akteuren) in einer zeitlich begrenzten Situation austauscht, wobei der zeitliche Ablauf betont wird.
Darstellung von Interaktionen in 2 Dimensionen
o „horizontal“: Interaktionspartner in Form von Rollen (Anordnung kann beliebig erfolgen)
o „vertikal“: Zeitachse (oben nach unten)
Einsatz von Sequenzdiagrammen
o Abbildung System <-> Umwelt Interaktion
o Darstellung der internen Klassenstruktur
o Spezifikation von Systemschnittstellen
o Logik von komplexen Verfahren darstellen
o Interaktion zwischen Objekten und Komponenten
o Funktionsweise eines Szenarios planen und verstehen
Sequenzdiagramme - Wichtigste Notationselemente
o Lebenslinien/Zeitlinie: Stellen die Kommunikationspartner dar -> Stellt das Voranschreiten der Zeit des Objektes/der Rolle dar
o Nachrichten: Werden durch Pfeile repräsentiert
Sequenzdiagramme: Notation
o Zeitlicher Verlauf der Nachrichten steht im Vordergrund -> Rollen/Objekte werden lediglich mit senkrechten Lebenslinien gezeigt
o Aktivitätsbalken symbolisiere den Steuerungsfokus -> Gibt an, welche Rolle gerade die Kontrolle über eine Aktivität besitzt/welche Rolle gerade aktiv ist
o Nachrichten werden als waagerechte Pfeile dargestellt (wird als Form eines Arguments auf den Pfeilen notiert)
Sequenzdiagramme: Spezielle Nachrichten
Objekterzeugung: Ermöglicht einen Interaktionspartner erst im Laufe der Interaktion zu erzeugen
Verlorene Nachricht: Senden einer Nachricht an unbekannten oder nicht relevanten Interaktionspartner
Gefundene Nachricht: Empfang einer Nachricht von einem unbekannten oder nicht relevanten Interaktionspartner
Zeitkonsumierende Nachricht
Interaktionsmodelle entwickeln
- Für jeden Anwendungsfall ein Sequenz- oder Kommunikationsdiagramm entwickeln, das den Standardablauf darstellt
- Stärken und Schwächen des gewählten Designs in diesen Situationen bedenken
- Für jeden Anwendungsfall 1-3 Diagramme, die die wichtigsten Ablaufvarianten bzw. Ausnahmen darstellen
- Gegenebenfalls fehlende Eigenschaften in den betroffenen Klassen identifizieren (z.B. notwendige neue Klassen, Assoziationen, Attribute und Operationen)
Sequenzdiagramm erstellen: Checkliste
- Akteure und Systeme bestimmen -> Wer ist am Arbeitsprozess beteiligt?
- Initiator bestimmen -> Wer beginnt den Arbeitsprozess?
- Informationsaustausch zwischen Akteuren -> Welche Informationen werden ausgetauscht?
- Zeitlichen Ablauf der Interaktionen festlegen -> Wie ist die Reihenfolge der Interaktionen?
- Ergänzende Informationen eintragen -> Was ist noch wichtig?
- Modellverifikation -> Ist alles richtig?