Object Constraint Language. 30. Oktober 2012

Größe: px
Ab Seite anzeigen:

Download "Object Constraint Language. 30. Oktober 2012"

Transkript

1 Object Constraint Language 30. Oktober

2 Was ist die OCL? Wie wird sie verwendet? Die Object Constraint Language (OCL) ist eine textuelle Sprache für Constraints über Objektstrukturen. Sie ist ein Teil der UML. Sie dient der Beschreibung von Bedingungen für UML- Diagramme, speziell Klassendiagramme. (Invarianten, Vor- und Nachbedingungen von Operationen und Methoden) OCL lässt sich auch zur Beschreibung von Bedingungen an EMF-Modelle einsetzen. Wir betrachten OCL 2.3: Taentzer Visuelle Sprachen 55

3 OCL zur Definition von visuellen Sprachen Metamodellierungsansatz: Alphabetdefinition durch Klassenmodelle Sprachdefinition durch zusätzliche Constraints deklarative Sprachdefinition OCL: objektorientierte Constraint-Sprache Invarianten definieren Wohlgeformtheitsregeln OCL-Constraints können für Syntaxchecks verwendet werden. Taentzer Visuelle Sprachen 56

4 Unterliegendes Metamodell Für einfache Petrinetze: Taentzer Visuelle Sprachen 57

5 Beispiele für Constraints Die Tokenanzahl auf einer Stelle ist nicht negativ. Der Name einer Transition ist nicht leer. Das Petrinetz ist nicht leer. Von einer Stelle zu einer Transition gibt es höchstens eine Kante und umgekehrt. Je zwei Transitionen haben unterschiedliche Namen. Es gibt keine isolierten Transitionen oder Stellen. Weitere Bedingungen? Taentzer Visuelle Sprachen 58

6 OCL-Constraints OCL-Constraints haben einen Kopf und einen Rumpf. Kopf: Informationen über den Kontext, Art des Constraints, Name des Constraints und optionale Variablendeklaration. Rumpf: das eigentliche Constraint als OCL-Ausdruck Beispiel: context p:petrinet inv Transition_exists: Arten von Kontexten: Classifier (für Invarianten und Definitionen) Methoden (für Vor- und Nachbedingungen) Arten von Constraints: inv: Invarianten pre, post: Vor- und Nachbedingungen def: Definition von Operationen, Variablen, etc. body: definiert den Rumpf einer Anfrage als OCL-Ausdruck optionale Variablendeklaration vom Typ des Kontextes Der Rumpf ist ein boolscher Ausdruck. (OclExpression) self ist eine vordefinierte Variable. Taentzer Visuelle Sprachen 59

7 Navigationsausdrücke Navigationen starten bei Objekten und benutzen Referenzen und enden bei Eigenschaften. Eigenschaften sind ein Attribut eine Referenz eine Instanz einer Assoziationsklasse eine Operation oder Methode, die eine Anfrage ist Taentzer Visuelle Sprachen 60

8 Navigation über Referenzen Referenzen haben Rollennamen und Kardinalitäten: Fehlende Rollennamen werden durch Klassennamen gebildet. Kardinalitäten: 0 bis 1: Ergebnis ist ein Objekt der Zielklasse oder ein Set mit nur einem Objekt > 1: Ergebnis ist eine Collection üblicherweise ein Set der Objekte der Zielklasse bei Constraint {ordered} eine Sequence der Objekte der Zielklasse Beispiel: Eine Transition hat eingehende Kanten. context Transition inv: self.prearc > 0 Taentzer Visuelle Sprachen 61

9 Bedingungen über Variablen Gleichheit von Attributwerten mit Konstanten Gleichheit von Attributwerten mit Variablen Vergleich von Variablen mit Konstanten Vergleich verschiedener Variablen Beispiele: Die Tokenanzahl auf einer Stelle ist nicht negativ. context Place inv: token >= 0 Der Name einer Transition ist nicht leer. context Transition inv: name <> Taentzer Visuelle Sprachen 62

10 Typen in OCL OCL ist eine getypte Sprache, d.h. alle Ausdrücke haben einen Typ. Basistypen: Boolean, Integer, Real, String, Typen aus einem UML-Modell Aufzählungen (Enumerations) Containertypen: enthalten Elemente eines Typs X Collection (abstrakter Containertyp) Set, Bag, OrderedSet, Sequence (konkrete Containertypen) Typverträglichkeit: Ein Typ ist mit all seinen Obertypen verträglich. Zur Verwendung von Untertypen: Retyping /Casting obj ist vom Typ Type1: obj.oclistypeof(type1) Type2 ist Untertyp von Type1: obj.oclastype(type2) Taentzer Visuelle Sprachen 63

11 Einfache Operationen auf Collections Collection-Typen sind Set, OrderedSet, Bag und Sequence Navigationen über Assoziationsenden können Collections als Resultate haben. Einfache Operationen: size() : Integer Anzahl der Elemente in einer Collection isempty() : Boolean Prüft, ob eine Collection leer ist. notempty() : Boolean Prüft, ob eine Collection nicht leer ist. Taentzer Visuelle Sprachen 64

12 Boolsche Operationen Welche Boolschen Operationen betrachten wir? and, or, xor, not, implies If-Then-Else Operation Der Else-Teil ist nicht optional. Beispiele: Das Petrinetz ist nicht leer. context Petrinet inv: self.transition notempty() or self.place notempty() Es gibt keine isolierten Transitionen oder Stellen. context Transition inv: self.prearc size() > 0 or self.postarc size() > 0 context Place inv: self.prearc size() > 0 or self.postarc size() > 0 Taentzer Visuelle Sprachen 65

13 Wie stark bindet welche Operation?. und -> Einstellige Operationen: not, - Zweistellige Operationen: * und / Zweistellige Operationen: + und Zweistellige Operationen: <,>,<=,>= Zweistellige Operationen: =, <> Zweistellige Operationen: and, or, xor Zweistellige Operation: implies If-then-else-endif Priorität Taentzer Visuelle Sprachen 66

14 Collection-Ausdrücke Welche Collection-Ausdrücke gibt es? Einfache: isempty, notempty, size,... Mengenoperationen: union, intersection, =, -, Elementbezogene Operationen: includes, excludes, includesall, Iterator-Ausdrücke: forall exists select reject Taentzer Visuelle Sprachen 67

15 Elementbezogene Operationen in Collections includes(obj:t): Boolean prüft, ob ein Objekt in einer Collection ist excludes(obj:t): Boolean prüft, ob ein Objekt nicht in einer Collection ist includesall(c2:collection(t)): Boolean prüft, ob alle Objekte von c2 in der Collection sind excludesall(c2:collection(t)): Boolean prüft, ob kein Objekt von c2 in der Collection ist count (obj:t): Integer zählt, wie oft ein Objekt obj in der Collection vorkommt Beispiel: Es gibt im Petrinetz eine Stelle mit einer Tokenzahl gleich null. context Petrinet inv: self.place.token->includes(0) Taentzer Visuelle Sprachen 68

16 ForAll-Ausdrücke ForAll-Ausdrücke: Ausgehend von einer Collection wird für alle Elemente der Collection ein Boolscher Ausdruck geprüft. Beispiel: Alle Transitionen haben mind. eine eingehende und eine ausgehende Kante. context Petrinet inv: transition forall( t t.prearc size() > 0 and t.postarc size() >0) Taentzer Visuelle Sprachen 69

17 Weitere Beispiele: ForAll-Ausdrücke Je zwei Stellen im Petrinetz haben verschiedene Namen. context Petrinet inv: self.place forall (p1:place self.place forall (p2: Place p1 <> p2 implies p1.name <> p2.name)) kürzer: self.place forall(p1,p2 p1 <> p2 implies p1.name <> p2.name) Jede im Petrinetz enthaltene Transition ist mit einer Stelle verbunden. context Petrinet inv: self.transition forall(prearc.place notempty() or postarc.place notempty() ) Taentzer Visuelle Sprachen 70

18 Exists-Ausdrücke Exists-Ausdrücke: Ausgehend von einer Collection wird geprüft, ob mindestens ein Element der Collection den Boolschen Ausdruck erfüllt. Beispiel: Es gibt mindestens eine Stelle mit einer Tokenanzahl größer Null. context Petrinet inv: self.place exists(token > 0) Taentzer Visuelle Sprachen 71

19 Iterator-Ausdrücke: Select select Ausdrücke: Ausgehend von einer Collection wird geprüft, welche Elemente der Collection den Boolschen Ausdruck erfüllen. Das Ergebnis ist eine Menge. Beispiel: Es gibt mindestens eine Stelle mit einer Tokenanzahl größer Null. context Petrinet inv: self.place select(token > 0) notempty() reject: die Ergebnismenge enthält die Objekte, welche die Bedingung nicht erfüllen Taentzer Visuelle Sprachen 72

20 Let-Ausdrücke: Definition von Variablen und Operationen Mit Let lassen sich zusätzliche Variablen und Operationen definieren. Beispiel: Jede Stelle hat Folgestellen, die jeweils unterschiedliche Namen haben. context Place inv: let nextplaces : Sequence(Place) = self.postarc.transition.postarc.place in nextplaces->notempty() and nextplaces->forall(p1,p2 p1 <> p2 implies p1.name <> p2.name) Taentzer Visuelle Sprachen 73

21 EMF und OCL Zum Hinzufügen von OCL-Constraints werden EMF- Modelle textuell editiert. Im Kontextmenü von petrinet.ecore: Open with -> OCLinEcore(Ecore) Editor OCL constraint mit invariant in einem Modellelement eintragen In der textuellen Ansicht: Ein Modellelement selektieren, im Kontextmenü Create Dynamic Instance auswählen Alternativ: Wie bisher Code generieren und generierten Editor nutzen Im Instanzmodell: Neue Modellelemente anlegen Im Kontextmenü eines Modellelements Validate auswählen Taentzer Visuelle Sprachen 74

22 Textuelle Ansicht eines EMF-Modells Taentzer Visuelle Sprachen 75

23 Validierung einer Instanz Taentzer Visuelle Sprachen 76

24 Interaktive Constraint-Prüfung Console öffnen in der Werkzeugleiste Interactive OCL auswählen Für die aktuelle Instanz können beliebige OCL Ausdrücke ausgewertet werden. Ausgabe Eingabe Taentzer Visuelle Sprachen 77

25 Zusammenfassung OCL-Constraints können zur deklarativen Syntaxdefinition von visuellen Sprachen verwendet werden. Invarianten definieren Wohlgeformtheitsregeln. OCL: objektorientierte Constraint-Sprache präzise Formulierung von Bedingungen an EMF-Modelle EMF-Modelle können durch OCL-Constraints angereichert werden. Ihre Instanzmodelle können entlang dieser Constraints validiert werden. Taentzer Visuelle Sprachen 78

Die Verwendung der Object Constraint Language (OCL) in UML-Modellen

Die Verwendung der Object Constraint Language (OCL) in UML-Modellen Die Verwendung der Object Constraint Language (OCL) in UML-Modellen Gliederung Einleitung Grundlegende Prinzipien Was ist ein Kontext von Constraints Invarianten Vor- und Nachbedingungen Typen und Collections

Mehr

Einschub - Die Object Constraint Language in UML Oder: Wie man Zusicherungen in UML angibt

Einschub - Die Object Constraint Language in UML Oder: Wie man Zusicherungen in UML angibt Einschub - Die Object Constraint Language in UML Oder: Wie man Zusicherungen in UML angibt SWT I Sommersemester 2010 Walter F. Tichy, Andreas Höfer, Korbinian Molitorisz IPD Tichy, Fakultät für Informatik

Mehr

Formale Modellierung Vorlesung 10 vom : Formale Modellierung mit UML und OCL

Formale Modellierung Vorlesung 10 vom : Formale Modellierung mit UML und OCL 1 [30] Formale Modellierung Vorlesung 10 vom 24.06.14: Formale Modellierung mit UML und OCL Serge Autexier & Christoph Lüth Universität Bremen Sommersemester 2014 2 [30] Fahrplan Teil I: Formale Logik

Mehr

Einführung in das Eclipse Modeling Framework. 5. November 2014

Einführung in das Eclipse Modeling Framework. 5. November 2014 Einführung in das Eclipse Modeling Framework 5. November 2014 Überblick Einführung in das Eclipse Modeling Framework: zur objektorientierten Modellierung von Datenstrukturen Welcher Teil einer mobilen

Mehr

Die Object Constraint Language

Die Object Constraint Language Die Object Constraint Language Eine Einführung im Rahmen des SoPras Frank Broemel 1 Gliederung 1. Einleitung 2. Ein Beispiel 3. Zusammenfassung der Erkenntnisse und Systematisierung 4. Literatur 5. Verwendung

Mehr

Languages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008

Languages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008 Languages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008 27. Februar 2008 Institut für Softwaresysteme, TUHH Regeln: 1. Zu dieser Klausur sind keinerlei Hilfsmittel zugelassen.

Mehr

Die Object Constraint Language der UML

Die Object Constraint Language der UML Die Object Constraint Language der UML Udo Kelter 31.05.2009 Zusammenfassung dieses Lehrmoduls Die Object Constraint Language (OCL) ist eine Sprache, in der man zu einem UML-Modell zusätzliche Einschränkungen

Mehr

Die abstrakte Syntax der Unified Modeling Language

Die abstrakte Syntax der Unified Modeling Language Die abstrakte Syntax der Unified Modeling Language 6. November 2012 Taentzer Visuelle Sprachen 79 Überblick Wie ist die abstrakte Syntax der UML definiert? Über ein Metamodell Die UML vereinigt verschiedene

Mehr

Thema 2 Acceleo-MTL- Sprachmittel

Thema 2 Acceleo-MTL- Sprachmittel SE Vertiefung Beuth-Hochschule Berlin Thema 2 Acceleo-MTL- Sprachmittel Sprachstruktur Template-Sprache implementiert MOFM2T Bausteine: Modul Template Query Block Protected Area (c) schmiedecke 13 Generator-Kapsel;

Mehr

Prof. Dr. Jan Jürjens

Prof. Dr. Jan Jürjens Vorlesung () Prof. Dr. Jan Jürjens TU Dortmund, Fakultät Informatik, Lehrstuhl XIV v. 10.11.2014 1 Einordnung Object Constraint Language (OCL) Modellgetriebene SW-Entwicklung Einführung Modellbasierte

Mehr

Kapitel 1. Software-Entwicklung und formale Spezifikation

Kapitel 1. Software-Entwicklung und formale Spezifikation Seite 1 Kapitel 1 Software-Entwicklung und formale Spezifikation Prof. Dr. Rolf Hennicker 22.04.2010 Ziele Seite 2 Die Grundprinzipien der Software-Entwicklung verstehen. Die Rolle formaler Methoden in

Mehr

Validation und Quick Fixing mit Xtend. 3. Dezember 2014

Validation und Quick Fixing mit Xtend. 3. Dezember 2014 Validation und Quick Fixing mit Xtend 3. Dezember 2014 175 Überblick Tuning der Xtext-generierten Editoren Validierung mit OCL auf der abstrakten Syntax mit Xtend auf der konkreten Syntax Quick Fixes mit

Mehr

Prof. Dr. Jan Jürjens

Prof. Dr. Jan Jürjens Vorlesung () Prof. Dr. Jan Jürjens TU Dortmund, Fakultät Informatik, Lehrstuhl XIV v. 10.11.2014 1 Einordnung Object Constraint Language (OCL) Modellgetriebene SW-Entwicklung Einführung Modellbasierte

Mehr

Definition von domänenspezifischen Sprachen mit Xtext: Der abstrakte Syntaxbaum in EMF

Definition von domänenspezifischen Sprachen mit Xtext: Der abstrakte Syntaxbaum in EMF Definition von domänenspezifischen Sprachen mit Xtext: Der abstrakte Syntaxbaum in EMF 29. November 2012 Taentzer Modellgetriebene Softwareentwicklung 263 Überblick Wie sieht der abstrakte Syntaxbaum für

Mehr

Definition von domänenspezifischen Sprachen mit Xtext: Einführung

Definition von domänenspezifischen Sprachen mit Xtext: Einführung Definition von domänenspezifischen Sprachen mit Xtext: Einführung 28. November 2012 Taentzer Modellgetriebene Softwareentwicklung 246 Überblick Was ist zu tun, wenn wir selbst einen Ansatz für modellgetriebenen

Mehr

Automatisierung industrieller. Workflows. Teil B: Die Spache UML

Automatisierung industrieller. Workflows. Teil B: Die Spache UML Automatisierung industrieller Teil B: Die Spache UML Joachim Fischer WS 2014/15 B.4-1 Original formuliert als Fragensammlung Bewertung / Rückschlüsse / Modellverbesserung reales bzw. gedachtes Phänomen

Mehr

Formale Systeme. Prof. Dr. Bernhard Beckert. Winter 2008/2009. Fakultät für Informatik Universität Karlsruhe (TH)

Formale Systeme. Prof. Dr. Bernhard Beckert. Winter 2008/2009. Fakultät für Informatik Universität Karlsruhe (TH) Formale Systeme Prof. Dr. Bernhard Beckert Fakultät für Informatik Universität Karlsruhe (TH) Winter 2008/2009 Prof. Dr. Bernhard Beckert Formale Systeme Winter 2008/2009 1 / 43 UML Kurze Wiederholung

Mehr

Formale Systeme UML. Kurze Wiederholung. Syntax von UML-Klassendiagrammen. Semantik von Klassen. Prof. Dr. Bernhard Beckert.

Formale Systeme UML. Kurze Wiederholung. Syntax von UML-Klassendiagrammen. Semantik von Klassen. Prof. Dr. Bernhard Beckert. Formale Systeme Prof. Dr. Bernhard Beckert Fakultät für Informatik Universität Karlsruhe (TH) UML Kurze Wiederholung Winter 2008/2009 Prof. Dr. Bernhard Beckert Formale Systeme Winter 2008/2009 1 / 43

Mehr

Formale Systeme. Object Contraint Language. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Formale Systeme. Object Contraint Language. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK Formale Systeme Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK KIT University of the State of Baden-Württemberg and National Large-scale Research Center of the Helmholtz

Mehr

Referat UML + OCL Referenten: Achour Elmrabti Britta Porsche

Referat UML + OCL Referenten: Achour Elmrabti Britta Porsche Referat UML + OCL Referenten: Achour Elmrabti Britta Porsche 1 Inhaltsübersicht Teil A: UML 1) Einleitung S. 3 2) Entwicklungsprozeß S. 4 3) Anwendungsfälle S. 5/6 4) Klassendiagramme S. 7/8 5) Interaktionsdiagramme

Mehr

Einführung in das Eclipse Modeling Framework. 31. Oktober 2012

Einführung in das Eclipse Modeling Framework. 31. Oktober 2012 Einführung in das Eclipse Modeling Framework 31. Oktober 2012 Überblick Einführung in das Eclipse Modeling Framework: eine Infrastruktur für die modellgetriebene Softwareentwicklung Wie funktioniert der

Mehr

UML/OCL für die Integritätssicherung in Datenbankanwendungen

UML/OCL für die Integritätssicherung in Datenbankanwendungen UML/OCL für die Integritätssicherung in Datenbankanwendungen Zwischenbericht Diplom Inhalt des Vortrages Motivation der Arbeit Konzept für die Integritätssicherung Musterkatalog Å Probleme/Lösungen Tool-Gesamtkonzept

Mehr

Formale Systeme. Object Contraint Language. Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Formale Systeme. Object Contraint Language. Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK Formale Systeme Prof. Dr. Bernhard Beckert WS 2009/2010 KIT INSTITUT FÜR THEORETISCHE INFORMATIK KIT University of the State of Baden-Württemberg and National Large-scale Research Center of the Helmholtz

Mehr

Formale Systeme. Prof. Dr. Bernhard Beckert. Winter 2008/2009. Fakultät für Informatik Universität Karlsruhe (TH)

Formale Systeme. Prof. Dr. Bernhard Beckert. Winter 2008/2009. Fakultät für Informatik Universität Karlsruhe (TH) Formale Systeme Prof. Dr. Bernhard Beckert Fakultät für Informatik Universität Karlsruhe (TH) Winter 2008/2009 Prof. Dr. Bernhard Beckert Formale Systeme Winter 2008/2009 1 / 43 UML Kurze Wiederholung

Mehr

Softwaretechnik Model Driven Architecture Einführung OCL

Softwaretechnik Model Driven Architecture Einführung OCL Softwaretechnik Model Driven Architecture Einführung OCL Prof. Dr. Peter Thiemann Universität Freiburg 11.07.2008 Einführung MDA Material Thomas Stahl, Markus Völter. Modellgetriebene Softwareentwicklung.

Mehr

Formale Systeme. Object Contraint Language. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Formale Systeme. Object Contraint Language. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK Formale Systeme Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK KIT University of the State of Baden-Württemberg and National Large-scale Research Center of the Helmholtz

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

eingebetteter Systeme

eingebetteter Systeme im WiSe 2010/11 Entwicklung verteilter eingebetteter Systeme Prof. Dr. Joachim Fischer Dipl.-Inf. Ingmar Eveslage Dipl.-Inf. Frank Kühnlenz fischer eveslage kuehnlenz@informatik.hu-berlin.de 6.1 4. UML-Überblick

Mehr

Anforderungen an den Story Pattern Editor von SE2 WS1415

Anforderungen an den Story Pattern Editor von SE2 WS1415 Anforderungen an den Story Pattern Editor von Version Datum Änderung 1.0 12.01.15 init 2.0 24.02.15 1.2.1, 2.1 Neu: 1.13, 1.14, 4 1 Es soll mithilfe des Graphiti Frameworks ein graphischer Editor für Story

Mehr

Klausur Formale Systeme Fakultät für Informatik WS 2009/2010. Prof. Dr. Bernhard Beckert. 18. Februar 2010

Klausur Formale Systeme Fakultät für Informatik WS 2009/2010. Prof. Dr. Bernhard Beckert. 18. Februar 2010 Klausur Formale Systeme Fakultät für Informatik Name: Mustermann Vorname: Peter Matrikel-Nr.: 0000000 Klausur-ID: 0000 WS 2009/2010 Prof. Dr. Bernhard Beckert 18. Februar 2010 A1 (15) A2 (10) A3 (10) A4

Mehr

Übungen zur Vorlesung Formale Systeme

Übungen zur Vorlesung Formale Systeme Übungen zur Vorlesung Formale Systeme Steffen Schlager Institut für Theoretische Informatik Winter 2005/2006 Aufgabe 1 Klausur mindestpunktzahl : Integer 1 0..* Aufgabe punktzahl : Integer 1 0..* 1 0..*

Mehr

Definition von visuellen Alphabeten basierend auf Meta Object Facilities (MOF) 23. Oktober 2012

Definition von visuellen Alphabeten basierend auf Meta Object Facilities (MOF) 23. Oktober 2012 Definition von visuellen Alphabeten basierend auf Meta Object Facilities (MOF) 23. Oktober 2012 29 Textuelle Visuelle Alphabete Textuelle Sprachen: eindimensional (Sätze) Basiselemente: Buchstaben, Ziffern,

Mehr

Modellierung mit UML

Modellierung mit UML Bernhard Rumpe Modellierung mit UML Sprache, Konzepte und Methodik Mit 210 Abbildungen und Tabellen Springer Inhaltsverzeichnis Einführung 1 1.1 Ziele dieses Buchs 2 1.2 Überblick 3 1.3 Notationelle Konventionen

Mehr

Model Querys zur Überprüfung von sicherheitsrelevanten Eigenschaften

Model Querys zur Überprüfung von sicherheitsrelevanten Eigenschaften Model Querys zur Überprüfung von sicherheitsrelevanten Eigenschaften Proseminarvortrag Werkzeugunterstützung für sichere Software Jens Knipper Fakultät für Informatik Technische Universität Dortmund 31.

Mehr

Media Engineering. Objektorientierte Modellierung. Verhaltensmodellierung. R. Weller University of Bremen, Germany cgvr.cs.uni-bremen.

Media Engineering. Objektorientierte Modellierung. Verhaltensmodellierung. R. Weller University of Bremen, Germany cgvr.cs.uni-bremen. Media Engineering Objektorientierte Modellierung Verhaltensmodellierung R. Weller University of Bremen, Germany cgvr.cs.uni-bremen.de Objektorientierte Analyse und Design im Detail Identifiziere Akteure

Mehr

Hausarbeit zum Thema. Ligaverwaltung. im Rahmen der Lehrveranstaltung. Entwurf von Informationssystemen. bei Prof. Dr.

Hausarbeit zum Thema. Ligaverwaltung. im Rahmen der Lehrveranstaltung. Entwurf von Informationssystemen. bei Prof. Dr. Hausarbeit zum Thema im Rahmen der Lehrveranstaltung bei Prof. Dr. Martin Gogolla Sommersemester 2007 Edvin Pehlivanović edvin@tzi.de 19 17 886 Roman Asendorf romanase@tzi.de 19 18 099 27. September 2007

Mehr

Auf dem Weg zur Semantikdefinition? Das UML-Metamodell (für Klassendiagramme)

Auf dem Weg zur Semantikdefinition? Das UML-Metamodell (für Klassendiagramme) Auf dem Weg zur Semantikdefinition? Das UML-Metamodell (für Klassendiagramme) Willkürlicher Ausschnitt aus dem UML-Metamodell Relationship Zumindest Zumindest ist ist mit mit einem einem Metamodell Metamodell

Mehr

Vorlesung "Software-Engineering"

Vorlesung Software-Engineering Vorlesung "Software-Engineering" Rainer Marrone, TUHH, Arbeitsbereich STS Vorige Vorlesung Pflichtenheft (requirements specification document) Charakterisierung von Software-Qualität Detaillierte Anforderungsanalyse

Mehr

Einführung in die Informatik II Entwurf durch Verträge: 1. Verträge und OCL

Einführung in die Informatik II Entwurf durch Verträge: 1. Verträge und OCL Einführung in die Informatik II Entwurf durch Verträge: 1. Verträge und OCL Prof. Bernd Brügge, Ph.D Institut für Informatik Technische Universität München Sommersemester 2004 Mai 2004 Copyright 2004 Bernd

Mehr

2.2 Spezifikation abstrakter Datentypen. 2.3 Implementierung und Anwendung von ADT. 2.4 Datenabstraktion und Objektorientierung

2.2 Spezifikation abstrakter Datentypen. 2.3 Implementierung und Anwendung von ADT. 2.4 Datenabstraktion und Objektorientierung Inhaltsverzeichnis (update) 2 Datenabstraktion 2.1 Begriffe 2.2 Spezifikation abstrakter Datentypen 2.2.1 Algebraische Spezifikation 2.2.2 Modellierende Spezifikation 2.3 Implementierung und Anwendung

Mehr

Modellierungstipps für die Anwendungsfallmodellierung

Modellierungstipps für die Anwendungsfallmodellierung Modellierungstipps für die Anwendungsfallmodellierung Identifiziere nur relativ grobe Abläufe als Anwendungsfälle! Anwendungsfälle werden nicht in weitere Anwendungsfälle zerlegt, höchstens unter Verwendung

Mehr

Software-Engineering im Sommersemester 2014

Software-Engineering im Sommersemester 2014 Methodische Grundlagen des Software-Engineering SS 2014 Vorlesung Methodische Grundlagen des Software-Engineering im Sommersemester 2014 Prof. Dr. Jan Jürjens TU Dortmund, Fakultät Informatik, Lehrstuhl

Mehr

Codegenerierung mit Xtend. 21. Januar 2015

Codegenerierung mit Xtend. 21. Januar 2015 Codegenerierung mit Xtend 21. Januar 2015 Überblick Xtend bietet einen Template-basierten Ansatz zur Codegenerierung Xtend enthält eine spezielle Template-Sprache. Das Modell kann beliebig benutzt werden,

Mehr

Objektorientierte Modellierung

Objektorientierte Modellierung Objektorientierte Modellierung KLASSENDIAGRAMM Klasse = Typebene zum Beschreiben mehrerer Objekte der selben Struktur Objekt = konkrete Ausprägung einer Klasse Instanz = Objekt Klassendiagramm = beschreibt

Mehr

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014

Definition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014 Definition von domänenspezifischen Sprachen mit Xtext: Einführung 19. November 2014 Überblick Was ist zu tun, wenn wir selbst einen Ansatz für modellgetriebenen Entwicklung definieren wollen? Anforderungserfassung

Mehr

UML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich

UML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich UML / Fujaba Generierung von Java-Quellcode aus UML-Diagrammen Marcel Friedrich Agenda Einleitung Struktur Verhalten Klassendiagramme Storydiagramme Statecharts Action methods 2 Thema Codegenerierung mit

Mehr

Analyse und Design mituml2.1

Analyse und Design mituml2.1 Analyse und Design mituml2.1 Objektorientierte Softwareentwicklung Von Bernd Oestereich 8., aktualisierte Auflage Oldenbourg Verlag München Wien nhaltsverzeichnis Objektorientierte Softwareentwicklung

Mehr

Übungen zur Vorlesung Softwaretechnologie - Wintersemester 2018/19- Dr. Günter Kniesel. Übungsblatt 6 - Lösungen

Übungen zur Vorlesung Softwaretechnologie - Wintersemester 2018/19- Dr. Günter Kniesel. Übungsblatt 6 - Lösungen Übungen zur Vorlesung Softwaretechnologie - Wintersemester 2018/19- Dr. Günter Kniesel Übungsblatt 6 - Lösungen Aufgabe 1. Domain Object Modell(16 Punkte) Stellen Sie Sich vor, Sie sollen für die Informatik-Fachschaft

Mehr

Requirements Engineering I

Requirements Engineering I Martin Glinz Requirements Engineering I Kapitel 10 Formale Spezifikation Universität Zürich Institut für Informatik 2006 Martin Glinz. Alle Rechte vorbehalten. Speicherung und Wiedergabe sind für den persönlichen,

Mehr

Thema 4 Acceleo- Sprachmittel und Generatorstruktur

Thema 4 Acceleo- Sprachmittel und Generatorstruktur SE Vertiefung Beuth-Hochschule Berlin Thema 4 Acceleo- Sprachmittel und Generatorstruktur 1. ACCELEO-PRAXIS (c) schmiedecke 14 SE3 2 Abgeguckt bei Obeo UmlToJava Es gibt zwei Generatorprojekte UmltoJava

Mehr

2. Übung. Systemobjektmodell. TU Dresden - Institut für Bauinformatik Folie-Nr.: 1

2. Übung. Systemobjektmodell. TU Dresden - Institut für Bauinformatik Folie-Nr.: 1 WP3-13 Bauinformatik-Vertiefte Grundlagen 2. Übung Systemobjektmodell mittels EXPRESS-G Folie-Nr.: 1 Objektorientierte Modellierung Unter Objektorientierung (OO) versteht man eine Sichtweise auf komplexe

Mehr

FACHHOCHSCHULE MANNHEIM

FACHHOCHSCHULE MANNHEIM Objektorientierte Programmierung 11. Vorlesung Prof. Dr. Peter Knauber FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Die 2. lgruppe von KobrA: : le der : e Folie 1 Zur Erinnerung: 1. lgruppe:

Mehr

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H)

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H) Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H) Dominik Kirsten Daniel Schäferbarthold Trier, 21.01.2008 1 Gliederung 1. Einführung 1.1 Anforderungen an

Mehr

Klausur. Softwareentwurf. 22. März 2011 Bearbeitungszeit: 120 Minuten

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

Mehr

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools

MOF Meta Object Facility. Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools MOF Meta Object Facility Veranstaltungsvortrag im Rahmen der Projektgruppe ComponentTools Überblick Object Management Group (OMG) Model Driven Architecture (MDA) Exkurs: Modelle, Metamodelle MOF Architektur

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Vorlesung 5: Invarianten und Logik Erinnerung: Verträge In Verbindung mit einem Feature: Vorbedingungen Nachbedingungen

Mehr

Requirements Engineering I

Requirements Engineering I Martin Glinz Requirements Engineering I Kapitel 10 Formale Spezifikation Universität Zürich Institut für Informatik 2006, 2009 Martin Glinz. Alle Rechte vorbehalten. Speicherung und Wiedergabe für den

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

2.2.1 Algebraische Spezifikation (Fortsetzung)

2.2.1 Algebraische Spezifikation (Fortsetzung) 2.2.1 Algebraische Spezifikation (Fortsetzung) Algebraische Spezifikation: Mengen Types Set, Bool, t Signature > creates :: Eq t => Set t > isempty :: Eq t => Set t -> Bool > insert :: Eq t => t -> Set

Mehr

Einführung in die Modelltransformation mit Xtend

Einführung in die Modelltransformation mit Xtend Einführung in die Modelltransformation mit Xtend 12. Dezember 2012 Taentzer Modellgetriebene Softwareentwicklung 297 Überblick Xtend: Eine statisch getypte Sprache, die zur Modellzu-Text-Transformation

Mehr

Dynamisches EMF und Codegenerierung mit JET. 14. November 2012

Dynamisches EMF und Codegenerierung mit JET. 14. November 2012 Dynamisches EMF und Codegenerierung mit JET 14. November 2012 Überblick Wie kann eine Modell-zu-Text-Transformation entwickelt werden? Referenzanwendung(en) möglichst generell schreiben und analysieren

Mehr

Informationsverarbeitung im Bauwesen

Informationsverarbeitung im Bauwesen 12 im Bauwesen Markus Uhlmann 1 Zusammenfassung der 11. Vorlesung Objektorientierte Programmierung (OOP) Wozu eigentlich? Was unterscheidet OOP von traditionellen Techniken? Verwendung von vordefinierten

Mehr

Analyse und Design mituml2

Analyse und Design mituml2 Analyse und Design mituml2 Objektorientierte Softwareentwicklung von Bernd Oestereich 7, aktualisierte Auflage Oldenbourg Verlag München Wien Ш1!Н1Н1КД nhjektorientierte Softwareentwicklung - Analyse und

Mehr

Modellgetriebene Softwareentwicklung bei der IBYKUS AG

Modellgetriebene Softwareentwicklung bei der IBYKUS AG Modellgetriebene Softwareentwicklung bei der IBYKUS AG Theorie Teil 7: Modelltransformationen Dr. Steffen Skatulla IBYKUS AG 1 Inhalt Teil 7: Modelltransformationen Wozu Modelltransformationen? Konzepte

Mehr

COPE COuPled Evolution of metamodels and models

COPE COuPled Evolution of metamodels and models COPE COuPled Evolution of metamodels and models Diplomarbeit in Zusammenarbeit mit der BMW Car IT (Betreuer: Elmar Jürgens, Sebastian Benz) Markus Herrmannsdörfer 7. November 2007 Perlen der Informatik

Mehr

Modul 122 VBA Scribt.docx

Modul 122 VBA Scribt.docx Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval

Mehr

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)

CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Th Letschert UML Seite 1 Th Letschert UML - Klassen- / Paket- / Sequenzdiagramm - UML / OCL in Spezifikation und Implementierung

Mehr

EMF-GMF-Tutorial: Petrinet

EMF-GMF-Tutorial: Petrinet EMF-GMF-Tutorial: Petrinet Petrinet-Metamodell anlegen 1. File/New/Other: Empty EMF Project Project Name: de.upb.agengels.se.petrinet 2. Rechtsklick auf model-verzeichnis => New/Other: Ecore Diagram Domain

Mehr

Programmieren I. Kapitel 5. Kontrollfluss

Programmieren I. Kapitel 5. Kontrollfluss Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,

Mehr

Object Constraint Language (OCL) By Example

Object Constraint Language (OCL) By Example Fakultät Informatik, Institut SMT, Lehrstuhl Softwaretechnologie Object Constraint Language (OCL) By Example Birgit Demuth Einführung Object Constraint Language (OCL) ist Teil der Unified Modeling Language

Mehr

Warum Programme Verträge schließen sollten

Warum Programme Verträge schließen sollten 1 Warum Programme Verträge schließen sollten RALF HINZE Institut für Informatik, Lehrstuhl Softwaretechnik, Universität Freiburg Georges-Köhler-Allee, Gebäude 079, 79110 Freiburg i. Br. Email: ralf@informatik.uni-bonn.de

Mehr

{P} S {Q} {P} S {Q} {P} S {Q} Inhalt. Hoare-Kalkül. Hoare-Kalkül. Hoare-Tripel. Hoare-Tripel. Hoare-Tripel

{P} S {Q} {P} S {Q} {P} S {Q} Inhalt. Hoare-Kalkül. Hoare-Kalkül. Hoare-Tripel. Hoare-Tripel. Hoare-Tripel Inhalt Hoare-Kalkül Formale Verifizierung Hoare-Kalkül while-sprache Terminierung Partielle / totale Korrektheit 4.0 Hoare-Kalkül entwickelt von C.A.R. (Tony) Hoare (britischer Informatiker), 1969 formales

Mehr

13 Formale Spezifikation von Anforderungen

13 Formale Spezifikation von Anforderungen 13 Formale Spezifikation von Anforderungen Mögliche Formalitätsgrade einer Spezifikation 0 Ideen und Vorstellungen der Auftraggeber informale Spezifikation Zeit teilformale Spezifikation 100% formale Spezifikation

Mehr

MODELLIERUNG UND SPEZIFIKATION

MODELLIERUNG UND SPEZIFIKATION MODELLIERUNG UND SPEZIFIKATION EINE ZUSAMMENFASSUNG JAN SÜRMELI T o P THEORY OF PROGRAMMING INHALTSVERZEICHNIS 2 ALLGEMEINES UML: OBJEKTORIENTIERTE MODELLIERUNG CASL: ALGEBRAISCHE SPEZIFIKATION PETRINETZE:

Mehr

Einführung Propra Softwareentwicklung im 21. Jahrhundert. Jörg Niere Raum H-C 8304 Tel: 0271/

Einführung Propra Softwareentwicklung im 21. Jahrhundert. Jörg Niere Raum H-C 8304 Tel: 0271/ University of Siegen Einführung Propra Softwareentwicklung im 21. Jahrhundert Jörg Niere Raum H-C 8304 Tel: 0271/740-2618 email: joerg.niere@uni-siegen.de Überblick 1. Vom Modell zum Code 2. Klassen Attribute

Mehr

13 Abstrakte Datentypen

13 Abstrakte Datentypen 13 Abstrakte Datentypen Bisher: Konkrete Datentypen Menge von Elementen Operationen auf den Elementen (Konstruktoren, Selektoren, Typprädikate) Eigenschaften abgeleitet Jetzt: Abstrakte Datentypen (ADT)

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Vorlesung 5: Invarianten und Logik Erinnerung: Verträge In Verbindung mit einem Feature: Ø Vorbedingungen Ø Nachbedingungen

Mehr

OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE

OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE Nutzung des AMCS (Auditorium Mobile Classroom Service) https://amcs.website Einloggen/Registrieren mit beliebigem Pseudonym Passwort Kurs Softwaretechnologie PIN:

Mehr

Model-Driven Software Engineering (HS 2011)

Model-Driven Software Engineering (HS 2011) Model-Driven Software Engineering (HS 2011) Dr. J. Küster Übungsblatt I Abgabe: Am 15.11.2011 vor der Vorlesung Voraussetzungen: Installation von Eclipse und Eclipse Modeling Framework Installation der

Mehr

Einführung in das Graphical Modeling Framework. 13. November 2012

Einführung in das Graphical Modeling Framework. 13. November 2012 Einführung in das Graphical Modeling Framework 13. November 2012 100 Überblick Was ist der Unterschied zwischen abstrakter Syntax und konkreter Syntax? Welche Arten von graphischen Editoren gibt es? Freihandeditoren

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Lauftagebuch Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 21 Erstellen einer

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

Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt

Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Aufgaben zur Klausur Objektorientierte Programmierung im WS 2003/04 (IA 252) Zeit: 90 Minuten erlaubte Hilfsmittel: keine

Mehr

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Vorlesung 5: Invarianten und Logik Erinnerung: Verträge In Verbindung mit einem Feature: Vorbedingungen Nachbedingungen

Mehr

Aufgaben NF 11; Seite 1

Aufgaben NF 11; Seite 1 Aufgabe Ref 1: Gegeben ist die Klasse Schueler public class Schueler { private String name, vorname, kurs; // Konstruktor public Schueler(String n, String vn, String k) { name=n; vorname=vn; kurs=k; public

Mehr

Softwareanforderungsanalyse

Softwareanforderungsanalyse Softwareanforderungsanalyse Vorgehen, Modellstruktur und Spezifikationsdokument - Ein Fazit Burkhardt Renz THM, Fachbereich MNI Wintersemester 208/9 Übersicht Vorgehen Struktur des Modells Metamodell Generierung

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

openarchitectureware

openarchitectureware openarchitectureware Enrico Schnepel EAS, FHTW-Berlin 07.06.2007 2007 (CC by-nc-sa 2.0 Germany) Enrico Schnepel ( EAS, FHTW-Berlin ) openarchitectureware 07.06.2007 1 / 26 Gliederung 1 Einleitung 2 Begriffsdefinitionen

Mehr

Zwei Arten von Attributen. Klassenvariablen. Introspektion. getattr(object_instance, string)

Zwei Arten von Attributen. Klassenvariablen. Introspektion. getattr(object_instance, string) Zwei Arten von Attributen Klassenvariablen Die Daten, die von einem Objekt gespeichert werden und keine Methoden sind, heißen Attribute. Es gibt zwei Arten: Instanzattribute ( = Instanzvariablen): Variable,

Mehr

7. Objektorientierung. Informatik II für Verkehrsingenieure

7. Objektorientierung. Informatik II für Verkehrsingenieure 7. Objektorientierung Informatik II für Verkehrsingenieure Klassen, Objekte und Attribute Buslinie und Haltestellen 3 Haltestellen und deren Eigenschaften Bauplan einer Haltestelle (Struktur) Konkrete

Mehr

Zwei Arten von Attributen

Zwei Arten von Attributen Zwei Arten von Attributen Die Daten, die von einem Objekt gespeichert werden und keine Methoden sind, heißen Attribute. Es gibt zwei Arten: Instanzattribute ( = Instanzvariablen): Variable, die einer bestimmten

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 15 Einstieg in die Informatik mit Java Collections Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung

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

Einführung. Einführung

Einführung. Einführung Einführung Einführung Im Oktober 1994 haben sich Grady Booch und Jim Rumbaugh bei der Rational Software Corporation zusammengeschlossen, um ihre erfolgreichen Methoden zu einem einheitlichen Industriestandard

Mehr