OCL – Object Constraint Language

Slides:



Advertisements
Ähnliche Präsentationen
Business Engineering Philipp Osl, Alexander Schmidt
Advertisements

Extensible Markup Language
HyperText Markup Language
Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
Objektorientierte Programmierung Definition von Klassen
Objektorientierter Entwurf
Anwendungsfalldiagramm
Anwendungsfalldiagramm
Anwendungsfalldiagramm
HG13_ Herzgen, Jung & Lorkowski
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Abhängigkeitsbeziehung
DOM (Document Object Model)
Instance-Based Context Calculation of OCL Expressions.
REKURSION + ITERATION.
XML-Schema HKI Proseminar Wintersemester 2010/11 Dozentin: Frau Kurz von Jan Kohl und Christian Lütticke.
XHTML 1.1 C. Nimz Abstrakte Module XHTML 1.1 C. Nimz Was ist ein abstraktes Modul? Definition eines XHTML-Moduls in spezieller leichter.
Modularization of XHTML™
XML Standardisierungen und Abfragesprachen
Einführung XML XML Einführung Andreas Leicht.
Prof. Dr. T. Kudraß1 Relationenkalkül. Prof. Dr. T. Kudraß2 Relationenkalkül Zwei Ausprägungen: Tupelrelationenkalkül (TRK) und Domänenrelationenkalkül.
Imperative Programmierung
Ganzzahligkeit in LP-Modellen
Software-Technik: (fortgeschrittene) Klassendiagramme
Programmieren mit JAVA
WAS WILL WISSENSCHAFT? - Sagen: Was WIE ist
GROOVE Graphs for Object-Oriented Verification Seminar: SEFSIS Sommersemester 2006 Basil Becker
Einführung Dateisystem <-> Datenbanksystem
OWL-Web Ontology Language Eine Einführung
OWL-Web Ontology Language Eine Einführung
RDF-Schema Seminar: „Semantic Web“ André Rosin,
DVG Klassen und Objekte
UML-Klassendiagramm: Assoziationen (1)
2.2 Definition eines Datenbankschemas (SQL-DDL)
1 Klassen (1) Eine Klasse beschreibt eine Menge von Objekten mit gemeinsamer Struktur gemeinsamem Verhalten gemeinsamen Beziehungen gemeinsamer Semantik.
Was versteht man unter XML Schema?
FH-Hof HTML - Einführung Richard Göbel. FH-Hof Komponenten des World Wide Webs WWW Browser HyperText Transfer Protocol (HTTP) via Internet WWW Server.
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Einführung in die Informatik II Entwurf durch Verträge 3. Teil
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 7 Folie 2 Styles (1) s.a.
UML-Kurzüberblick Peter Brusten.
Software-Technik: (fortgeschrittene) Klassendiagramme
Von UML 1.4 zu UML 2.0 InfoPoint vom Mittwoch
SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 1.
Automaten, formale Sprachen und Berechenbarkeit II SoSe 2004 Prof. W. Brauer Teil 3: Potenzreihen und kontextfreie Sprachen (Vgl. Buch von A. Salomaa)
Paul, Morten, Yannick Blue J. Entwicklungsumgebung  versteht Java Programmcode  Für die Entwicklung eigener Software  Durch die Programmierung.
Meta-Modell für Story-Diagramme und Expressions
Der Hund jagt die Katze. Theoretische Informatik Satz S P O
Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema XML, DTDs und XML-Schema - Stefan Kurz, 25. April 2003.
Einführung Dateisystem <-> Datenbanksystem
2 Grundlagen In diesem Abschnitt werden die Grundbegriffe und Methoden der Theorie der formalen Sprachen und der Automaten wiederholt, soweit diese ben.
XML Schema Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung WS2011/2012 Hist.-kult.wiss. Informationsverarbeitung (Teil.
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Geoinformation3 Geoinformation III XML Grundlagen und Dokumentspezifikation Vorlesung 12b.
XUML - executable UML Vortrag im Rahmen des Seminars zum Thema Modellgetriebene Softwareentwicklung René Heilmann.
Seminar Modellgetriebene Softwareentwicklung Thema 3: Metamodelle – MOF Michél Rieser Prof. Dr.-Ing. habil. Georg Paul
Skript zur Vorlesung Software Engineering I
Lukas Kerecz - Edits1 Edits Lukas Kerecz. Lukas Kerecz - Edits2 Gliederung  Einführung  Edits – warum und wofür?  Edits – Definiton  einleitende Beispiele.
© WZL/Fraunhofer IPT Seminararbeitsvortrag Betrachtung der Transformationssprache QVT operational innerhalb der Eclipse-Plattform.
SQL Basics Schulung –
Übungsblatt 2 Erläuterungen Wintersemester 16/17 DBIS.
Einführung DI Harald Sander.
Anrufbeantworter von Großeltern :
Testresultatsvergleich mit UML-Analysemodellen und OCL-Ausdrücken
Methodische Grundlagen des Software-Engineering
UML: Metamodell Auf dem Weg zur Semantikdefinition? Das UML-Metamodell (für Klassendiagramme) Willkürlicher Ausschnitt aus dem UML-Metamodell Zumindest.
Implementieren von Klassen
DB2 – SS 2019 von Baum allgemein bis B*-Baum
DB2 – SS 2019 von Baum allgemein bis B*-Baum
 Präsentation transkript:

OCL – Object Constraint Language Randbedingungen im UML Modell mit Hilfe von OCL hinzufügen

OCL Randbedingungen in UML Modell können als normaler Text oder Mithilfe von OCL formuliert werden. Vorgegebene Syntax und Semantik. Das Modell wird dadurch präziser und eindeutig. Rein deklarative Sprache, hat keine Seiteneffekte, beschreibt nur Was? aber nicht Wie?

OCL Die OCL Syntax deckt den Bereich von Anfangswerten (initial values), logische Bedingungen (constraints) und Zusicherungen (contracts, asserts) ab.

OCL 7 unterschiedliche Arten Invariants müssen zu jeder Zeit für eine Instanz oder Assoziation gelten. Preconditions/Postconditions müssen zu dem Zeitpunkt gelten, an dem die Ausführung der zugehörigen Operation beginnt/endet. Initial & derived Values stellen Bedingungen für Ausgangs- und abgeleitete Werte dar Definition: es können Attribute und Operationen definiert werden, die nicht im Modell enthalten sind. Body Definition von Operationen mit isQuery = true. Guards müssen gelten, wenn ein Zustandsübergang beginnt

OCL Aufbau der OCL Syntax Bedingungen: Das Alter einer Person ist nicht negativ. context Person inv: self.Alter >= 0 Eine Person ist jünger als ihre Eltern. context Person inv: self.Eltern->forAll(e|e.Alter>self.Alter)

OCL Wenn jemand ein Kind bekommen hat, ist die Menge seiner Kinder nicht leer und die Anzahl der Kinder ist größer als vorher. context Person:: bekommtKind() post: self.Kinder->notEmpty() and self.Kinder->size() > self . Kinder @ pre->size() Es gibt mindestens eine Person, die ein Auto besitzt. context Person inv: Person.allInstances->exists(p|p.autos->size() > 0)