OOP und JAVA (Vorlesung 11-13)



Ähnliche Dokumente
Teil 3 - Java. Grundlagen Klassen, Attribute Methoden

OOP und JAVA. Modul: Programmierung B-PRG Grundlagen der Programmierung II. Professur für Datenbanken und Informationssysteme (FB 12)

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

PRG2. Teil II: OOP und JAVA Teil III: Datenbanken. Modul: Programmierung B-PRG Grundlagen der Programmierung II

JAVA und OOP. Modul: Programmierung B-PRG Grundlagen der Programmierung II. Professur für Datenbanken und Informationssysteme (FB 12)

Programmieren I. Die Programmiersprache Java. Institut für Angewandte Informatik

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Vorkurs Informatik WiSe 15/16

Einführung in Eclipse und Java

Applications Applets (eingeschränkte Rechte)

Programmieren I. Die Programmiersprache Java. Institut für Angewandte Informatik

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Java Einführung Programmcode

Java: Vererbung. Teil 3: super()

Programmieren I. Die Programmiersprache Java. Institut für Angewandte Informatik

Programmieren in Java

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

3. Konzepte der objektorientierten Programmierung


Teil 2. Modul: Programmierung B-PRG Grundlagen der Programmierung II

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

Vorlesung Programmieren

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Vorlesung Informatik II

JAVA. Ein kurzer Überblick. Thomas Karp

Einführung zu den Übungen aus Softwareentwicklung 1

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Objektorientierte Programmierung. Kapitel 12: Interfaces

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Vorkurs C++ Programmierung

5. Abstrakte Klassen

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder

Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

Einführung in die Java- Programmierung

Anleitung zur Installation und Verwendung von eclipseuml 2.1.0

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Software-Engineering 2. Software-Engineering 2. Entwicklungsumgebungen (IDE) IT works. Klaus Mairon

Unified Modeling Language (UML)

EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2

Objektorientierte Programmierung OOP

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Prinzipien Objektorientierter Programmierung

OO Softwareentwicklung

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Grundlagen von Python

GameGrid mit BlueJ Seite 1

LEHRSTUHL FÜR DATENBANKEN

4. AuD Tafelübung T-C3

Java für Anfänger Teil 1: Intro. Programmierkurs Manfred Jackel

Java für C++ Programmierer

Programmierung für Mathematik (HS13)

GEONET Anleitung für Web-Autoren

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

Einführung in die Programmierung für NF

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Arbeiten mit UMLed und Delphi

C++ mit Eclipse & GCC unter Windows

Vererbung & Schnittstellen in C#

JBuilderX: Installation und Kurzanleitung (Windows)

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

JAVA als erste Programmiersprache Semesterkurs

Kapitel 6. Vererbung

Einführung in die Informatik Tools

Programmieren I. Administratives / Java Installation. Thomas Vetter, Brian Amberg, Andreas Forster. 21. September 2010 UNIVERSITÄT BASEL

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Installation und Inbetriebnahme von Microsoft Visual C Express

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

COSA. Portal Client Installation JAVA J2SE / JRE Version 1.4.2_09, Stand Copyright

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Programmieren Tutorium

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

Beuth Hochschule JDK und TextPad WS14/15, S. 1

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Eclipse 3.0 (Windows)

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Version 0.3. Installation von MinGW und Eclipse CDT

Objektorientierte Programmierung

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren

AKTUEL ZU JAVA 8 PROGRAMMIEREN IN JAVA. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen

Kapitel 6. Vererbung

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Teil 2: OOP und JAVA (Vorlesung 11)

1. Java Grundbegriffe

4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi

25 Import der Beispiele

Kapitel 6. Vererbung

Was ist EMF? Wie wird EMF eingesetzt? Was ist ecore? Das Generatormodell Fazit

.NET Code schützen. Projekt.NET. Version 1.0

Übung: Verwendung von Java-Threads

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Einführung in PHP. (mit Aufgaben)

Transkript:

OOP und JAVA (Vorlesung 11-13) Modul: Programmierung B-PRG Prof. Dot.-Ing. Roberto Zicari unter Mitarbeit von N. Hoebel und C. Schefels Professur für Datenbanken und Informationssysteme (FB 12) 27.06 / 04.07 / 11.7 2007 1

Teil 1 - Java Grundlagen Klassen, Attribute Methoden 2

Java 2 - Geschichte Ursprung: Green -Project bei der Firma Sun Microsystems 1991 Entwicklung eines Systems mit folgenden Eigenschaften: hardwareunabhängig möglichst klein Einsatzgebiet: Konsumgeräte, z.b. Umschalter für das Kabelfernsehen basierend auf C++ (objektorientiert) ohne dessen Schwierigkeiten Name: zuerst OAK (Object Application Kernel), später Java Durchbruch: Ende 1995, 1998 dann JAVA 2 3

Schlagwörter Objektorientiert Einfach Verteilt Sicher Dynamisch Robust Multithreaded Interpretiert & Plattformunabhängig 4

Java 2 - Varianten Micro Edition (J2ME) für eingebettete Systeme, PDAs, Smart Phones etc. Standard Edition (J2SE) normales JDK - Java Development Kit Enterprise Edition (J2EE) EJBs, Servlets Ab der Version Java 1.2 spricht man von Java 2! Die zur Zeit neuste Version ist Java 1.6 und ist bekannt als Edition 6, Mustang -Release. Online: Die Varianten können heruntergeladen werden unter: http://java.sun.com 5

JDK Paket Das JDK enthält Compiler, Interpreter, Debugger und Klassenbibliotheken, aber keinen Editor! Verzeichnisstruktur \jdk Stammverzeichnis \docs Dokumentation in HTML \bin Compiler und Tools \demo Beispieldateien \include Dateien für native Methoden \lib Bibliotheksdateien \src Quellcode der Bibliotheken 6

Plattformunabhängigkeit von Java Erinnerung: Übliche Übersetzungsvorgänge bei Programmiersprachen Compiler (bei Modula-2, C usw.): MODULE p; VAR n,i:integer; BEGIN FOR i:=1 TO n DO n:=n*n; END; END p. Programm (Quellcode) Compiler 00010110010 11001001001 00001110001 11111000001 Ausführung 10101010100 11001100011 11001100111 11000111001 Maschinencode Ergebnis Interpreter (bei Basic, Lisp usw.): 10 INPUT n$ 20 FOR i=1 TO 10 30 PRINT Hi,n$ 40 NEXT Anweisung Nr. i Interpreterer 00010110010 11001001001 Maschinencode Ausführung Ergebnis Nr. i 7

Plattformunabhängigkeit von Java Vorgehensweise bei Java (Java Virtual Machine) Ergebnis Java- Interpreter (i686-cpu) class Dreieck extends GeoObj { double seite,hoehe,alpha; Dreieck(double s, double h, double a) { this.seite=s; this.hoehe=h; this.alpha=a;} double berechneflaeche() { return 0.5*seite*hoehe);} } Java Compiler Java- Interpreter (Power PC) Ergebnis Java Quellcode Java Bytecode (plattformunabhängig) Java- Interpreter (SPARC) Ergebnis 8

Plattformunabhängigkeit von Java Eigenschaften der Java Virtual Machine Die Virtuelle Maschine ist eine Art Universaltranslater. (vgl. mit Raumschiff Enterprise) Der Bytecode ist der Maschinencode der Virtuellen Maschine. von der Virtuellen Maschine direkt ausführbar Die Virtuelle Maschine ist für alle gängigen Systeme verfügbar. (Windows, Solaris, Linux usw.) Die Virtuelle Maschine ist z.b. auch in WWW-Browsern integriert. Einsatz von sog. Applets möglich. 9

Arten von Java-Programmen Applikationen: normale Programme (vergleichbar mit anderen Sprachen wie Modula-2, C) eigenständig und ohne Sicherheitseinschränkungen Eine auszuführende Klasse muss eine main-methode enthalten Aufruf durch den Java-Interpreter java Applets: Java-Programme für den Einsatz in einem WWW-Browser Einbettung in eine HTML-Seite durch das <applet>- oder das <object>-tag nicht eigenständig keine main-methode erforderlich; spezielle Schnittstelle Sandbox-Prinzip / Sicherheitseinschränkungen JRE (Java Runtime Environment) Server-Anwendungen: Servlets (Java Server Pages), Enterprise Java Beans 10

Dateinamen (Endung) Quellcode auf *.java Compilierter Code auf *.class case sensitive Java unterscheidet zwischen Groß- und Kleinschreibung (auch im Quellcode)! 11

Applikationen - Entwicklungsprozess Erster Schritt: Erstellen einer Klasse Hello (in einem Editor) mit dem Namen Hello.java class Hello { public static void main(string args[]) { System.out.println( Hello Students! ); } } Zweiter Schritt: Compilieren des Quellcodes Aufruf: javac Hello.java Ergebnis: autom. Erzeugen des Bytecodes Hello.class Dritter Schritt: Evtl. Ausführen des Programms Aufruf: java Hello Ausgabe: Hello Students! (Ausgeführt wird immer die main-methode!) 12

Entwicklungsprozess Problem, die auftreten könnten beim Compilieren die Umgebungsvariablen PATH und CLASSPATH müssen gesetzt werden. Z.B. durch path=%path%;c:\jdk\bin set CLASSPATH=c:\jdk\lib Win95/98 in der Datei autoexec.bat WinNT in der Systemsteuerung -> System -> Umgebung WinXP in der Systemsteuerung -> System -> Erweitert -> Umgebungsvariablen - Linux-Bash: export=$path:/usr/share/jdk 13

Entwicklungsprozess bei der Verwendung von Paketen (package) muß der Compiler und der Interpreter über dem Verzeichnis aufgerufen werden. c:\javacode> javac c:\javacode\paket1\datei.java c:\javacode> java paket1.datei das Paket (=Verzeichnis) ist hier paket1. 14

Programmstruktur: Klassen, Methoden und Variablen class ClassName { } type variablenname = anfangswert; rückgabetype methodenname(type parameter1, ){ } Ein erstes Beispiel: class Student { int semester; int getsemester() { return semester; } 15

Klassen, Methoden und Variablen Objekt student1 erzeugen: Student student1 = new Student(); Methode aufrufen und Rückgabewert speichern: int semanzahl = student1.getsemester(); Konstruktor: Student() { } Student(int semester) { } 16

Applets Beispiel: package simpleapplet; import java.awt.graphics; class HelloWorld extends java.applet.applet { public void paint (Graphics g) { g.drawstring( Hallo Welt!, 10, 10); } } 17

Einbindung des Applet in HTML <html> <body> <applet codebase = "." code = "simpleapplet.helloworld.class" width = "400" height = "300" > </applet> </body> </html> 18

Ausführen des Applets 19

Java Entwicklungsumgebungen Eine Entwicklungsumgebung (Integrated Development Environment IDE) hilft dem Entwickler beim Erstellen und Debuggen von Programmen. Beispiele für Java Entwicklungsumgebungen: Web Sphere von IBM (basiert auf Eclipse) JBuilder von Borland Sun ONE Studio von Sun Microsystems (basiert auf NetBeans)... und viele mehr! 20

OpenSource: Eclipse 3.1 21

Eclipse Eclipse 3.x unter: www.eclipse.org PlugIn Omondo für UML www.omondo.de Eclipse UML free Edition!!! 22

Java - API - Dokumentation http://java.sun.com/j2se/1.5.0/docs/api/ 23

Java API: Klasse Applet 24

Java API: Klasse Applet 25

Java API: Klasse Applet 26

Literatur zu Java Java Homepage Sun: http://java.sun.com Java API Specification: http://java.sun.com/javase/6/docs/api/ Java Compiler JDK 5.0 und Virtuelle Maschine JRE 5.0: http://java.sun.com/javase/downloads/index.jsp Java Tutorial: http://java.sun.com/developer/onlinetraining/new2java/index.html Horstmann, Cornell: "Core Java 2, Band 1", Addison-Wesley Java News: http://www.onjava.com/ Reading: Thinking in Java 3 von Bruce Eckel!!! 27

Teil 2 OO Einführung in die Objektorientierung 28

Objektorientierung Das Objektmodell beschreibt die Welt als eine Menge interagierender Objekte. 29

Kurze Wiederholung von: Objekt Klasse Attribute Methoden Identität eines Objektes Lebenszeit eines Objektes Vererbung 30

Objekt Ein Objekt (Instanz) ist eine individuelle, benennbare reale oder abstrakte Einheit mit einer wohldefinierten Rolle. eine klar abgrenzbare Einheit mit Merkmalen (Zustand und Verhalten) und einer Identität. eine Ausprägung einer Klasse. eine gekapselte Datenstruktur, die zur Laufzeit des Programms Speicherplatz belegt und die nur über die Operationen der definierten Schnittstelle manipuliert werden kann. 31

Klasse Eine Klasse (Typ, Schablone) ist die Spezifikation einer Menge von Objekten mit gleicher Struktur und gleichem Verhalten ( Schablone ). eine Realisierung eines abstrakten Datentyps (ADT). ein benutzerdefinierter Typ in einer objektorientierten Programmiersprache. eine zur Compilezeit des Programms notwendige Typspezifikation. 32

Beispiele Klasse PKW Geometrische Formen DVD Objekte (Instanzen) mein Auto dein Auto das Auto mit dem Kennzeichen F-CB 2000 usw. ein Kreis mit dem Radius 5 und Mittelpunkt (42,17) eine Pyramide mit Grundfläche 3x4 und Höhe 6 usw. Mr. and Mrs. Smith -DVD King Kong -DVD 33

Attribute und Zustand Die Attribute eines Objektes legen die Eigenschaften und Zustände des Objektes fest. Der Zustand eines Objektes ist die Gesamtheit der Attribute eines Objektes plus ihre momentanen Werte. PKW DA-XY 123 F-CB 2000 Typ Farbe km/h 34

Methoden Methoden sind auf einem Objekt ausführbare Operationen. werden durch eintreffende Nachrichten ausgelöst. können den Objekt-Zustand verändern. werden innerhalb einer Klasse definiert. Es gibt mehrere Arten von Methoden: Modifikation ändert Zustand Selektion liest Zustand Iteration wiederholte Modifikation oder Selektion Konstruktion kreiert ein Objekt und initialisiert Zustand Destruktion löscht Zustand und zerstört ein Objekt 35

Verhalten eines Objektes Das Verhalten eines Objektes sind die Aktionen und Reaktionen des Objektes. wird durch die Methoden der Klasse des Objekts realisiert. wird durch den Aufruf der Methoden verursacht. F-CB 2000 PKW Typ Farbe km/h DA-XY 123 VW Rot 60 BMW Gelb 100 beschleunigen() bremsen() 36

Identität eines Objektes Objekte sind mittels Referenz eindeutig identifizierbar. Objekte haben eine Identität und meistens einen oder mehrere Namen bzw. Referenzen. Objekte belegen einen Teil des Speichers. Der Zustand eines Objektes kann sich ändern, nicht seine Identität. Gleicher Zustand (also der gleiche Wert) bedeutet nicht gleiche Identität! Dies ist besonders bei Vergleichsoperationen zu beachten. 37

Identität eines Objektes deinauto Referenz 1 keine Referenzen meinauto Referenz 2 Objekt mit zwei Namen und zwei Referenzen Objekt ohne Namen Ein Objekt ohne Namen besitzt zwar eine Identität, ist aber nicht (mehr) erreichbar Garbage Collection. 38

Lebenszeit von Objekten Die Lebenszeit eines Objektes ist die Zeit zwischen der Kreierung des Objektes und dem Löschen des Objektes (bzw. der Löschung der letzten Referenz) mit anschließender Garbage Collection. Garbage Collection Java gibt automatisch den Speicher unbenutzter Objekte frei! Hat man die Referenzen vieler Objekte auf NULL gesetzt, kann man mit System.gc() der Virtuellen Maschine den Einsatz des GarbageCollectors empfehlen. System.gc() sollte jedoch nur sehr sparsam verwendet werden! 39

Vererbung (Inheritance) in der OOP Eigenschaften der Vererbung von einer Oberklasse zu seinen Unterklassen Die Unterklasse hat alle Merkmale der Oberklasse und ist ihr damit ähnlich. Sie kann die geerbten Attribute und Methoden unverändert benutzen oder neu definieren (überschreiben). Eine Unterklasse besitzt im Allgemeinen zusätzliche Attribute und Methoden. Sie ist eine Spezialisierung, Konkretisierung und Erweiterung ihrer Oberklasse. Eine Unterklasse befindet sich auf einem niedrigeren Abstraktionsgrad als die Oberklasse. Die Vererbung ist transitiv. Eine Unterklasse kann selbst wieder Oberklasse sein. Dadurch ergibt sich eine Baumstruktur, die so genannte Vererbungsstruktur oder Klassenhierarchie. 40

Ein Beispiel für die Vererbung aus der Praxis... 41

Beispiel für eine Klassenhierarchie (1) Kraftfahrzeug Typ, Farbe, kmh beschleunigen() bremsen() Kraftfahrzeug ist eine Klasse mit den drei Attributen Typ, Farbe und kmh und den beiden Methoden beschleunigen() und bremsen(). Es gibt aber auch spezielle Kraftfahrzeuge, die ein zusätzliches, gemeinsames Merkmal haben. 42

Beispiel für eine Klassenhierarchie (2) Kraftfahrzeug Typ, Farbe, kmh beschleunigen() bremsen() LKW anhängen() LKW ist eine Unterklasse von Kraftfahrzeug. Sie erbt alle Eigenschaften von ihrer Oberklasse, hat aber die zusätzliche Methode anhängen(). Es gibt auch Kraftfahrzeuge, die keine LKWs sind. 43

Beispiel für eine Klassenhierarchie (3) Kraftfahrzeug Typ, Farbe, kmh beschleunigen() bremsen() Omnibus Stehplätze PKW LKW anhängen() Omnibus, PKW und LKW sind jeweils Unterklassen der Klasse Kraftfahrzeug. LKW hat eine zusätzliche Methode, Omnibus ein zusätzliches Attribut. Die drei Unterklassen erben alle Merkmale der Oberklasse Kraftfahrzeug. Aber es gibt es auch mehrere, verschiedene Arten von PKWs, die besondere Merkmale haben. 44

Beispiel für eine Klassenhierarchie (4) Kraftfahrzeug Typ, Farbe, kmh beschleunigen() bremsen() Omnibus Stehplätze PKW LKW anhängen() Limousine Cabriolet Verdeck öffnen() Cabriolet und Limousine können zusätzliche Methoden bzw. Attribute haben. Beide erben alle Merkmale von PKW und damit auch von Kraftfahrzeug. Eine solche Hierarchie lässt sich beliebig fortsetzen. 45

Mehrfach-Vererbung Fahrzeug Typ, Farbe, kmh beschleunigen() bremsen() Schiff PKW LKW anhängen() Amphibien- Fahrzeug Mehrfach-Vererbung ist in Java nicht möglich! 46

Study By Yourself! Beschäftigen Sie sich insbesondere mit allen Stellen, die im Skript mit diesem Symbol markiert sind. 47

Teil 3 - UML Einführung in UML Anwendungsfalldiagramme 48

Was ist ein Modell? Ein Modell ist eine Vereinfachung der Realität. Wir könne ein komplexes System in seiner Gesamtheit nicht erfassen. Wir bauen deshalb Modelle, um das zu entwickelnde System besser zu verstehen. Prinzip teile und herrsche 49

Warum modellieren? Beispiel: Der Bau einer Hundehütte Man braucht nur einen Hammer, Nägel und ein paar Bretter, baut diese zusammen und der Hund ist glücklich. Kein Modellieren nötig! 50

Warum modellieren? Beispiel: Der Bau eines Hochhauses Ohne Planung und Arbeitsteilung unmöglich Viele Auflagen Sehr hohe Kosten Ansprüche der Mieter Modellieren unumgänglich! 51

Ziele der Modellierung Modelle helfen, ein System zu visualisieren, so wie es ist oder wie wir es wünschen. Modelle ermöglichen uns, die Struktur oder das Verhalten eines Systems zu spezifizieren. Modelle liefern uns eine Schablone, die uns beim Konstruieren eines Systems anleitet. Modelle dokumentieren die getroffenen Entscheidungen. UML (Unified Modeling Language) ist eine Standardsprache zum Entwerfen von Softwaremodellen. 52

Modellieren mit UML UML ermöglicht objektorientiertes Modellieren. Da UML standardisiert ist, können die Modelle von anderen Anwendern verstanden werden. UML ermöglich Forward-Engineering : Aus einem UML-Modell kann der Code einer Programmiersprache erzeugt werden (Java, C++...). UML ermöglich Reverse-Engineering : Aus dem Code einer Implementierung kann ein entsprechendes UML-Modell erzeugt werden. 53

Modell-Typen in UML Es ist sinnvoll, für die verschiedenen Sichtweisen auf ein System unterschiedliche Modelle zu verwenden. Programmierer Hier: Statiker Kunden Klassendiagramm Anwendungsfalldiagramm 54

Sichtweisen auf das System In UML können verschiedene Sichtweisen auf ein System anschaulich modelliert werden. Für den Anwender (Kunde) existiert das Anwendungsfalldiagramm. Das Klassendiagramm repräsentiert ein Model für den Code eines Systems und ist somit sehr hilfreich für den Programmierer. Aber es ist sehr technisch und deshalb nicht für alle Anwender geeignet. 55

Multiple Diagramme in UML 2.0 56

Einführendes Beispiel Wir wollen ein einfaches Modell für eine Flaschen-Pfandmaschine erstellen. Die Maschine soll eine Flasche aufnehmen, die Flasche prüfen und falls diese akzeptiert wurde, den Pfand ausgeben. Beispiel für eine reale Pfandmaschine z.b. im Aldi-Supermarkt. 57

Flaschen-Pfandmaschine Grundlegende Funktionsweise: Leergut Kunde Geld oder Bon Pfandmaschine 58

Klassendiagramm Pfandmaschine geld: int zahle(betrag: int) Flaschen-Pfandmaschine anzflaschen: int nimm_flasche() 0...* 0,1 nimmt auf Flasche groesse: float 59

Anwendungsfalldiagramm Beispiel Pfandmaschine Pfandmaschine Kunde Technikerin 60

Zustandsdiagramm (START) (ZUSTAND) bereit Flasche am Sensor Flasche abgearbeitet Flasche aufnehmend Fehler aufgetreten (ÜBERGANG) Fehler behoben Fehler aufgetreten (ENDE) Fehler nicht behebbar Fehler bearbeitend 61

Sequenzdiagramm Pfandmaschine Flaschenmechanik ZEIT nimmeineflasche() habeflasche() (acknowledgement) 62

Informationen zu UML UML wurde aus mehreren Modellierungssprachen von Grady Booch, Jim Rumbaugh und Ivar Jacobson entwickelt und ist seit dem Jahr 1997 von der OMG (Object Management Group) standardisiert. Momentan ist die Version 2.1.1 aktuell: http://www.omg.org/technology/documents/formal/uml.htm Einige interessante Links zu UML: UML Resource Page: www.uml.org Rational: http://www-306.ibm.com/software/rational/uml/ OMG Homepage: www.omg.org 63

Literatur zu OO und UML Heide Balzert: Lehrbuch der Objektmodellierung, Spektrum AV B. Oestereich, C. Weiss, : Objektorientierte Geschäftsprozessmodellierung mit der UML dpunkt.verlag Grady Booch, Jim Rumbaugh, Ivar Jacobson: Das UML Benutzerhandbuch, Addison-Wesley Grechenig, Zuser: SE mit UML und dem Unified Process, Pearson 64

Tools für Diagramme in UML 2 Übersicht 100 UML Tools: www.jeckle.de/umltools.htm Generierung von Code aus UML: z.b. Eclipse Omondo www.omondo.de 65

Study By Yourself! Beschäftigen Sie sich insbesondere mit allen Stellen, die im Skript mit diesem Symbol markiert sind. 66