Übung Softwareentwicklung 1, WS0910 Gemeinsame Einführung Informatik, Informationselektronik, Wirtschaftsinformatik, Lehramt Informatik, Chemie, etc. Dipl.-Ing. Institute for Pervasive Computing Johannes Kepler University Linz riener@pervasive.jku.at
Softwareentwicklung 1: Übungsbetrieb Allgemeines Informationen zu VO+UE (Termine, Räume, Inhalte, Prüfungen, etc.) - http://www.pervasive.jku.at - Danach Teaching Softwareentwicklung 1 Start des regulären Übungsbetriebes (6+3 Gruppen) am Mi, 14. Oktober, Übungszeiten/-räume für Informatik: Softwareentwicklung1 UE // WS0809 // Einführung // Folie 2
JAVA: Eine Einführung Inhalt Java Laufzeitumgebung Java Entwicklungswerkzeuge Installation des JDK Das erste Java-Programm Entwicklungsumgebungen Mein erstes Java-Programm Softwareentwicklung1 UE // WS0809 // Einführung // Folie 3
JAVA: SE/EE/ME/JRE/JDK Was heißt das? JAVA Editionen und Download Editions Java SE (Standard Edition): Typisch benötigter Funktionsumfang Java EE (Enterprise Edition): Zusätzliche Funktionalität für Serveranwendungen Java ME (Micro Edition): Eingeschränkte Funktionalität; für Mobile Geräte gedacht und weitere... SE Downloads: http://java.sun.com/javase/downloads JRE (Java Runtime Environment): Nur die Laufzeitumgebung (in JDK enthalten) JDK (Java Development Kit): JRE + Entwicklungswerkzeuge (Compiler javac, javadoc, jar, jarsigner und Werkzeuge für Applets) - aktuelle Version: JDK 6 Update 16 (~74MB, Windows, 32bit) - auch im Bereich "Begleitmaterial" zu Softwareentwicklung1 Java SE Documentation: Dokumentation (insbesondere API) Softwareentwicklung1 UE // WS0809 // Einführung // Folie 4
JAVA: Die JAVA Laufzeitumgebung Java Runtime Environment (JRE) = JVM + API Java Virtual Machine (JVM) java Teil von JRE; für die Ausführung von Java-Bytecode verantwortlich System-/Plattformunabhängigkeit Gestartetes Programm wird in eigener VM ausgeführt Schnittstelle zwischen Maschine (Hardware) und Betriebssystem (Software) - Für die meisten Plattformen verfügbar (Linux, Mac, Palm OS, Solaris, Windows, Google Android, usw.) Die JVM selbst ist in C/C++ geschrieben Die Bestandteile der JVM sind - Klassenlader (classloader, resolver) - Speicherverwaltung (garbage collector) - Ausführungseinheit (excution engine) Softwareentwicklung1 UE // WS0809 // Einführung // Folie 5
JAVA: Die JAVA Laufzeitumgebung Java Runtime Environment (JRE) = JVM + API Java Virtual Machine (JVM) java Interpreter - Interpretiertes Ausführen eines Java-Programms - langsam Just-In-Time (JIT) Compiler - Übersetzt das Java-Programm (den Bytecode) während des Programmablaufs Just-In-Time (gerade rechtzeitig) in den jeweiligen Maschinencode der realen Plattform - Kompiliertes Java-Programm läuft native auf der Plattform - wesentlich schneller (ähnlich C/C++ Programm), allerdings hoher Speicherbedarf Dynamische Optimierung JVM-Implementierung in Hardware Softwareentwicklung1 UE // WS0809 // Einführung // Folie 6
JAVA: Die JAVA Laufzeitumgebung Java Runtime Environment (JRE) = JVM + API Java Core API java.*.class Bibliotheken ( System Libraries ) die die Standardklassen (mit ihren Methoden) der Programmiersprache JAVA bereitstellen Nützliche Algorithmen und Funktionen - Stringmanipulation, mathematische Algorithmen, Ein-/Ausgabe, Dateioperationen, Netzwerkfunktionalitäten, etc. - Bsp.java.lang.Float, java.io.file, java.net.socket, java.util.hashtable, etc. Softwareentwicklung1 UE // WS0809 // Einführung // Folie 7
JAVA: Die JAVA Laufzeitumgebung Java Runtime Environment (JRE) Die virtuelle Maschine (JVM) und die API müssen aufeinander abgestimmt sein und werden deshalb zur JRE zusammengefasst. Die JRE kann als virtueller Computer betrachtet werden, welcher in einer virtuellen Maschine einige Prozessoren und eine API, als oberste Bibliotheksschicht, zur Verfügung stellt. Das Java Runtime Environment (JRE) enthält keine Entwicklungswerkzeuge (Compiler, Debugger, etc.). Für die Programmierung mit Java wird das Java Development Kit (JDK) oder eine andere Programmierumgebung, welche ebenfalls Java-Bytecode erzeugt, benötigt. Softwareentwicklung1 UE // WS0809 // Einführung // Folie 8
JAVA: Die JAVA Laufzeitumgebung JAVA API (Application Programming Interface) Ein- und Ausgabe von Daten über Tastatur, Bildschirm, Dateisystem, etc. Klassen für Netzwerkapplikationen (URL- Handling, Datagrams, Socket- Connections, etc.) Softwareentwicklung1 UE // WS0809 // Einführung // Folie 9
JAVA: JAVA Entwicklungswerkzeuge Java Development Kit (JDK) Java Compiler javac Übersetzt den Quellcode in Java Byte-Code Java Debugger jdb Tool zur Fehlersuche Java Disassembler javap Erzeugt aus Byte-Code lesbare JVM-Instruktionen Java Doc javadoc Dokumentation Java Packaging jar Erzeugt gepackte Pakete Softwareentwicklung1 UE // WS0809 // Einführung // Folie 10
JAVA: JAVA Development Kit Wo bekommt man das JDK? Direkt von Sun http://java.sun.com/javase/downloads/index.jsp Von der Homepage des Institutes für Pervasive Computing http://www.pervasive.jku.at Danach Teaching Softwareentwicklung 1 Begleitmaterial Die aktuelle Version ist ca. 75MB groß JDK JRE? Das JDK enthält auch das JRE Das Java Runtime Environment (JRE) wird zur Ausführung von Java-Programmen benötigt, das JDK zum Kompilieren, Debuggen, etc. Softwareentwicklung1 UE // WS0809 // Einführung // Folie 11
JAVA: JAVA Development Kit Wie installiert man das JDK (unter Windows XP)? Installationsanleitung von SUN Online verfügbar, http://java.sun.com/javase/downloads/index.jsp Kurze Übersicht Download Installation im gewünschten Verzeichnis Pfad zu den JDK-Programmen registrieren Softwareentwicklung1 UE // WS0809 // Einführung // Folie 12
JAVA: JAVA Development Kit Wie installiert man das JDK (unter Windows XP)? Pfad registrieren (1) Systemsteuerung (2) System öffnen (3) Register Erweitert öffnen (4) Umgebungsvariablen öffnen Softwareentwicklung1 UE // WS0809 // Einführung // Folie 13
JAVA: JAVA Development Kit Wie installiert man das JDK (unter Windows XP)? Pfad registrieren (5) Pfad bearbeiten Softwareentwicklung1 UE // WS0809 // Einführung // Folie 14
JAVA: JAVA Development Kit Wie installiert man das JDK (unter Windows XP)? Pfad registrieren (6) Pfad eintragen Das "bin"-verzeichnis der JDK-Installation angeben Softwareentwicklung1 UE // WS0809 // Einführung // Folie 15
JAVA: JAVA Development Kit Installation überprüfen Kommandozeile öffnen und die folgenden (fett geschriebenen) Befehle eingeben C:\>java version Ausgabe (abhängig von der installierten Version): java version "1.6.0_16" Java(TM) SE Runtime Environment (build 1.6.0_16-b01) Java HotSpot(TM) Client VM (build 14.2-b01, mixed mode, sharing) C:\>javac version Ausgabe (abhängig von der installierten Version): javac 1.6.0_16 Softwareentwicklung1 UE // WS0809 // Einführung // Folie 16
JAVA: Online-Literatur WWW-Referenzen zu JAVA Java Home http://java.sun.com Sprachspezifikation http://java.sun.com/docs/books/jls/third_edition/ html/j3toc.html API Dokumentation Vollständige Dokumentation aller Pakete, Klassen, Methoden, Konstanten, etc. http://java.sun.com/javase/6/docs/api/index.html Softwareentwicklung1 UE // WS0809 // Einführung // Folie 17
JAVA: Das erste JAVA-Programm Hello World 1 Programm schreiben Beliebiger Editor oder Entwicklungsumgebung Wordpad/ Notepad 2 Programm übersetzen javac HelloWorld.java oder Entwicklungsumgebung 3 Programm starten java HelloWorld (ohne.class) oder Entwicklungsumgebung Softwareentwicklung1 UE // WS0809 // Einführung // Folie 18
JAVA: Das erste JAVA-Programm Hello World 1 Programm schreiben Texteditor Wordpad oder Editor auf CMD-line Softwareentwicklung1 UE // WS0809 // Einführung // Folie 19
JAVA: Das erste JAVA-Programm Hello World 2 Programm übersetzen Kommandozeile, Programm javac Softwareentwicklung1 UE // WS0809 // Einführung // Folie 20
JAVA: Das erste JAVA-Programm Hello World 3 Programm starten Kommandozeile, Programm java Softwareentwicklung1 UE // WS0809 // Einführung // Folie 21
JAVA: Zur Programmierung Entwicklungsumgebung Softwareentwicklung1 (Erlernen der Programmiersprache) Eine schlankes Entwicklungswerkzeug (Editor) ist ausreichend bzw. empfohlen Konzentration auf das Wesentliche (nämlich das Erlernen der Programmiersprache!) Umfangreiche Entwicklungsumgebungen (Eclipse, JBuilder, etc.) erschweren die Fehlersuche und erfordern zunächst einmal Zeit zum Erlernen der Bedienung, Suchen der Funktionen, Konfiguration, etc. Bei größeren Projekten, späteren LVAs (bzw. auch im Laufe des Semesters) kann man auf eine umfangreichere Entwicklungsumgebung umsteigen. Softwareentwicklung1 UE // WS0809 // Einführung // Folie 22
JAVA: Entwicklungsumgebungen Eine kleine Auswahl Notepad, Wordpad, CMD-line Editor Windows sehr rudimentär, nur für sehr kleine Aufgabenstellungen geeignet kein Syntax-Highlighting, etc. TextPad Windows, Download unter http://www.textpad.com/download/index.html schlanke Entwicklungsumgebung kommerziell (Euro 18,10; kostenlose Testversion verfügbar) UltraEdit Windows, Download unter http://www.ultraedit.at schlanke Entwicklungsumgebung Kommerziell (ab Euro 59,94) Softwareentwicklung1 UE // WS0809 // Einführung // Folie 23
JAVA: Entwicklungsumgebungen Eine kleine Auswahl (2) JEdit in Java geschrieben Download unter http://www.jedit.org/ schlanke Entwicklungsumgebung Unterstützt viele Plattformen (Windows, Mac, Unix Debian/Slack) Open Source (kostenlos) Eclipse unter verschiedensten Plattformen verfügbar (Windows, Linux, Solaris, AIX, HP-UX, Mac OS X) Download unter http://www.eclipse.org/ Sehr mächtig und umfangreich Open Source dh. kostenlos sehr gut geeignet für größere Projekte geeignet viele Erweiterungen (Versionierung, UMF-Modellierung, etc.) Softwareentwicklung1 UE // WS0809 // Einführung // Folie 24
JAVA: Erleichterung bei der Ein/Ausgabe Das Paket I/O (IO.java) Was? Tool zur leichteren Ein- und Ausgabe Ersatz für System.in.* (Standard Inputstream) sowie System.out.* (Standard Outputstream) Warum? In Java ist die E/A sehr mächtig dadurch auch nicht so leicht zu verstehen. Einfachere Handhabung und Erlernung mit diesem Paket Woher? Institutswebseite www.pervasive.jku.at Danach Teaching Softwareentwicklung 1 Begleitmaterial Zip-Archiv basicio.zip Softwareentwicklung1 UE // WS0809 // Einführung // Folie 25
JAVA: Erleichterung bei der Ein/Ausgabe Das Paket I/O (IO.java) Wie? Dokumentation ist im zip-file enthalten Am einfachsten: IO.java in das gleiche Verzeichnis wie die eigenen Quelldateien der Übungen kopieren IO.java wird dann automatisch mitkompiliert Alternative: CLASSPATH setzen, nur 1x zentral ablegen Hinweis FÜR DIE ÜBUNGEN IST ES EMPFEHLENSWERT DAS PAKET IO ANSTATT DER INTERNEN JAVA-BEFEHLE (java.io) ZU VERWENDEN! Beispiele - airtemp = IO.readInt(); anstatt System.in.read(); - IO.Out( Text ); anstatt System.out.print( Text ); Softwareentwicklung1 UE // WS0809 // Einführung // Folie 26
JAVA: Mein erstes Programm Übung 0 Wo? Institutswebseite www.pervasive.jku.at Danach Teaching Softwareentwicklung 1 Begleitmaterial Wozu? Dient zum Kennenlernen des JDK's und zum Überprüfen der Funktion der JDK-Installation Ist nicht abzugeben, wird auch nicht bewertet Softwareentwicklung1 UE // WS0809 // Einführung // Folie 27
Softwareentwicklung 1: Vorlesung+Übung Members Forum Mitreden! Registrieren & Mitreden! Softwareentwicklung1 UE // WS0809 // Einführung // Folie 28