Programmierpraktikum

Slides:



Advertisements
Ähnliche Präsentationen
1 Referenzmodelle für HISinOne Dr. Uwe Hübner, 02. Juli 2009.
Advertisements

der Universität Oldenburg
der Universität Oldenburg
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Ein Beispiel in Java.
Einführung in die Programmierung Ausführbare Klassen
Kritische Betrachtung
Objektorientierte Programmierung
WS 04/05 wiss. Übung: Systemanalyse und Softwaredesign
Objektorientierter Entwurf (OOD) Übersicht
Ausnahmen HS Merseburg (FH) WS 06/07.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Indirekte Adressierung
Java: Referenzen und Zeichenketten
FH-Hof Java Packages Richard Göbel. FH-Hof Das Modulkonzept für Java Packages dienen zur Strukturierung größerer Java- Programme Ein Package kann: eigene.
Java: Grundlagen der Objektorientierung
Ein Beispiel in Java.
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
Konstruktoren.
Polymorphie (Vielgestaltigkeit)
Assoziationen (Beziehungen). Zwischen Objekten kann es eine Beziehung geben.
Polymorphie (Vielgestaltigkeit)
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung X1 Sitzung X1: Packages & Wiederholung.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 3 Klassen, Objekte, Arrays und Kontrollstrukturen Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
Praxis-Repetitorium JAVA zusätzliche, ergänzende Lehrveranstaltung
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Packages Vortrag : Cornelia Hardt 23. November 1999.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
05 - Reflection Das Reflection API Reflection2 Ziel Es kommt vor, dass eine Methode ein Objekt als Parameter übergeben bekommt, ohne dass bekannt.
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
UML Begleitdokumentation des Projekts
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java.
Spezifikation von Anforderungen
12. Vorlesung: Aktivitätsdiagramme
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Programme dokumentieren mit JavaDoc
Nutzungsszenarien introspektiver Modelle
Flexible Datenstrukturen
Diskrete Mathematik II
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
Objektorientierte Analyse
NDK Enterprise Technologien Informationen Infrastruktur und Fallstudie Daniel Nydegger Studienleiter Enterprise System Entwicklung.
Paradigmenwechsel in der Unternehmensmodellierung Prof. Dr. Wolfgang Voigt Dipl.-Ing. Päd. Alexander Huwaldt UML Extrakt UML Seminar, Chemnitz
JavaServer Faces Urs Frei. Inhalt JSF Funktionsweise Rückblick JSP Bestandteile von JSF So einfach ist die Anwendung (Beispiel) Eclipse im Einsatz (Entwicklungsumgebung)
Optimale Ursprungsgerade
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Unified Modeling Language UML
A Workshop About this chapter General description Units Time Schedule
Java-Kurs Übung Besprechung der Hausaufgabe
Reflection API1 Motivation Reflection API Core Reflection API: java.lang.reflect Seit JDK 1.1 integraler Bestandteil der Java- Klassenbibliothek Ermöglicht:
Vortrag Einführung in AspectJ. Gliederung 1 Einleitung 2 Querschnittsfunktionalitäten in AspectJ 2.1 Sprachelemente 3 Beispiel 4 Join Point Modell 5 Weaving.
Konstruktoren.
Implementieren von Klassen
 Präsentation transkript:

Programmierpraktikum Teil 3 (Version 1.0) Prof. Dr. Daniel F. Abawi Oliver Fourman

Ihre Gruppenaufgabe für den dritten und vierten Block Programmierung eines Buchungssystems für eine Autovermietung (in Java)

Aktualisierung der Unterlagen wie in der Informatik-Vorlesung erläutert, ändern Kunden bei IT-Projekten oftmals ihre Anforderungen und Wünsche, bzw. sie können mit fortschreitender Projektdauer ihre Vorstellungen konkreter formulieren Funktionsumfang (u. Funktionspriorisierung) Datenmodellierung Gestaltung Interaktionsmetaphern … Wichtig Bitte schauen Sie regelmässig im Handout-Verzeichnis nach, ob erweiterte und aktualisierte Fassungen der Unterlagen zum dritten und vierten Block verfügbar sind  zum Vergleich dient die Versionsnummer auf dem Deckblatt (erste Folie) der Unterlagen

Überblick über das Java Programmierpraktikum Teil 3 Aufgabe: Programmierung eines Buchungssystems für eine Autovermietung Roter Faden (dieser Foliensatz) gibt Vorgehensweise der Softwareentwicklung vor stellt Technologien vor, die genutzt werden sollen (und die Aufgabe vereinfachen) zeigt ein Referenzbeispiel (als Basis zur Kommunikation  Prototyping) Zu der Lösung dieser Aufgabe gehören (inhaltlich) Java-Programm (mit mehreren Klassen) Geschäftsprozess soll vollständig abgedeckt werden Minimal: Programmgerüst, das man mit BlueJ testen kann Normal: Programm über Konsole ausführbar Optimal: Zusätzliche grafische Benutzungsoberfläche (mit Swing) für die Programmlogik Präsentation ihres Projektes und ihrer Realisierung mündliche Erläuterung ihrer Realisierung (hinsichtlich Fragen der Dozenten) Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3

Vorgehensweise für den 3. Block Recherche im Internet Erstellung eines Lastenhefts Problembeschreibung in Worten, Beschreibung der Grobfunktionalität Sammlung von Anforderungen (Stichpunkte) Analyse Beschreibung des Geschäftsprozesses (use cases) Welche Akteure spielen eine Rolle? Welche Stammdaten werden benötigt? Erstellung eines BlueJ Projekts mit folgender Package Struktur Eigenes Package für das Datenmodell (Stammdaten) Eigenes Package für die grafische Benutzeroberfläche (Dummy für NetBeans) Erstellung eines Klassendiagramms für das Datenmodell mit BlueJ Programmierung der Klassen des Datenmodells mit NetBeans Get- und Set- Methoden zur späteren Speicherung der Daten in XML Erstellung von Listen für alle Stammdaten und Buchungen Testen des Datenmodells mit BlueJ Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3 5

Vorgehensweise für den 4. Block (Ausblick – vorläufig) Fertigstellung der Programmierung an dem Klassenmodell Fertigstellung der Programmierung der Programmlogik Erstellung einer grafischen Oberfläche mit NetBeans (Swing) Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3

Weitere Rahmenbedingungen und Tipps nutzen Sie zur Kommunikation in Ihrem Team die Notationsmöglichkeiten der UML (insbesondere Use-Cases, Klassendiagramme) die Klassendiagramme sollten detailliert sind, mit Kennzeichnung der Sichtbarkeit der Methoden (private, public etc.) sowie mit ausführlicher Spezifikation der Datentypen und Bezeichner dokumentieren Sie diese Diagramme elektronisch (als Teil Ihrer Projektdemonstration) nutzen Sie die Möglichkeiten von Javadoc um auch die Quelltexte Ihrer Realisierung zu dokumentieren

Recherche im Internet Ermittlung des Datenmodells Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3

Lastenheft Ein Lastenheft enthält folgende Informationen Zielbestimmung Beschreibung des Einsatzgebietes Funktionsbeschreibungen Beschreibung der Daten (Stammdaten) http://de.wikipedia.org/wiki/Lastenheft Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3

Analyse von Softwaresystemen Das Ziel der Analyse ist es, die Wünsche und Anforderungen eines Auftragsgebers an ein neues Softwaresystem zu ermitteln und zu beschreiben. Erzeugt werden soll ein Modell des Softwaresystems, das konsistent, vollständig, eindeutig und realisierbar ist. Bei der Modellbildung werden alle Aspekte der Implementierung bewusst ausgeklammert. [Lehrbuch der Objektmodellierung, H.Balzert] Vorgehensweise Notieren Sie sich vorab die Geschäftsprozesse des Softwaresystems. Die Beschreibung der Geschäftsprozesse ist Teil der Projektpräsentation. Bemerkung: Ein Geschäftsprozess besteht aus mehreren zusammenhängenden Aufgaben, die von einem Akteur durchgeführt werden, um ein Ziel zu erreichen bzw. ein gewünschtes Ergebnis zu erstellen. Zu der Dokumentation gehört die Beschreibung der Verarbeitungsschritte, die durchzuführen sind, um eine Buchung vorzunehmen. Geschäftsprozesse: Stammdaten eintragen (Fahrzeuge, Kunden) Buchung durchführen Speichern von Stammdaten Definition von (nach Balzert): Ziel Vorbedingung Nachbedingung Erfolg Nachbedingung Fehlschlag Akteur (Mitarbeiter der Autovermietung) Auslösendes Ereignis Beschreibung Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3 10 10

Analyse Buchungssystem, OO Analyse (OOA) Stammdaten werden in entsprechenden Klassen festgehalten (Datenmodell) Überlegen Sie sich, welche Klassen erstellt werden müssen Zu jeder Klasse müssen entsprechende Attribute (Properties) definiert werden Akteur ist ein Mitarbeiter der Autovermietung mit folgenden Aufgaben Stammdaten der Fahrzeuge erfassen Stammdaten der Kunden erfassen geeignetes Angebot finden (Fahrzeug gemäß Kundenwunsch suchen/finden) Buchungen durchführen Die Aufgaben sollen über entsprechende Methoden im Programm realisiert werden Nach der Analyse folgt das Design und die Auswahl der Technologien… Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3 11 11

Technologien, die zum Einsatz kommen sollen Java 1.6 BlueJ zum Erstellen des Klassendiagramms und Testen des Datenmodells Programmierumgebung NetBeans Java Beans (Datenmodell) Voraussetzung zum Speichern von Objekten in XML notwendig sind Get- und Set-Methoden für alle Klassen des Datenmodells XML zum Speichern von Daten (Vorgabe folgt) XMLEncoder XMLDecoder Konsole Standardausgabe auf Konsole StdIn Klasse zum Lesen von der Konsole Java Swing für Grafische Benutzerschnittstelle (Teil 4 – Vorgabe folgt) wird von NetBeans unterstützt! Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3

Vorschlag zur Package-Struktur import model.*; Java Swing GUI (mit NetBeans gebaut) Speicherung von Objekten in XML usw. (wird vorgegeben!) Datenmodell (Stammdaten) Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3

Vorschlag zum BlueJ-Klassendiagramm für Stammdaten Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3

Stammdaten innerhalb des Modells Bean Klassen enthalten private Attribute (realitätsnah und mindestens vier pro Klasse, z.B. für Kunde: Vorname, Name, Adresse, Kundennummer, Geburtsdatum, Premiummitglied) öffentliche Get- und Set-Methoden die Methode toString() Weiterhin muss es eine Klasse AutovermietungStammdaten geben, die Listen für die Stammdaten sowie eine Liste für alle durchgeführten Buchungen enthält. Methoden zum Suchen und Sortieren über die Listen finden sich ebenfalls hier Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3 15

Wichtig halten Sie sich an die vorgeschlagene Vorgehensweise erstellen Sie das Datenmodell mit BlueJ (Klassendateien und Packages anlegen) Programmieren Sie das Datenmodell mit NetBeans Attribute definieren Get- und Set-Methoden Methoden, um Testdaten zu erzeugen Testen Sie Ihr Datenmodell in BlueJ Erstellung von weiteren Klassen und Methoden, die zur Programmlogik gehören Die Programmlogik sollte unabhängig von der Programmoberfläche sein (Stichwort Model-View-Control) „Oberflächen“ sind die Standard-Konsole oder eine Swing-GUI Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3

Grafische Oberfläche, Vorschlag Weitere Screenshots folgen… Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3 17 17

Grafische Oberfläche, Vorschlag Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3 18

Grafische Oberfläche, Vorschlag Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3 19

Programmablauf, Vorschlag Zusammenstellung der Stammdaten für Fahrzeuge Kunden Suchen eines bestimmten Fahrzeugs, dass den Wünschen des Kunden entspricht Buchung des selektierten Fahrzeug auf einen Kunden Liste von Buchungen erstellen (Kasse) Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3 20

Programmfunktionen, Vorschlag Erfassung von Stammdaten Fahrzeuge Kunden Übersicht über alle Stammdaten Suchen über erfassten Fahrzeuge anhand der Kategorie und des Wagentyps Buchung eines Fahrzeugs auf einen Kunden Übersicht über alle Buchungen Speichern der Stammdaten in XML, Laden der Stammdaten aus XML Speichern der Buchungen in XML, Laden der Buchungsdaten aus XML Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3 21

Referenzen, Minimalbeispiel einer Klasse des Datenmodells Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3 22

Referenzen, Abspeichern von Objekten in XML 1/2 /* * HTW, Java Programmierpraktikum WI */ package utils; // Package Bezeichnung import java.io.*; // IO Package import java.beans.*; // Beans Package /** * Beispiel einer Util-Klasse zum Serialisieren von Objekten nach XML. * * @author Abawi, Fourman * @version 0.1 public class BeispielSerialisieren { * Serialisierung nach XML * @throws java.io.IOException public static void saveToXml(Object obj) throws IOException { XMLEncoder o = new XMLEncoder( new FileOutputStream("bsp.xml") ); o.writeObject("HTWdS, Programmierpraktikum WI"); o.writeObject(obj); o.close(); } Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3 23

Referenzen, Abspeichern von Objekten in XML 2/2 /** * De-serialisierung aus XML * @throws java.io.IOException */ public static Object loadFromXml() throws IOException { XMLDecoder o = new XMLDecoder( new FileInputStream("bsp.xml") ); o.readObject(); // HTW Kommentar rauslesen. Object obj = o.readObject(); o.close(); return obj; } public static void main(String args[]) { model.BeispielKunde k = new model.BeispielKunde(); k.setVorname("Fritz"); k.setNachname("Meier"); try { saveToXml(k); catch(java.io.IOException ioe) { ioe.printStackTrace(); Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3 24

Benötigte Sprachelemente String Verarbeitung (Wiederholung) Methode equals() vergleicht zwei Zeichenketten miteinander Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3 25

Danke für Ihre Aufmerksamkeit! Fragen und (hoffentlich) Antworten Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3

Kontakt und Sprechstunde Prof. Dr. Daniel F. Abawi Professur für Informatik / Wirtschaftsinformatik Fachbereich Wirtschaftsingenieurwesen Hochschule für Technik und Wirtschaft des Saarlandes Waldhausweg 14 D-66123 Saarbrücken Tel.: +49 – 681 - 5867 - 368 Fax: +49 – 681 - 5867 - 577 abawi@htw-saarland.de Sprechstunde: Donnerstags, 16.00 Uhr – 17.15 Uhr, im Raum B-2-5/1 *vorher Anmeldung erwünscht* Programmierpraktikum FB WI – Prof. Dr. D. F. Abawi / O. Fourman – Teil 3