Leitfaden für die Erstellung von Javacard Programmen für das Praktikum

Größe: px
Ab Seite anzeigen:

Download "Leitfaden für die Erstellung von Javacard Programmen für das Praktikum"

Transkript

1 Leitfaden für die Erstellung von Javacard Programmen für das Praktikum Lehrstuhl für Softwaretechnik und Programmiersprachen WS Überblick Dieser Leitfaden soll für Sie eine Anleitung darstellen, wie Dokumentation und Programme im Rahmen des Javacard Praktikums zu erstellen sind. Zunächst werden programmiertechnische Hinweise gegeben, der Hauptteil dieses Leitfadens konzentriert sich auf die Erstellung von Dokumentationen zu Ihrem Kommunikationsprotokoll. 2 Generelles zur Programmierung Gute Programme zeichnen sich durch eine Reihe von Gesichtspunkten aus, auf die im Folgenden eingegangen werden soll. Bitte beachten Sie, dass dieser Leitfaden die Gesichtspunkte aufführt, die für Ihre Programme als Minimalanforderungen zu verstehen sind. Abgaben, die diesen Requirements nicht folgen, werden mit Abzügen bewertet. Gute und sehr gute Abgaben zeichnen sich u.a. dadurch aus, über diese Anforderungen hinaus zu gehen. 2.1 JavaDoc und Kommentare Kommentieren Sie Ihren Code. Sämtliche Methoden (insbesondere diejenigen, die für die Anwendungslogik verantwortlich sind) sollten mit JavaDoc-Kommentaren versehen sein. Sie sollten insbesondere zu jeder Methode den Autor vermerken. Eine vollständige HTML API- Dokumentation ist Pflichtbestandteil jeder Abgabe. An Stellen, an denen dies nötig ist, sollten Sie auch Inline-Kommentare verwenden. 2.2 Magic Numbers Sie sollten keine Zahlen mitten in Ihrem Programmcode verwenden. Beispiel: byte x = (byte) buffer[ * y]; if (x == 0xFC && z << 1 == 0xF0) { System.out.println("Fehler"); Solcher Code ist völlig unleserlich und fehleranfallig. Verwenden Sie statt dessen Konstanten und wenn nötig Kommentare. 1

2 2.3 Naming Variablenbezeichner sollen aussagekräftige Namen haben. Bitte nicht so: byte a = (byte) buffer[x]; byte b = (byte) buffer[y]; if(a == k) {... } Bitte aber auch nicht unbedingt so: byte thisisthefirstparameter = (byte) buffer[thisistheoffsetforthefirstparameter]; byte thisisthesecondparameter = (byte) buffer[thisistheoffsetforthesecondparameter]; if(thisisthefirstparameter = thisistheexpectedparameter) {...} 2.4 Objektorientierung Nutzen Sie die OO-Konzepte, die Java bietet. Z.B. könnten Sie an Grenzen zwischen verschiedenen Teilen der Implementierung Interfaces benutzen. Wenn Sie zwei Klassen mit ähnlicher Funktionalität haben, sollten Sie eine abstrakte Oberklasse benutzen und keinen Code duplizieren. Kodieren Sie keine Real-World-Konzepte (ausser natürlich zur Übertragung an die Karte) in primitiven Datentypen (z.b. erste vier bit eines Integers bedeuten X, zweite vier bit bedeuten Y). Verwenden Sie statt dessen eine Klasse und sehen Sie Methoden vor, die diese Klasse in Ihre Übertragungsform konvertieren. 2.5 Benutzbarkeit Ihre Terminal-Programme sollten robust und sicher gegen (absichtliche oder unabsichtliche) Fehlbenutzung sein. Überlegen Sie Z.B., wie Ihre Teminal (und Ihre Karte) reagieren sollen, wenn die Karte zum falschen Zeitpunkt herausgezogen wird. Alle Terminalfunktionen sollten in der jeweiligen GUI übersichtlich und intuitiv benutzbar dargestellt sein. Ein Terminal, für das man zuerst ein Handbuch konsultieren muss, ist ein schlechtes Terminal. Verwenden Sie (falls es wirklich angemessen sein sollte) Wizards. 2.6 GUI-Programmierung Ihre GUI sollte unabhängig von Ihrer Applikationslogik sein. Schreiben Sie keinesfalls Logik für die Kommunikation und Protokollabwicklung in GUI-Klassen (z.b. direkt in eine actionperformed-methode). Sehen Sie in Ihrem Design eine klare GUI-zu-Logik Schnittstelle vor. Des Weiteren sollte Ihre GUI nicht hängen, wenn die Kommunikation mit der Karte abgewickelt wird. Verwenden Sie daher mehrere Threads. 3 Dokumentation des Protokolls Eine Protokoll-Spezifikation für ein Chipkarten-Applet soll dessen Funktionsweise und den Protokollablauf zwischen allen Beteiligten (Karte(n), Terminals, evtl. weitere Server) definieren. 2

3 Ihre Spezifikation sollte als Grundlage für Ihre Implementierung dienen und sollte daher grundsätzlich vor Beginn derselben abgeschlossen und mit den Betreuern besprochen sein. In diesem Sinne wird erwartet, dass Ihre Spezifikation auch einem fremden Programmierer als Grundlage seiner Arbeit dienen kann und damit selbsterklärend und vollständig sein sollte. Die Erfahrung zeigt, dass die Implementierung des Programms wesentlich leichter ist, wenn man sich im Voraus auf Datenformate, Arraypositionen und Ähnliches geeinigt hat. Grundsätzlich gilt, dass bei Abgabe einer Aufgabe die Spezifikation und die Implementierung vollständig zueinander konsistent sein sollten. Wenn Sie bei der späteren Programmierung feststellen, dass Ihre Spezifikation unzureichend war, ändern Sie diese bitte ebenfalls entsprechend ab. Die Konsistenz zum Programm, die Exaktheit und Verständlichkeit sowie die Form Ihrer Spezifikation sind neben der Implementierung eine weitere Grundlage für die Bewertung Ihrer Abgaben. Als Format für Ihre Spezifikation ist Postscript, PDF oder Word/Openoffice erlaubt. Aufgrund der erfahrungsgemäß schlechten Lesbarkeit sind Abgaben als.txt nicht zulässig. Abschnitt 5 dieses Leitfadens dient als Muster, wie Ihre Spezifikation aussehen soll und welche Daten sie enthalten muß. Es steht Ihnen natürlich frei, zusätzliche Angaben zu machen, wenn Sie der Meinung sind, diese seien für das Verständnis erforderlich. 4 Aufbau Bitte halten Sie sich bei der Erstellung Ihrer Spezifikation an den folgenden Aufbau: 1. Textuelle Beschreibung Ihres Programms 2. Kommunikationsprotokoll 3. Instructions und Datentypen 4. APDU-Beschreibungen und Kartenimplementierung 4.1 Textuelle Beschreibung Ihres Programms Beschreiben Sie kurz, was Ihr Programm leistet und vor allem welche zusätzlichen Annahmen und Festlegungen Sie über die Aufgabenstellung hinaus selbstständig getroffen haben. Gehen Sie kurz auf die Funktionsweise Ihres Terminals ein und beschreiben Sie, unter welchem Szenario ein Einsatz Ihres Programms auf Karte und Terminal denkbar ist (z.b. nur sinnvoll, wenn kein Zugriff auf den Chipkartenleser während der Benutzung möglich ist, etwa wie bei einem Bankautomat). Beschreiben Sie des Weiteren technische Vorraussetzungen Ihres Programms. In diese Kategorie fallen z.b. die evtl. verwendeten Kryptographie-Verfahren und die dazugehörigen Schlüssellängen, die gewählte Länge von Zufallszahlen und Ähnliches. Geben Sie zusätzlich Namen, Applet AID und Package AID an. 4.2 Kommunikationsprotokoll In diesem Abschnitt wird ein Überblick über den Protokollablauf (also sämtliche Kommunikation zwischen den Teilnehmern) erwartet. 3

4 Verwenden Sie bitte bei der Beschreibung Ihrer Nachrichten symbolische Namen für die einzelnen Nachrichtenteile (Instructions, Parameter und Daten) und definieren Sie diese im darauf folgenden Abnschitt Instructions und Datentypen. Ein Einfügen der Behandlung von Fehlerfällen in der folgenden Beschreibung würde die Lesbarkeit enorm verschlechtern. Stellen Sie Ihr Protokoll deshalb so dar, wie es bei einem Kommunikationsablauf funktionieren würde, der keine Fehler enthält. Auf die Behandlung von Fehlern soll erst im nächsten Abschnitt (APDU-Beschreibungen und Kartenimplementierung) eingegangen werden. Es bietet sich die folgende tabellarische Form an (hier für ein Terminal und die Karte): Protokollablauf für einen Rateversuch bei Mastermind Schritt Terminal Karte 1. enter GUESS TRY + GUESS check the GUESS compute ANSWER 2. display ANSWER ANSWER Stellen Sie in der jeweiligen Spalte für die Protokollteilnehmer knapp aber genau dar, welche zusätzlichen Eingaben (z.b. vom Benutzer), Ausgaben (z.b. an den Benutzer) und welche Überprüfungen und Berechnungen stattfinden sollen. In den Spalten zwischen den Protokollteilnehmern geben Sie die verschickten Nachrichten zwischen diesen an. Verwenden Sie ein + für die Konkatenation zweier Nachrichtenteile. Beachten Sie, dass die Kommunikation bei einem Chipkartenterminal (bedingt durch die Funktionsweise von Chipkarten) immer abwechselnd in beide Richtungen erfolgen muss. Im Anschluss an diese tabellarische Auflistung des Protokollablaufs sollten Sie textuell erläutern, warum das dargestellte Protokoll den jeweiligen Anforderungen der Aufgabe genügt und dabei evtl. auch Besonderheiten und wichtige Punkte, die bei Ihrem Protokoll von Belang sind, hervorheben. Für die Notation der Kryptographie verwenden Sie bitte die folgenden Konventionen: E(term card server)[data] = Verschlüsseln des Datensatzes data mit dem public key von Terminal Karte Server. (asymmetrisch) D(term card server)[data] = Entschlüsseln des Datensatzes data mit dem private key von Terminal Karte Server. (asymmetrisch) ES(SK)[data] = Verschlüsseln des Datensatzes data mit dem Sessionkey SK. (symmetrisch) DS(SK)[data] = Entschlüsseln des Datensatzes data mit dem Sessionkey SK. (symmetrisch) S(term card server)[data] = Signatur des Datensatzes data ausgestellt von Terminal Karte Server. H[data] = Hash-Wert des Datensatzes data. N1, N2,... = Zufallszahlen (engl. nonces) 4

5 4.3 Instructions und Datentypen Definieren Sie nun die symbolischen Namen für Ihre Instruction-Bytes und evtl. für weitere Konstanten, die Ihr Protokoll verwendet. Diese Instructions und Konstanten sollten dann natürlich auch im Code in passender Form verwendet werden. Beispiel: Konstanten Name Wert intuitive Semantik START GAME 0x06 Beginn eines neuen Spiels TRY Wenn Sie in Ihrem Applet spezielle Array-Repräsentationen für bestimmte Datentypen verwenden, so geben Sie deren Definition an. Beispiel: spezielle Datentypen Datentyp Beschreibung Repräsentation GUESS Rateversuch für Mastermind Byte 0 Byte 1 Byte 2 Byte 3 X1 X2 X3 X4 Bedeutung: In X1..X4 stehen Kodierungen für die geratenen Farben an den jeweiligen Stellen (0x01 = rot, 0x02 = grün,...) ANSWER 4.4 APDU-Beschreibungen und Kartenimplementierung In diesem Abschnitt sollen Sie nun die verwendeten APDUs und das jeweils zugehörige Verhalten der Karte genau spezifizieren. Beschreiben Sie dazu zunächst kurz die Implementierung Ihres Applets, indem Sie die für die folgenden Beschreibungen relevanten Felder angeben und Ihre Semantik kurz beschreiben. Beispiel: Feld Semantik byte guesscount Anzahl der Rateversuche des Spielers Für die Select -APDU geben Sie bitte an, in welchem Zustand sich Ihr Applet nach Erhalt eines Selects befindet. Für die Install -APDU geben Sie zusätzlich noch die übergebenen Initialisierungsparameter und mögliche Fehlerfälle an (sh. Abschnitt 5). Für die APDUs Ihres Protokolls werden die folgenden Angaben erwartet: 1. Name des Instruction-Bytes Machen Sie zusätzlich Verweise auf die Stellen, an denen diese Instruction in einem Protokollschritt verwendet wird. 5

6 2. Beschreibung der APDU Geben Sie eine exakte Beschreibung des Aufbaus der an die Karte übermittelten APDU. 3. Überprüfungen und Berechnungen Beschreiben Sie sämtliche Vorgänge, die auf der Karte nach Erhalt dieser APDU durchgeführt werden (unter Bezugnahme auf Ihre gerade definierten Felder und die jeweiligen Daten). Die Art der Beschreibung bleibt hierbei Ihnen überlassen (textuell, mittels logischer Formeln, semi-formal,...), solange klar ersichtlich ist, was gemeint ist. 4. Behandlung des Normalfalls (a) Response-APDU Beschreiben Sie die Response-APDU, die verschickt wird, wenn die Überprüfungen dem intuitiven Normalfall entsprachen. (b) resultierender Kartenzustand Beschreiben Sie möglichst genau, was der Zustand der Karte nach Verschicken der Response-APDU ist. 5. Behandlung von Fehlerfällen und Ausnahmen Beschreiben Sie sämtliche Fehlerfälle und Ausnahmen. Gehen Sie dabei jeweils analog zur Beschreibung des Normalfalls vor. Beispiel: APDU: Protokollschritt TRY (verwendet im Protokoll Rateversuch in Schritt 1.) CMD INS P1 P2 LC DATA LE 0x90 TRY 0x00 0x00 0x04 GUESS 0x04 1. Überprüfungen und Berechnungen: (a) prüfe LC == 0x04 LC == #(data) (b) prüfe, ob GUESS[0..3] gültige Codierungen für einen Rateversuch sind ( i : i 0 i 3 GUESS[i] 0 GUESS[i] 5) (c) berechne ANSWER =..., falls Normalfall: (a) Response-APDU: Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 ANSWER SW OK (b) resultierender Kartenzustand: trycount++, falls

7 3. Fehlerfälle und Ausnahmen: (a) falls #(data) 4 #(data) LC : i. Response-APDU: Byte 0 Byte 1 SW WRONG LENGTH ii. resultierender Kartenzustand: (b) falls

8 5 Template für eine Spezifikation 5.1 Beschreibung Generelles Name des Applets: Applet AID Package AID Funktionalität Verwendete technische Verfahren Getroffene Annahmen 5.2 Kommunikationsprotokoll Protokollablauf... Name: Anmerkungen: Schritt Terminal Karte

9 5.2.2 Protokollablauf... Name: Anmerkungen: Schritt Server Terminal Karte Protokollablauf Instructions und Datentypen Konstanten Name Bytewert intuitive Semantik Abkürzungen für komplexe Datentypen Datentyp Beschreibung Repräsentation Byte 0 Byte n b 0 b n Semantik: Byte 0 Byte n b 0 b n Semantik: 5.4 APDU-Beschreibungen und Kartenimplementierung Wichtige Felder des Applets Feld Semantik INSTALL und SELECT INSTALL 9

10 Art und Struktur der Parameter Byte 0... Byte n b 0... b n resultierender Kartenzustand:... Fehlerfälle: 1. falls... : (a) Response-APDU: Byte 0... Byte n b 0... b n (b) resultierender Kartenzustand: 2. falls resultierender Kartenzustand: SELECT Applikationsprotokoll APDU: Protokollschritt... (verwendet im Protokollablauf... in Schritt...) CMD INS P1 P2 LC DATA LE 0xXX 0xXX 0xXX 0xXX 0xXX XY 0xXX 1. Überprüfungen und Berechnungen: 10

11 (a) prüfe (b) berechne (c) Normalfall: (a) Response-APDU: Byte 0... Byte b b 0... b n (b) resultierender Kartenzustand: Fehlerfälle und Ausnahmen: (a) falls... : i. Response-APDU: Byte 0... Byte n b 0... b n ii. resultierender Kartenzustand: (b) falls

Programmieren von Java Smartcards

Programmieren von Java Smartcards Programmieren von Java Smartcards Aufgabe 0: Zur Einführung in die Programmierung von Giesecke und Devrient Java Smartcards soll ein neues Kartenapplet erstellt, im Simulator getestet sowie anschließend

Mehr

Kapitel 3: Kommunikation mit der Karte

Kapitel 3: Kommunikation mit der Karte Kapitel 3: Kommunikation mit der Karte Relevanter Standard: ISO 7816-4 Kartenleser/Terminal: Master, Smartcard: Slave APDU = Application Protocol Data Unit: Folge von Bytes Terminal Karte: Command APDU

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Lösung zu Praktikum 1 -Programmierung eines Java Card Applets-

Lösung zu Praktikum 1 -Programmierung eines Java Card Applets- Lösung zu Praktikum 1 -Programmierung eines Java Card Applets- Björn Wontora, Holger Plett, Christian Linke, Karsten Reineck, Sven Siek, Andreas Kupfer Phasen beim Cardlet Entwurf 1. Funktionen des Applets

Mehr

Programmierung von Smart Cards mit Hilfe von Java

Programmierung von Smart Cards mit Hilfe von Java Java Card 2.1.2 Programmierung von Smart Cards mit Hilfe von Java Übersicht 1. Einführung Smart Cards 2. Java Card Spezifikationen 3. Java Card Development Kit 4. Java Card in der Praxis und Fazit 1. Einführung

Mehr

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217 EIDI 1 Einführung in die Informatik 1 PGdP Praktikum Grundlagen der Programmierung Harald Räcke 2/217 Wie löst man Probleme mithilfe von Computern? 0 Harald Räcke 3/217 Inhalte: EIDI 1 1. Was ist das Problem?

Mehr

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1 Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................

Mehr

Herzlich willkommen. Programmieren von Java-Smartcards

Herzlich willkommen. Programmieren von Java-Smartcards Herzlich willkommen zur integrierten Vorlesung und Übung Programmieren von Java-Smartcards im Wintersemester 2007/2008 Kurt Stenzel Matthias Güdemann Jonathan Schmitt Kapitel 1: Einführung Worum geht es

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Welche Normen spezifizieren APDUs als Teil des Protokolls? ISO/IEC

Welche Normen spezifizieren APDUs als Teil des Protokolls? ISO/IEC Was ist eine APDU? (Aufbau, Beschreibung) APDU = Application Protocol Data Unit Wird verwendet für den Austausch von Daten zwischen der Karte und dem Reader Terminal. Struktur Command-APDU & Response APDU

Mehr

Vortrag von Jan-Christopher Pien Seminar IT-Security Workshop Dr. Wolf Müller

Vortrag von Jan-Christopher Pien Seminar IT-Security Workshop Dr. Wolf Müller Vortrag von Jan-Christopher Pien Seminar IT-Security Workshop Dr. Wolf Müller 14.10.2016 Gliederung 1. Einleitung 1. Worum geht es überhaupt? 2. Grundlagen der Smartcard-Kommunikation 1. Kommunikationsprotokoll

Mehr

Dokumentationskonzept

Dokumentationskonzept 1. Eigene Java Code Convention Dokumentationskonzept Soweit nichts Abweichendes angegeben, sind die Implementierer dazu gehalten, sich an die Regeln für guten Code aus den allgemeinen SUN Konventionen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White

Mehr

Übungen zur Vorlesung Wissenschaftliches Rechnen I

Übungen zur Vorlesung Wissenschaftliches Rechnen I Übungen zur Vorlesung Wissenschaftliches Rechnen I Nicolas Gauger, René Lamour, Hella Rabus Wintersemester 2007/2008 Programmierung - Einführung Programmierung - Einführung Berechnung einer Formel y =

Mehr

Programmierpraktikum

Programmierpraktikum TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Praktikum: Grundlagen der Programmierung Programmierpraktikum Woche 04 (17.11.2016) Stefan Berktold s.berktold@tum.de PRÄSENZAUFGABEN Heutige Übersicht

Mehr

Institut für Programmierung und Reaktive Systeme 24. April Programmieren II. 10. Übungsblatt

Institut für Programmierung und Reaktive Systeme 24. April Programmieren II. 10. Übungsblatt Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 24. April 2018 Programmieren II 10. Übungsblatt Hinweis: Auf diesem und den folgenden Übungsblättern

Mehr

Java. Von den Grundlagen bis zu Threads und Netzen von Prof. Dr. Ernst-Wolfgang Dieterich Fachhochschule Ulm

Java. Von den Grundlagen bis zu Threads und Netzen von Prof. Dr. Ernst-Wolfgang Dieterich Fachhochschule Ulm Java Von den Grundlagen bis zu Threads und Netzen von Prof. Dr. Ernst-Wolfgang Dieterich Fachhochschule Ulm R.Oldenbourg Verlag München Wien 1999 1. Einleitung 11 2. Java-Entwicklungsumgebung 15 2.1 JDK

Mehr

Variablen und Datentypen

Variablen und Datentypen Programmieren mit Java Modul 1 Variablen und Datentypen Selbstständiger Teil Inhaltsverzeichnis 1 Bremsweg-Berechnung 3 1.1 Einführung.................................. 3 1.2 Aufgabenstellung und Programmanforderungen..............

Mehr

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen 16OH21005 gefördert. Die Verantwortung für den Inhalt dieser

Mehr

Werkzeugunterstützung für UML Profiles. Verteidigung des Großen Belegs Andreas Pleuß

Werkzeugunterstützung für UML Profiles. Verteidigung des Großen Belegs Andreas Pleuß Werkzeugunterstützung für UML Profiles Verteidigung des Großen Belegs Andreas Pleuß Aufgabenstellung Sammlung der Anforderungen an UML Profiles Untersuchung bestehender UML-CASE-Tool Unterstützung Untersuchung

Mehr

Programmierung eines Computers (Funktionsweise)

Programmierung eines Computers (Funktionsweise) (Funktionsweise) Wussten Sie schon das Computer eigentlich ziemlich dumm sind? Computer können nur ganz wenige Dinge, z.b.: -zwei Zahlen addieren - zwei Zahlen vergleichen - zur nächsten Anweisung springen

Mehr

Informatik für Ingenieure (InfIng)

Informatik für Ingenieure (InfIng) Informatik für Ingenieure (InfIng) Klausur-Vorbereitung Doz. Dipl.-Ing. H. Hiller WS 2012/13 Rückblick FH D Seite 2 FB 5 Klausurvorbereitung Funktion? while-schleife? Objekt? Kleiner Tipp von mir: Es handelt

Mehr

Abschnitt 11: Korrektheit von imperativen Programmen

Abschnitt 11: Korrektheit von imperativen Programmen Abschnitt 11: Korrektheit von imperativen Programmen 11. Korrektheit von imperativen Programmen 11.1 11.2Testen der Korrektheit in Java Peer Kröger (LMU München) in die Programmierung WS 16/17 931 / 961

Mehr

IN A NUTSHELL. Elliotte Rusty Harold & W, Scott Means. Deutsche Übersetzung von Kathrin Lichtenberg & Jochen Wiedmann O'REILLY*

IN A NUTSHELL. Elliotte Rusty Harold & W, Scott Means. Deutsche Übersetzung von Kathrin Lichtenberg & Jochen Wiedmann O'REILLY* 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. IN A NUTSHELL Elliotte Rusty Harold & W, Scott Means Deutsche Übersetzung

Mehr

Entwurfsmuster (Design Patterns)

Entwurfsmuster (Design Patterns) Entwurfsmuster (Design Patterns) SEP 303 Entwurfsmuster (Design Patterns) In der alltäglichen Programmierarbeit tauchen viele Probleme auf, die man schon einmal gelöst hat und die man in der Zukunft wieder

Mehr

UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language

UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language ADV-Seminar Leiter: Ziel dieses Seminars Verständnis von Objekt-Orientierung Was sind Klassen? Was ist Vererbung?

Mehr

Institut für Informatik und Angewandte Kognitionswissenschaften

Institut für Informatik und Angewandte Kognitionswissenschaften Grundlegende Programmiertechniken (»Programmierung«), WS 2007/2008 Übungsblatt 5 Präsenzaufgaben: 11, 12, 13 Hausaufgabe: 14 Aufgabe 11 STRING- UND OBJEKT-VERGLEICH String s1 = new String("Test String");

Mehr

Software- und Systemsicherheit. Kurt Stenzel

Software- und Systemsicherheit. Kurt Stenzel Software- und Systemsicherheit Kurt Stenzel Herzlich willkommen zur integrierten Vorlesung und Übung Software- und Systemsicherheit im Wintersemester 2011/2012 Kurt Stenzel, Nina Moebius, Marian Borek

Mehr

Chipkarten mit synchroner Übertragung - Anwendung von Interindustry Commands

Chipkarten mit synchroner Übertragung - Anwendung von Interindustry Commands Teil 7 Chipkarten mit synchroner Übertragung - Anwendung von Interindustry Commands MKT-Version 1.0 15.04.1999 Inhalt 1 Zweck... 1 2 Normative Verweisungen... 1 3 Abkürzungen... 1 4 Das Umsetzungsprinzip...

Mehr

Objektorientiertes Programmieren

Objektorientiertes Programmieren JL Ute Claussen Objektorientiertes Programmieren Mit Beispielen und Übungen in C++ Zweite, überarbeitete und erweiterte Auflage Mit 24 Abbildungen Springer Inhaltsverzeichnis 1 Einleitung 1 1.1 Was ist

Mehr

Kommentare, Client-Server, Protokolle

Kommentare, Client-Server, Protokolle 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

Mehr

3. Dokumentieren und Testen Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

3. Dokumentieren und Testen Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 3. Dokumentieren und Testen Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen zu Schnittstellen Was bedeutet Orthogonalität / Separation of Concerns?

Mehr

Informatik Algorithmen und Programme

Informatik Algorithmen und Programme Informatik Algorithmen und Programme Seite 1 Grundlagen der Programmierung: Spezifikation Phasen der Software-Entwicklung Spezifikation Problem und seine Lösung beschreiben vollständig detailliert unzweideutig

Mehr

Konzepte der Programmiersprachen

Konzepte der Programmiersprachen Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C

Mehr

Low-Level Client-Server Architektur

Low-Level Client-Server Architektur Softwareentwicklung in verteilten Umgebungen Einführung Übung 1 Low-Level Client-Server Architektur Alexander Lex 1 KEINE PLAGIATE! Einzel-Übungen! Eigenständige Arbeit jedes Teilnehmers Weitergabe von

Mehr

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur

Mehr

Serielle Kommunikation - Kodierung

Serielle Kommunikation - Kodierung Serielle Kommunikation - Kodierung (1.) Erstellen Sie nachfolgende Klasse: Dabei haben die Methoden folgende Funktionen: exists(): Überprüft, ob eine serielle Schnittstelle existiert getproperties(): Liefert

Mehr

Einführung: Verteilte Systeme - Remote Method Invocation -

Einführung: Verteilte Systeme - Remote Method Invocation - Einführung: Verteilte Systeme - - Prof. Dr. Michael Cebulla 11. Dezember 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 43 M. Cebulla Verteilte Systeme Gliederung 1 2 Architektur RMI Kommunikation

Mehr

JavaScript objektorientiert

JavaScript objektorientiert JavaScript objektorientiert Verständlicher, flexibler, effizienter programmieren Bearbeitet von Nicholas Zakas 1. Auflage 2014. Taschenbuch. XIV, 122 S. Paperback ISBN 978 3 86490 202 4 Format (B x L):

Mehr

Student: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum:

Student: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum: Berufsakademie Stuttgart / Außenstelle Horb Studienbereich Technik Studiengang Informationstechnik Kurs IT2006, 2.Semester Dozent: Olaf Herden Student: Alexander Carls Matrikelnummer: 166270 Aufgabe: Beschreibung

Mehr

Liste Programmieren Java Überblick

Liste Programmieren Java Überblick Liste Programmieren Java Überblick 1 Was ist Java? 2 Klassen und Objekte 3 Vererbung 4 Schnittstellen 5 Innere Klassen 6 Exceptions 8 Datenstrukturen und Algorithmen 9 Ein-/Ausgabe 10 Threads 11 GUI-Programmierung

Mehr

BIF/SWE - Übungsbeispiel

BIF/SWE - Übungsbeispiel Arthur Zaczek Feb 2015 1 Allgemein 1.1 Ziele Ziele dieses Übungsbeispieles ist es: GUI: Implementierung einer grafischen Oberfläche mit JavaFX oder WPF UI-Komponente: Implementierung einer eigenen grafischen

Mehr

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH 1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch

Mehr

11. Komponenten Grundlagen der Programmierung 1 (Java)

11. Komponenten Grundlagen der Programmierung 1 (Java) 11. Komponenten Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 10. Januar 2006 Einordnung im Kontext der Vorlesung

Mehr

Projekt MasterMind Systemspezifikation

Projekt MasterMind Systemspezifikation Hochschule Luzern, Technik & Architektur Projekt MasterMind Eine Projektarbeit des Studiengangs Informatik im Modul Horw, 26.05.2009 Projekt Dokument Auftraggeber Projekt MasterMind Hochschule Luzern,

Mehr

Übungsblatt 1. Java Vorkurs (WS 2017)

Übungsblatt 1. Java Vorkurs (WS 2017) Übungsblatt 1 Java Vorkurs (WS 2017) Aufgabe 1 Hallo-Welt Erstelle ein neues Projekt mit dem Namen HelloJava. Erzeuge in diesem Projekt eine neue Klasse HelloJava. (a) Schreibe die main-methode in die

Mehr

, 2014W Übungsgruppen: Mo., Mi.,

, 2014W Übungsgruppen: Mo., Mi., VU Technische Grundlagen der Informatik Übung 5: ikroprozessor (icro16) 183.579, 2014W Übungsgruppen: o., 01.12. i., 03.12.2014 Aufgabe 1: Schaltwerksentwicklung Hexapod / Teil 2 a) Befüllen Sie die untenstehende

Mehr

(6) Verknüpfen der GUI mit dem Spiel

(6) Verknüpfen der GUI mit dem Spiel Das einzige was eurer App jetzt noch fehlt ist die Verknüpfung eurer GUI mit dem Spiel Schiffe Versenken. Damit auch alles perfekt funktioniert werdet ihr als Vorbereitung einige neue Elemente und Variablen

Mehr

Programme erstellen in Java

Programme erstellen in Java Programmieren mit Java Modul 0 Programme erstellen in Java Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Schreiben von Computerprogrammen 3 2.1 Computerprogramme bestehen aus Daten und Instruktionen.......

Mehr

Universität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer

Universität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer Universität zu Lübeck Institut für Telematik Prof. Dr. Stefan Fischer Probeklausur im Fach Programmieren Hinweise zur Bearbeitung: Es sind keinerlei Hilfsmittel zugelassen. Diese Klausur umfasst 18 Seiten.

Mehr

Handbuch der Chipkarten

Handbuch der Chipkarten Wolfgang Rankl und Wolfgang Effing Handbuch der Chipkarten Aufbau - Funktionsweise - Einsatz von Smart Cards Mit einem Vorwort von Jürgen Dethloff 2., völlig überarbeitete und erweiterte Auflage 375 Bilder

Mehr

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr

Organisatorisches. Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, , 14 Uhr bis Do, , 8Uhr Organisatorisches Neue Übungsblätter: Nur mehr elektronisch? Abgabe Di, 14.10., 14 Uhr bis Do, 23.10., 8Uhr. 14.10.2014 IT I - VO 1 1 IT I: Heute Wiederholung CuP ctd: this Arrays, ArrayLists Schleifen:

Mehr

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007 Systemprogrammierung Projekt: Java RMI Wintersemester 2006 / 2007 Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 2 1. Einleitung

Mehr

Programmieren I + II Regeln der Code-Formatierung

Programmieren I + II Regeln der Code-Formatierung Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2012/2013, SS 2013 Programmieren I + II Regeln der Code-Formatierung Die hier vorgestellten

Mehr

Coding-Standards und Dokumentation

Coding-Standards und Dokumentation Coding-Standards und Dokumentation SEP 2018 Tobias Lingelmann 2018-04-17 DBS Wissenschaftliche Betreuer: Daniel Kaltenthaler, Johannes Lohrer Verantwortlicher Professor: Prof. Dr. Peer Kröger Übersicht

Mehr

TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4

TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4 Inhaltsverzeichnis TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA... 1 1 GRUNDLAGEN DER PROGRAMMIERUNG... 4 1.1 Das erste Java-Programm... 4 1.2 Programme und ihre Abläufe... 6 1.3 Entwurf mit Nassi-Shneiderman-Diagrammen...

Mehr

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8 Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Programmieren I + II Regeln der Code-Formatierung

Programmieren I + II Regeln der Code-Formatierung Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden

Mehr

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 2. Spezifikation Schrittweise Verfeinerung

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 2. Spezifikation Schrittweise Verfeinerung UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1 Übung 2 Spezifikation Schrittweise Verfeinerung Institut für Pervasive Computing Johannes Kepler Universität Linz Altenberger Straße 69,

Mehr

Friedrich-Ebert-Schule Brunhildenstraße 53 65819 Wiesbaden. Leitfaden zur Anfertigung von Projektdokumentationen

Friedrich-Ebert-Schule Brunhildenstraße 53 65819 Wiesbaden. Leitfaden zur Anfertigung von Projektdokumentationen Friedrich-Ebert-Schule Brunhildenstraße 53 65819 Wiesbaden Leitfaden zur Anfertigung von Projektdokumentationen INHALTSVERZEICHNIS Seite 1. ALLGEMEINES 1 1.1 VORBEMERKUNGEN.1 1.2 ABGABE DER ARBEIT..1 2.

Mehr

ÜBUNGS-BLOCK 7 LÖSUNGEN

ÜBUNGS-BLOCK 7 LÖSUNGEN ÜBUNGS-BLOCK 7 LÖSUNGEN Aufgabe 1: Gegeben ist folgender Code: Auto[] array = new Auto[3]; // Alle Autos im Array tunen: for (int i = 1; i

Mehr

Grundlagen und Konzepte von C Datenstrukturen

Grundlagen und Konzepte von C Datenstrukturen Grundlagen und Konzepte von C Datenstrukturen Ausarbeitung von Andreas Gadelmaier Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik,

Mehr

Intensivübung zu Algorithmen und Datenstrukturen

Intensivübung zu Algorithmen und Datenstrukturen Intensivübung zu Algorithmen und Datenstrukturen Silvia Schreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Programmierung Fallunterscheidung Flussdiagramm Bedingungen Boolesche

Mehr

Einführung in Javadoc

Einführung in Javadoc Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:

Mehr

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme Programmieren I Dr. Werner Struckmann 8. September 2014 Name: Vorname: Matrikelnummer: Kennnummer: Anrede: Frau Herr

Mehr

Klausur: Java (Liste P)

Klausur: Java (Liste P) Klausur: Java (Liste P) SS05 Erlaubte Hilfsmittel: Gebundene! Unterlagen (Skript mit Anmerkungen, eigene Mitschrift) und maximal ein Buch. Bitte keine losen Blätter. Lösung ist auf den Klausurbögen anzufertigen.

Mehr

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. 1 In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. Zunächst stellt sich die Frage: Warum soll ich mich mit der Architektur eines DBMS beschäftigen?

Mehr

Bisher. Programme, Sequenzen von Formen. Ausdrücke und ihre Auswertung (Substitutionsmodell)

Bisher. Programme, Sequenzen von Formen. Ausdrücke und ihre Auswertung (Substitutionsmodell) Bisher Programme, Sequenzen von Formen Ausdrücke und ihre Auswertung (Substitutionsmodell) Konstruktionsanleitung für Prozeduren Kurzbeschreibung Sorten und Verträge Gerüst Testfälle Rumpf ausfüllen Testen

Mehr

Applet Firewall und Freigabe der Objekte

Applet Firewall und Freigabe der Objekte Hauptseminar Applet Firewall und Freigabe der Objekte Nachweis von Sicherheitseigenschaften für JavaCard Jin Zhou Ein Überblick über diesen Vortrag Applet Firewall Kontext JCRE Entry Point Objekt Shareable

Mehr

SOFTWARE ENGINEERING BESPRECHUNG ÜBUNG2. Anforderungsspezifikation und GWT Tutorien

SOFTWARE ENGINEERING BESPRECHUNG ÜBUNG2. Anforderungsspezifikation und GWT Tutorien SOFTWARE ENGINEERING BESPRECHUNG ÜBUNG2 Anforderungsspezifikation und GWT Tutorien TEACHING TEAM Paul Muntean muntean@ifi.uzh.ch Martina Rakaric martina.rakaric@gmail.com 2 ABGABE Abgabe OLAT Erlaubte

Mehr

Kandinsky Music Painter II

Kandinsky Music Painter II Kandinsky Music Painter II Software zur grafischen Komposition musikalischer Strukturen 02.12.2016 von Tobias Kölker Inhaltsverzeichnis Motivation Kandinsky Music Painter Allgemeines Funktionsweise Bewertung

Mehr

Ein RSA verwandtes, randomisiertes Public Key Kryptosystem

Ein RSA verwandtes, randomisiertes Public Key Kryptosystem Seminar Codes und Kryptographie WS 2003 Ein RSA verwandtes, randomisiertes Public Key Kryptosystem Kai Gehrs Übersicht 1. Motivation 2. Das Public Key Kryptosystem 2.1 p-sylow Untergruppen und eine spezielle

Mehr

SE Besprechung. Übung 1 Programmverständnis, Dokumentation

SE Besprechung. Übung 1 Programmverständnis, Dokumentation SE Besprechung Übung 1 Programmverständnis, Dokumentation SE, 11.10.11 Mengia Zollinger Teaching Assistant Mengia Zollinger 7. Semester Wirtschaftsinformatik Fasttrack bei A.

Mehr

Informatik II Übung 6 Gruppe 7

Informatik II Übung 6 Gruppe 7 Informatik II Übung 6 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch DEBRIEFING Übung 5 2 U5A1-4 Im Prinzip alles richtig. Falls am Ende noch Zeit, dann Einsicht in die Best Of s 3 THEORIE Java Vererbung,

Mehr

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen 7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen

Mehr

Weitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax

Weitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax Weitere Beispiele Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts public interface Funktion { boolean istimdefbereich(double x); double wert(double x); String gibbeschreibung(); public interface

Mehr

Kapitel

Kapitel 10.11.005 Kapitel 4-10.11.005 Lehrbeispiel: Sortieralgorithmus " Bubble Sort" Sortieren von Primitivtypen Der "Abstrakte Datentyp" Grundlagen der Objektorientierung: Abstraktion, Kapselung, Modularität,

Mehr

Kommentierung in C. Kommentierung in C. Von Sebastian Rothe 1/26. Kommentierung in C

Kommentierung in C. Kommentierung in C. Von Sebastian Rothe 1/26. Kommentierung in C Von Sebastian Rothe 1/26 Inhaltsverzeichnis 1. Programmierstil eine Übersicht 2. Motivation wozu Kommentierung? 3. Aspekte der Kommentierung 4. GLib als Beispiel 5. Dokumentationssysteme 6. Zusammenfassung

Mehr

Institut fu r Informatik

Institut fu r Informatik Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter WS 2015/16 Aufgabenblatt 5 16.11.2015

Mehr

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation Teil 3 RMI over IIOP

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation Teil 3 RMI over IIOP UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 Java Remote Method Invocation Teil 3 RMI over IIOP el0100 copyright Abt. Technische Informatik,

Mehr

Institut für Informatik

Institut für Informatik Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2009 Praktikum: Grundlagen der Programmierung Aufgabenblatt 1 Prof. R. Westermann, R. Fraedrich,

Mehr

Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker

Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker Andreas Keese Institut f. Wissenschaftliches Rechnen TU Braunschweig 8. September 2014 Der Text, die Abbildungen und Programme

Mehr

Kapitel 5: Das Design

Kapitel 5: Das Design Nach der Analyse kommt... Kapitel 5: Das Design SoPra 2008 Kap. 5: Das Design (1/20) Kapitel 5.1: Überblick Was ist Design? Ergebnis der Analyse: abstrakte Definitionen Objektmodell: Klassen, Assoziationen,

Mehr

Übung Programmierung WS 2007/08 - Blatt 6

Übung Programmierung WS 2007/08 - Blatt 6 RHEINISCH- WESTFÄLISCHE TECHNISCHE HOCHSCHULE AACHEN LEHR- UND FORSCHUNGSGEBIET INFORMATIK 2 RWTH Aachen D-52056 Aachen GERMANY http://programmierung.informatik.rwth-aachen.de LuFG Informatik II Prof.

Mehr

Einfache SDO-Zugriffe für CANopen-E/A-Module

Einfache SDO-Zugriffe für CANopen-E/A-Module ( wirklich ohne Ballast? ) Autor: Wolfgang Büscher Stand: 18.05.2001 Ablage: c:\cproj\ea_mod\doku\art85029_Ea515_Easy_SDO.odt Verteiler: (unbekannt) ACHTUNG: DIESE BESCHREIBUNG IST NICHT ALS GRUNDLAGE

Mehr

Mehrsortige Strukturen

Mehrsortige Strukturen Was bisher geschah Modellierung von Daten durch Mengen (Individuenbereiche), häufig zusammengesetzt durch Mengenoperationen, Zusammenhängen zwischen Individuen durch Relationen (auch Eigenschaften) Funktionen

Mehr

Praktikum. SEP: Java-Programmierung WS 2018/19. Modularisierung. Thomas Lemberger und Martin Spießl

Praktikum. SEP: Java-Programmierung WS 2018/19. Modularisierung. Thomas Lemberger und Martin Spießl Praktikum SEP: Java-Programmierung WS 2018/19 Modularisierung Thomas Lemberger und Martin Spießl Basierend auf Folien von Matthias Dangl und Karlheinz Friedberger 1 / 10 Modularisierung Module gliedern

Mehr

Übungspaket 12 Der Datentyp char

Übungspaket 12 Der Datentyp char Übungspaket 12 Der Datentyp char Übungsziele: Skript: 1. Umgang mit dem Datentyp char, 2. Deklarationen von char-variablen, 3. char-konstanten 4. und char-rechenoperationen. Kapitel: 29 bis 31 sowie 24,

Mehr

3-schichtige Informationssystem-Architektur

3-schichtige Informationssystem-Architektur 3-schichtige Informationssystem-Architektur plattformunabhängig beliebige Endgeräte Client als Applikation & Applet XML über SOAP Standard plattformunabhängig objektorientierte Architektur multiuserfähig

Mehr

Selbstorganisation ist die höchste Stufe der Professionalität des Lernens

Selbstorganisation ist die höchste Stufe der Professionalität des Lernens Selbstorganisation ist die höchste Stufe der Professionalität des Lernens Selbstorganisation ist die höchste Stufe der Professionalität des Lernens und nicht die Naivität in Reinkultur Selbstorganisation

Mehr

Strommarktoptimierter Betrieb eines Stromspeichers

Strommarktoptimierter Betrieb eines Stromspeichers Strommarktoptimierter Betrieb eines Stromspeichers 1. Einleitung 2. Definition eines Strommarktes 3. Definition von Stromspeichern 4. Analyse der Ergebnisse 5. Anhang: Datenimport aus einer Tabelle in

Mehr

Übungen zum Bioinformatik-Tutorium. Blatt 3

Übungen zum Bioinformatik-Tutorium. Blatt 3 Institut für Informatik Wintersemester 2018/19 Praktische Informatik und Bioinformatik Prof. Dr. Ralf Zimmer Übungen zum Bioinformatik-Tutorium Blatt 3 Termin: Dienstag, 6.11.2018, 11 Uhr 1. Hello World

Mehr

Inhaltsverzeichnis. Teil 1 Grundlagen der Objektorientierung 29

Inhaltsverzeichnis. Teil 1 Grundlagen der Objektorientierung 29 Vorwort von James Gosling, Sun Microsystems 15 Vorwort an Kursleiter 16 Vorwort des Übersetzers 24 Projekte, die in diesem Buch detailliert besprochen werden 25 Danksagungen 27 Teil 1 Grundlagen der Objektorientierung

Mehr

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Organisatorisches Vorlesung Donnerstag 8:35 bis 10:05 Übung drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Tutorium (Mehr oder weniger) abwechselnd Mo und Mi 10-11:30 Termine

Mehr

Einführung in die Informatik - Teil 6a -

Einführung in die Informatik - Teil 6a - Eckart Modrow Felder mit dem JBuilder S. 1 Einführung in die Informatik - Teil 6a - Felder mit dem JBuilder Inhalt: 1. Bezug zum Unterricht: Anwendungen 2. Eine eigene Klasse Feldverwalter 3. Den Feldverwalter

Mehr

Programmieren 2 Java Überblick

Programmieren 2 Java Überblick Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 3 Schnittstellen 4 Innere Klassen 5 Exceptions 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10 Applets

Mehr

Kapitel 5: Daten und Operationen

Kapitel 5: Daten und Operationen Kapitel 5: Daten und Operationen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2007 Folien nach einer Vorlage von H.-Peter

Mehr

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren

Kapitel 1: Einleitung. Gliederung. Zum Begriff Informatik Zum Begriff Algorithmus Zum Begriff Programmieren Kapitel 1: Einleitung Wintersemester 2006/07 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Gliederung Zum Begriff Informatik

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 06: Das Visitor Pattern Prof. Dr. Peter Thiemann (vertreten durch Luminous Fennell) Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg)

Mehr