Praktikum Softwareentwicklung 2 WS 2010 Dr. Herbert Prähofer Institut für Systemsoftware Johannes Kepler Universität Linz Praktikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 1 Ziele der LVA Arbeiten mit einer umfangreichen Klassenbibliothek Grundprinzipien und Techniken kennen lernen und verstehen Selbstständiges Erarbeiten und Anwenden von Techniken Aufbauen auf und Erweitern von Frameworks Design komplexer Anwendungsprogramme Pratikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 2 Abhaltung der LVA Teile der Java Plattform werden in der LVA in einem Folienvortrag vorgetragen W it Weitere Literatur Lit t zum S Selbststudium lb t t di und dN Nachlesen hl wird i d angegeben b Anwendung der Techniken in mehreren Programmieraufgaben (Planung) 1 Interaktive Anwendung: Datenmodell, 1. Datenmodell Swing Swing-Applikation Applikation 2. Interaktive Anwendung: 2D-Komponente g 3. Reflection, Annotationen, Serialisierung 4. Networking, Remoting 5. … • Benotung: • Ab Abgegebene b P ktik Praktikumsaufgaben f b • Mündliche Prüfung: Code-Review • positiv sein! Beides muss p Pratikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 3 Terminplanung Nr. Termin Inhalt Begleitmaterial Ausgabe Abgabe 1 04.10.2010 Einführung, Vorbesprechung, Oranisatorisches 2 11.10.2010 MVC, Swing 3 18.10.2010 Swing, Java 2D 4 25.10.2010 Reflection, Annotations UE02 UE01 UE03 UE02 UE04 UE03 UE05 UE04 UE06 UE05 Diverses UE01 1 11 2010 1.11.2010 4 8.11.2010 Multithreading 5 15.11.2010 Streams, Networking 6 22 11 2010 22.11.2010 JDBC 7 29.11.2009 Remoting, Security 8 6.12.2009 Servlets 9 13 12 2009 13.12.2009 JSP 20.12.2009 Weihnachtsferien 27.12.2009 Weihnachtsferien 3.1.2010 Weihnachtsferien 10 10.1.2010 Diverse Themen 11 17.1.2011 Diverse Themen 12 0 24.1.2011 Besprechung 13 31.1.2011 Prüfung Pratikum SWE 2 UE06 U 06 © M. Löberbauer, T. Kotzmann, H. Prähofer 4 Lehrveranstaltung Kombination aus Folienvortrag Programmbeispiele Erarbeitung von Programmentwürfen für die Übungen Keine Anwesenheitspflicht, aber Anwesenheit erwünscht und erhoben Pratikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 5 Übungen UE01 – Swing Applikation Teil 1 • MVC • Actions • Java 2D UE02 – Swing S ing Applikation Teil 2 • JTree • Command Pattern Command-Pattern • Annotations UE03 – Multithreading: Game of Life UE04 – Networking und Streaming: Search Engine UE05 – Remoting UE06 – Servlets/JSP eventuell Projekt Pratikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 6 Literatur Java API Dokumentation, http://java.sun.com. Java Tutorials, http://java.sun.com/developer/onlineTraining/. C. Horstmann, G. Cornell, Core Java, I and II, Sun Microsystems Press. oder Deutsch: C. Horstmann, G. Cornell, Core Java, Band 1 – Grundlagen und Band 2 – Expertenwissen, Markt + Technik. Programme Download: http://www.horstmann.com/corejava.html Guido Krüger, Handbuch der Java-Programmierung, 5. Auflage, Addison-Wesley. komplettes Buchdownload unter http://www.javabuch.de Christian Ullenboom, Java ist auch eine Insel, Galileo Computing, 2007 Online unter: http://www.galileocomputing.de/openbook/javainsel7/ D. Flanagan, a aga , Ja Java a in a Nutshell, uts e , 4. Auflage, u age, O‘Reilly, O e y, 2003. 003 D. Flanagan, Java Examples in a Nutshell, O‘Reilly, 2003. Pratikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 7 Java SDK & Entwicklungsumgebungen Java 2 Platform Standard Edition (J2SE) version 1.6 (http://java.sun.com/j2se/) Eclipse (http://www.eclipse.org/) • sehr gute Entwicklungsumgebung • frei erhältlich NetBeans (http://www.netbeans.org/) • Entwicklungsumgebung von Sun • frei erhältlich • hat interaktiven GUI-Designer GUI Designer Pratikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 8 Überblick über die Java-Bibliothek Praktikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 9 Überblick über die Java-Klassenbibliothek Pratikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 10 Wichtige Packages der Java-Klassenbibliothek (1) java: Basisbiliothek java.util: Sammlungen, Datum, Uhrzeit und Internationalisierung, einige weiter zentrale Utilities java.text: Arbeiten mit Texten in internationalisierten Anwendungen j java.io: i Input/Output Streaming java.lang: Fundamentale Klassen wie Wrapper für Basisdatentypen, Basisklasse Object, Laufzeitsystem, Multithreading j java.lang.reflect: l fl Zugriff auf Metainformation java.awt: Einfache User Interfaces und Graphik java.beans: Komponentenmodell von Java java.net: Klassen für Netzwerkapplikationen java.rmi: Remote Method Invocation java.security: Security Framework von Java java.sql: JDBC = Zugriff auf relationale Datenbanken Pratikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 11 Wichtige Packages der Java-Klassenbibliothek (2) javax: Erweiterte Bibliothek javax.swing: Mächtige, plattformunabhängige Klassenbibliothek für GUI javax.print: Klassen für Print-Service javax.xml: XML Support javax.sound: Klassen für Audio (sowohl MIDI als auch Sampled-Audio) javax.net: Erweiterte Klassen für Netzwerkprogrammierung javax.rmi: Erweiterte Klassen für RMI-IIOP RMI IIOP (Corba) javax.crypto: Verschlüsselungstechnik javax.naming: Klassen für Naming-Services Pratikum SWE 2 © M. Löberbauer, T. Kotzmann, H. Prähofer 12