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

  • Published on
    05-Apr-2015

  • View
    106

  • Download
    2

Embed Size (px)

Transcript

<ul><li> Folie 1 </li> <li> Programmierpraktikum Teil 3 (Version 1.0) Prof. Dr. Daniel F. Abawi Oliver Fourman </li> <li> Folie 2 </li> <li> Ihre Gruppenaufgabe fr den dritten und vierten Block Programmierung eines Buchungssystems fr eine Autovermietung (in Java) </li> <li> Folie 3 </li> <li> Aktualisierung der Unterlagen wie in der Informatik-Vorlesung erlutert, ndern Kunden bei IT-Projekten oftmals ihre Anforderungen und Wnsche, bzw. sie knnen mit fortschreitender Projektdauer ihre Vorstellungen konkreter formulieren Funktionsumfang (u. Funktionspriorisierung) Datenmodellierung Gestaltung Interaktionsmetaphern Wichtig Bitte schauen Sie regelmssig im Handout-Verzeichnis nach, ob erweiterte und aktualisierte Fassungen der Unterlagen zum dritten und vierten Block verfgbar sind zum Vergleich dient die Versionsnummer auf dem Deckblatt (erste Folie) der Unterlagen </li> <li> Folie 4 </li> <li> berblick ber das Java Programmierpraktikum Teil 3 Aufgabe: Programmierung eines Buchungssystems fr 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 Lsung dieser Aufgabe gehren (inhaltlich) Java-Programm (mit mehreren Klassen) Geschftsprozess soll vollstndig abgedeckt werden Minimal: Programmgerst, das man mit BlueJ testen kann Normal: Programm ber Konsole ausfhrbar Optimal: Zustzliche grafische Benutzungsoberflche (mit Swing) fr die Programmlogik Prsentation ihres Projektes und ihrer Realisierung mndliche Erluterung ihrer Realisierung (hinsichtlich Fragen der Dozenten) Programmierpraktikum FB WI Prof. Dr. D. F. Abawi / O. Fourman Teil 34 </li> <li> Folie 5 </li> <li> Vorgehensweise fr den 3. Block 1.Recherche im Internet 2.Erstellung eines Lastenhefts Problembeschreibung in Worten, Beschreibung der Grobfunktionalitt Sammlung von Anforderungen (Stichpunkte) 3.Analyse Beschreibung des Geschftsprozesses (use cases) Welche Akteure spielen eine Rolle? Welche Stammdaten werden bentigt? 4.Erstellung eines BlueJ Projekts mit folgender Package Struktur Eigenes Package fr das Datenmodell (Stammdaten) Eigenes Package fr die grafische Benutzeroberflche (Dummy fr NetBeans) 5.Erstellung eines Klassendiagramms fr das Datenmodell mit BlueJ 6.Programmierung der Klassen des Datenmodells mit NetBeans Get- und Set- Methoden zur spteren Speicherung der Daten in XML Erstellung von Listen fr alle Stammdaten und Buchungen 7.Testen des Datenmodells mit BlueJ Programmierpraktikum FB WI Prof. Dr. D. F. Abawi / O. Fourman Teil 35 </li> <li> Folie 6 </li> <li> Vorgehensweise fr den 4. Block (Ausblick vorlufig) Fertigstellung der Programmierung an dem Klassenmodell Fertigstellung der Programmierung der Programmlogik Erstellung einer grafischen Oberflche mit NetBeans (Swing) Programmierpraktikum FB WI Prof. Dr. D. F. Abawi / O. Fourman Teil 36 </li> <li> Folie 7 </li> <li> Weitere Rahmenbedingungen und Tipps nutzen Sie zur Kommunikation in Ihrem Team die Notationsmglichkeiten der UML (insbesondere Use-Cases, Klassendiagramme) die Klassendiagramme sollten detailliert sind, mit Kennzeichnung der Sichtbarkeit der Methoden (private, public etc.) sowie mit ausfhrlicher Spezifikation der Datentypen und Bezeichner dokumentieren Sie diese Diagramme elektronisch (als Teil Ihrer Projektdemonstration) nutzen Sie die Mglichkeiten von Javadoc um auch die Quelltexte Ihrer Realisierung zu dokumentieren </li> <li> Folie 8 </li> <li> Recherche im Internet Programmierpraktikum FB WI Prof. Dr. D. F. Abawi / O. Fourman Teil 38 Ermittlung des Datenmodells </li> <li> Folie 9 </li> <li> Lastenheft Ein Lastenheft enthlt 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 39 </li> <li> Folie 10 </li> <li> Analyse von Softwaresystemen Das Ziel der Analyse ist es, die Wnsche und Anforderungen eines Auftragsgebers an ein neues Softwaresystem zu ermitteln und zu beschreiben. Erzeugt werden soll ein Modell des Softwaresystems, das konsistent, vollstndig, 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 Geschftsprozesse des Softwaresystems. Die Beschreibung der Geschftsprozesse ist Teil der Projektprsentation. Bemerkung: Ein Geschftsprozess besteht aus mehreren zusammenhngenden Aufgaben, die von einem Akteur durchgefhrt werden, um ein Ziel zu erreichen bzw. ein gewnschtes Ergebnis zu erstellen. Zu der Dokumentation gehrt die Beschreibung der Verarbeitungsschritte, die durchzufhren sind, um eine Buchung vorzunehmen. Programmierpraktikum FB WI Prof. Dr. D. F. Abawi / O. Fourman Teil 310 </li> <li> Folie 11 </li> <li> Analyse Buchungssystem, OO Analyse (OOA) Stammdaten werden in entsprechenden Klassen festgehalten (Datenmodell) berlegen Sie sich, welche Klassen erstellt werden mssen Zu jeder Klasse mssen 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 durchfhren 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 311 </li> <li> Folie 12 </li> <li> 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 fr 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 fr Grafische Benutzerschnittstelle (Teil 4 Vorgabe folgt) wird von NetBeans untersttzt! Programmierpraktikum FB WI Prof. Dr. D. F. Abawi / O. Fourman Teil 312 </li> <li> Folie 13 </li> <li> Vorschlag zur Package-Struktur Programmierpraktikum FB WI Prof. Dr. D. F. Abawi / O. Fourman Teil 313 Datenmodell (Stammdaten) Speicherung von Objekten in XML usw. (wird vorgegeben!) Java Swing GUI (mit NetBeans gebaut) </li> <li> Folie 14 </li> <li> Vorschlag zum BlueJ-Klassendiagramm fr Stammdaten Programmierpraktikum FB WI Prof. Dr. D. F. Abawi / O. Fourman Teil 314 </li> <li> Folie 15 </li> <li> Stammdaten innerhalb des Modells Bean Klassen enthalten private Attribute (realittsnah und mindestens vier pro Klasse, z.B. fr Kunde: Vorname, Name, Adresse, Kundennummer, Geburtsdatum, Premiummitglied) ffentliche Get- und Set-Methoden die Methode toString() Weiterhin muss es eine Klasse AutovermietungStammdaten geben, die Listen fr die Stammdaten sowie eine Liste fr alle durchgefhrten Buchungen enthlt. Methoden zum Suchen und Sortieren ber die Listen finden sich ebenfalls hier Programmierpraktikum FB WI Prof. Dr. D. F. Abawi / O. Fourman Teil 315 </li> <li> Folie 16 </li> <li> 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 gehren Die Programmlogik sollte unabhngig von der Programmoberflche sein (Stichwort Model-View-Control) Oberflchen sind die Standard-Konsole oder eine Swing-GUI Programmierpraktikum FB WI Prof. Dr. D. F. Abawi / O. Fourman Teil 316 </li> <li> Folie 17 </li> <li> Grafische Oberflche, Vorschlag Programmierpraktikum FB WI Prof. Dr. D. F. Abawi / O. Fourman Teil 317 </li> <li> Folie 18 </li> <li> Grafische Oberflche, Vorschlag Programmierpraktikum FB WI Prof. Dr. D. F. Abawi / O. Fourman Teil 318 </li> <li> Folie 19 </li> <li> Grafische Oberflche, Vorschlag Programmierpraktikum FB WI Prof. Dr. D. F. Abawi / O. Fourman Teil 319 </li> <li> Folie 20 </li> <li> Programmablauf, Vorschlag Zusammenstellung der Stammdaten fr Fahrzeuge Kunden Suchen eines bestimmten Fahrzeugs, dass den Wnschen 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 320 </li> <li> Folie 21 </li> <li> 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 321 </li> <li> Folie 22 </li> <li> Referenzen, Minimalbeispiel einer Klasse des Datenmodells Programmierpraktikum FB WI Prof. Dr. D. F. Abawi / O. Fourman Teil 322 </li> <li> Folie 23 </li> <li> Referenzen, Abspeichern von Objekten in XML 1/2 Programmierpraktikum FB WI Prof. Dr. D. F. Abawi / O. Fourman Teil 323 /* * 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(); } </li> <li> Folie 24 </li> <li> Referenzen, Abspeichern von Objekten in XML 2/2 Programmierpraktikum FB WI Prof. Dr. D. F. Abawi / O. Fourman Teil 324 /** * 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(); } </li> <li> Folie 25 </li> <li> Bentigte Sprachelemente Programmierpraktikum FB WI Prof. Dr. D. F. Abawi / O. Fourman Teil 325 String Verarbeitung (Wiederholung) Methode equals() vergleicht zwei Zeichenketten miteinander </li> <li> Folie 26 </li> <li> Danke fr Ihre Aufmerksamkeit! Fragen und (hoffentlich) Antworten Programmierpraktikum FB WI Prof. Dr. D. F. Abawi / O. Fourman Teil 3 </li> <li> Folie 27 </li> <li> Kontakt und Sprechstunde Prof. Dr. Daniel F. Abawi Professur fr Informatik / Wirtschaftsinformatik Fachbereich Wirtschaftsingenieurwesen Hochschule fr Technik und Wirtschaft des Saarlandes Waldhausweg 14 D-66123 Saarbrcken 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 erwnscht* Programmierpraktikum FB WI Prof. Dr. D. F. Abawi / O. Fourman Teil 3 </li> </ul>