Unified Modelling Language

Ähnliche Dokumente
Einführung. Einführung

Java-Programmierung mit NetBeans

IT kompakt. UML 2 kompakt. mit Checklisten. Bearbeitet von Heide Balzert

Java, OO und UML Fortsetzung

Vorlesung Software Engineering I

eingebetteter Systeme

Automatisierung industrieller. Workflows. Teil B: Die Spache UML

7. Objektorientierung. Informatik II für Verkehrsingenieure

Entwicklung verteilter echtzeitfähiger Sensorsysteme

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Objektorientierte Modellierung

Am Anfang werden die Attribute deklariert public class Kreis {

Objektorientes Design & Programm

Vorlesung Informatik II

Objektorientierte Modellierung (1)

NACHRICHTENTECHNISCHER SYSTEME

Programmieren in Java

Tafelübung 07 Algorithmen und Datenstrukturen

Klassen mit Instanzmethoden

Theorie zu Übung 8 Implementierung in Java

Herzlich willkommen!

Java Einführung Objektorientierte Grundkonzepte

Repetitorium Informatik (Java)

Analyse der Klasse Konto

Algorithmen und Datenstrukturen 06

Klassendiagramm. (class diagram)

Programmieren in Java

Analyse und Modellierung von Informationssystemen

Objektorientierung. Objekte

Objektorientierte Konzepte und Notation in UML. Objekt Klasse Attribut Operation

7. Übung Informatik II - Objektorientierte Programmierung

1 Klassen und Objekte

Objektorientierte Analyse (OOA) Strukturmodellierung

Philipp Güttler Objektorientierung und komplexe Datentypen

Modellierungstipps für die Anwendungsfallmodellierung

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Objektorientierung

3. Klassen Statische Komponenten einer Klasse. Klassenvariablen

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

Java - Vererbung. Personen. Leibniz Universität IT Services Anja Aue

Java. Prof. Dr. Stefan Enderle NTA Isny

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke

Aufgabe 1: Strukturmodellierung mittels Klassendiagramm Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem Klassendiagramm beschäftigt.

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

SE Besprechung. Übung 1 Programmverständnis, Dokumentation

Begriffe 1 (Wiederholung)

15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595

Klassenmethoden. Klassenvariablen. Für das Auslesen des Studentenzählers definieren wir eine öffentliche Klassenmethode:

Vorlesung "Software-Engineering"

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

Objekte und Klassen. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E.

Software Engineering. 6. Klassendiagramme. Franz-Josef Elmer, Universität Basel, HS 2012

Prof. W. Henrich Seite 1

Einstieg in die Informatik mit Java

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil

Software Engineering Klassendiagramme Einführung

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

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

Einführung in die Programmiersprache Java II

Programmiertechnik Objektorientierung

Objektorientierte Programmierung OOP

Objektorientierte Programmierung III

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

3 Objektorientierte Konzepte in Java

Die Unified Modeling Language (UML)

UML. Weiteres Vorgehen im Projekt

Object Constraint Language. 30. Oktober 2012

Grundbegriffe der Objektorientierung

UML konzentriert. Eine kompakte Einführung in die Standard-Objektmodellierungssprache. Martin Fowler. ADDISON-WESLEY An imprint of Pearson Education

UML Eine kurze Einführung

Klassen können bekanntlich aus zwei Komponententypen bestehen, nämlich Attributen und Methoden.

Geoinformation I Datenmodellierung

Kurzeinführung in UML

Algorithmen und Datenstrukturen 07

Einführung in die OOP mit Java

Unified Modelling Language

Objektorientierung. Marc Satkowski 20. November C# Kurs

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

Vorlesung Programmieren

Einstieg in die Informatik mit Java

Programmieren in Java

Einstieg in die Informatik mit Java

UML Eine kurze Einführung

Objektorientierte Programmierung

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Propädeutikum Programmierung in der Bioinformatik

Programmieren I. Strategie zum Entwurf von Klassen. Vorlesung 5. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Programmieren in Java

1.4 Attribute die objektorientierten Datenfelder

Implementieren von Klassen

Programmierkurs Java. Vererbung. Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck

C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren

Einführung in die Programmierung mit Java. Hörsaalübung

Gliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D.

Algorithmen und Datenstrukturen II

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

eingebetteter Systeme

Einführung in die Objektorientierung (OO)

Statische Methoden, Vererbung, Benutzereingabe

Einführung in die Programmierung

Transkript:

Proseminar Systemmodellierung mit SysML Martin Fobian 04.05.2010 Unified Modelling Language Klassendiagramm Objekt, Klasse, Operation 1

Überblick 1. Objekt 2. Klassen 3. Attribute 4. Operationen 2

1. Objekt 1. Definition 2. Notation 3. Beispiel 4. Objektdiagramm 3

Definition Objekt modelliert Dinge ( z.b. Auto ) Personen ( z.b. Student ) Begriffe ( z.b. Krankheit ) 4

Definition Objekt eindeutig indentifizierbar Zustand (state) Attribute und Attributwerte Beziehungen zu anderen Objekten Verhalten (behaviour) verfügbare Operationen 5

Notation Notation von Objekten Rechteck, unterteilt in compartments 1. Compartment: objektname:klasse objektname :Klasse (anonymes Objekt) obj1:klasse obj1:klasse obj2 obj2 Objekt Objektnamen kleingeschrieben! Klassennamen großgeschrieben!! :Klasse beides unterstrichen!!! 6 :Klasse

Notation obj1 name : String = Ben Objekt Notation von Objekten 2. Compartment: Optional Im Kontext relevante Attribute und Werte attribut : Typ = Wert attribut = Wert attribut obj1 name = Ben name obj1 7

Beispiel Objekt Ben 24 Jahre Student Jakob 28 Jahre Mitarbeiter Nadine 23 Jahre Studentin 8

Beispiel Objekt :Student name = Ben alter = 24 hauptfach = Informatik :Mitarbeiter name = Jakob alter = 28 vertragbis = 31.03.2011 :Student name = Nadine alter = 23 hauptfach = Biologie 9

Objektdiagramm Objekt Momentaufnahme eines Systems: Objekte (Attribute und Attributwerte) Beziehungen zwischen Objekten :Student :Student :Mitarbeiter name = Nadine alter = 23 hauptfach = Biologie name = Ben alter = 24 hauptfach = Informatik name = Jakob alter = 28 vertragbis = 31.03.2011 10

2. Klassen 11

2. Klassen 1. Definition 2. Klassendiagramm 3. Notation 4. Abstrakte Klassen 12

Definition Klassen Menge von Objekten mit gleicher Struktur und gleichem Verhalten Attribute beschreiben Struktur Operationen beschreiben Verhalten Klassennamen: möglichst aussagekräftige Substantive 13

Klassendiagramm Klassen stellt Klassen und deren Beziehungen dar Klassen als Rechteck dargestellt unterteilt in (beliebig viele) Compartments Inhalt der Compartments prinzipiell frei wählbar Konvention: Klassenname Attribute Operationen fehlende Compartments bedeuten nicht fehlende Informationen; verschiedene Sichten möglich!!! KlasseA KlasseA 14 attribut_1 attribut_2 attribut_x attribut_y

Notation Klassen 1. Compartment: Klassenname Subsantiv im Singular beginnt mit Großbuchstabe zentriert, fett gedruckt innerhalb des Pakets eindeutig bei Bedarf qualifizierter Name Paket::Klassenname Klassenname Mitarbeiter Paket::Klassenname 15

Notation 2. Compartment: Attribute Klassen Attribute Klassenname 3. Compartment: Operationen Attribute Operationen Klassenname Operationen Klassenname 4+ Compartment: beliebige Informationen 16

Abstrakte Klassen Klassen können nicht instanziiert werden Eigenschaften und Verhalten verschiedener Arten von Objekten nicht in der Klasse selbst implementiert kursiver Klassenname oder Schlüsselwort abstract Maschine Maschine {abstract} 17

3. Attribute 18

3. Attribute 1. Definition 2. Notation 3. Klassenattribute 19

Definition Attribute Eigenschaften von Klassen sind getypt gleiche Attribute in allen Instanzen einer Klasse Attributwerte können sich unterscheiden 20

Notation Attribute konventionell im zweiten Compartment Syntax: Sichtbarkeit / Name : Typ Multiplizität = Anfangswert {Einschränkungen} mit Ausnahme von Name sind alle Angaben optional 21

Notation. Sichtbarkeit Sichtbarkeit / Name : Typ Multiplizität = Anfangswert {Einschränkungen} Attribute Sichtbarkeit (visibility) + public ~ package # protected - private + attr1 ~ attr2 # attr3 - attr4 Klasse in OOP oftmals Attribute private Zugriff über Operationen 22

Notation. Abgeleitete Attribute Sichtbarkeit / Name : Typ Multiplizität = Anfangswert {Einschränkungen} Attribute Abgeleitete Attribute (derived attributes) können jederzeit aus anderen Attributwerten der Klasse errechnet werden keine neuen Informationen Student Geburtsdatum / alter länge breite höhe / volumen Würfel 23

Notation. Name Sichtbarkeit / Name : Typ Multiplizität = Anfangswert {Einschränkungen} Attribute Name: Substantive (Konvention) beginnt mit Kleinbuchstaben danach (fast) alle Zeichen erlaubt innerhalb einer Klasse eindeutig Baum umfang des Stamms art höhe nicht erlaubt: xy : Integer xy : Integer Klasse Klasse xy : Integer xy : Boolean Klasse x:y : Integer 24

Notation. Typ Sichtbarkeit / Name : Typ Multiplizität = Anfangswert {Einschränkungen} Typ: Datentypen Werte besitzen keine Identität Stereotype <<datatype>> Primitive Datentypen besitzen keine Struktur (Attr./Oper.) Stereotype <<primitive>> Boolean / String / Integer / UnlimitedNatural Aufzählungstypen Stereotype <<enumeration>> <<primitive>> Integer <<enumeration>> Farbe blau grün rot fach zensur <<datatype>> Note Klasse attr1 : Integer Klassen attr2 : Farbe 25 attr3 : Klasse attr4 : Note Attribute

Notation. Multiplizität Sichtbarkeit / Name : Typ Multiplizität = Anfangswert {Einschränkungen} Attribute Multiplizität (multiplicity): mehrere Werte für ein Attribut [untere Schranke.. obere Schranke] Standard: [1..1] = [1] beliebig viele: [*] = [0..*] Optionalität: [0..1] allgemein: [m..n] fach zensur <<datatype>> Note Student name : String [1] noten : Note [*] vordiplom : Vordiplom [0..1] Vordiplom 26

Notation. Anfangswert Sichtbarkeit / Name : Typ Multiplizität = Anfangswert {Einschränkungen} Attribute Anfangswert: Wert, der beim Erzeugen eines Objekts zugewiesen wird Student name : String fachsemester : Integer = 1 27

Notation. Eigenschaftswerte Sichtbarkeit / Name : Typ Multiplizität = Anfangswert {Einschränkungen} Eigenschaftswerte / Einschränkungen Attribute Eigenschaftswerte: Spezielle Eigenschaften / Merkmale {readonly} : Attribut darf nicht verändert werden {ordered} : Elemente sind geordnet [1,2,3,3,6,6] {unique} : jedes Element muss einzigartig sein [3,1,4,2,6] Student name : String imma_nr : String {readonly} noten : Note [*] {unique} 28

Notation. Einschränkungen Sichtbarkeit / Name : Typ Multiplizität = Anfangswert {Einschränkungen} Attribute Eigenschaftswerte / Einschränkungen Einschränkungen (constraints): Zusicherungen, die immer erfüllt sein müssen Formulierung z.b. in OCL, aber auch natürliche Sprache Student name : String geburtsdatum : Datum immatrikulation : Datum { geburtsdatum < immatrikulation } 29

Klassenattribute Attribute Klassenattribute / statische Attribute Attribut der Klasse existiert bevor Objekte instanziiert werden ein Attributwert für alle Objekte werden unterstrichen dargestellt Student name : String anzahl : Integer 30

4. Operationen 31

4. Operationen 1. Definition 2. Notation 3. Eindeutigkeit 4. Abstrakte Operationen 5. Aktive Klassen 32

Definition beschreiben das Verhalten einer Klasse bzw. deren Objekte Operation = bestimmtes Verhalten, Signatur der Methode Methode = Implementation dieses Verhaltens Operationen alle Objekte einer Klasse haben die gleichen Operationen Operation kann auf Attribute zugreifen und diese ändern Möglichkeit mit Objekten zu interagieren 33

Definition Objektoperationen werden auf existierendes Objekt angewendet Manipulation der Attributwerte o.ä. Klassenoperationen wird auf Klasse angewendet z.b. Manipulation von Klassenattributen z.b. Konstruktor (neues Objekt erzeugen, Initialisierungen) unterstrichen Operationen Student nächtessemester() 34

Notation Operationen üblicherweise im 2. Compartment Syntax: Sichtbarkeit Name ( Parameter ) : Rückgabetyp {Einschränkungen} Klasse Operationen 35

Notation. Sichtbarkeit / Name Sichtbarkeit Name ( Parameter ) : Rückgabetyp {Einschränkungen} Sichtbarkeit analog zu Attributen auch hier optional Operationen Name analog zu Attributen sollte Verb enthalten (Konvention) 36

Notation. Parameter Sichtbarkeit Name ( Parameter ) : Rückgabetyp {Einschränkungen} Operationen Parameter Syntax: Richtung Name : Typ [Multiplizität] = DefaultWert {Einschränkungen} 37

Notation. Parameter Sichtbarkeit Name ( Parameter ) : Rückgabetyp {Einschränkungen} Richtung Name : Typ [Multiplizität] = DefaultWert {Einschränkungen} Operationen Richtung in (Standard) out inout return 38

Notation. Parameter Sichtbarkeit Name ( Parameter ) : Rückgabetyp {Einschränkungen} Richtung Name : Typ [Multiplizität] = DefaultWert {Einschränkungen} Operationen Name / Typ / Multiplizität / Einschränkungen analog zu Attributen DefaultWert Wert des Parameters, falls kein Wert explizit übergeben wurde 39

Notation. Rückgabetyp Sichtbarkeit Name ( Parameter ) : Rückgabetyp {Einschränkungen} Operationen Rückgabetyp optional Datentyp / Klasse void, falls keine Rückgabe 40

Notation. Einschränkungen Sichtbarkeit Name ( Parameter ) : Rückgabetyp {Einschränkungen} Operationen Einschränkugen Preconditions zu erfüllende Bedingungen zur Aktivierung der Operation Postconditions Zusicherung über Zustand des Systems nach der Ausführung Body conditions Einschränkungen des Rückgabewerts 41

Eindeutigkeit Eindeutigkeit Operationen müssen in einer Klasse eindeutig sein unterscheiden sich in Name der Operation Parameterliste (Typ) Rückgabetyp Student Operationen + noteeintragen(in note: Note):void + noteeintragen(in fach: String, in Zensur: Integer) + noteeintragen(in note: Note):Boolean + noteeinschreiben(in note: Note):void 42

Abstrakte Operationen Operationen Abstrakte Operationen in abstrakten Klassen es existiert keine Methode, nur die Signatur Operation kann nicht aktiviert werden 43

Aktive Klassen Operationen Objekte aktiver Klassen = aktive Objekte ohne externe Aktivierung aktiv als Prozess ausgeführt Aktivitätsdiagramm Klasse <<activeclass>> Klasse Klasse 44

ProgrammPartner kundenanzahl: Integer ServiceStufe name: String Service bedingung: Boolean pluspunkte: Integer minuspunkte: Integer beschreibung: String BonusProgramm aufnehmen(k: Kunde) Mitgliedschaft BonusKonto punkte:integer plus(i:integer) minus(i:integer) istleer(): Boolean Kunde name: String titel: String geburtstag: Datum geschlecht: Geschlecht alter(): Integer Operationen KundenKarte now Datum programm(): liegtvor(d: Datum):Boolean BonusProrgramm liegtnach(d: Datum):Boolean =(d: Datum): Boolean Transaktion punkte: Integer datum: Datum programm(): BonusProrgramm gültig: Boolean gültigab: Datum gültigbis: Datum farbe: enum {silber, gold} druckname: String 45

Quellen Lehrbuch der Objektmodellierung Heide Balzert Spektrum, 2005 UML 2.0 in a Nutshell Dan Pilone, Neil Pitman O Reilly, 2005 UML 2 für Studenten Harald Störrle Pearson, 2005 46