homeSoftwaredesign Softwaredesign: Semantik von Entwürfen mit UML/OMT Prof. Dr. Uwe Schmidt FH Wedel

Semantik von Entwürfen mit UML/OMT

weiter

weiter

Präzision

Semantik
Klassendiagramme besitzen, im Gegensatz zu Programmiersprachen, keine formale Semantik
weiter
merke
nur die Signaturen tauchen (zum Teil) in Klassendiagrammen auf
weiter
merke
Eigenschaften und Verhalten bleiben offen
weiter
merke
keine Vor- und Nachbedingungen
keine Invarianten (wie z.B. in Eiffel)
weiter
merke
zusätzliche Notation notwendig
häufig Pseudocode oder OO-Programmiersprache
weiter
merke
Fehlererkennung und Behandlung bleibt offen
weiter
merke
Test-Methoden werden nicht unterstützt
weiter

weiter

formale Entwurfsmethoden: Eigenschaften

Semantik
präzise definiert
weiter
merke
Eigenschaften des Systems werden eindeutig festgelegt
weiter
merke
Vor- und Nachbedingungen
Invarianten für Konsistensbedingungen
Fehlersituationen
weiter
merke
ein Programm kann gegen die Spezifikation getestet werden
weiter
ADTs
die Gesetze einer ADT-Definition bilden Basis für einen systematischen black-box Text
weiter

weiter

formale Entwurfsmethoden: Vorgehen

Datenmodellierung
fester Satz von ADTs
Verbund, Listen, Mengen, Tabellen, Relationen, Graphen, ...
jeder ADT besitzt formale Semantik
weiter
Z!
entwickelt von C.A.R. Hoare
alle ADTs werden auf Mengen zurückgeführt
weiter
VDM
entwickelt von Bjørner und Jones
ADTs für Verbund, Vereinigung, Liste, Menge und Tabelle vorgegeben
andere ADTs werden aus diesen zusammengesetzt
weiter
Haskell
1-1-Umsetzung der abstrakten Syntax aus VDM in eine ausführbare Notation möglich
ausführbare Spezifikationen
rapid prototyping
weiter
Datenmodell
aus Basis-Datentypen und Kombination der ADTs
abstrakte Syntax
weiter
Invarianten
Konsistenzbedingungen an das Datenmodell
Basis-Operationen im Datenmodell durch ADTs festgelegt
weiter
Funktionen
problemspezifische Operationen
weiter
Definition
durch Eigenschaften:
Vor- und Nachbedingungen
z.B. in Z! (Hoare)
funktional:
Zustandslose Beschreibung
leichter manipulierbar als mit imperativen Modellen
Zustandsorientiert
weiter

weiter

Vergleich:
Haskell Datentypen <--> OMT Klassendiagramme

elementare Wertebereiche
Zahlen
natürliche
ganze
reelle Zahlen
 
aus der Mathematik übernommen
Char
aus Programmiersprachen übernommen
weiter
Aufzählungsbereiche
data Enum = V1 | V2 | ... | Vn
weiter
strukturierte Wertebereiche
für
 
Verbund (Paare, Triple, n-Tupel)
Vereinigung
Option (Maybe)
Summe (Either)
Liste ([...])
Menge (Set)
Tabelle (Map)
weiter
Liste
type L = [E]
Operationen
null, head, tail, length, ++, ==, ...
weiter
OMT:
weiter
Menge
type S = Set E
Operationen
union, intersection, include, in, =, ...
weiter
OMT:
weiter
Tabelle
map
dictionary
assoziatives array
type Map = Map K A
Operationen
Mengenoperationen
einfügen, überschreiben, suchen, selektieren
weiter
OMT:
weiter
Verbund
record
kartesisches Produkt
type Tuple = (Comp1, ... , Compn)
Operationen
Konstruktion, Selektion, Vergleich
weiter
OMT:
weiter
Vereinigung
date Sum = Constr1 ... | ... | Constrn ...
Operationen
Test auf Gleichheit, Bereichstest, ...
weiter
OMT:
weiter

Letzte Änderung: 13.04.2012
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel