Beruflich Dokumente
Kultur Dokumente
Naturwissenschaftliche Fakultät
Software Engineering II
Sommersemester 2022
Dr. Michael Striewe
Universität Potsdam
Mathematisch-
Naturwissenschaftliche Fakultät
Kapitel 3
Universität Potsdam
Implementierung von BPMN Prozessen
(vereinfacht)
• Realisierung (ggf. auch Reuse) • Ableitung von Use Cases (…) aus den
der durch die Tasks spezifizierten Prozessen
• Funktionalität • Implementierung der Use Cases
Deployment auf einer Prozess-Engine
Technische Modelle
Fachliche Modelle
& Infrastruktur
Business IT
semantische Lücke
Universität Potsdam 4
Wesenszüge des MDD
Universität Potsdam 5
Exkurs: Modelltransformation
Universität Potsdam
Exkurs | Beispiel: Ersetzungsregel
1: Liste 1: Liste
last
2: last 2:
next
3: 3:
next next
4: 4:
1: Liste
3: Ein Vorkommen der
linken Seite …
last
4:
2: next 1:Liste
last
first next 2:
3:
next
next 4:
Universität Potsdam
Exkurs | Beispiel: Ersetzung durchführen
1: Liste last
3:
... wird ersetzt durch
rechte Seite
next
4:
2: next 1:Liste
first next last
2:
next
3:
next
next 4:
Universität Potsdam
Exkurs: Graphgrammatiken
Universität Potsdam
Exkurs | Beispiel: TGG (Java <-> UPPAAL)
Universität Potsdam
Exkurs | Beispiel: TGG (Java <-> UPPAAL)
Universität Potsdam
MDA: ein Ansatz zur Umsetzung des MDD
Universität Potsdam 13
Konzepte der MDA
• Modelltransformationen
– Automatisierung der Transformation von PIM zu PSM → Konsistenz
– ??? Wie vom CIM zum PIM ???
Universität Potsdam 14
Vom Geschäftsprozessmodell zum Code
CIM PIM
Business IT
PSM
semantische Lücke
MDD in der Terminologie der MDA → automatische Modelltransformation „hinter der Lücke“
Universität Potsdam 15
Technologien der MDA (Beispiele)
Universität Potsdam 16
Technologien der MDA (Beispiele)
Universität Potsdam 17
MDD versus Agiles Vorgehen
Universität Potsdam 18
Fazit von MDD
Universität Potsdam
Spezifikation vs Dokumentation
• Dokumentation:
– Beschreibung der Funktionalität eines Programmes in
natürlicher Sprache.
– Beispiel: Die Funktion max(a,b) gibt den größeren der
beiden Werte a,b zurück.
• Spezifikation:
– Beschreibung der Funktionalität eines Programmes in
einer formalen Sprache.
– Beispiel: ∀a,b: (max(a,b) = a ↔ a ≥ b) ∧ (max(a,b) = max(b,a))
Universität Potsdam 20
Verifikation vs Testen (1)
Universität Potsdam 21
Verifikation vs Testen (2)
•…
• Verifikation (statisch, deduktiv):
– Überprüfung der Funktionalität eines Programmes durch
Analyse des Programmes und Beweisen einer
gegebenen Spezifikation
– Beispiel:
• Zeige: ∀a,b: (max(a,b) = a ↔ a ≥ b) ∧ (max(a,b) = max(b,a))
• Nimm an: exists a,b: !…
– Funktioniert nicht für beliebig große Programme und
beliebige Eigenschaften
Universität Potsdam 22
Programmcode ist Spezifikation
• Programmcode …
– ist in einer formalen Sprache geschrieben
– hat eine definierte Semantik
– beschreibt das Verhalten des Programms
=> Alles genauso wie ein Modell
• Compiler kann Spezifikationsfehler erkennen, z. B.:
– Falsche Typen
– Falsche Parameter
• Nicht jede Programmiersprache unterstützt das
– Dynamische Typisierung zur Laufzeit
• Aber man könnte auch noch mehr Informationen im
Programmcode ablegen
Universität Potsdam
Design by Contract (DbC)
Universität Potsdam 24
DbC Beispiel (informal)
Universität Potsdam 25
Verträge
• Vorbedingungen (Preconditions)
– ergänzen Typvereinbarungen der formalen Parameter
• Nachbedingungen (Postconditions)
– ergänzen Vereinbarung des Rückgabetyps
– normal postconditions (erfüllt, wenn keine Exception)
– exceptional postconditions (erfüllt, falls Exception
geworfen wurde)
• Invarianten
– zusätzliche Garantien
– Bedingungen, die unmittelbar vor dem Aufruf und nach
Abarbeitung der Methode erfüllt sind
Universität Potsdam 26
Vor- und Nachbedingung formal
Universität Potsdam
Invariante formal
Universität Potsdam
Liskov‘sches Substitutionsprinzip
Universität Potsdam
Schuldzuweisung (Blame Assignment)
Universität Potsdam 30
Ausführbare Verträge
Universität Potsdam
Ausführbare Contracts
• Deaktivieren bevorzugen
Universität Potsdam 32
Sprachen zum Formulieren von Verträgen
Universität Potsdam 33