Fachschule für Wirtschaftsinformatik Projekt : OOP - Java Matthias Wetzer Allgemeine Themenstellung Im Projekt "Java" realisieren Sie selbständig eine vorgegebene oder eine von Ihnen vorgeschlagene und mit den verantwortlichen Dozenten abgesprochene und genehmigte, anwendungsorientierte Aufgabe aus dem Bereich der Anwendungsprogrammierung mit Java. Damit verbunden sind Anforderungsdefinition (Lastenheft), Entwurf und Implementierung, Test, Dokumentation und eine Klausur. Jedes Projekt hat eine in sich abgeschlossene Anwendung zum Ziel. Für jedes Projekt wird eine Definition der Anforderungen des zu realisierenden Produkts erstellt, die Benutzersicht festgelegt und im Projektantrag dokumentiert. Danach wird von Ihnen die Lösung / Implementierung erarbeitet. Organisation Das Projekt kann im Unterrichtsraum und/oder am privaten Arbeitsplatz realisiert werden. Die Zeiteinteilung im Projekt liegt beim Teilnehmer. Die Betreuung durch den/die verantwortlichen Fachdozenten erfolgt wie im Stundenplan ausgewiesen bzw. zu genannten/vereinbarten Sprechzeiten. Termine und Ablauf Die Projekte werden in der KW 12+13 vom 22.03.2010 bis 30.03.2010 an 5+2=7 Tagen durchgeführt. Den Nachweis über die erarbeiteten Kenntnisse in Java leisten Sie in einer Klausur nach der Osterheimfahrt. Projektantrag: Lastenheft Entwurf, Implemntierung und Test Dokumentation Klausur Projektstart Projektantrag Abgabe Projekt Abgabe Doku Klausur Montag Dienstag 23.03.2010 bis 16:00 Uhr Dienstag 30.03.2010 bis 16:00 Uhr Donnerstag 01.04.2010 bis 13:00 in BS06/304 Montag 19.04.2010 10:00 - 11:30 22.03.2010 ab 08:00 Uhr Projekt-Betreuung KW 12/10 KW 12/10 KW 12/10 KW 12/10 Montag Dienstag Mittwoch Donnerstag 07:30 - 12:30 07:30 - 12:30 07:30 - 12:30 KW 13/10 KW 13/10 Montag Dienstag 07:30 - 12:30 07:30 - 12:30 Projekt-Klausur KW 16/10 Montag 13:00 - 16:00 13:00 - 16:00 08:15 - 09:45 13:00 - 16:00 Fachschule für Wirtschaftsinformatik Projekt : OOP - Java Matthias Wetzer Projekt-Bewertung Lastenheft 5 Punkte Projekt 70 Punkte GUI Datenbank (SQL / MySQL) Benutzerführung (Menü, Dialoge) MDI-Techniken Objektorientierung / Modularisierung MVC-Entwurfsmuster Klausur Dokumentation Summe Verspätete Projektabgabe Modifikator Komplexität 15 15 15 10 5 10 20 Punkte 5 Punkte 100 Punkte -5 Punkte je Werktag 10 Punkte Projektergebnisse Als Projektergebnisse sind abzugeben: Projektantrag mit Anforderungsdefinition (Lastenheft) Projekt mit Java-Quellcodes, Datenbank, Bildern und anere verwendete Dateien (Stick / CD / DVD) Projektdokumentation im Format : print, doc oder pdf. Projektanforderungen Es wird erwartet, dass Sie sich (auch) neues Wissen selbständig aneignen, indem Sie online - Hilfen, Bücher, Scripte, Tutorials verwenden oder eine Kollegin, einen Kollegen oder Dozenten fragen. Damit wir Sie beraten und unterstützen können, müssen wir konkret wissen, was Sie vorhaben. Daher verlangen wir von Ihnen eine Anforderungsdefinition: die Beschreibung der Oberfläche und der Funktionalität aus Benutzersicht : ein Lastenheft. Sie finden das Muster eines Lastenhefts im Dozentenverzeichnis auf dem Netzlaufwerk. Ihr Projekt muss mindestens folgende Anforderungen erfüllen: Swing-Anwendung mit mindestens 5 Klassen MySQL-Datenbank zur Speicherung der Anwendungsdaten mit mindestens 3 Tabellen Benutzerführung mit Menüs MDI-Techniken: JTabbedPanes oder JDesktopPane/JInternalFrame Trennung von Daten (model) und Anzeige(view) in verschiedenen Klassen (MVC-Entwurfsmuster) Sie können auch andere Java-Techniken, Klassen oder Konzepte umsetzen. Diese werden dann je nach Komplexität zusätzlich honoriert. Mehr als 80 Punkte können Sie jedoch mit dem Projekt selbst nicht erzielen. So kann der komplexe Einsatz einer JTable, generische Klassen, Transaktion bei verteilten Anwendungen mit zentraler Datenspeicherung usw. mit bis zu 10 Punkten honoriert werden. Fachschule für Wirtschaftsinformatik Projekt : OOP - Java Matthias Wetzer Projektthemen 1 Medienverwaltung Medienverwaltung für Grafiken und Sounds erstellen. Dateiverzeichnisse anzeigen und manipulieren, Filtern von Dateien, Vorschau von Grafiken, Sounds abspielen, Suchen von Sounds und Grafiken. 2 Grafische Benutzerschnittstelle Visualisierung einer dem Veranstaltungsort angepaßten grafischen Benutzerschnittstelle. Dies schließt eine Verwaltung und geeignete Manipulation der Daten ein. Denkbar wäre z.B. eine Parkplatzverwaltung, Theaterkartenverkauf etc. 3 JDBC Datenbank anlegen, Grundoperationen bereitstellen, Abfragen gestatten und deren Ergebnisse anzeigen. Anwendungs-Szenario frei wählbar wie Seminarverwaltung oder Faktura mit Artikel- , Kunden- und Auftragsverwaltung oder EDV-Verwaltung von Hardware, Arbeitsplätzen, Mitarbeiter, Peripheriegeräten etc. 4 Lernsoftware Übungen erstellen und ausführen. Programm, um theoretische Stoffgebiete zu erarbeiten und geeignete Test zu formulieren. Dazu muß eine Anwendung die Definition von Lektionen erlauben, eine andere das Üben der Lektionen. 5 Bildgenerierung Interaktives Programm zur 2D-Bildgenerierung, Der Benutzer soll einfache Grafiken aus grafischen Grundelementen interaktiv erstellen können. Die Vektor-Grafiken sollen schließlich als Rastergrafiken exportiert werden können. 6 JDBC Java-Programm zur interaktiven Erstellung und Manipulation von ACESS- oder MySQLDatenbanken. Im Dialog soll der Benutzer Tabellen, Index-Tabellen, Tabellen-Felder und deren Typ festlegen können. 7 Spiele-Applet Spiel als Applet oder Application programmieren (z.B. XPlosion). Dies macht eine Einarbeitung in die Themen Threads, Animationen mit Z-Buffering, interaktive Animationen oder Synchronisation von Threads notwendig. 8 Visualisierung von Daten Auswertung und graphische Aufbereitung von Datenreihen. Dies können Prüfdaten eines Meßstandes sein, Aktienkurse. 9 Graphen Ein Graph ist ein Netzwerk aus Knoten verbunden über Kanten. Haltestellen und Linien eines Verkehrsbetriebs, Computer in einem LAN, Mitarbeiter in einem Projekt, die Gebäude und Räume des BFW bilden einen Graph. Hat man eine geeignete interne Repräsentation für Graphen gefunden, können Methoden bereitgestellt werden, um z.B. den kürzesten Weg von einem Knoten zum anderen zu finden. Eingaben und Ausgaben erfolgen über eine grafische Benutzerschnittstelle wie ein Stadtplan (Route anzeigen, Start und Ziel eingeben). Ein Graph kann mit ein- und zweidimensionalen Arrays oder mit Listen dargestellt werden. Fachschule für Wirtschaftsinformatik Projekt : OOP - Java Matthias Wetzer 10 JPad Java-Editor als AWT oder Swing-Applikation. Im Wesentlichen besteht der Editor aus einer TextArea und einer geeigneten Bedienerführung über Menü’s und/oder Buttons. Buttons könnten in Panels zu Symbolleisten zusammengefaßt werden. Über Buttons (mit Icons?) oder Listen können Textbausteine eingefügt werden. Der Editor könnte mehrere Bearbeitungsfenster unterstützen (Child-Fenster oder Register). Über die rechte Maustaste sind Kontextmenü’s denkbar. 11 XPad XML-Editor als AWT oder Swing-Applikation. Im Wesentlichen besteht ein Editor aus einer TextArea und einer geeigneten Bedienerführung über Menü’s und/oder Buttons. Über Buttons (mit Icons?) oder Listen können Textbausteine eingefügt werden. Der XML-Editor sollte einen XML-Parser aufrufen, um die Syntax des XMLDokuments in der TextArea zu überprüfen. In der JAX-API des JDK 1.4 sind dafür alle notwendigen Klassen (SAXParser und SAXParserFactory) enthalten. 12 MIDI Sequenzer–Programm (Percussions) oder Synthesizer–Programm (Keyboard). Eigene Melodien, Rhytmen oder Beats erzeugen, abspielen, speichern und laden. 13 Code-Generatoren Das Java-Programm erzeugt auf Basis einer existierenden Access-Tabelle den Code einer SwingAnwendung zur Bearbeitung von Datensätzen dieser Tabelle. Das Java-Programm erzeugt auf Basis einer existierenden Klassendefinition den Code einer SwingAnwendung zur Bearbeitung von Instanzen dieser Klasse einschließlich der Speicherung in Dateien. Fachschule für Wirtschaftsinformatik Projekt : OOP - Java Matthias Wetzer 14 Bitmap-Grafiken Manipulation von Bitmap-Grafiken: laden, speichern, zeichnen, transformieren, filtern usw. 15 Vektor-Grafiken Manipulation von Vektor-Grafiken: laden, speichern, zeichnen, transformieren, rendern usw.