Teil II: OOP und JAVA (Vorlesung 10)



Ähnliche Dokumente
Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler

Software Engineering Interaktionsdiagramme

Java: Vererbung. Teil 3: super()

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

Use Cases. Use Cases

Einführung in die Programmierung

Software Engineering Klassendiagramme Assoziationen

Softwaretechnologie -Wintersemester 2011/ Dr. Günter Kniesel

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Test-Driven Design: Ein einfaches Beispiel

Objektorientierte Programmierung

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

Prüfung Software Engineering I (IB)

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

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

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

Probeklausur Softwareengineering SS 15

Vorkurs C++ Programmierung

SEP 114. Design by Contract

Anforderungen an die HIS

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

Vorlesung Programmieren

BIF/SWE - Übungsbeispiel

Software Entwicklung II (SS12)

Übung 1. Ziel: Statisches Modell (Klassendiagramm) aus allgemeiner Beschreibung erstellen.

Projekt AGB-10 Fremdprojektanalyse

Objektorientierte Programmierung

Use Cases. Die Sicht des Nutzers. Fortgeschrittenenpraktikum SS 2004

Java Projekt: Tic Tac Toe + GUI

Rhapsody in J Modellierung von Echtzeitsystemen

Auswahl alter Klausuraufgaben aus einer ähnlichen Vorlesung Maßgeblich für die Prüfung sind die Vorlesungsinhalte!

Software Engineering. 3. Anforderungsanalyse. Franz-Josef Elmer, Universität Basel, WS 2006/07

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

Java Kurs für Anfänger Einheit 5 Methoden

Programmieren in Java

Einführung in die Programmierung für Wirtschaftsinformatik

WhiteStarUML Tutorial

Der große VideoClip- Wettbewerb von Media Markt.

Übung 4. Musterlösungen

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

SDD System Design Document

Große Übung Praktische Informatik 1

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

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

Vgl. Oestereich Kap 2.7 Seiten

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.

RUP Analyse und Design: Überblick

SS Björn Berezowski B.Sc. Marco Münch B.Sc. Michael Roth B.Sc. Repetitorium PG 1. Übungsblatt. 1 Übung - Probeklausur SS 2010 Typ Prof.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Softwaretechnologie - Wintersemester 2011/12 - Dr. Günter Kniesel

Softwaretechnik (WS 11/12)

SEQUENZDIAGRAMM. Christoph Süsens

Tagesprogramm

4. AuD Tafelübung T-C3

Qualitätsmanagement im Projekt

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Dokumentation des Projektes Tic Tac Toe

Einführung in die Java- Programmierung

Übung: Verwendung von Java-Threads

Software Engineering Analyse und Analysemuster

Programmierkurs Java

Objektorientierte Programmierung. Kapitel 12: Interfaces

DOKUMENTATION VOGELZUCHT 2015 PLUS

Java Einführung Collections

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

a) In der Aufgabenstellung war ein möglichst einfaches Klassendiagramm gefordert. Abb. 1 zeigt eine mögliche Lösung. * * * Aufbau 1..

Klausur Software Engineering für WI (EuI)

Software Engineering Klassendiagramme weiterführende Konzepte

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

Studentische Lösung zum Übungsblatt Nr. 7

<thema> Projektdokumentation zum Softwareentwicklungsprojekt. (Entwicklerdokumentation) 28. Mai 2015

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

PRÜFUNG FÜR ELEKTROINGENIEURE. Softwaretechnik I. Musterlösung SS Ohne Gewähr -

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Kurzeinführung Excel2App. Version 1.0.0

U08 Entwurfsmuster (II)

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

Computeranwendung und Programmierung (CuP)

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

ER-Modellierung am Beispiel der Universitätsdatenbank aus der DBIS-Vorlesung

Sascha Schreier. Softwaretechnik: Übung

Whitebox-Tests: Allgemeines

Lizenzen auschecken. Was ist zu tun?

SJ OFFICE - Update 3.0

Unified Modeling Language (UML)

VL2: Softwareprojekt - Anforderungsanalyse. Inhalt. 1. Struktur eines Softwareprojektes

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

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

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

How to do? Projekte - Zeiterfassung

Benutzerverwaltung mit Zugriffsrechteverwaltung (optional)

Sehr geehrte Faktor-IPS Anwender,

Praktikum Software Engineering

Transkript:

Teil II: OOP und JAVA (Vorlesung 10) Modul: Programmierung B-PRG Grundlagen der Programmierung II Prof. Dot.-Ing. Roberto Zicari Professur für Datenbanken und Informationssysteme (FB 12) 21.06.06 1

Teil 6 Fallbeispiel Videothek - von der Idee zum Produkt - UML nach JAVA 2

Diagramme in UML 2 3 DBIS - SS2006

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 4 DBIS - SS2006

GUIDELINE Wie kommt man von UML zu Java? 5 DBIS - SS2006

Guideline: Wie kommt man von UML zu Java? Analyse: Mit dem Kunden eine Anforderungsanalyse machen. Analyse: Aus der Anforderungsanalyse ein Use Case - Diagramm erstellen. Analyse: Verifikation der Use Cases durch Benutzer. 6 DBIS - SS2006

Guideline: Wie kommt man von UML zu Java? Analyse: Ausfüllen der Use Case- Schablone für die Use Cases und Erstellen von Aktivitätsdiagrammen. Analyse: Wiederholte Verifikation durch den Benutzer. Analyse: Erstellen von Klassendiagrammen für Domain Objects. 7 DBIS - SS2006

Guideline: Wie kommt man von UML zu Java? Analyse: Darstellung von Szenarios in Sequenzdiagrammen. Analyse (optional): Erstellung von Zustandsdiagrammen oder anderen Diagrammtypen. Entwurf: Entscheidung für eine Architektur in Abhängigkeit von den Vorgaben. 8 DBIS - SS2006

Guideline: Wie kommt man von UML zu Java? Entwurf: Entwurf eines Prototyps und Proof of Concept. Entwurf: Verifikation des Prototyps durch Benutzer. Entwurf: Erweiterung des Klassendiagramms um implementierungsspezifische Parameter. (Klassendiagramm wird an Programmiersprache angepasst.) 9 DBIS - SS2006

Guideline: Wie kommt man von UML zu Java? Entwurf: Paketstruktur verfeinern. Entwurf: Modellierung der Datenhaltung (z.b. mit ER-Diagrammen) und des Datenzugriffs. 10 DBIS - SS2006

Guideline: Wie kommt man von UML zu Java? Implementierung: 1:1 Implementierung der Entwurfsklassen. Sequenz- und Aktivitätsdiagramme für Kontrollfluss und evtl. für die GUI. Zustände als Attribute und/oder persistent in der Datenbank. Tests und Dokumentation während des gesamten Projekts und insbesondere am Ende. 11 DBIS - SS2006

GUIDELINE Wie kommt man von UML zu Java? am Fallbeispiel Videothek 12 DBIS - SS2006

ANALYSE Anforderung Mit dem Kunden eine Anforderungsanalyse machen 13 DBIS - SS2006

Anforderungsanalyse Fallbeispiel DVD-Videothek : Entwurf und Implementierung eines Verwaltungsprogramms für den Verleih von DVDs. DVDs können neu in das System hinzugefügt, vorbestellt, ausgeliehen und zurückgegeben werden. Eine DVD kann in mehreren Exemplaren vorliegen. Verlorene und defekte DVDs können aus dem System wieder entfernt werden. Für Kunden kann ein Konto angelegt werden, auf das die ausgeliehenen und vorbestellten DVDs gebucht werden. Bei der Rückgabe ermittelt das System automatisch den zu zahlenden Preis. Kunden können die Datenbank nach Filmen durchsuchen (Titel, Schauspieler oder Regisseur). 14 DBIS - SS2006

ANALYSE Anforderung Pflichtenheft, veraltet? 15 DBIS - SS2006

Pflichtenheft Zielbestimmung: Verwaltungsprogramm für DVD-Film-Verleih Einsatz: kleine Videotheken Zielgruppe: Videothekar, Kunden Software: Windows XP Hardware: PC-Rechner Daten: 10000 DVDs, 100 Kunden... 16 DBIS - SS2006

Nichtfunktional Anforderungen Neben den funktionalen Anforderungen gibt es auch nichtfunktional wie z.b.: Usability (Bedienbarkeit) Effizienz, Performance, Leistungsanforderungen (Antwortzeit, Ressourcenverbrauch, Verfügbarkeit) Wartbarkeit, Wiederverwendbarkeit Randbedingungen (Gesetze, Verordnungen) 17 DBIS - SS2006

ANALYSE OOA-Model Aus der Anforderungsanalyse ein Use Case - Diagramm erstellen 18 DBIS - SS2006

Use Case - Diagramm (Anwendungsfall-, Geschäftsprozess-) Videothek DVD vorbestellen DVD-Bestand durchsuchen «uses» DVD ausleihen Kunde «extends» «extends» «extends»... nach Titel «uses» Kunde identifizieren Videothekar... nach Regisseur... nach Schauspieler DVD zurückgeben Kunde neu anlegen Was leistet mein System für seine Umwelt? Hohes Abstraktionsniveau, einfache Notationsmittel. 19 DBIS - SS2006

ANALYSE OOA-Model Ausfüllen der Use Case- Schablone für die Use Cases und Erstellen von Aktivitätsdiagrammen 20 DBIS - SS2006

Use Case DVD ausleihen Use Case Schablone (orange Felder zuerst ausfüllen) USE CASE 1 Ziel Level Vorbedingung Nachbedingung Erfolg Nachbedingung Fehlschlag Akteure Auslösendes Ereignis DVD AUSLEIHEN DVD ist ausgeliehen und auf Kundenkonto gebucht. Primärer Task (Zusammenfassung, Primärer Task, Subfunction) DVD vorhanden, Kunde registriert. 1. Kunde hat DVD ausgeliehen. DVD ist auf Kundenkonto gebucht. 2. Kunde kann DVD vorbestellen. DVD ist auf Kundenkonto als vorbestellt gebucht. 1. Kunde hat keine DVD ausgeliehen. Kunde, Videothekar Kunde äußert Wunsch eine DVD auszuleihen. 21 DBIS - SS2006

Use Case DVD ausleihen BESCHREIBUNG Schritt Aktion ERWEITERUNGEN Schritt Aktion 1 Kunde äußert DVD-Ausleih-Wunsch. 2 Videothekar prüft ob DVD vorhanden. 3 Kunde wird im System identifiziert. (Use Case 2) 4 Videothekar gibt Kosten-Auskunft. 5 Kunde unterschreibt Ausleih-Formular. 6 Videothekar bucht DVD auf Kundenkonto. 7 Videothekar gibt die DVD dem Kunden. 2a 3a ALTERNATIVEN Schritt Aktion DVD ist nicht vorhanden: Kunde kann DVD vorbestellen. Kunde ist nicht registriert: Kunde neu anlegen. 22 DBIS - SS2006

Use Case DVD ausleihen ZUSÄTZLICHE INFORMATION Priorität Dauer Frequenz Offene Fragen Super Use Case - Sub Use Case 1 - DVD AUSLEIHEN höchste 5 Minuten 50/Tag Was wenn DVD vorhanden aber nicht im Regal? Kunde identifizieren 23 DBIS - SS2006

Aktivitätsdiagramm DVD ausleihen Wie läuft ein bestimmter flussorientierter Prozess? (ENTSCHEIDUNG) [Kunde möchte DVD leihen] DVD suchen [DVD vorhanden] (AKTIVITÄT) [DVD ausgeliehen] [Kunde möchte DVD vorbestellen] Sehr detaillierte Visualisierung von Abläufen mit Bedingungen, Schleifen, Verzweigungen, Parallelisierung und Synchronisation. MS Visio Kunde identifizieren [DVD im Regal gefunden] DVD ausleihen DVD vorbestellen Diese Aktivität könnte wiederum in einem eigenen, neuen Aktivitätsdiagramm dargestellt (verfeinert) werden. 24 Grundlagen der Programmierung II DBIS - SS2006

ANALYSE OOA-Model Erstellen von Klassendiagrammen 25 DBIS - SS2006

Klassendiagramm DVD schauspieler regisseure titel status erfassen() ausleihen() zurückgeben() vorhanden() vorbestellen() freigeben() entfernen() leiht 0..* 0..1 Ausleihe datum Kunde name telefon 1 1 Adresse strasse plz stadt Aus welchen Kernklassen besteht mein System und wie stehen diese untereinander in Beziehung? Beschreibt die statische Struktur. 26 DBIS - SS2006

ANALYSE OOA-Model Darstellung von Szenarios in Sequenzdiagrammen 27 DBIS - SS2006

Szenario Ein Szenario ist eine chronologische Sequenz von Verarbeitungsschritten, die unter bestimmten Bedingungen auszuführen ist. Diese Schritte sollen das Hauptziel des Akteurs realisieren und ein entsprechendes Ergebnis liefern. Sie beginnen mit dem auslösenden Ereignis und werden fortgesetzt, bis das Ziel erreicht ist oder aufgegeben wird. Modellierung durch Sequenzdiagramme 28 DBIS - SS2006

Sequenzdiagramm :: :Kunde DVD DVD ausleihen Wer tauscht mit wem welche Informationen in welcher Reihenfolge aus? ALT Ausleihwunsch() :Ausleihe Kunde identifizieren () vorhanden () ja/nein [istvorhanden] ausleihen () DVD bei Kunde als gebucht vermerken() [nichtvorhanden] vorbestellen () DVD bei Kunde als vorbestellt vermerken() 29 Grundlagen der Programmierung II DBIS - SS2006

ANALYSE OOA-Model Optional: Erstellung von Zustandsdiagrammen oder anderen Diagrammtypen 30 DBIS - SS2006

Zustandsdiagramm DVD neue DVD gekauft / erfassen() EclipseUML Omondo DVD defekt / entfernen() vorhanden Abholfrist vorbei / freigeben() Ausleihwunsch / ausleihen() Kunde bringt DVD zurück / zurückgeben() DVD verloren / entfernen() ausgeliehen Kunde holt DVD ab / ausleihen() zur Abholung bereit Welche Zustände kann ein Objekt, bei welchen Ereignissen annehmen? vorbestellt Ausleihwunsch / vorbestellen() Kunde bringt DVD zurück / zurückgeben() 31 DBIS - SS2006

ENTWURF Architektur Entscheidung für eine Architektur in Abhängigkeit von den Vorgaben 32 DBIS - SS2006

Architektur Die Architektur ist oft von Anfang an vorgeben, da der Kunde z.b. bestimmte Technologien verwenden möchte. Hier entscheiden wir uns für: 3-Schichten-Architektur (Datenbank, Logik, Präsentation) Entwicklung als Java 1.5 - Applikation mit Präsentation: Swing (Java GUI) Datenbank: MySQL-Datenbank mit JDBC-Zugriff. 33 DBIS - SS2006

ENTWURF Prototyp Entwurf eines Prototyps und Proof of Concept 34 DBIS - SS2006

Prototyp: Erfassen - DVD Beispiel für eine einfach Oberfläche zum Erfassen einer neuen DVD. 35 DBIS - SS2006

Prototyp Für die Modellierung der tatsächlichen GUI und deren Dialogstruktur kann ein Zustandautomat verwendet werden. Mehr dazu in: H. Balzert, Lehrbuch der Objektmodellierung, Spektrum Verlag. 36 DBIS - SS2006

Proof of Concept Test, durch den die prinzipielle Durchführbarkeit des Projekts belegt wird. Falls ein Prototyp vorhanden ist, kann dieser mit Kernfunktionalitäten ausgestattet werden, die alle Technologien koppeln und deren reibungsfreies Zusammenspiel testen. 37 DBIS - SS2006

ENTWURF OOD-Model Erweiterung des Klassendiagramms um implementierungsspezifische Parameter 38 DBIS - SS2006

OOD-Model Klassendiagramm wird an Programmiersprache angepasst (z.b. wie kann eine Mehrfachvererbung realisiert werden?) Welche Methoden, Attribute sollen sichtbar sein (Zugriffsmodifizierer)? Welche Entwurfsmuster (design patterns) können eingesetzt werden? Welche vorhanden Komponenten können genutzt werden? 39 DBIS - SS2006

OOD-Model OOA OOD Kunde name telefon 1 1 Adresse strasse plz stadt Zugriff auf private Attribute (-) wird über Getter- und Setter- Methoden ermöglicht (welche hier nicht explizit genannt werden). Kunden -anzahl : int +getkundenliste() 1 * Kundenkonto -id : int -name : string -vorname : string -telefon : int -strasse : string -plz : int -stadt : string Klassen, Methoden Attribute und Assoziationen wurden neu hinzugefügt oder verändert. Zugriffsmodifizierer und Datentyp wurden hinzugefügt. 40 DBIS - SS2006

ENTWURF OOD-Model Paketstruktur verfeinern 41 DBIS - SS2006

OOD-Model Paketstruktur Beispiel für 3-Schichten-Architektur core «importieren» dao «importieren» gui Üblicherweise hat man Pfade (Pakete) wie: de.firmenname.appname.gui 42 DBIS - SS2006

IMPLEMENTIERUNG JAVA Wie bekommen wir aus UML Java-Code? 43 DBIS - SS2006

Implementierung Model Driven Architecture (MDA) Neuer Standard von OMG Modell in mehrere Schichten aufgeteilt: Für die umgangssprachliche Beschreibung (CIM) Geschäftsprozesse (PIM) Architektur, Services (PSM) MDA versucht Vorschriften zu finden wie aus einem Model der Code automatisch generiert werden kann. Diese Aufgabe ist nicht trivial! 44 DBIS - SS2006

Implementierung Vereinfacht: 1:1 Implementierung der Entwurfsklassen. Sequenz- und Aktivitätsdiagramme für den Kontrollfluss ( wer ruft wenn auf ) und eventuell für die GUI. Zustände des Zustandsdiagramms als Attribute und/oder persistent in der Datenbank. 45 DBIS - SS2006

Klasse DVD public class DVD { private String title; private String status; private ArrayList schauspieler; private ArrayList regisseure; private String id; Title Status Schauspieler Regisseure ID für Datenbank public final static String STATUS_AUSGELIEHEN = "ausgeliehen" ; public final static String STATUS_VORBESTELLT = "vorbestellt" ; public final static String STATUS_VORHANDEN = "vorhanden" ;... Diese Konstanten könnten auch mit einer Enumeration realisiert werden (Schlüsselwort enum). 46 DBIS - SS2006

Klasse DVD public Dvd() {} public Dvd(String id, String title){ this.id = id; this.title = title;} Zwei Beispiele für Konstruktoren public boolean isausleihbar(){ return status.equals(dvd.status_vorhanden);} Test ob eine DVD ausleihbar ist. public String getstatus(){ return status;} public void setstatus(string status){ this.status = status;} Für alle Attribute hat die Klasse getter- und setter-methoden. Beispiel für das Attribut status. 47 DBIS - SS2006

Klasse DVDBestand import java.util.*; public class DVDBestand { private Map liste = new HashMap(); public Map getliste() { return liste;} public void setliste(map dvds) { liste = dvds;} private Attribut liste enthält alle DVDs der Videothek (mehr zu HashMaps später). Auch hier wieder getter- und setter- Methoden notwendig.... public void ladedvdsausdatenbank(){ } /* hier muss der DVD-Bestand aus der Datenbank gelesen werden und in das Attribut liste gespeichert werden. Mehr dazu in den nächsten Vorlesung.*/ 48 DBIS - SS2006

Klasse DVDBestand Diese Methode prüft ob die DVD überhaupt im Bestand existiert und zusätzlich nicht ausgeliehen ist: public boolean isdvdvorhanden(string title) { Collection dvdcol = liste.values(); Iterator iterator = dvdcol.iterator(); boolean vorhanden = false;... while (iterator.hasnext() &&!vorhanden) { Dvd einedvd = (Dvd) iterator.next(); if (einedvd.gettitle().equals(title)) { } if (einedvd.isausleihbar()) { } vorhanden = true; } return vorhanden; 49 DBIS - SS2006

TEST und DOKU Tests und Dokumentation während des gesamten Projekts und insbesondere am Ende 50 DBIS - SS2006

Test Vorab: Testplan Entwicklertest (JUnit, White-Box) Technischer Durchstich (bei komplexen Systemen) Integrationstest Performance- / Lasttest Abnahmetest (Testfälle) Pilot (Pre Prod) Rollout (Produktion) 51 DBIS - SS2006

Dokumentation Installationsanleitung Benutzerhandbuch (für User) Online-Hilfe, FAQ (für User) Betriebshandbuch (für Admin) Code Doku (javadoc) 52 DBIS - SS2006