Object Constraint Language. 30. Oktober 2012
|
|
- Rosa Vogel
- vor 5 Jahren
- Abrufe
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 Gliederung Einleitung Grundlegende Prinzipien Was ist ein Kontext von Constraints Invarianten Vor- und Nachbedingungen Typen und Collections
MehrEinschub - 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
MehrFormale 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
MehrEinfü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
MehrDie 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
MehrLanguages 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.
MehrDie 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
MehrDie 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
MehrThema 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;
MehrProf. 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
MehrKapitel 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
MehrValidation 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
MehrProf. 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
MehrDefinition 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
MehrDefinition 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
MehrAutomatisierung 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
MehrFormale 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
MehrFormale 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
MehrFormale 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
MehrReferat 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
MehrEinfü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
MehrUML/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
MehrFormale 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
MehrFormale 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
MehrSoftwaretechnik 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.
MehrFormale 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
MehrNACHRICHTENTECHNISCHER SYSTEME
Einführung UML COMPUTERSIMULATION NACHRICHTENTECHNISCHER SYSTEME 11. Unified Modeling Language UML 220 Standardsprache d zur Visualisierung, i Spezifikation, Konstruktion und Dokumentation komplexer (Software-)
Mehreingebetteter 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
MehrAnforderungen 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
MehrKlausur 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 Steffen Schlager Institut für Theoretische Informatik Winter 2005/2006 Aufgabe 1 Klausur mindestpunktzahl : Integer 1 0..* Aufgabe punktzahl : Integer 1 0..* 1 0..*
MehrDefinition 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,
MehrModellierung 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
MehrModel 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.
MehrMedia 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
MehrHausarbeit 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
MehrAuf 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
MehrVorlesung "Software-Engineering"
Vorlesung "Software-Engineering" Rainer Marrone, TUHH, Arbeitsbereich STS Vorige Vorlesung Pflichtenheft (requirements specification document) Charakterisierung von Software-Qualität Detaillierte Anforderungsanalyse
MehrEinfü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
Mehr2.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
MehrModellierungstipps 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
MehrSoftware-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
MehrCodegenerierung 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,
MehrObjektorientierte Modellierung
Objektorientierte Modellierung KLASSENDIAGRAMM Klasse = Typebene zum Beschreiben mehrerer Objekte der selben Struktur Objekt = konkrete Ausprägung einer Klasse Instanz = Objekt Klassendiagramm = beschreibt
MehrDefinition 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
MehrUML / 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
MehrAnalyse 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 Aufgabe 1. Domain Object Modell(16 Punkte) Stellen Sie Sich vor, Sie sollen für die Informatik-Fachschaft
MehrRequirements 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,
MehrThema 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
Mehr2. Ü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
MehrFACHHOCHSCHULE 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:
MehrWeb 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
MehrKlausur. 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: [
MehrMOF 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
MehrEinfü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
MehrRequirements 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
MehrAnalyse 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
Mehr2.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
MehrEinfü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
MehrDynamisches 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
MehrInformationsverarbeitung 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
MehrAnalyse 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
MehrModellgetriebene 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
MehrCOPE 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
MehrModul 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
MehrCS1005 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
MehrEMF-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
MehrProgrammieren 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,
MehrObject 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
MehrWarum 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
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
Mehr13 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
MehrMODELLIERUNG 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:
MehrEinfü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
Mehr13 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)
MehrEinfü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
MehrOOSE 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:
MehrModel-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
MehrEinfü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
MehrSoftware 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
MehrJason 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,
MehrPhysikalisch 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
MehrImplementieren 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
MehrEinfü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
MehrAufgaben 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
MehrSoftwareanforderungsanalyse
Softwareanforderungsanalyse Vorgehen, Modellstruktur und Spezifikationsdokument - Ein Fazit Burkhardt Renz THM, Fachbereich MNI Wintersemester 208/9 Übersicht Vorgehen Struktur des Modells Metamodell Generierung
Mehr1 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
Mehropenarchitectureware
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
MehrZwei 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,
Mehr7. 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
MehrZwei 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
MehrEinstieg 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
MehrSoftwaretechnik 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
MehrEinfü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