runqiu song 24.06.03 projektgruppe intelligente datenbank im ss03 einführung in die uml-...
TRANSCRIPT
![Page 1: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/1.jpg)
Runqiu Song 24.06.03
Projektgruppe Intelligente Datenbank im SS03
Einführung in die UML-Object-Constraint-Language OCL
![Page 2: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/2.jpg)
Überblick
UML – MotivationUML - Was ist es?UML – EigenschaftenUML – BestandteileUML – BeziehungenUML – Bestandteile – StrukturelementeUML – Bestandteile – VerhaltensweisenUML – Bestandteile - Gruppierungen und KommentareOCL – EinführungOCL – typisches ProblemOCL – BeispielausdrückeOCL – Beispielausdrücke – AnfragenOCL – TyphierarchieOCL – Typhierachie – OperationenOCL - Typhierachie – Komplexe TypenOCL - Typhierachie – Komplexe Typen – OperationOCL und UML Klassen ModelleOCL - Systemzustand
![Page 3: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/3.jpg)
UML - MotivationUnternehmensinterne InformationssystemeBanken und FinanzdienstleistungenTelekommunikationTransportwesenVerteidigung/Luft- und RaumfahrtEinzelhandelMedizinelektronikWissenschaftVerteilte Web-basierte Dienste
=> Komplexe Softwaresysteme erfordern besondere Sorgfalt bei der Entwicklung
![Page 4: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/4.jpg)
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){
...
}
}
![Page 5: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/5.jpg)
UML - Eigenschaften 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
![Page 6: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/6.jpg)
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.
![Page 7: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/7.jpg)
UML – Bestandteile - Beziehungen In UML gibt es vier Arten von Beziehungen Abhängigkeit
Assoziation
Arbeitgeber Arbeitnehmer
Generalisierung
Realisierung
0..1 *
![Page 8: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/8.jpg)
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.
![Page 9: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/9.jpg)
UML – Bestandteile - Strukturelemente Klasse ist eine Beschreibung einer Menge von
Objekten
Schnittstelle Ist eine Zusammenfassung von Operationen,Die einen Dienst einer Klasse oder
KomponenteSpezifizieren.
ISpelling
Windowursprunggrößeöffnen()schließen()
![Page 10: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/10.jpg)
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
![Page 11: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/11.jpg)
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()
MercedesIfahrzeug
![Page 12: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/12.jpg)
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.
![Page 13: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/13.jpg)
UML – Bestandteile - Strukturelemente
![Page 14: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/14.jpg)
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
![Page 15: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/15.jpg)
UML – Bestandteile - Verhaltensweisen
![Page 16: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/16.jpg)
UML – Bestandteile - Verhaltensweisen Automat Das Verhalten einer einzelnen Klasse oder einer
Kollaboration von Klassen kann mit einem Automaten spezifiziert werden.
![Page 17: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/17.jpg)
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
![Page 18: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/18.jpg)
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
![Page 19: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/19.jpg)
OCL – typisches Problem
Dieses Beispiel liefert wegen unterschiedlichen Iterationsreihenfolgen verschiedenen Ergebnisse.
rs : RentalStation
rs.employee->iterate ( P:Person; names: String = “ “ | names.concat(p.lastname))
![Page 20: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/20.jpg)
OCL – Beispielausdrücke
Beispiele
Person self.age > 0
self --- Instanz von Typ Person
RentalStationSelf.employee->forAll ( p | p.income(„98/03/01“) >2000 )
forAll testet ,ob jede Element einer collection ein Prädikat erfüllt.
![Page 21: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/21.jpg)
OCL – Beispielausdrücke - Anfragen
Company self.vehicle select( v|v.registration.substring(1,3) = „R24“)
![Page 22: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/22.jpg)
OCL - Typhierarchie
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.
![Page 23: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/23.jpg)
OCL – Typhierachie - Operationen Operationenen auf Basisdatentypen{,: BooleanBooleanBoolean,:BooleanBoolean,...}{+,-,*, /,div,mod,max: IntegerIntegerInteger,...}{,<=,>=,>: IntegerIntegerBoolean,...}{+,-,*, /,max,min: RealRealReal,floor : RealInteger,...}{,<=, >=, >,:RealRealBoolean,...}{concat: StringStringString,size : StringInteger,...}
undefinierte Werte als Parameter -----einen undefinierten Wert als Ergebnis
Ausnahme----- boolschen Operationen . False ------immer False True -------immer True. Ausnahme ------- forAll und exits
![Page 24: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/24.jpg)
OCL - Typhierachie – Komplexe TypenKomplexe 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.
![Page 25: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/25.jpg)
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 Operationset->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)sBag(s)size: Set(s)Integesize:Sequence(s)Integersize:Bag(s)Integer
![Page 26: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/26.jpg)
= { (Car, Vehicle),(Motorcycle,Vehicle)}
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
OCL und UML Klassen Modelle
ATT c Opc ASSOCc
C = {Vehicle, Car, Motorcycle, Company, RentalStation, Person}
![Page 27: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/27.jpg)
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).
Opc sc ssW nC
...:1
}:,Re:{ Pr IntegerDatePersonalCompany incomeicestockOp personCompanyc
![Page 28: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/28.jpg)
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.
ATT cscac :
Aattr
ac
ASSOCcscr cc :',
Aroler
![Page 29: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/29.jpg)
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
![Page 30: Runqiu Song 24.06.03 Projektgruppe Intelligente Datenbank im SS03 Einführung in die UML- Object-Constraint- Language OCL](https://reader035.vdocuments.pub/reader035/viewer/2022062818/570491c51a28ab14218da800/html5/thumbnails/30.jpg)
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.