Einführung in die UML-Object-Constraint-Language OCL

Slides:



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

1 Referenzmodelle für HISinOne Dr. Uwe Hübner, 02. Juli 2009.
der Universität Oldenburg
Objektorientierte Programmierung
Programmierung II Prof. Dr. Michael Löwe
Frame-Logik Eine Einführung Andreas Glausch.
Einführung in die Programmierung Zusammenfassung
Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden
Kapitel 4 Datenstrukturen
Objektorientierte Programmierung Definition von Klassen
Das Entity-Relationship-Modell
Objektorientierter Entwurf
WS 04/05 wiss. Übung: Systemanalyse und Softwaredesign
Anwendungsfalldiagramm
Anwendungsfalldiagramm
Anwendungsfalldiagramm
Sequenzdiagramm.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
UML im Überblick – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/22
Polymorphie (Vielgestaltigkeit)
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Programmieren mit JAVA
Programmieren mit JAVA
Objektorientierte DBMS Klassen und Beziehungen Seminar: Verteilte Datenbanken Manuela Fischer.
3. Klassendiagramme in Java implementieren
RDF-Schema Seminar: „Semantic Web“ André Rosin,
DVG Klassen und Objekte
Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl
Einführung in die Programmierung Klassendefinition und Objekte
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
Rational Rose und UML: Erstellung einer Kontoverwaltung
UML Begleitdokumentation des Projekts
Stacks Referat im Fach Basisinformationstechnologien von Venelina Koleva.
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
11. Vorlesung: Dynamische Konzepte am Fallbeispiel
12. Vorlesung: Aktivitätsdiagramme
10. Vorlesung: Dynamische Konzepte
Was umfaßt die CORBA Core Spezifikation? Welche zusätzlichen Komponenten muß ein ORB Produkt beinhalten? Core: CORBA Objekt Modell CORBA Architektur OMG.
Unified Modeling Language Repetition / Einführung zu UML
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #3 ER Modellierung.
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
UML-Kurzüberblick Peter Brusten.
UML Modellierung des Verhaltens von Klassen und Objekten
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
Software-Technik: (fortgeschrittene) Klassendiagramme
Vom Geschäftsprozess zum Quellcode
Zustandsübergangsdiagramme (1)
Objektorientierte Modellierung mit UML
Klassen und Klassenstruktur
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Unified Modeling Language UML
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
SS 2014 – IBB4C Datenmanagement Do 17:00 – 18:30 R Vorlesung #3 ER Modellierung.
A Workshop About this chapter General description Units Time Schedule
Kapitel 5Strukturen Information aus der realen Welt werden in einem informationsverarbeitenden System als Daten abgelegt. Diese stellen also eine (vereinfachte)
Java-Kurs Übung Besprechung der Hausaufgabe
Objektorientierte (OO) Programmierung
Objektorientierte Datenbanken
Objektorientierte Programmierung Was ist das eigentlich ?
Vortrag Einführung in AspectJ. Gliederung 1 Einleitung 2 Querschnittsfunktionalitäten in AspectJ 2.1 Sprachelemente 3 Beispiel 4 Join Point Modell 5 Weaving.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
 Präsentation transkript:

Einführung in die UML-Object-Constraint-Language OCL Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03

Überblick UML – Motivation UML - Was ist es? UML – Eigenschaften UML – Bestandteile UML – Beziehungen UML – Bestandteile – Strukturelemente UML – Bestandteile – Verhaltensweisen UML – Bestandteile - Gruppierungen und Kommentare OCL – Einführung OCL – typisches Problem OCL – Beispielausdrücke OCL – Beispielausdrücke – Anfragen OCL – Typhierarchie OCL – Typhierachie – Operationen OCL - Typhierachie – Komplexe Typen OCL - Typhierachie – Komplexe Typen – Operation OCL und UML Klassen Modelle OCL - Systemzustand

UML - Motivation Unternehmensinterne Informationssysteme Banken und Finanzdienstleistungen Telekommunikation Transportwesen Verteidigung/Luft- und Raumfahrt Einzelhandel Medizinelektronik Wissenschaft Verteilte Web-basierte Dienste => Komplexe Softwaresysteme erfordern besondere Sorgfalt bei der Entwicklung

UML - Was ist es? UML (Unified Modelling Language) ist eine grafische Sprache zur Beschreibung von Softwaresystemen. Man benutzt UML zur Visualisierung, Spezifizierung, Konstruktion und Dokumentation der Bestandteile eines Softwaresystems und den Beziehungen zwischen ihnen. Beispiel: class Hello extends Applet{ public void paint(Graphics g){ ... }

UML - Eigenschaften Anforderung Projektpläne Entwurf Quellcode Visualisierung Ohne formalisierte Visualisierung spricht jeder seine eingene Sprache, so daß es zu Fehlern und Mißverständnissen kommen kann. Infomationen gehen vorloren. Spezifizierung Präzise, eindeutige und vollständige Modelle erstellen Konstruktion Keine visuelle Programmiersprache, sondern sprachübergreifend ---- läßt sich auf verschiedene Sprachen abbilden. Dokumentation Anforderung Projektpläne Entwurf Quellcode Architektur Tests

UML - Bestandteile UML beschreibt Softwaresystem, ist aber selbe auch ein System und besteht aus Dinge und Beziehungen zwischen den Dingen. Zusammenhänge werden in UML mit Hilfe von Diagrammen dargestellt. Die meisten Diagramme zeigen nur ein Ausschnitt des zu modellierenden Systems.

UML – Bestandteile - Beziehungen In UML gibt es vier Arten von Beziehungen Abhängigkeit Assoziation Arbeitgeber Arbeitnehmer Generalisierung Realisierung 0..1 *

UML - Bestandteile Things (Dinge) sind die grundlegenden objektorientierten Bestandteile der UML. Strukturelemente Verhaltensweisen Gruppierungen Kommentare Strukturelemente sind die Grundbestandteile eines UML Modells. Es gibt insgesammt 7 Arten von Strukturelementen.

UML – Bestandteile - Strukturelemente Klasse ist eine Beschreibung einer Menge von Objekten Schnittstelle Ist eine Zusammenfassung von Operationen, Die einen Dienst einer Klasse oder Komponente Spezifizieren. ISpelling Window ursprung größe öffnen() schließen()

UML – Bestandteile - Strukturelemente Kollaboration ist eine Gruppe von Klassen, Schnittstellen und anderen Elementen, die zusammenarbeiten, um ein kooperatives Verhalten zu bieten, das mehr leistet als die Summe seiner Teile. Verantwortlichkeitskette

UML – Bestandteile - Strukturelemente Aktive Klasse Ist eine Klasse, deren Objekt einen oder mehren Prozesse oder Thread besitzen und daher Stuerungsaktivitäten in Gang setzen können. Komponente ist Software Einheit, aus der die Applikation zusammengebaut wird. EreignisManager aussetzen() verwerfen() Mercedes Ifahrzeug

UML – Bestandteile - Strukturelemente Knoten Ist ein zur Laufzeit vorhandendes physisches Element, das eine Rechnerresource repräsentiert und im allgemeinen zumindest ein Speicher und oft auch Rechenkapazität besitzt. Server Auftrag erteilen Anwendungsfall Ist eine Beschreibung einer Menge aufeinander folgender Aktionen, die ein System ausführt und die ein beobachtbares Ereignis hervorbringt.

UML – Bestandteile - Strukturelemente

UML – Bestandteile - Verhaltensweisen Verhaltensweisen sind die dynamischen Bestandteile von UML Modell . Sie sind die Verben eines Modelles , die das Verhalten in Zeit und Raum repräsentieren. Es gibt insgesammt zwei Hauptarten von Verhaltensweisen. Interaktion Eine Interaktion ist eine Verhaltenweise, die eine Menge von Nachrichten umfasst, welche von einer Menge von Objekten in einem bestimmten Kontext zum Erreichen eines bestimmten Zwecks ausgetauscht werden. anzeigen

UML – Bestandteile - Verhaltensweisen

UML – Bestandteile - Verhaltensweisen Automat Das Verhalten einer einzelnen Klasse oder einer Kollaboration von Klassen kann mit einem Automaten spezifiziert werden.

UML – Bestandteile - Gruppierungen und Kommentare Gruppierungen Sind die zur Organisation gehörenden Teile von UML-Modellen. Es sind Kästchen, in die ein Modell zerlegt werden kann. Es gibt nur eine Hauptart von Gruppierung, nämlich packete. Kommentare Datum zurückgeben Kopf

OCL - Einführung Vor OCL wurden die Integritätsbedinungen textlich , informell mit Hilfe von Kommentaren beschrieben. OCL wurde eingeführt, um die Beschränkungen formal zu beschreiben. Beispiel

OCL – typisches Problem Dieses Beispiel liefert wegen unterschiedlichen Iterationsreihenfolgen verschiedenen Ergebnisse. rs : RentalStation rs.employee->iterate ( P:Person; names: String = “ “ | names.concat(p.lastname))

OCL – Beispielausdrücke Beispiele Person self.age > 0 self --- Instanz von Typ Person   RentalStation Self.employee->forAll ( p | p.income(„98/03/01“) >2000 ) forAll testet ,ob jede Element einer collection ein Prädikat erfüllt.

OCL – Beispielausdrücke - Anfragen Company self.vehicle select( v|v.registration.substring(1,3) = „R24“)

OCL - Typhierarchie Aufzählungstypen ---- Basis Datentypen erweitern . In OCL gibt es folgende Basisdatentypen : Integer, Real, Boolean, String. Jeder dieser Basisdatentypen enthält zusätzlich noch den undefinierten Wert  . Aufzählungstypen ---- Basis Datentypen erweitern . Beispiel: enum{compact,midsize,luxury} in Abbildung.1 kann als Typ CategoryKind ausgezeichnet werden.  

OCL – Typhierachie - Operationen Operationenen auf Basisdatentypen {,: BooleanBooleanBoolean,:BooleanBoolean,...} {+,-,*, /,div,mod,max: IntegerIntegerInteger,...} {,<=,>=,>: IntegerIntegerBoolean,...} {+,-,*, /,max,min: RealRealReal,floor : RealInteger,...} {,<=, >=, >,:RealRealBoolean,...} {concat: StringStringString,size : StringInteger,...} undefinierte Werte als Parameter -----einen undefinierten Wert als Ergebnis Ausnahme----- boolschen Operationen . False ------immer False True -------immer True. Ausnahme ------- forAll und exits

OCL - Typhierachie – Komplexe Typen mehrere Werte -----collection Typen. Set, bag und sequence z.B:Sequence(Integer) -----eine Liste mit Integer Elemente. Collection Typen können nicht geschachtelt werden. Verflachungsprozess Z.B c.rentalStation->collect( employee).-----------Bag(Set(Person)) -------Bag (Person) Set{set{1,2},set{3,4},set{5,6}}  Set{1,2,3,4,5,6} Sequence{Set {p1,p2}}, p1 und p2 sind Variable, die auf Objekte vom Typ Person zeigen --------Sequence{p1,p2} ?--------Sequence{p2,p1}? Die Anforderung, das alle Datentypen eine Reihenfolge haben ist sehr stark. Deswegen schlagen wir vor, das Reihenfolge des Auswertungsergebnisses zu behalten.

OCL - Typhierachie – Komplexe Typen - Operation Eine Menge von Operationen ist auf den Typ-Ausdrücken definiert Beispiele: Die linke Seite von dem Pfeil deutet eine Instanz von dem gegebenen Typ an. Eine entsprechende Operation ist in der rechter Spalte gegeben.Geerbte Funktion auf Typ Collection fordert spezifische Operation von jedem Untertyp. Die passende Operation wird ausgewählt beim Entscheiden ob der Collection Ausdruck ein set, bag oder sequence ist. weitere Gruppe von Operationen --------Konstruktor zum Bilden von Literalen in OCL. Beispiel: Literal Set{2,3} ---------MkSet{2,3}. OCL Feature Operation set->union(set2:Set(T)):Set(T) bag->including(object:T):Bag(T) Collection->size: Integer union: Set(s)Set(s)Set(s) including: Bag(s)sBag(s) size: Set(s)Intege size:Sequence(s)Integer size:Bag(s)Integer

OCL und UML Klassen Modelle Die folgenden Teile eines UML Klassenmodells sind von OCL Ausdrücken ansprechbar: Classifiers: jeder Classifier führt ein Typ ein. Er ist eine Klasse oder Schnittstelle. Attribut : Die Datenfelder der Classifiers. Association: verbintet 2 oder mehr Classifiers. Operation: Methode. ( Seiteneffektfrei) Enumerations : Aufzählungstypen Wir definieren jetzt ein UML Klassenmodell als eine Struktur M = (C, , , , ) mit folgenden Bedeutungen: C ist einen Menge von Classifiers ist eine partielle Ordnung auf C, die die Generalisierungs-Hierachie der Classifiers wiederspiegelt C = {Vehicle, Car, Motorcycle, Company, RentalStation, Person} = { (Car, Vehicle),(Motorcycle,Vehicle)}

OCL und UML Klassen Modelle -         ist eine Menge von Signaturen für seiteneffektfreie Operationen, die für einen Classifier c definiert sind und Ergebnistyp s haben. Der erste Parameter deutet eine Instanz an, auf der eine Funktion angewandt wird (manchmal auch Empfänger einer Meldung genannt).

OCL und UML Klassen Modelle          ist eine Menge von Operations-Signaturen für Funktionen, die ein Objekt von Typ c zu einem entsprechenden Attributwert vom Typ s abbildet. Das Attributsymbol ist eine Element von .          ist eine Menge von Operations-Signaturen für Funktionen, die eine Instanz zurückliefern, die einem Objekt von Typ c‘ entspricht. Das Operationssymbol ist nach dem eindeutigen Rollen-Namen am Associationsende gewählt. Nach der Vielfachheit einer Association, kann das Ergebnis vom Typ s entweder c’ für einzelwertige Associationen, Set(c’) für mehrwertige Associationen oder Sequence(c’) für angeordnete Associationen sein.

OCL - Systemzustand Systemzustand zu einem bestimmten Zeitpunkt bietet einen Kontext für die Auswertung von OCL Ausdrücken. Objektinstanzen, deren Attributwerten, und die Verbindungen (Association) zwischen Instanzen

Zusamenfassung Dieser Vortrag ist eine sehr grobe Einführung in UML und OCL. Er beantwortet folgende Fragen: ----Was ist UML und OCL und was für eine Beziehung gibt es zwischen ihnen? ----Was sind Grundbestandteile von UML , wie sie in einem System funktionieren und wie man sie zusammenfügt. ----Was für Datentypen gibt es in OCL und was für Operationen gibt es auf diesen Datentypen. ----Die Verbindung von OCL und den Elementen des UML Klassenmodells und der Systemzustand.