Hauptseminar Semantik der UML 2.0

Größe: px
Ab Seite anzeigen:

Download "Hauptseminar Semantik der UML 2.0"

Transkript

1 Hauptseminar Semantik der UML 2.0 UML 2.0 Interaktionen Semantik und Verfeinerung Betreuer: Peter Graubmann Bearbeiter: Fei Xie

2 - 1 -

3 INHALTSVERZEICHNIS 1 EINLEITUNG.3 2 GESCHICHTE UND DIAGRAMMARTEN DER UML SEQUENZDIAGRAMME Basis-Sequenzdiagramme Strukturierte Sequenzdiagramme SEMANTIK Die Präliminarien für die Semantik der Interaktionen Die Semantik des positiven Fragments Die Negationen Die Semantik das negativen Fragments VERBESSERUNG DER NEGATION σ-funktionen...15 Funktionen ע IMPLEMENTIERUNG UND VERFEINERUNG ZUSAMMENFASSUNG LITERATURVERZEICHNIS

4 1. Einleitung Diese Seminararbeit basiert auf [1]: UML 2.0 Interactions: Semantics and Refinement (CSDUML 04 Proceedings) 2004 von Maria Victoria Cengarle (Technische Universität) und Alexander Knapp (Ludwig-Maximilians-Universität München). Die in UML 2.0 beschriebenen Semantiken für Interaktionsdiagramme, besonders für die Negation, sind grob und undeutlich. Das Ziel der Autoren war, eine formale Grundlage für eine eindeutige Definition des Negationsoperators der Interaktionsdiagramme in UML 2.0 zur Verfügung zu stellen. Die Kernsprache, die in dieser Arbeit benutzt wurde, ist die Sprache für die verneinte Interaktion. Es hat sich herausgestellt, dass bei der Definition der formalen Semantik für diese Sprache viele Fragen entstanden. Diese betrafen zum Beispiel die klare Klassifizierung der verneinten Interaktionen. In diesem Dokument werden diese Probleme identifiziert und versucht, durch klassische Negation zu lösen. Für weitere Informationen zu Grundlagen der UML können [6]: Object Management Group. Unified Modeling Language Specification, Version 2.0 (Superstructure). Adopted draft, OMG 2003, und die im Literaturverzeichnis angegebenen Veröffentlichungen benutzt werden. 2. Geschichte und Diagrammarten der UML 2.0 Die Unified Modeling Language ("vereinheitlichte Modellierungssprache"), üblicherweise mit UML abgekürzt, ist eine von der Object Management Group (OMG) entwickelte und standardisierte Beschreibungssprache, um Strukturen und Abläufe in objektorientierten Softwaresystemen darzustellen. In diesem Sinne einer Sprache definiert die UML dabei einen Bezeichner für die meisten Begriffe, die im Rahmen der Objektorientierung entstanden sind, und legt mögliche Beziehungen zwischen diesen Begriffen fest. Die UML definiert darüber hinaus grafischen Notationen für diese Begriffe und für Modelle von Software oder anderen Abläufen, die man in diesen Begriffen formulieren kann. Die Väter der UML (insbesondere Grady Booch, Ivar Jacobson und James Rumbaugh, auch "die drei Amigos" genannt) waren in den 90er-Jahren bekannte Propagandisten der objektorientierten Programmierung, die alle bereits ihre (mehr oder weniger ähnlichen) eigenen Systeme entwickelt hatten. 3

5 Als sie zusammen beim Unternehmen Rational Software beschäftigt waren, entstand der Ansatz, die verschiedenen Notationssysteme strukturiert zusammenzuführen. Die UML wurde am 19. November 1997 von der OMG als Standard akzeptiert und wird seitdem von ihr weiter entwickelt. Im Juni 2003 wurde die jüngste Version 2.0 der UML von der OMG als Entwurf veröffentlicht. Die UML 2.0 wurde im November 2004 endgültig verabschiedet [13]. UML 2.0 unterstützt insgesamt 14 Diagrammarten. Sie werden in zwei Gruppen, Strukturdiagramme und Verhaltensdiagramme, unterteilt. Strukturdiagramme haben folgende Diagrammarten: Klassendiagramm, Objektdiagramm, Paketdiagramm, Komponentendiagramm, Verteilungsdiagramm und Kompositionsstrukturdiagramm. Verhaltensdiagramme können eine von acht Formen haben: Interaktionsübersichtsdiagramm, Kommunikationsdiagramm, Aktivitätsdiagramm, Sequenzdiagramm, Anwendungsfalldiagramm, Zustandsdiagramm, Kollaborationsdiagramm oder Zeitverlaufsdiagramm. (siehe Abb. 1). Abbildung 1. Diagrammarten der UML 2.0 [14] Aus Abbildung 1 ersehen wir, dass es vier Arten von Interaktionsdiagrammen gibt: Kommunikationsdiagramme, Sequenzdiagramme, Interaktionsübersichtsdiagramme und Zeitdiagramme. Interaktionsdiagramme beschreiben die Wechselwirkungen zwischen einer Anzahl von Objekten im System. In dieser Arbeit werden wir uns auf Sequenzdiagramme konzentrieren. 4

6 3. Sequenzdiagramme Sequenzdiagramme sind die wichtigsten Interaktionsdiagramme. Ein Sequenzdiagramm beschreibt die zeitliche Abfolge von Interaktionen zwischen einer Menge von Objekten innerhalb eines zeitlich begrenzten Kontextes. Mittels des Sequenzdiagramms beschreibt man die Interaktionen zwischen den Modellelementen ähnlich, wie bei einem Kommunikationsdiagramm, jedoch steht beim Sequenzdiagramm der zeitliche Verlauf des Nachrichtenaustausches im Vordergrund. 3.1 Basis-Sequenzdiagramme Die Objekte werden lediglich mit senkrechten Lebenslinien dargestellt. Die Lebenslinie bedeutet grundsätzlich, dass eine Instanz während der gesamten Ausführung des Ablaufs existiert und zur Verfügung steht. Oberhalb der Linie steht der Name einer Klasse bzw. das Objektsymbol in der Form: Instanzname:Klassenname. Die Nachrichten werden durch waagerechte Pfeile zwischen den Objektlebenslinien beschrieben. Es gibt folgende Nachrichtenarten: Asynchrone Nachrichten werden durch offene Pfeilspitzen gekennzeichnet. Synchrone Kommunikation wird durch ausgefüllte Pfeilspitzen gekennzeichnet. Antworten sind optional und werden durch eine gestrichelte Linie mit offener Pfeilspitze dargestellt. Geht eine Nachricht verloren bzw. ist der Sender einer Nachricht nicht bekannt (>>gefundene<< Nachricht), so dient ein kleiner ausgefüllter Kreis als End- bzw. Anfangspunkt des Nachrichtenpfeils. Auf den Pfeilen werden die Nachrichtennamen notiert. Nach der Spezifikation von UML 2.0 [6] wird die Syntax für Nachrichten wie folgende definiert: messageident::=[attribute=]signal-or-operation-name[(arguments)] [:return-value] * arguments ::= argument [, arguments] argument::=[parameter-name=]argument-value attribute=out-parameter-name [:argument-value] - 5

7 Die Überlagerung der gestrichelten Lebenslinien durch breite, nicht ausgefüllte (oder graue) senkrechte Balken symbolisiert den Steuerungsfokus. Der Steuerungsfokus ist optional und gibt an, welches Objekt gerade die Programmkontrolle besitzt, d.h. welches Objekt gerade aktiv ist. Lokale Attribute, die beispielsweise als Schleifenzähler o.ä. verwendet werden können, werden oben links im Diagramm deklariert. Das Erzeugen (Objektkonstruktion) und Entfernen (Objektdestruktion) von Objekten kann in Sequenzdiagrammen ebenfalls dargestellt werden. Die Konstruktion eines neuen Objektes wird durch eine Nachricht, die auf ein Objektsymbol trifft, angezeigt, die Destruktion eines Objektes durch ein Kreuz am Ende der Lebenslinie. Ein Sequenzdiagramm wird mit dem Schlüsselwort sd gekennzeichnet. Für den durch das Diagramm dargestellten zeitlichen Ablauf gelten die folgenden Regeln: Die Abfolge von Sende- und Empfangsaktionen auf der gleichen Lebenslinie beschreibt deren zeitliche Abfolge. Hierbei ist aber nur die Anordnung der Ereignisse entscheidend, dagegen lassen sich aus der Länge des vertikalen Abstands zwischen Ereignissen keine Informationen über die abgelaufene Zeit ableiten. Die Sendeaktion einer Nachricht findet stets vor der Empfangsaktion für diese Nachricht statt. Auch hier gibt das Diagramm nur die Reihenfolgeninformation wieder, eine Ableitung der Zeitdauer zwischen Senden und Empfangen ist nicht möglich. Für viele Anwendungen sind die reinen Reihenfolgenangaben von Ereignissen aber nicht ausreichend, so spielen Antwort-, Übertragungs- und Verarbeitungszeiten in Echtzeitsystemen eine entscheidende Rolle. Aus diesem Grund können Lebenslinien und Nachrichten in UML 2.0 mit zusätzlichen Zeitangaben verbunden werden. Es gibt zwei Formen für Zeitangaben: Zeitdauerinformationen und Zeitpunktinformationen. Ein erstes einfaches Sequenzdiagramm ist in Abbildung 2 gegeben. In diesem Diagramm ist die externe Sicht auf die Abläufe in einer Organisation dargestellt. Wir erkennen hier vier beteiligte Instanzen: ein Objekt von Klasse Organisator, ein Objekt von Klasse Teambesprechung, sowie zwei Instanzen m1 und m2 der Klasse Teammitglied. Das Diagramm visualisiert einen positiven, d.h. gewünschten Ablauf: ein Organisator erzeugt ein Objekt der Klasse Teambesprechung. Das Objekt sendet 6

8 zuerst eine Nachricht (Termin bestätigen) an das Objekt m1. m1 schickt dann eine Nachricht OK an das Objekt von Typ Teambesprechung zurück. So funktioniert es auch bei m2. Danach wird eine Nachricht (bestätigt) von Teambesprechung an den Organisator gesendet und das Objekt von Typ Teambesprechung wird gelöscht. sd Organization :Organisator m1:teammitglied m2:teammitglied create :Teambesprechung Termin bestätigen OK Termin bestätigen bestätigt OK Abbildung 2. Beispiel für ein Sequenzdiagramm 3.2 Strukturierte Sequenzdiagramme Die lineare Form der Darstellung in Sequenzdiagrammen kann bei komplexen Abläufen schnell zu unübersichtlichen Diagrammen führen. Zusätzlich tauchen auch bestimmte Teilabläufe wie z.b. Initialisierungsphasen in allen Sequenzdiagrammen auf oder aber Abläufe sind bis auf eine kleine Menge von Abweichungen identisch. Aus diesen Gründen bietet UML zwei Mechanismen an, um Sequenzdiagramme besser zu strukturieren und Teilabläufe wieder zu verwenden. Innerhalb eines Sequenzdiagramms kann durch eine Referenz auf ein anderes Sequenzdiagramm verwiesen werden, das einen Teilablauf beschreibt. Alle Lebenslinien, die von der Referenz überdeckt sind, müssen auch in dem zusätzlichen Diagramm auftreten. Dieses kann aber darüber hinaus noch weitere Lebenslinien enthalten. Durch Referenzen kann eine Interaktionsbeschreibung in beliebig vielen anderen Sequenzdiagrammen wieder verwendet werden. Operatoren erlauben es auf der anderen Seite, ähnliche Abläufe innerhalb eines Sequenzdiagramms darzustellen. Dabei werden durch die Operatoren diejenigen Abschnitte gekapselt, die die Einzelabläufe voneinander unterscheiden. 7

9 Ein Operator wird durch ein Rechteck dargestellt, das horizontal alle Lebenslinien überdeckt, die von diesem Operator betroffen sind und in seiner linken oberen Ecke den Namen des Operators trägt. Alle Kommunikationsaktionen (Senden und Empfangen von Nachrichten), die unter Kontrolle des Operators ablaufen, werden innerhalb des Operator-Rechtecks dargestellt. Der Operator kann wiederum mehrere einzelne Sektionen enthalten, die durch eine gestrichelte waagerechte Linie voneinander abgetrennt sind. Die Interpretation der Einzelsektionen ist unterschiedlich in Abhängigkeit von der Form des Operators. In UML 2.0 gibt es folgende Operatoren. opt: Die einfachste Form eines Operators ist der opt-operator. Mit ihm werden optionale Teilabläufe markiert. Ein opt-operator umfasst nur eine Sektion. seq: Der Seq-Operator definiert eine bestimmte Art der Sequentialisierung der Teilabläufe. (schwache Sequenzialisierung). par: Der par-operator fügt Teilabläufe parallel zusammen. Er erlaubt eine beliebige Vermischung der Sende- und Empfangsaktionen aus den verschiedenen Sektionen. Gefordert wird lediglich, dass die Reihenfolge der Aktionen bezogen auf die Einzelsektionen eingehalten wird. strict: Der strict-operator definiert eine Sequenzialisierung der Teilabläufe die stärker eingeschränkt ist als beim seq-operator. Die durch den strict-operator definierte starke Sequenzialisierung verlangt, dass die Abläufe der einzelnen Sektionen vollständig abgeschlossen sind, bevor die Abläufe in den nachfolgenden Sektionen fortgesetzt werden. Somit ist innerhalb des strict- Operators die vertikale Position von Sende- und Empfangsereignissen nicht nur separat für jede einzelne Lebenslinie, sondern für alle Lebenslinien gleichzeitig signifikant. loop: Durch den loop-operator wird die wiederholte Sequenzialisierung der gleichen Abläufe definiert: Der durch den Operator gekapselte Teilablauf kann gar nicht, einmal oder mehrfach nacheinander ausgeführt werden. Der loop- Operator besitzt zwei optionale Argumente, die die minimale und maximale Anzahl an Wiederholungen angeben. Zunächst wird die vorgeschriebene Mindestanzahl an Wiederholungen ausgeführt. Vor jeder weiteren Wiederholung wird dann geprüft, ob die Bedingung wahr ist und ob die maximale Zahl an Wiederholungen noch nicht erreicht wurde, und gegebenenfalls der Operator verlassen. 8

10 alt: Durch einen alt-operator werden verschiedene alternative Abläufe in einem Sequenzdiagramm zusammengefasst. Ein alt-operator besitzt zwei oder mehrere Sektionen, die den einzelnen Alternativen entsprechen. Die Auswahl der zu nutzenden Alternative erfolgt auf der Grundlage einer entsprechenden Bedingung, die zur Ausführung der Sektion wahr sein muss. Eine Sektion kann dabei durch else gekennzeichnet werden. Sie wird immer dann ausgewählt, wenn keine der mit expliziten Bedingungen versehenen Sektionen genutzt werden kann. ignore: Alle in einem ignore-operator als Parameter übergebenen Nachrichtentypen werden bei der Ausführung der Interaktion nicht berücksichtigt. Das bedeutet, dass sie den Ablauf nicht beeinflussen und, obwohl nicht explizit angegeben, jederzeit während des Ablaufs auftreten können. assert: Durch den assert-operator kann eine zwingend notwendige Ablauffolge angegeben werden. neg: Mit einem Sequenzdiagramm können auch unerwünschte bzw. unzulässige Abläufe spezifiziert werden. Mit dem neg-operator gekapselte Abläufe entsprechen genau diesen unzulässigen Abläufen. Es gibt zusätzlich noch ein paar Operatoren, z.b. break, critical, consider, die jedoch in diese Arbeit nicht betrachtet werden. Die abstrakte Syntax der Interaktion ist durch die Grammatik in Tabelle 1 gegeben. Tabelle 1. Abstrakte Syntax der Interaktionen (Fragment) 9

11 Hier ist ein einfaches Beispiel für den Operator ref. Abbildung 3. Sequenzdiagramm mit Operator ref Hier ist ein ganz einfaches Beispiel für Diagramm mit Referenz. Das Diagramm hat drei Instanzen, x, y, z und zwei Referenzen auf andere Sequenzdiagramme. Wir können die drei Sequenzdiagramme zusammen in ein einziges Sequenzdiagramm zeichnen. Das oben gezeigte Interaktionsdiagramm ist äquivalent zu dem folgenden traditionellen Interaktionsdiagramm: sd x Y z Abbildung 4. Basis-Sequenzdiagramm von Abb. 3 10

12 Operatoren können miteinander kombiniert werden. In diesem Fall werden alle anzuwendenden Operatornamen gleichzeitig in dem Operatorrahmen angegeben (z.b. assert consider oder opt alt). 4. Semantik In den vorstehenden Abschnitten werden folgende Themen diskutiert: Was ein Sequenzdiagramm ist, welche Komponenten Sequenzdiagramme haben und wie die Komponenten in Diagrammen notiert werden. Wir gehen jetzt noch einen Ebene tiefer und untersuchen, wie die Interaktionen formal beschrieben werden sollen. 4.1 Die Präliminarien für die Semantik der Interaktion In Abbildung 5 wird ein ganz einfaches Sequenzdiagramm gezeigt. x Y e1 a e2 e3 b e4 Abbildung 5. Beispiel für einfaches Sequenzdiagramm In diesem Sequenzdiagramm sind die folgenden Abläufe und nur sie möglich: e1 e2 e3 e4 oder e1 e3 e2 e4 Um alle möglichen Abläufe mathematisch formal zu beschreiben, verwendet man partiell geordnete, bezeichnete Multimenge (pomset). Eine partiell geordnete, bezeichnete Multimenge (oder pomset) ist eine Klasse [(X, x, λx)], wobei X eine vorgegebene Menge von Ereignissen, x eine partielle Ordnungsrelation und λx eine Bezeichnerfunktion sind. Eine Spur ist eine pomset, die total geordnet ist. Wir schreiben lin(p) für alle möglichen Linearisierungen einer 11

13 pomset p. [(X, x, λx )] ist ein Element von lin([(x, x, λx)]), wenn und nur wenn, X =X, λx = λx and x x, wobei x1 x x2 oder x2 x x1 für alle x1, x2 X. Das leere pomset, das durch (φ,φ,φ ) repräsentiert wird, ist durch ε gekennzeichnet. Sei p = [(X, x, λx)] und q = [(Y, y, λy)] und X Y =φ. Die Nebenläufigkeit von p und q, die als p q geschrieben wird, ist durch die Klasse [(X Y, x y, λx λy)] gegeben. Die Konkatenation von p und q, die als p;q geschrieben wird, ist durch die Klasse [(X Y, ( x y (X Y))*, λx λy)] gegeben. Sei eine symmetrische Relation der Beschriftungen von p und q. Die -Konkatenation von p und q, ist durch p; q gegeben, das eine Klasse [(X Y, ( x y {(x,y) X Y λ X (x) λ Y (y)})*, λx λy)] definiert. Die Konkatenation und Nebeläufigkeit ist assoziativ und kommutativ. -Konkatenation sind assoziativ, die Das pomset, das das Sequenzdiagramm in Abbildung 5 beschreibt, kann wie folgend definiert werden. [({e1,e2,e3,e4}, {(e1,e1),(e1,e2),(e1,e3)(e2,e2),(e2,e4)(e3,e3),(e3,e4)(e4,e4)}, {e1 snd(x,y,a}, e2 rcv(x,y,a), e3 snd(x,y,b), e4 rcv(x,y,b)})] Wir definieren zusätzlich noch zwei Domänen für Instanzen I und Nachrichten M. Ein Ereignis e ist entweder in der Form snd(s, r, m) oder in der Form rcv(s, r, m). Die beiden Formen repräsentieren das Absenden und den Empfang der Nachricht m mit Sender s und Empfänger r. Hier sind s und r Instanzen. Die Menge von Ereignissen wird durch E bezeichnet. Außerdem definieren wir eine binäre, symmetrische Konfliktrelation auf Ereignisse: Wenn eine Instanz aktiv für beide Ereignisse e und e ist, wird diese Beziehung durch e e bezeichnet. Bei der Repräsentation eines endliches pomsets schreiben wir eine konkretere Notation {snd(s, r, m) rcv(s, r, m)} statt die [({e1, e2}, {(e1, e1), (e1, e2), (e2, e2)}, {e1 a snd(s, r, m), e2 a rcv(s, r, m)})]. In gleicher Weise benutzten wir für die Repräsentation endlicher Spuren des obigen Beispiels die Notation snd(s, r, m) rcv(s, r, m). Die Domäne P beinhaltet alle pomsets [(E, E, λ E )] mit allen Ereignisse in E. Wir definieren hier eine Funktion: filter(m): P φp. Diese Funktion nimmt ein paar Elemente von der Domäne P weg, die eine Nachricht in M haben. 4.2 Die Semantik des positiven Fragments Wir nennen die Interaktionen ohne Auftreten der Negation und Assertion das positive Fragment. Die positive Befriedigungsrelation (Eng. Positiv Satisfactions) zwischen Spuren und Interaktionen ist durch t p S gekennzeichnet, wobei t eine Spur und S 12

14 eine Interaktion des positiven Fragments ist. Die Semantik des positiven Fragments ist induktiv in Tabelle 2 definiert; dabei steht B für die Menge der (nicht durch Operatoren zusammengesetzten) Basis-Interaktionen, S, S1 und S2 sind Interaktionen, M steht für Nachrichten, m und n sind natürliche Zahlen. Tabelle 2. Semantik des positiven Fragments 4.3 Die Negationen In dieser Arbeit werden wir uns auf die Negation konzentrieren. In der UML 2.0 Spezifikation sind manche Features der Interaktionssprache nicht eindeutig spezifiziert, z.b. die Negation. In [6] wird der Operator neg folgendermaßen spezifiziert: The interaction Operator neg designates that the Combined Fragment represents traces that are defined to be invalid. The set of traces that defined a negative Combined Fragment is equal to the set of traces given by its (sole) operand, only that this set is a set of invalid rather than valid traces. All Interaction Fragments that are different from Negative are considered positive meaning that they describe traces that are valid and should be possible. UML 2.0 Interaktionen beschreiben positive und negative Spuren des Auftretens von Ereignissen. Die Benutzung der monadischen Operatoren neg(-) und assert(-) führt zu negativen Spuren. Die positiven und negativen Spuren, die durch eine Interaktion definiert sind, decken nicht alle mögliche Interaktionen ab. Die übrigen Spuren werden ergebnislos (Eng. inconclusive) genannt. Um die Ungenauikeiten der Spezifikation zu vermeiden, versucht man eine klarere Spezifikation für Operator neg 13

15 zu definieren. Störrle bedenkt drei verschiedene Interpretationen für Operator neg(s). (1) not the [valid] traces of s. (2) Anything but the [valid] traces of s. (3) The negative traces of S to be the positive traces for neg(s)[7]. Haugen und Stølen interpretieren hingegen, dass die positive Spuren von neg(s) nur aus der leeren Spur bestehen [3]. In dieser Arbeit werden wir die Definition von Haugen und Stølen benutzen. 4.4 Die Semantik das negativen Fragments Die Semantik einer verneinte Interaktion neg(s) ist wie folgend definiert. Die positiven Spuren von neg(s) sind solche Spuren, die nicht positiv für S sind und die negativen Spuren sind die Spuren, die positiv für S sind. Derartige Definition schließen jedoch die ergebnislosen (inconlusive) Spuren aus. Im Allgemeinen müssen wir die positiven, negativen und inconlusiven Abläufe unterscheiden. Wir schreiben n, wenn t negativ S befriedigt. Die induktive Definition für die Relation n ist in Tabelle 3 gezeigt, wobei B für die Menge der Basis-Interaktionen steht, S, S1 und S2 sind Interaktionen, M steht für Nachrichten, m und n sind natürliche Zahlen. Wir definieren n besonders für alle kombinierten Interaktionsfragmente. Sie entsprechen der Definition von Haugen und Stølen. Wir betrachten die leere Spur als positiv für neg(s). Für die kombinierte Fragments strict(-, -) und seq(-, -) sind nur solche Spuren negativ, die negativ für den erste Operand sind oder positive für den erste Operand aber negativ für den zweite Operand sind. Ein sehr interessanter Fall ist gegeben durch folgendes Beispiel. Sei Bi die Basis- Interaktion {snd(s i, r i, m i ) rcv(si, r i, m i )} (i = 1, 2, 3), wobei alle m i verschieden sind und t i die Spuren snd(s i, r i, m i ) rcv(s i, r i, m i ) (i = 1, 2, 3) bedeuten. Von den obenstehenden zwei Formeln käönnen wir ableiten, dass t2 gleichzeitig positiv und negativ für die Interaktion strict(neg(b2), B2) ist. Wir nennen strict(neg(b2), B2) deshalb eine überspezifizierte Interaktion. 14

16 Tabelle 3. Erweitete Semantik für die Negation 5. Verbesserung der Negation Die nicht klassische Interpretation der Negation ist schwierig zu handhaben. Vor allem werden zwei Befriedigungsrelationen, eine positive und eine negative, gebraucht. Es ist schwer zu entscheiden, ob eine Spur positiv, inconclusive oder negativ für eine Interaktion ist. Die Negation ist natürlich nicht nötig für die positive Befriedigungrelation. Für die Ableitung der negativen Befriedigung wird die Negation natürlich gebraucht. Die kann aber durch eine klassische Version ersetzt werden. Wir führen jetzt die Sprache der Interaktion in klassische Sinne ein. 5.1 σ-funktionen Wir definieren hierfür eine Funktion σ, die einer Interaktion genau eine Interaktion des positiven Fragments zuweist. Die Funktion σ ist induktiv wie in Tabelle 5 definiert; dabei steht B wieder für die Menge der Basis-Interaktionen, S, S1 und S2 sind Interaktionen, M steht für Nachrichten, m ist eine natürliche Zahl, n ist eine natürliche Zahl oder. 15

17 Tabelle 4. Die Definition für die σ Funktion Aus Tabelle 2 und Tabelle 4 ist leicht abzuleiten, dass t p S wenn und nur wenn t p σ(s). Aber eine binäre Logik ohne Negation ist nicht genug. Allerdings reicht eine binäre Logik mit klassischer Negation aus. Wir fügen hierfür einen Operator not(-) zum positiven Fragment der Interaktion hinzu. Diese Interaktion ist eine sogenannte Interaktion im klassischen Sinne. Die Operatoren neg(-) und assert(-) werden entfernt und der Operator not(-) wird hinzugefügt. Die positive Semantik der Interaktion im klassischen Sinne ist gegeben durch die Semantik für das positive Fragment von UML 2.0 Interaktion in Tabelle 2 und Wir führen weitere Abkürzung hinzu: Any = ignore(m, skip) None = not(any) and(s1, S2) = not(all(not(s1), not(s2))) Funktionen -ע 5.2 Wir definieren eine Funktion,ע die einer Interaktion genau eine Interaktion im klassischen Sinne zuweist. Die Funktion σ ist induktiv wie in Tabelle 6 definiert, wobei B für die Menge der Basis-Interaktion steht, S, S1 und S2 sind Interaktionen, M steht für Nachrichten, m ist eine natürliche Zahl, n eine natürliche Zahl oder. 16

18 Tabelle 5. Die Definition für die ע Funktion Sei S eine UML 2.0 Interaktion und t eine Spur. Dann ist t n S, dann und nur dann, wenn, t p.( S )ע Um dies zu beweisen, führen wir ein partielle Ordnung in UML 2.0 Interaktionen ein, wobei S, S1 und S2 beliebige Interaktionen, und m und n natürliche Zahlen sind. Tabelle 6. Partielle Ordnung an UML 2.0 Interaktionen Zusammengefasst haben wir zwei Resultate: t p S falls t p σ(s) t n S falls t p ( S )ע Dabei ist S eine beliebige UML 2.0 Interaktion, σ(s) eine Interaktion des positives Fragments und ( S )ע eine Interaktion im klassischen Sinn. Mittels der zwei Transformationen σ und ע können wir ein Testen auf negative Befriedigung vermeiden. 17

19 6. Implementierung und Verfeinerung Wir haben eine formale Semantik für Interaktionen und die Implementierung einer Interaktion durch einen Prozess ein. führen jetzt die Notation für Ein Prozess I ist eine Implementierung einer Interaktion S, geschrieben I 1. Es existiert ein t lin(i) mit t p S, und 2. t S für alle t lin(i). Eine Interaktion ist implementierbar, wenn es einen Prozess I mit I S, falls S gibt. Für jede Interaktion S existiert eine Spur t mit t p S. Zwei Interaktionen S1 und S2 sind äquivalent, gekennzeichnet durch S1 S2, wenn für alle Prozesse I gilt, I und nur wenn I S2. S1 wenn Eine Interaktion S ver feinert eine Interaktion S, geschrieben S S, wenn alle Implementierung für S auch eine Implementierung für S sind. Das heißt, I S impliziert I S für alle Implementierung I. Ein Beispiel für eine Interaktionsverfeinerung ist wie folgend gezeigt. alt(s1, S2) Si, für i =1, 2 7. Zusammenfassung Im Dokument UML 2.0 Spezifikation sind einige der Features der Interaktionssprache nicht eindeutig spezifiziert, z.b. die Negation. Das Ziel dieser Arbeit ist der Versuch, die Lösung des Problems zu beschreiben. Deshalb haben wir zuerst die Syntax und Semantik der Interaktion formal beschrieben. Besonders haben wir die positiven, negativen und inconclusiven Abläufe für Interaktionen klassifiziert. Schließlich versuchten wir durch die Einführung von zwei Funktionen, σ und ע eine klassische Interpretation des Negationsbegriffs einzuführen, die das Testen auf negative Befriedigung überflüssig macht. 18

20 8. Literaturverzeichnis 1. Maria Victoria Cengarle und Alexander Knapp. UML 2.0 Interactions: Semantics and Refinement. In Jan Jürgens et. Al., editors, Critical Systems Development with UML (CSDUML 04, Proceedings). To apper, Tom Pender. UML Bible. Wiley Publishing, Øystein Haugen and Ketil Stølen. STAIRS Steps to Analyze Interactions with Refinement Semantics. In Perdita Stevens, Jon Whittle, and Grady Booch, editors, Proc. 6th Int. Conf. Unified Modeling Language (UML 03), volume 2863 of Lect. Notes Comp. Sci., pages Springer, Berlin, Marc Born, Eckhardt Holz und Olaf Kath. Softwareentwicklung mit UML 2. ADDISON-WESLEY, Bernd Oestereich. Objektorientierte Softwareentwicklung, Analyse du Design mit der UML 2.0. Oldenbourg, Object Management Group. Unified Modeling Language Specification, Version 2.0 (Superstructure). Adopted draft, OMG, Harald Störrle. Assert, Negate and Refinement in UML-2 Interactions. In Jan Jürjens, Bernhard Rumpe, Robert France, and Eduardo B. Fernandez, editors, Proc. Wsh. Critical Systems Development with UML (CSDUML 03), San Francisco, Technische Universität München, Technical report TUM-I SS2003/vortrag3.pdf

UML (Unified Modelling Language) von Christian Bartl

UML (Unified Modelling Language) von Christian Bartl UML (Unified Modelling Language) von Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 UML Unified Modelling Language... 3 2 Diagrammtypen... 3 2.1 Aktivitätsdiagramm... 3 2.1.1 Notation... 4 2.1.2 Beispieldiagramm...

Mehr

Die Unified Modeling Language UML

Die Unified Modeling Language UML Informatik II: Modellierung Prof. Dr. Martin Glinz Kapitel 4 Die Unified Modeling Language UML Universität Zürich Institut für Informatik Inhalt 4.1 Hintergrund 4.2 Grundkonzepte der UML 4.3 Die Rolle

Mehr

Sequenz- und Kommunikationsdiagrammen. Systemmodellierung mit SysML von Michel Manthey

Sequenz- und Kommunikationsdiagrammen. Systemmodellierung mit SysML von Michel Manthey Sequenz- und Kommunikationsdiagrammen von Michel Manthey 1 Interaktionsdiagramme Sequenzdiagramme (auch in SysML) Kommunikationsdiagramme Zeitdiagramme Interaktionsübersichtsdiagramme von Michel Manthey

Mehr

Requirements Engineering I

Requirements Engineering I Martin Glinz Requirements Engineering I Kapitel 9 UML Unified Modeling Language Universität Zürich Institut für Informatik 2006, 2008 Martin Glinz. Alle Rechte vorbehalten. Speicherung und Wiedergabe sind

Mehr

Unified Modeling Language 2

Unified Modeling Language 2 Unified Modeling Language 2 Marvin Frommhold 17.11.2008 Gliederung Einleitung Geschichte Strukturierung der Spezifikation Diagrammtypen Strukturdiagramme Verhaltensdiagramme CASE-Werkzeuge Quellen Was

Mehr

Unified Modeling Language (UML )

Unified Modeling Language (UML ) Unified Modeling Language (UML ) Seminar: Programmiersprachenkonzepte Inhalt Einleitung UML 2.0 Diagrammtypen 2 Einleitung Objektorientierte Modellierungssprache Definiert vollständige Semantik Dient der

Mehr

NACHRICHTENTECHNISCHER SYSTEME

NACHRICHTENTECHNISCHER SYSTEME Einführung UML COMPUTERSIMULATION NACHRICHTENTECHNISCHER SYSTEME 11. Unified Modeling Language UML 220 Standardsprache d zur Visualisierung, i Spezifikation, Konstruktion und Dokumentation komplexer (Software-)

Mehr

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 18 UML Einführung Klassendiagramme in der UML Relationen zwischen Klassen 2 / 18 UML: Grundsätzliches

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Unified Modeling Language (UML) Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Unified Modeling Language (UML)

Mehr

Unified Modeling Language (UML)

Unified Modeling Language (UML) Kirsten Berkenkötter Was ist ein Modell? Warum Modellieren? Warum UML? Viele, viele Diagramme UML am Beispiel Was ist ein Modell? Ein Modell: ist eine abstrakte Repräsentation eines Systems, bzw. ist eine

Mehr

Modellbasierter Test mit der UML. Vortragender: Lars Westmeier Seminar: Spezifikationsbasierter Softwaretest

Modellbasierter Test mit der UML. Vortragender: Lars Westmeier Seminar: Spezifikationsbasierter Softwaretest Modellbasierter Test mit der UML Vortragender: Lars Westmeier Seminar: Spezifikationsbasierter Softwaretest Inhalt Einleitung und Motivation UML Testgenerierung Fazit Inhalt Einleitung und Motivation UML

Mehr

INSPIRE - Modellierung

INSPIRE - Modellierung INSPIRE - Modellierung Inhalt Motivation Modellierung UML Diagramme INSPIRE-Schulung LKROS 2 Motivation Was ist ein Modell, und warum wollen wir modellieren? Warum brauchen wir eine Modellierungssprache

Mehr

Unified Modeling Language

Unified Modeling Language Unified Modeling Language Thomas Röfer Motivation Entwicklung Spracheinheiten Diagramme (Struktur-/Verhaltensdiagramme) Rückblick Textsuche Naive Suche abrakadabra Boyer-Moore abrakadabra a Knuth-Morris-Pratt

Mehr

Objektorientierte Softwareentwicklung

Objektorientierte Softwareentwicklung Objektorientierte Softwareentwicklung Analyse- und Designmethoden Analyse- & Designmethoden Strukturierte, traditionelle Methoden Objektorientierte Methoden Funktionsorientierte Methoden Datenorientierte

Mehr

Christoph Kecher, Alexander Salvanos UML 2.5. Das umfassende Handbuch. Rheinwerk. Computing

Christoph Kecher, Alexander Salvanos UML 2.5. Das umfassende Handbuch. Rheinwerk. Computing Christoph Kecher, Alexander Salvanos UML 2.5 Das umfassende Handbuch Rheinwerk Computing Inhalt Vorwort 13 1 Einführung 17 1.1 Weshalb muss Software modelliert werden? 17 1.2 Die Phasen bei der Softwareentwicklung

Mehr

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML) Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Objektorientierte Analyse (OOA) Dynamisches Modell. Objektorientierte Analyse (OOA) Sequenzdiagramm

Objektorientierte Analyse (OOA) Dynamisches Modell. Objektorientierte Analyse (OOA) Sequenzdiagramm Inhalte Sequenzdiagramm Kollaborationsdiagramm Dynamisches Modell Seite 1 Sequenzdiagramm Ein Sequenzdiagramm beschreibt die zeitliche Abfolge von Interaktionen zwischen einer Menge von Objekten innerhalb

Mehr

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel. EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.de/~mtr FRAGEN / ANMERKUNGEN Vorlesung Neue Übungsaufgaben MODELLIERUNG

Mehr

TEIL I Strukturdiagramme 1 Einführung Klassendiagramm Objektdiagramm Kompositionsstrukturdiagramm...

TEIL I Strukturdiagramme 1 Einführung Klassendiagramm Objektdiagramm Kompositionsstrukturdiagramm... Auf einen Blick TEIL I Strukturdiagramme 1 Einführung... 13 2 Klassendiagramm... 29 3 Objektdiagramm... 111 4 Kompositionsstrukturdiagramm... 125 5 Komponentendiagramm... 145 6 Verteilungsdiagramm... 161

Mehr

Requirements Engineering I

Requirements Engineering I Martin Glinz Requirements Engineering I Kapitel 9 UML Unified Modeling Language Universität Zürich Institut für Informatik 2006, 2009 Martin Glinz. Alle Rechte vorbehalten. Speicherung und Wiedergabe für

Mehr

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel Jason T. Roff UML IT Tutorial Übersetzung aus dem Amerikanischen von Reinhard Engel Inhaltsverzeichnis Inhaltsverzeichnis Einführung 11 Grundlagen der UML 15 Warum wir Software modellieren 16 Analyse,

Mehr

Übungsaufgaben UML Zertifizierung Fundamental-Level

Übungsaufgaben UML Zertifizierung Fundamental-Level Übungsaufgaben UML Zertifizierung Fundamental-Level Kapitel 15: Sequenzdiagramm Die folgenden Aufgaben behandeln die Inhalte aus Kapitel 15 von UML 2 glasklar (4. Auflage), die die OMG für die Zertifizierung

Mehr

Das umfassende Handbuch

Das umfassende Handbuch Christoph Kecher UML 2.0 Das umfassende Handbuch. Jfjf- Ali' ' w v^i* >" '-«(."', Galileo Press Inhalt Vorwort 11 1 Einführung 1.1 Weshalb muss Software modelliert werden? 13 1.2 Was ist die UML? 15 1.3

Mehr

Übungen Softwaretechnik I

Übungen Softwaretechnik I Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Übungen Softwaretechnik I Übung 5: Objektorientierte Analyse Einführung Objektorientierung in der

Mehr

Objektorientiertes Design

Objektorientiertes Design Objektorientiertes Design Yi Zhao Marc Spisländer Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg Zhao, Spisländer FAU Erlangen-Nürnberg Objektorientiertes Design 1

Mehr

UML Crashkurs v0.1. UML für Fachinformatiker. von Hanjo Müller

UML Crashkurs v0.1. UML für Fachinformatiker. von Hanjo Müller UML Crashkurs v0.1 UML für Fachinformatiker von Hanjo Müller 3. Mai 2005 Inhaltsverzeichnis Inhaltsverzeichnis 1 UML - Unified Modeling Language 3 2 UML im Software Entwurf 4 2.1 Ablauf der Softwareentwicklung.............................

Mehr

UML 2.0 Das umfassende Handbuch

UML 2.0 Das umfassende Handbuch Christoph Kecher V.-M \MM UML 2.0 Das umfassende Handbuch Galileo Computing Inhalt Vorwort 11 1 Einführung 13 1.1 Weshalb muss Software modelliert werden? 13 1.2 Was ist die UML? 15 1.3 Die Geschichte

Mehr

Analyse und Design mit U ML 2.3

Analyse und Design mit U ML 2.3 Analyse und Design mit U ML 2.3 Objektorientierte Softwareentwicklung von Bernd Oestereich unter Mitarbeit von Stefan Bremer 9., aktualisierte und erweiterte Auflage Ofdenbourg Verlag München Inhaltsverzeichnis

Mehr

Unified Modelling Language

Unified Modelling Language Unified Modelling Language SEP 72 Software-Entwicklung Software-Entwicklung ist Prozess von Anforderung über Modellierungen zu fertigen Programmen Anforderungen oft informell gegeben fertige Programme

Mehr

Objektorientierte Modellierung

Objektorientierte Modellierung Objektorientierte Modellierung Sequenzdiagramm Business Informatics Group Institute of Software Technology and Interactive Systems Vienna University of Technology Favoritenstraße 9-11/188-3, 1040 Vienna,

Mehr

Software Engineering, SoSe 07, WSI, D. Huson, May 7,

Software Engineering, SoSe 07, WSI, D. Huson, May 7, Software Engineering, SoSe 07, WSI, D. Huson, May 7, 2007 17 4 Modellierung in UML Nach einer Vorlesung von Prof. Andreas Zeller, Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken. 4.1

Mehr

Software Engineering in der Praxis

Software Engineering in der Praxis Software Engineering in der Praxis Praktische Übungen Pinte, Spisländer FAU Erlangen-Nürnberg Objektorientiertes Design 1 / 17 Objektorientiertes Design Florin Pinte Marc Spisländer Lehrstuhl für Software

Mehr

SEQUENZDIAGRAMM. Christoph Süsens

SEQUENZDIAGRAMM. Christoph Süsens SEQUENZDIAGRAMM Christoph Süsens DEFINITION Das Sequenzdiagramm gibt Auskunft darüber: Welche Methoden für die Kommunikation zwischen ausgewählten Objekten zuständig sind. Wie der zeitliche Ablauf von

Mehr

Requirements Engineering I

Requirements Engineering I Norbert Seyff Requirements Engineering I UML Unified Modeling Language! 2006-2012 Martin Glinz und Norbert Seyff. Alle Rechte vorbehalten. Speicherung und Wiedergabe für den persönlichen, nicht kommerziellen

Mehr

Guido de Melo 5.2.2007 Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis

Guido de Melo 5.2.2007 Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis Guido de Melo 5.2.2007 Fachvortrag, Uni Ulm UML 2.0 Für den Einsatz in der Praxis Seite 2 Überblick 1. Ziele 2. Warum das alles? 3. Was ist UML 4. Diagrammarten 5. Umfeld Seite 3 1. Ziele 1. Ziele dieses

Mehr

Vgl. Oestereich Kap 2.7 Seiten 134-147

Vgl. Oestereich Kap 2.7 Seiten 134-147 Vgl. Oestereich Kap 2.7 Seiten 134-147 1 Sequenzdiagramme beschreiben die Kommunikation/Interaktion zwischen den Objekten (bzw. verschiedenen Rollen) eines Szenarios. Es wird beschrieben, welche Objekte

Mehr

Unified. Copyright Adriano Gesué UML 2.0 UML 1.4 UML 1.3 UML 1.2 UML 1.1 UML 1.0 UML 0.9. Method 0.8

Unified. Copyright Adriano Gesué UML 2.0 UML 1.4 UML 1.3 UML 1.2 UML 1.1 UML 1.0 UML 0.9. Method 0.8 Literatur Martin Fowler and Kendall Scott: UML Distilled: Applying the Standard Object Modeling Language. Addison-Wesley 1997. James Rumbaugh, Ivar Jacobson, and Grady Booch: The Unified Language Reference

Mehr

Von UML 1.x nach UML 2.0

Von UML 1.x nach UML 2.0 Zürich Soft Summer 2005 Fortgeschrittene Aspekte der Software Technologie Von UML 1.x nach UML 2.0 Prof. Dr. Martin Glinz www.ifi.unizh.ch/req Ergänzendes Material zur Vorlesung Spezifikation und Entwurf

Mehr

Einführung in die objektorientierte Programmierung

Einführung in die objektorientierte Programmierung Einführung in die objektorientierte Programmierung Seminarunterlage Version: 4.04 Copyright Version 4.04 vom 17. Juni 2016 Dieses Dokument wird durch die veröffentlicht. Copyright. Alle Rechte vorbehalten.

Mehr

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl 26.07.21 Themenübersicht Objektorientierte Software-Entwicklung Objektorientierte Analyse und Design OOA OOD Objektorientierte

Mehr

Klassendiagramm. (class diagram)

Klassendiagramm. (class diagram) : Klassendiagramm http:///topic95.html Klassendiagramm (class diagram) Klassendiagramm Objektdiagramm Komponentendiagramm Kompositionsstrukturdiagramm Verteilungsdiagramm Einstieg Paketdiagramm Aufbau

Mehr

Inhaltsverzeichnis. Teil I Einführung 13. Teil II Struktur 41. Vorwort 11

Inhaltsverzeichnis. Teil I Einführung 13. Teil II Struktur 41. Vorwort 11 UML 2 für Studenten Inhaltsverzeichnis Vorwort 11 Teil I Einführung 13 Kapitel 1 UML (nicht nur) für Studenten 15 1.1 Zielgruppen 16 1.2 Konventionen 17 1.3 Abgrenzung 18 1.4 Aufbau dieses Buches 18 Kapitel

Mehr

Martin Fowler, Kendall Scott. UML konzentriert. Eine strukturierte Einführung in die Standard-Objektmodellierungssprache. 2., aktualisierte Auflage

Martin Fowler, Kendall Scott. UML konzentriert. Eine strukturierte Einführung in die Standard-Objektmodellierungssprache. 2., aktualisierte Auflage Martin Fowler, Kendall Scott UML konzentriert Eine strukturierte Einführung in die Standard-Objektmodellierungssprache 2., aktualisierte Auflage Deutsche Übersetzung von Arnulf Mester, Michael Sczittnick

Mehr

OOA-Dynamische Konzepte

OOA-Dynamische Konzepte Proseminar UML im SS 2005 OOA-Dynamische Konzepte Teil 2 von Benjamin Daeumlich 1 Übersicht Szenario Definition Interaktionsdiagramme Sequenzdiagramm Kommunikationsdiagramm Sequenz- vs. Kommunikationsdiagramm

Mehr

Techniken der Projektentwicklungen

Techniken der Projektentwicklungen Dynamische Modellierung 8. Termin Rückblick auf statische Modellierung Dynamische Modellierung Basiskonzepte Beispiel Erweiterungen Eigenschaften Syntax Rückblick auf statische Modellierung Dynamische

Mehr

Software Engineering in der Praxis

Software Engineering in der Praxis Inhalt Nachlese Aufgaben Literatur Software Engineering in der Praxis Praktische Übungen Inhalt Nachlese Aufgaben Literatur Marc Spisländer Dirk Wischermann Lehrstuhl für Software Engineering Friedrich-Alexander-Universität

Mehr

Gliederung des Vortrages

Gliederung des Vortrages Gliederung des Vortrages Unified Modeling Language Rational Rose Sergej Schwenk Oktober 1999 0. Einführung 1. Historie 2. Der Entwicklungsprozeß 3. UML 3.1 Anwendungsfalldiagramme 3.2 Klassendiagramme

Mehr

Software Engineering in der Praxis

Software Engineering in der Praxis Software Engineering in der Praxis Praktische Übungen Meitner, Spisländer FAU Erlangen-Nürnberg Objektorientiertes Design 1 / 16 Objektorientiertes Design Matthias Meitner Marc Spisländer Lehrstuhl für

Mehr

Christoph Kecher UML2. Das umfassende Handbuch. Galileo Press

Christoph Kecher UML2. Das umfassende Handbuch. Galileo Press Christoph Kecher UML2 Das umfassende Handbuch Galileo Press Vorwort 11 TEIL I Strukturdiagramme i '...,....,...,.;..,,,...,, 1.1 Weshalb muss Software modelliert werden? 13 1.2 Was ist die UML? 15 1.3

Mehr

1 Klassen und Objekte

1 Klassen und Objekte 1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente

Mehr

Rückblick: Entity-Relationship-Modell

Rückblick: Entity-Relationship-Modell Rückblick: Entity-Relationship-Modell Entity-Relationship-Modell für konzeptuellen Entwurf Entitytypen (entity types) (z.b. Studenten) Beziehungstypen (relationships) (z.b. hören) Attribute beschreiben

Mehr

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/2015 1 / 29 UML Einführung Klassendiagramme in der UML Relationen zwischen Klassen Einführung:

Mehr

Objektorientierte Modellierung mit UML

Objektorientierte Modellierung mit UML Objektorientierte Modellierung mit UML Verteilungsdiagramm Der vorliegende Foliensatz basiert auf: M. Seidl, M. Brandsteidl, C. Huemer, G. Kappel: UML@Classroom, dpunkt.verlag, 2012. C. Larman: UML 2 und

Mehr

Objektorientierte Modellierung (1)

Objektorientierte Modellierung (1) Objektorientierte Modellierung (1) Die objektorientierte Modellierung verwendet: Klassen und deren Objekte Beziehungen zwischen Objekten bzw. Klassen Klassen und Objekte Definition Klasse Eine Klasse ist

Mehr

Interaktionsdiagramme in UML

Interaktionsdiagramme in UML Interaktionsdiagramme in UML Interaktionsdiagramm ist ein Oberbegriff für eine Reihe von Diagrammen, die das Verhalten eines objektorientierten Systems durch Objektinteraktionen beschreiben Ein Sequenzdiagramm

Mehr

Klausur. Softwareentwurf. 14. Februar 2011 Bearbeitungszeit: 120 Minuten

Klausur. Softwareentwurf. 14. Februar 2011 Bearbeitungszeit: 120 Minuten Klausur Softwareentwurf 14. Februar 2011 Bearbeitungszeit: 120 Minuten FG Datenbank- und Informationssysteme Prof. Dr. Gregor Engels unbedingt vollständig und lesbar ausfüllen! Vorname: Matrikelnummer:

Mehr

Comelio GmbH - Goethestr Berlin. Course Catalog

Comelio GmbH - Goethestr Berlin. Course Catalog Comelio GmbH - Goethestr. 34-13086 Berlin Course Catalog 2 Table Of Contents a. Locations... 3 1. UML... 4 i. Design und Analyse... 4 ii. Notation und Konzepte...6 iii. OCUP Zertifizierung (Advanced)...8

Mehr

Objektorientierte Softwareentwicklung

Objektorientierte Softwareentwicklung Objektorientierte Softwareentwicklung Grundkonzepte der UML Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus sind viele Teile direkt aus der Vorlesung

Mehr

Vgl. Oestereich Kap 2.4 Seiten

Vgl. Oestereich Kap 2.4 Seiten Vgl. Oestereich Kap 2.4 Seiten 99-110 1 Vgl. Oestereich Kap 2.41 Seiten 99ff 2 Wie das Klassendiagramm ist auch das Objektdiagramm ebenfalls ein Strukturdiagramm. Da die Anzahl der Attribute sehr groß

Mehr

Software- und Systementwicklung

Software- und Systementwicklung Software- und Systementwicklung Seminar: Designing for Privacy 11.11.2009 Moritz Vossenberg Inhalt Vorgehensmodelle Wasserfallmodell V-Modell Phasen (Pflichtenheft) UML Klassendiagramm Sequenzdiagramm

Mehr

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Kapitel 2.2 Weitere UML- Diagrammtypen Walter Tichy Guido Malpohl Tom Gelhausen UML-Diagramme Ablauf Anwendungsfalldiagramm Szenarien Interaktionsdiagramm

Mehr

Abschnitt 3: Mathematische Grundlagen

Abschnitt 3: Mathematische Grundlagen Abschnitt 3: Mathematische Grundlagen 3. Mathematische Grundlagen 3.1 3.2 Induktion und Rekursion 3.3 Boolsche Algebra Peer Kröger (LMU München) Einführung in die Programmierung WS 14/15 48 / 155 Überblick

Mehr

Objektorientierte Analyse (OOA) Übersicht

Objektorientierte Analyse (OOA) Übersicht Übersicht UML ist die Notation für ein objektorientiertes Vorgehensmodell, sowohl für die Analyse als auch für das Design. Analyse (WAS?) Use Cases Aktivitätsdiagramme (für die Use Cases) Klassendiagramme

Mehr

Konzept und Umsetzung

Konzept und Umsetzung Konzept und Umsetzung oo-design- Sprache Konzepte Instanz UML eine Umsetzung der Konzepte oo-programmier- Sprache Konzepte Instanz Java eine Umsetzung der Konzepte FH AACHEN UNIVERSITY OF APPLIED SCIENCES

Mehr

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2014/2015 1 / 29 UML Einführung Klassendiagramme in der UML Relationen zwischen Klassen Einführung:

Mehr

Funktionen in JavaScript

Funktionen in JavaScript Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Mithilfe von Funktionen kann man denselben Code von mehreren Stellen des Programms aus aufrufen.

Mehr

Kapitel 2. Mathematische Grundlagen. Skript zur Vorlesung Einführung in die Programmierung

Kapitel 2. Mathematische Grundlagen. Skript zur Vorlesung Einführung in die Programmierung LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Kapitel 2 Mathematische Grundlagen Skript zur Vorlesung Einführung in die Programmierung im Wintersemester 2012/13 Ludwig-Maximilians-Universität

Mehr

CARL HANSER VERLAG. Mario Jeckle, Chris Rupp, Jürgen Hahn, Barbara Zengler, Stefan Queins. UML 2 glasklar

CARL HANSER VERLAG. Mario Jeckle, Chris Rupp, Jürgen Hahn, Barbara Zengler, Stefan Queins. UML 2 glasklar CARL HANSER VERLAG Mario Jeckle, Chris Rupp, Jürgen Hahn, Barbara Zengler, Stefan Queins UML 2 glasklar 3-446-22575-7 www.hanser.de Einleitung... 1 Liebe Leserin, lieber Leser... 1 Ihre Meinung ist uns

Mehr

Sequenzdiagramme. Lebenslinie. Kathrin Gaißer, Jörg Depner Didaktik der Informatik

Sequenzdiagramme. Lebenslinie. Kathrin Gaißer, Jörg Depner Didaktik der Informatik Sequenzdiagramme Sequenzdiagramme werden verwendet um Interaktionen zwischen Objekten zu modellieren. Sie stellen konkrete Abläufe dar, konzentrieren sich jedoch dabei auf den Nachrichtenaustausch zwischen

Mehr

Syntax von Programmiersprachen

Syntax von Programmiersprachen "Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt Syntax von Programmiersprachen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang WS 07/08

Mehr

Diskrete Strukturen Kapitel 2: Grundlagen (Mengen)

Diskrete Strukturen Kapitel 2: Grundlagen (Mengen) WS 2016/17 Diskrete Strukturen Kapitel 2: Grundlagen (Mengen) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16

Mehr

Oracle JDeveloper 10 g

Oracle JDeveloper 10 g Oracle JDeveloper 10 g Modellierung Evgenia Rosa Business Unit Application Server ORACLE Deutschland GmbH Agenda Warum Modellierung? UML Modellierung Anwendungsfall (Use Case)-Modellierung Aktivitätenmodellierung

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 11. UML: Sequenzdiagramm 1 Motivation Es

Mehr

Kontextfreie Grammatiken

Kontextfreie Grammatiken Kontextfreie Grammatiken Bisher haben wir verschiedene Automatenmodelle kennengelernt. Diesen Automaten können Wörter vorgelegt werden, die von den Automaten gelesen und dann akzeptiert oder abgelehnt

Mehr

Greedy Algorithms - Gierige Algorithmen

Greedy Algorithms - Gierige Algorithmen Greedy Algorithms - Gierige Algorithmen Marius Burfey 23. Juni 2009 Inhaltsverzeichnis 1 Greedy Algorithms 1 2 Interval Scheduling - Ablaufplanung 2 2.1 Problembeschreibung....................... 2 2.2

Mehr

Software Engineering Interaktionsdiagramme

Software Engineering Interaktionsdiagramme Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)

Mehr

Kapitel Weitere UML-Diagrammtypen

Kapitel Weitere UML-Diagrammtypen Kapitel 2.2 - Weitere UML-Diagrammtypen SWT I Sommersemester 2010 Walter F. Tichy, Andreas Höfer, Korbinian Molitorisz IPD Tichy, Fakultät für Informatik KIT die Kooperation von Forschungszentrum Karlsruhe

Mehr

UML konzentriert. Eine kompakte Einführung in die Standard-Objektmodellierungssprache. Martin Fowler. ADDISON-WESLEY An imprint of Pearson Education

UML konzentriert. Eine kompakte Einführung in die Standard-Objektmodellierungssprache. Martin Fowler. ADDISON-WESLEY An imprint of Pearson Education Martin Fowler UML konzentriert Eine kompakte Einführung in die Standard-Objektmodellierungssprache ADDISON-WESLEY An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills,

Mehr

Inhaltsverzeichnis. Literatur. 4 Rational Unified Process [JBR98, Kru03] und UML [BRJ02, FS00, Bal01]

Inhaltsverzeichnis. Literatur. 4 Rational Unified Process [JBR98, Kru03] und UML [BRJ02, FS00, Bal01] Inhaltsverzeichnis 1 Einleitung 4 1.1 CVS (Concurrent Version System) [Pru03, Zee02, Ced05]....... 5 1.2 Eclipse als Java Entwicklungsumgebung................. 22 2 Planungsmethoden 29 2.1 Definitionsphase..............................

Mehr

1. Erläutere ausführlich, welche Beziehung zwischen den Klassen bzw. Interfaces

1. Erläutere ausführlich, welche Beziehung zwischen den Klassen bzw. Interfaces UML Klassen Diagramm Aufgaben UML Klassendiagramm 1. Erläutere ausführlich, welche Beziehung zwischen den Klassen bzw. Interfaces AdressbuchGui und JFrame, AdressbuchGui und AdressbuchGuiListener AdressbuchGuiListener

Mehr

Software-Engineering

Software-Engineering FH Wedel Prof. Dr. Sebastian Iwanowski SWE43 Folie 1 Software-Engineering Sebastian Iwanowski FH Wedel Kapitel 4: Systemanalyse Teil 3: Der Systemanalysestandard UML FH Wedel Prof. Dr. Sebastian Iwanowski

Mehr

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich WS 02/03 Warum muss ein Objekt wissen, zu welcher Klasse es gehört? Damit die Klassenzugehörigkeit

Mehr

27. Oktober 2005 Florian Marwede

27. Oktober 2005 Florian Marwede Ausgewählte Aspekte zur Einführung in UML und XMI 27. Oktober 2005 Florian Marwede Carl von Ossietzky Universität Oldenburg Fakultät II Department für Informatik Abteilung Entwicklung korrekter Systeme

Mehr

Tamagotchi-Spezifikation in UML

Tamagotchi-Spezifikation in UML Tamagotchi-Spezifikation in UML Christian Becker Steffen Glomb Michael Graf Gliederung Grundlagen Notation Werkzeug Modellierung Details der Spezifikation Erfahrungen Beurteilung von Notation und Werkzeug

Mehr

Einführung in die Informationsverarbeitung Teil Thaller. Stunde VII: Planen und Realisieren

Einführung in die Informationsverarbeitung Teil Thaller. Stunde VII: Planen und Realisieren Einführung in die Informationsverarbeitung Teil Thaller Stunde VII: Planen und Realisieren Manfred Thaller, Universität zu Köln Köln 18. Dezember 2014 Rekapitulation Der Gang der Argumentation 1. Der Rohstoff:

Mehr

(BABOK-v3-Technik 10.42)

(BABOK-v3-Technik 10.42) (BABOK-v3-Technik 10.42) Allgemeines Sequenzdiagramme geben Antworten auf die Frage Wie läuft die Kommunikation in meinem System ab?. Sie ermöglichen die Modellierung von festen Reihenfolgen, zeitlichen

Mehr

UML - Aktivitätsdiagramm

UML - Aktivitätsdiagramm Name Klasse Datum 1 Allgemeines Neben Sequenzdiagramm, Kollaborationsdiagramm, Zustandsdiagramm und Anwendungsfalldiagramm ist das Aktivitätsdiagramm eines von fünf Diagrammen in UML, welches dynamische

Mehr

Logik I. Symbole, Terme, Formeln

Logik I. Symbole, Terme, Formeln Logik I Symbole, Terme, Formeln Wie jede geschriebene Sprache basiert die Prädikatenlogik erster Stufe auf einem Alphabet, welches aus den folgenden Symbolen besteht: (a) Variabeln wie zum Beispiel v 0,v

Mehr

Einführung in die mathematische Logik

Einführung in die mathematische Logik Prof. Dr. H. Brenner Osnabrück SS 2016 Einführung in die mathematische Logik Arbeitsblatt 3 Übungsaufgaben Aufgabe 3.1. Beweise mittels Wahrheitstabellen, dass die folgenden Aussagen Tautologien sind.

Mehr

Beispiel für die Minimierung von DEAs

Beispiel für die Minimierung von DEAs Beispiel für die Minimierung von DEAs nach dem Verfahren aus [] (S. 7ff) Sebastian Wild und Markus E. Nebel 3. März 22 Gegeben sei folgender DEA A= ( {A,B,C,D,E,F,G,H}, {,}, δ, A, {C,F} ) mit start A B

Mehr

Formale Modellierung Vorlesung vom : Beyond JML

Formale Modellierung Vorlesung vom : Beyond JML Rev. 1702 1 [12] Formale Modellierung Vorlesung vom 07.05.12: Beyond JML Till Mossakowski & Christoph Lüth Universität Bremen Sommersemester 2012 2 [12] Heute im Programm Grenzen der JML Nach JML: UML

Mehr

Automaten und Coinduktion

Automaten und Coinduktion Philipps-Univestität Marburg Fachbereich Mathematik und Informatik Seminar: Konzepte von Programmiersprachen Abgabedatum 02.12.03 Betreuer: Prof. Dr. H. P. Gumm Referentin: Olga Andriyenko Automaten und

Mehr

Modellierung von Echtzeitsystemen mit UML

Modellierung von Echtzeitsystemen mit UML Modellierung von Echtzeitsystemen mit UML Projektgruppe JEVOX Stefan Scharnke scharnke@uni-paderborn.de 14. Mai 1999 Zusammenfassung Dieses Dokument beschreibt, wie durch die Erweiterung von Stereotypen

Mehr

J.2 Objektorientiertes Modellieren mit UML

J.2 Objektorientiertes Modellieren mit UML Modellieren mit UML Objektorientiertes Modellieren mit UML 2002 Prof. Dr. Rainer Manthey Informatik II 1 UML: Übersicht in den 1980er Jahren: Entstehen einer Vielzahl objektorientierter Entwurfsmethoden

Mehr

UML -Klassendiagramme

UML -Klassendiagramme UML -Klassendiagramme UML - offline: ArgoUML http://argouml.stage.tigris.org/ UML online: Links genmymodel.com umlet.com/umletino/umletino.html Arten von UML-Diagrammen Diagramm Strukturdiagramm Verhaltensdiagramm

Mehr

Softwaretechnik WS 16/17. Übungsblatt 01

Softwaretechnik WS 16/17. Übungsblatt 01 Softwaretechnik WS 16/17 Übungsblatt 01 Was ist eine Klasse? Definition der Object Management Group: A class describes a set of objects that share the same specifications of features, constraints, and

Mehr

So#waretechnologie für Fortgeschri4ene Teil Eide. Stunde IV: UML. Köln 26. Januar 2017

So#waretechnologie für Fortgeschri4ene Teil Eide. Stunde IV: UML. Köln 26. Januar 2017 So#waretechnologie für Fortgeschri4ene Teil Eide Stunde IV: UML Köln 26. Januar 2017 Model of vs. model for TheoreKcal model model for comparison calibra9on verifica9on Empirical model model of deduc9on

Mehr

Inhaltsverzeichnis.

Inhaltsverzeichnis. Wegweiser durch das Buch 1 1 Problembereich und Lösungsbereich 10 1.1.Unterschiede zwischen Problembereich und Lösungsbereich 10 1.2 Paradigmen der Softwareentwicklung 12 1.3 Methoden für die verschiedenen

Mehr

Software-Engineering

Software-Engineering SWE43 Slide 1 Software-Engineering Sebastian Iwanowski FH Wedel Kapitel 4: Systemanalyse Teil 3: Der Systemanalysestandard UML SWE43 Slide 2 UML: Was ist das? UML = Unified Modelling Language ist ein Standard,

Mehr