Kommentare, Client-Server, Protokolle

Ähnliche Dokumente
Client-Server TCP/IP - Kodierung

Java und Netzwerkkommunikation

Transmission Control Protocol (TCP)

Verteilte Systeme - Java Networking (Sockets) -

Client-Server TCP/IP - Kodierung

Programmieren I. Dokumentation mit javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik

Socket-Programmierung unter Java

JAVA Kommentieren mit Javadoc

Erreichbarkeit von Klassenelementen. Daten verstecken und kapseln

Socket-Programmierung unter Java

Verteilte Systeme - Java Networking (Sockets) 2 -

Referat: Netzwerkprogrammierung in Java

Einstieg in die Informatik mit Java

Eingabe und Ausgabe in Java. Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien

Rechnernetze und verteilte Systeme Programmieraufgabe

Handbuch konsultieren!

Java Einführung Exception Handling. Kapitel 17

Einstieg in die Informatik mit Java

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Beispiel senden

Rechnernetze und verteilte Systeme Übungsblatt P

4. Thread- und Netzwerk- Programmierung

Einführung in die Programmierung für NF. Zuweisungen, main- Methode und Kommentare

Grundlagen der Programmierung Prof. H. Mössenböck. 15. Pakete

Überblick. Verteilte Systeme - 4. Übung. VS-Übung. Dynamische Proxies Stubs & Skeletons Dynamische Proxies als Stubs. Tobias Distler, Michael Gernoth

Programmieren in Java

Programmieren II. Timer. Vorlesung 11. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester Timer. Sockets.

Objektorientierung II & die Java Klassenbibliothek. Kristian Bergmann und Arthur Lochstampfer

Daniela Reiner. Stuttgart,

Algorithmen und Programmierung III

Jan Distel. Im Rahmen der Veranstaltung Fortgeschrittene Programmierung in Java

Programmieren II. Sockets. Vorlesung 16. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester Sockets.

Einführung in die Programmierung für NF. Zuweisungen, main- Methode und Kommentare

Beispiel: Temperaturumwandlung. Imperative Programmierung. Schwerpunkte. 3. Grundlegende Sprachkonstruktionen imperativer Programme

Einführung in die Informatik II Entwurf durch Verträge 3. Teil

1. Zeilenendkommentare: // geklammerte Kommentare: /*... */ 3. Dokumentationskommentare: /**... */

java.io Ziel Ressourcen Page 1 Verstehen der unterschiedlichen I / O Möglichkeiten Anwenden der Java I/ O Klassen Java Tutorial Java API Dokumentation

Kommunikationsnetze. 2. Direkte TCP/IP-Verbindungen 2.1 Höhere Programmiersprachen

Programmieren I. Dokumentation mit Javadoc Heusch 10.4 Ratz Institut für Angewandte Informatik

Networking. Motivation und Grundlagen Klasse Socket SMTP-Protokoll Exceptions. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H.

Java Übung. Übung 3. Werner Gaulke. 2. Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

Coding-Standards und Dokumentation

Prozeduren, Funktionen, Datenströme, JavaDoc

JAVA - Methoden - Rekursion

Überblick. Verteilte Systeme - 4. Übung. Dynamische Proxies Stubs & Skeletons Dynamische Proxies als Stubs

TCP und UDP Sockets in Java

Java I/O, Serialisierung und Netzwerkprogrammierung

Programmiermethodik. Übung 10

Dokumentations-Richtlinien

Netzwerkprogrammierung & Threads

Projektaufgabe Peer-To-Peer Chat Programm

Softwarepraktikum Sommersemester 2006

1 Klassen anlegen und Objekte erzeugen

VS Praktikum 03 Konzept

Ausnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

1 Klassen anlegen und Objekte erzeugen

Einführung in Javadoc

Ausnahmen. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Arten von Streams. Daten. Bytes (8-Bits) Java Programm. Daten. Java Programm. Characters (16 - Bits)

Network Communication. Dr. Jürgen Eckerle WS 06/07

Programmierzertifikat Objekt-Orientierte Programmierung mit Java

Ausnahmen. Dr. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Janeva:.NET meets J2EE

Ausnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Programm- Dokumentation mit JavaDoc

Ausnahmen. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Fragenkatalog ESOP WS 16/17

1 Klassen und Objekte

Verbindungen zu mehreren Clients. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 23: Netzwerkprogrammierung/ Kommunikation 2

3. Grundlegende Sprachkonstruktionen imperativer Programme

Rechnernetze und verteilte Systeme Übungsblatt P

Poseidon for UML. Einführung. Andreas Blunk

Networking. JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H.

Praktikum SEP: Java-Programmierung WS 2018/19

Streichen Sie bitte eine der Aufgaben 2-4!

Programmierstil in Java Coding-Standards und Dokumentation

Netzwerkprogrammierung

Java Fehlerbehandlung

Low-Level Client-Server Architektur

JAVA für Einsteiger. Streams und Dateien. eden market Autor: Norman Lahme

Einstieg in die Informatik mit Java

Einführung Servlets. JEE Vorlesung Teil 2. Ralf Gitzel

Selbststudium OOP6 & ALG Programmieren 1 - H1103 Felix Rohrer

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Dokumentieren mit Doxygen

Client-Server TCP/IP - Kodierung

Klassen und Objekte. Objekte einer Klasse bilden

Advanced Network Programming

Programmieren 2 12 Netzwerke

Klausur Rechnernetze

Ausnahmen und IO. Fehler, Ausnahmen, Java- Exception, throw, catch, Ströme, Puffer, Dateien lesen, schreiben, Tastatur, Terminal, HTTP

Ausdrucksbäume in verschiedenen Darstellungen

Kapitel 9: JavaDoc. Liste P: Programmieren mit Java WS 2001/2002. Prof. Dr. V. Turau. FH Wiesbaden. Folie 206 : Programmdokumentation

Rechnerkommunikation Sommersemester Oktober 2011

Transkript:

Kommentare, Client-Server, Protokolle Grundlagen für die erste Praktikumswoche 19. Oktober 2006

Dokumentationsziel Zweck und Funktionsweise sollten so dokumentiert werden, dass ein Programmierer eine Klasse und ihre Methoden verstehen und verwenden kann, ohne den Quellcode betrachten zu müssen.

Technik Dokumentation mit Javadoc Klassen, Methoden und Attribute werden kommentiert JavaDoc-Kommentare /** blabla */ mittels Kommando javadoc package files werden dann HTML-Seiten erzeugt. Javadocs stehen vor Klassen-, Variablen-, und Methodendeklarationen Kommentar darf spezielle Tags enthalten

Javadoc - Tags Querverweise (Hyperlinks) @see classname @see full_classname#method_name Vor Methoden @param param_name description @return description @exception full_classname description vor Klassen @author text @version text

Beispiel Dokumentation mit Javadoc public class Complex { private double im; private double re;... /** Addiert Parameter * @param x komplexe Zahl */ public void add(complex x) { im = im + x.im(); re = re + x.re(); }}

JavaDoc-Beispiel II /** Berechnet den Absolutbetrag * @return Laenge des Vectors * @see java.lang.math */ public double absolutbetrag() { return Math.sqrt( re*re + im*im ); }

JavaDoc-Compiler /text % javadoc -d [Destination] [FileName] -d bestimmt das Ziel der Übersetzung (Beispiel): Name eines Verzeichnisses. javadoc erzeugt Html-Dokumentation für die Datei: FileName. Joker * ist erlaubt.

JavaDoc-Beispiel-Output Es werden mehrere HTML-Files erzeugt: AllNames.html (Index für Klassen und Methoden) Complex.html (unsere Klassenbeschreibung) tree.html (Alle API-Klassen in baumartiger Übersicht) packages.html (Package-Übersicht) index.html (Die Übersicht mit den drei Frames...)

Architekturen Dokumentation mit Javadoc Client-Server Ablauf Java-Streams Client-Server Peer-to-Peer Praktikum: Individuell zugeschnittener Spezialfall Client-Server Begriffe: Login-Server Server / Client Stub / Skeleton

Client-Server Ablauf Java-Streams Netzwerkfunktionalität der Java-API TCP-IP-Netzwerkkommunikation im Paket: java.net ServerSocket - für den Loginserver public Socket accept() throws IOException Socket - für Server und Client public Socket(String host,int port) throws UnknownHostException,IOException public InputStream getinputstream() throws IOException public OutputStream getoutputstream() throws IOException public void close() throws IOException

Client-Server Ablauf Java-Streams Ablauf einer Client-Server-Kommunikation 1 Loginserver starten (S) 2 LS lauscht über ServerSocket an einem Port (S) 3 Client starten (C) 4 Socket erzeugen und Verbindung zum Host an bestimmten Port aufbauen (C) 5 Loginserver akzeptiert die Verbindung und erzeugt einer serverseitigen Socket (S) 6 LS erzeugt Server und übergibt serverseitigen Socket (S) 7...wechselseitige Kommunikation über Streams...

Eingabe-Strom Dokumentation mit Javadoc Client-Server Ablauf Java-Streams Auswahl durch: public InputStream getinputstream() throws IOException Zweckmäßig: Höherwertige Funktionalität durch Einbettung in InputStreamReader BufferedReader (siehe java.io) (BufferedReader stellt eine readln()-methode bereit.)

Ausgabe-Strom Dokumentation mit Javadoc Client-Server Ablauf Java-Streams Auswahl durch: public InputStream getinputstream() throws IOException Zweckmäßig: Höherwertige Funktionalität durch Einbettung in PrintWriter (PrintWriter stellt eine writeln()-methode bereit.)...siehe Beispiel...

Textuelle Protokollspezifikation Textuelle Spezifikation Graphische Spezifikation Übungsaufgabe Menge an Kommandos, dabei jeweils: Beschreibung der Vorbedingung (Ausgangszustand) Syntax (Kommando und Parameter) Ablaufbeschreibung (optional) Beschreibung der Nachbedingung (Folgezustand) Menge an Zuständen Beispiel: POP3-Protokoll

Graphische Spezifikation Textuelle Spezifikation Graphische Spezifikation Übungsaufgabe Zustandsautomat bzw. Transitionssystem Menge an Zuständen Menge an Transitionen (gerichtete Kanten, die Zustände verbinden) Kantenanschriften spezifizieren z.b.: gesendete Nachrichten Aktionen empfangene Nachrichten Bedingungen (Wächter) Standards: zb. UML-Zustandsdiagramme

UML Zustandsdiagramme Textuelle Spezifikation Graphische Spezifikation Übungsaufgabe (Teil-)Syntax für Transitionen in UML Zustandsdiagrammen: [Ereignis][/Aktion] Ereignis: zb. Empfang einer Nachricht, Methode wird (von aussen) aufgerufen Aktion: zb. Senden einer Nachricht, Methodenaufruf (selbst) Ereignis und Aktion müssen nicht immer zusammen an einer Transition notiert werden. (Steht ein Ereignis allein, kann der Schrägstrich weggelassen werden)

Beispiele Dokumentation mit Javadoc Textuelle Spezifikation Graphische Spezifikation Übungsaufgabe Öffnen und Schließen einer Tür: Fenster_auf!/"Fenster ist offen" Fenster geschlossen Fenster offen Fenster_zu!/"Fenster ist zu" Öffnen in zwei Schritten: Fenster_auf! Fenster wird geoeffnet /"Fenster ist offen" Fenster geschlossen Fenster offen

Beispiel: POP3 in UML Textuelle Spezifikation Graphische Spezifikation Übungsaufgabe pop3 Client +passwordvalid : boolean = false +uservalid : boolean = false +receive( ack : Ack ) : void +receive( greeting : Greeting ) : void -client -server+password( password : String ) : void +receive( err : Err ) : void +receive( ok : Ok ) : void 1 1 +receive( connectionrequest : ConnectionRequest ) : void +receive( quit : Quit ) : void +receive( command : Command ) : void +user( username : String ) : void Server POP3 Client-Server in UML

Beispiel: POP3 in UML Textuelle Spezifikation Graphische Spezifikation Übungsaufgabe / ^server.quit idle err / ^server.connectionrequest /^server.quit connecting greeting transactionmode / ^server.command established ack commandlaunched /^server.user USERsent err ok ok /^server.quit userisok /^server.password PWsent POP3-Protokollspezifikation in UML

...zum Schluß! Dokumentation mit Javadoc Textuelle Spezifikation Graphische Spezifikation Übungsaufgabe Hänsel und Gretel......vertreiben sich die Zeit!