Trace- und Zeit-Zusicherungen beim Programmieren mit Vertrag

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Trace- und Zeit-Zusicherungen beim Programmieren mit Vertrag"

Transkript

1 Trace- und Zeit-Zusicherungen beim Programmieren mit Vertrag Mark Brörkens Universität Oldenburg, Fachbereich Informatik Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.1/22

2 Motivation Idee für diese Diplomarbeit Aufgabe aus dem Programmieralltag: Importierung von Benutzerdaten in ein neues System Optimierung durch viele parallele Zugriffe Die Reihenfolge einzelner Import-Aktionen ist kritisch Bei zu vielen parallelen Zugriffen dauert jede einzelne Aktion zu lange. Es kommt zu Timeouts. Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.2/22

3 Einleitung Voraussetzungen für das Prüfen von Trace- und Zeit- Zusicherungen zur Laufzeit: Ermittlung einer Trace Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.3/22

4 Einleitung Voraussetzungen für das Prüfen von Trace- und Zeit- Zusicherungen zur Laufzeit: Ermittlung einer Trace Prüfen der ermittelten Trace Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.3/22

5 Programmieren mit Vertrag Eingeführt von Bertrand Meyer als Bestandteil der Programmiersprache Eiffel Vor- und Nachbedingungen sowie Invarianten Konzept der Vererbung Erweiterung: Trace Assertions Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.4/22

6 Erweiterungen von Java Direkte Erweiterung der Programmiersprache um weitere Schlüsselworte (JDK 1.4, AspectJ) Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.5/22

7 Erweiterungen von Java Direkte Erweiterung der Programmiersprache um weitere Schlüsselworte (JDK 1.4, AspectJ) Quellcode-Instrumentierung (icontract, Jcontract, JML, Jass) Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.5/22

8 Erweiterungen von Java Direkte Erweiterung der Programmiersprache um weitere Schlüsselworte (JDK 1.4, AspectJ) Quellcode-Instrumentierung (icontract, Jcontract, JML, Jass) Bytecode-Instrumentierung (jcontractor, Handshake, Java-MaC) Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.5/22

9 Erweiterungen von Java Direkte Erweiterung der Programmiersprache um weitere Schlüsselworte (JDK 1.4, AspectJ) Quellcode-Instrumentierung (icontract, Jcontract, JML, Jass) Bytecode-Instrumentierung (jcontractor, Handshake, Java-MaC) Einsatz von Debuggern (JMSAssert, Lucent Technologies, Query Debugger) Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.5/22

10 Ermitteln einer Trace Java Platform Debugger Architecture Wird von vielen Java Virtual Machines unterstützt Bietet eine Java API für den Zugriff auf Java-Programme zur Laufzeit Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.6/22

11 JPDA Debuggee VM Back-End JVMDI Java Virtual Machine Debug Interface Comm- Channel JDWP Java Debug Wire Protocol Debugger Front-End UI JDI Java Debug Interface Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.7/22

12 Einschränkungen des JDI Rückgabe-Werte von Methoden können nicht ausgelesen werden. Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.8/22

13 Einschränkungen des JDI Rückgabe-Werte von Methoden können nicht ausgelesen werden. Klassen müssen beim Übersetzen mit Debug-Optionen versehen werden. Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.8/22

14 Prüfen einer Trace Beschreibung der Trace- und Zeit-Zusicherungen durch den CSP-Dialekt CSP jassda. Die Trace-Semantik definiert die Menge erlaubter Traces. Die operationellen Semantik beschreibt, wie ein Process schrittweise verarbeitet werden kann. Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.9/22

15 CSP jassda BNF-Syntax von CSP jassda : P ::= STOP TERM ANY[A] a -> P P ; Q P [] Q P Q X Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.10/22

16 Ereignis event = type jdi interface clocks interface Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.11/22

17 Ereignis event = type jdi interface clocks interface virtualmachine thread instance method parameter returnvalue Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.11/22

18 Unterschiede zu CSP Abstraktion von konkreten Ereignissen durch Ereignismengen Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.12/22

19 Unterschiede zu CSP Abstraktion von konkreten Ereignissen durch Ereignismengen Nur sichtbare Ereignisse werden berücksichtigt Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.12/22

20 Unterschiede zu CSP Abstraktion von konkreten Ereignissen durch Ereignismengen Nur sichtbare Ereignisse werden berücksichtigt Quantifizierende Operatoren lassen Aussagen über eine Menge von Threads und Instanzen zu. Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.12/22

21 Beispiel trace trace1 { eventset hellothread {class="jass.debugger.examples.hellothread"} eventset run {method="run"} eventset gethello {method="gethello"} } hellothread() { x.hellothread.run.begin -> x.hellothread.gethello.begin -> x.hellothread.run.end -> TERM } Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.13/22

22 Jassda Jassda is ein Acronym für Java with Assertions Debugger Architecture. Die Trace eines Java-Programmes wird zur Laufzeit unter Verwendung des JDI ermittelt. Sie kann in eine Datei protokolliert oder gegen eine CSP jassda -Spezifikation geprüft werden. Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.14/22

23 Architektur Logger... Trace- Checker Modules GUI Broker Registry Core Debuggee (1)... Debuggee (n) debugged Applications Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.15/22

24 Trace-Prüfer Trace-Specification Parser GUI CSP- Interpreter Events from Broker Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.16/22

25 Benchmark Bubblesort-Algorithmus zwei Implementierungen für unterschiedliche Anzahl von Methodenaufrufen. Implementierung 1 benötigt für die Sortierung von Zahlen einen Methodenaufruf. Die zweite Implementierung benötigt Methodenaufrufe. Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.17/22

26 Bubblesort (1) void sort1(int[] field) { for(int element = 0; element < field.length; element++) { for(int run = field.length; --run > element; ) { if(field[run-1] > field[run]) { int tmp = field[run-1]; field[run-1] = field[run]; field[run] = tmp; } } } } Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.18/22

27 Bubblesort (2) void sort2(int[] field) { for(int element = 0; element < field.length; element++) { exchange(field,element); } } void exchange(int[] field, int element) { for(int run = field.length; --run > element; ) { if(field[run-1] > field[run]) { int tmp = field[run-1]; field[run-1] = field[run]; field[run] = tmp; } } } Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.19/22

28 Benchmark (Ergebnisse) Beschreibung hotspot classic optimierter Code ohne Debug- 1,302s 1,262s 11,897s 12,067s Informationen optimierter Code mit Debug- 1,332s 1,252s 11,897s 12,067s Informationen nicht optimierter Code ohne Debug- 1,302s 1,252s 11,907s 12,067s Informationen nicht optimierter Code mit Debug- 1,342s 1,252s 11,918s 12,057s Informationen VM im Debug-Modus 13,629s 13,630s 50,983s 51,013s VM im Profiling-Modus 1,442s 1,372s 12,458s 12,458s VM mit Jassda verbunden 15,031s 2310,393s 56,812s 629,095s Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.20/22

29 Zusammenfassung Marktanalyse Technische und theoretische Grundlagen Entwurf und Implementierung einer Architektur zur Runtime-Validierung von Java-Programmen Analyse des zeitlichen Verhaltens Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.21/22

30 Ausblick Erweiterung von Jassda um weitere Module Ergänzung von CSP jassda um weitere Operatoren Einbettung in grafische Benutzungsoberfläche wie NetBeans Optimierung der Ausführungsgeschwindigkeit Einleitung Programmieren mit Vertrag JPDA CSP jassda Jassda Zusammenfassung Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag p.22/22

Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag

Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag Studiengang Informatik Diplomarbeit Trace- und Zeit- Zusicherungen beim Programmieren mit Vertrag vorgelegt von Mark Brörkens Betreuender Gutachter Prof. Dr. Ernst-Rüdiger Olderog Zweiter Gutachter Dipl.-Inform.

Mehr

Verteiltes Debugging. Gemeinsames Debuggen in Saros

Verteiltes Debugging. Gemeinsames Debuggen in Saros Verteiltes Debugging Gemeinsames Debuggen in Saros Motivation Saros unterstützt bislang nur das gemeinsame editieren von Quelltext > Support auf Compile Time Ebene Softwaredesign Fehler (Anw Logik) erst

Mehr

Quellcode-Repräsentation in Eclipse. Seminarvortrag PG Reclipse Jan Rieke

Quellcode-Repräsentation in Eclipse. Seminarvortrag PG Reclipse Jan Rieke Quellcode-Repräsentation in Eclipse Seminarvortrag PG Reclipse Jan Rieke Gliederung Motivation Architektur von Eclipse Quelltext-Repräsentation in Eclipse Java-Modell Java DOM/AST Zusätzliche Konzepte

Mehr

Zur Performanz der Überwachung von Methodenaufrufen mit der Java Platform Debugger Architecture (JPDA)

Zur Performanz der Überwachung von Methodenaufrufen mit der Java Platform Debugger Architecture (JPDA) Zur Performanz der Überwachung von Methodenaufrufen mit der Java Platform Debugger Architecture (JPDA) Katharina Mehner Kurzfassung Die Java Platform Debugger Architecture (JPDA) bietet komfortable Schnittstellen

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Der Design-Workflow im Software-Entwicklungs-Prozess

Der Design-Workflow im Software-Entwicklungs-Prozess Der -Workflow im Software-Entwicklungs-Prozess Universität Bonn, Vorlesung Softwaretechnologie SS 2000 1 Der -Workflow stellt zum Ende der Elaborations- und Anfang der Konstruktionsphase den Schwerpunkt

Mehr

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1 Kapitel 1 Einstieg in Java Dr. Elham Firouzi 06.09.10 1 1 : Einstieg in Java Einleitung Ein erstes Beispiel Berner Fachhochschule Entwicklung von Java-Programmen Applikationen Applets Vor und Nachteile

Mehr

The Java Debugger. Seminararbeit von Felix Frei. Fachhochschule Aargau Departement Technik Studiengang I

The Java Debugger. Seminararbeit von Felix Frei. Fachhochschule Aargau Departement Technik Studiengang I The Java Debugger Seminararbeit von Felix Frei Fachhochschule Aargau Departement Technik Studiengang I Betreuender Dozent: Prof. Dr. Dominik Gruntz Windisch, 16. Mai 2002 Abstract JPDA is a multi-tiered

Mehr

Design by Contract with JML

Design by Contract with JML Thema: Design by Contract with JML Proseminar: Assertions Verfasser: Literatur: Betreuer: Natalya Moriz Gary T.Leavens and Yoonsik Cheon: Design by Contract with JML Prof. Dr. Heike Wehrheim 1 Inhalt DBC

Mehr

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg COMMON OBJECT REQUEST BROKER ARCHITECTURE Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg Gliederung Motivation Was ist CORBA? Object Management Architecture (OMA ) Interface Definition Language

Mehr

Java für C++ Programmierer

Java für C++ Programmierer Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?

Mehr

Chair of Software Engineering. Bezieher SUBSCRIBERS Ereignis Erzeuger (zb GUI) Chair of Software Engineering. Save_file ROUTINE

Chair of Software Engineering. Bezieher SUBSCRIBERS Ereignis Erzeuger (zb GUI) Chair of Software Engineering. Save_file ROUTINE 1 2 Letzte Aktualisierung: 27. Mai 2004 Programmierung im Grossen Vorlesung 13: Ereignis-Gesteuertes Design Bertrand Meyer Ereignis-gesteuerte Programmierung 3 Vermeiden von glue code 4 Verbreiter PUBLISHERS

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Diplomvortrag: Verteiltes Debugging

Diplomvortrag: Verteiltes Debugging Diplomvortrag: Verteiltes Debugging Gemeinsames Debuggen in Saros Umut Erdogan Eingereicht bei Prof. Lutz Prechelt Betreuer: Dr. Karl Beecher Was ist ein Debugger? Programm (Debugger), welches die Ausführung

Mehr

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

Mehr

Erste Schritte in Java

Erste Schritte in Java Erste Schritte in Java Im einführenden Kapitel haben wir die Grundbegriffe der imperativen Programmierung an einem Beispiel (Algorithmus von Euklid) kennengelernt. In diesem Kapitel sehen wir uns an einem

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

JAVA als erste Programmiersprache Semesterkurs

JAVA als erste Programmiersprache Semesterkurs JAVA als erste Programmiersprache Semesterkurs 0 - Einstieg WS 2012 / 2013 Prof. Dr. Bodo Kraft Prof. Dr. Bodo Kraft FH Aachen University of Applied Sciences Fachbereich Medizintechnik und Technomathematik

Mehr

Einführung in die Systemprogrammierung

Einführung in die Systemprogrammierung Einführung in die Systemprogrammierung Sprachen und Übersetzer Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 4. Juni 2015 Sprachen vs. Übersetzer Sprache C11 Übersetzer GNU C

Mehr

ProgWerkstatt 7. Dezember 2006 Tipps & Tricks. GUI Programmierung

ProgWerkstatt 7. Dezember 2006 Tipps & Tricks. GUI Programmierung ProgWerkstatt 7. Dezember 2006 Tipps & Tricks GUI Programmierung Seite 2 GUI Programmierung Überblick 1 Motivation 2 Grundlagen Java Coding Conventions Javadoc Comments GroupLayout unter NetBeans 3 OpenOffice

Mehr

Nathan Burgener. Design by Contract. Modul SWE

Nathan Burgener. Design by Contract. Modul SWE NathanBurgener DesignbyContract ModulSWE NathanBurgener Inhaltsverzeichnis 1 WasistDesignbyContract...3 1.1 Überblick...3 1.2 DesignbyContractmitMethoden...4 1.3 DesignbyContractmitKlassen...5 1.4 Vererbung...6

Mehr

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0

ActiveCharts. Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Jens Kohlmeyer 05. März 2007 Institut für Programmiermethodik und Compilerbau ActiveCharts Verknüpfung von Modellen und Code bei der modellgetriebenen Softwareentwicklung mit UML 2.0 Seite 2 Übersicht

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm... Warum Java als Programmiersprache

Mehr

TELEMETRIE EINER ANWENDUNG

TELEMETRIE EINER ANWENDUNG TELEMETRIE EINER ANWENDUNG VISUAL STUDIO APPLICATION INSIGHTS BORIS WEHRLE TELEMETRIE 2 TELEMETRIE WELCHE ZIELE WERDEN VERFOLGT? Erkennen von Zusammenhängen Vorausschauendes Erkennen von Problemen um rechtzeitig

Mehr

Diplomarbeit Antrittsvortrag

Diplomarbeit Antrittsvortrag Diplomarbeit Antrittsvortrag Christian Müller Run-time byte code compilation, interpretation and optimization for Alice Betreuer: Guido Tack Verantwortlicher Prof.: Gert Smolka Die nächsten 15 Minuten...

Mehr

Assertions (Zusicherungen)

Assertions (Zusicherungen) April 10, 2005 Oberseminar Software-Entwicklung Inhalt 1. Einführung (Motivation, Tony Hoare, Programmverifikation) 2. Design by Contract (Idee, Eiffel) 3. Praxis: Programming by Contract for Python 4.

Mehr

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level Implementation of a Framework Component for Processing Tasks within Threads on the Application Level Deutsches Krebsforschungszentrum, for Processing Task within Threads on the Application Level Motivation

Mehr

Grundlagen der Programmierung UE

Grundlagen der Programmierung UE Grundlagen der Programmierung UE Research and teaching network GdP UE H. Prähofer, R. Wolfinger 1 Vortragende Dr. Herbert Praehofer (G1 u. G2) Mag. Reinhard Wolfinger (G3 u. G4) Institute for System Software

Mehr

Grundlagen der Programmierung UE

Grundlagen der Programmierung UE Grundlagen der Programmierung UE Research and teaching network GdP UE H. Prähofer, M Löberbauer 1 Vortragende Dipl.-Ing. Markus Löberbauer (G1) Dr. Herbert Praehofer (G2 u. G3) Institute for System Software

Mehr

Hauptseminar AOSD. Design-by-Contract

Hauptseminar AOSD. Design-by-Contract Hauptseminar AOSD Seite 1 Entstehung Was ist das? Java Annotations und AOP ConceptJ Zusammenfassung Seite 2 Entstehung Entwickelt von Bertrand Meyer Heute Prof. an der ETH Zürich Erstmals in Programmiersprache

Mehr

Softwarewiederverwendung und Patterns

Softwarewiederverwendung und Patterns Begrifflichkeiten und Beschreibungssystematik Begriffe Literatur zu Patterns Übersicht über die behandelten Konzepte Beschreibungsschema 97 Begriffe Glossar Patterns (Muster) sind ein Mittel der Wiederverwendung

Mehr

Threading. Arthur Zaczek. Aug 2015

Threading. Arthur Zaczek. Aug 2015 Arthur Zaczek Aug 2015 1 Threading 1.1 Motivation Threading erlaubt die gleichzeitige Ausführung von mehreren Programmteilen. mehrere gleichzeitige Anfragen: Webserver, Datenbank (zu) lange laufende Berechnungen:

Mehr

Empirische Softwaretechnik. Experimente über Zusicherungen. Entwurf durch Vertrag. Übersicht

Empirische Softwaretechnik. Experimente über Zusicherungen. Entwurf durch Vertrag. Übersicht Empirische Softwaretechnik Prof. Dr. Walter F. Tichy Dr. Frank Padberg Experimente über Zusicherungen Sommersemester 2007 2 Übersicht Einführung Programmieren mit Vertrag 2 Experimente über die Nützlichkeit

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

CORBA. Systemprogrammierung WS 2006-2007

CORBA. Systemprogrammierung WS 2006-2007 CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA

Mehr

Einführung in die Programmiersprache Java II

Einführung in die Programmiersprache Java II Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden

Mehr

Implementierung der Jikes Research Virtual Machine

Implementierung der Jikes Research Virtual Machine Fakultät Informatik Institut für technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur Implementierung der Jikes Research Virtual Machine Hauptseminar Technische Informatik

Mehr

Was ist ein Compiler?

Was ist ein Compiler? Was ist ein Compiler? Was ist ein Compiler und worum geht es? Wie ist ein Compiler aufgebaut? Warum beschäftigen wir uns mit Compilerbau? Wie ist die Veranstaltung organisiert? Was interessiert Sie besonders?

Mehr

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,

Mehr

Betriebssysteme. Wintersemester 2015. Kapitel 2 Prozess und Threads. Patrick Kendzo ppkendzo@gmail.com

Betriebssysteme. Wintersemester 2015. Kapitel 2 Prozess und Threads. Patrick Kendzo ppkendzo@gmail.com Betriebssysteme Wintersemester 2015 Kapitel 2 Prozess und Threads Patrick Kendzo ppkendzo@gmail.com Programm Inhalt Einleitung Prozesse und Threads Speicherverwaltung Eingabe und Ausgabe Dateisysteme Zusammenfassung

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

II.1.1. Erste Schritte - 1 -

II.1.1. Erste Schritte - 1 - 1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1 - 1.

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

Komponentenbasierter Taschenrechner mit CORBA

Komponentenbasierter Taschenrechner mit CORBA Komponentenbasierter Taschenrechner mit CORBA Silke Kugelstadt Torsten Steinert Inhalt Motivation Demonstration des Taschenrechners Grobarchitektur Implementierung des Clients Implementierung der Komponenten

Mehr

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Übung 1 mit C# 6.0 MATTHIAS RONCORONI Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,

Mehr

Einführung in den NetBeans Profiler

Einführung in den NetBeans Profiler Let s talk about IT Wenn s mal wieder länger dauert Einführung in den NetBeans Profiler Dominik Hofmann 14.01.2010 Themenüberblick Themen Grundlagen und Features des NetBeans Profilers CPU Profiling Memory

Mehr

Entwicklung eines Tools zur Messung von Testabdeckungen

Entwicklung eines Tools zur Messung von Testabdeckungen Universität Hannover Fakultät für Elektrotechnik und Informatik Institut für Praktische Informatik Fachgebiet Software Engineering Entwicklung eines Tools zur Messung von Testabdeckungen Masterarbeit im

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Martin Wirsing 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm... Warum Java als Programmiersprache verwenden? Ein einfaches Java-Programm erstellen,

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 1. Einführung und Grundbegriffe 1 Kapitel 1 2 Ziele Begriffsbildungen: Informatik, Algorithmus, Programm, Compiler, Einordnung von Java Ein einfaches Java-Programm erstellen, übersetzen und ausführen Java-Programme dokumentieren 3 Informatik

Mehr

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Martin Wirsing 2 Ziele Geschichte der OO-Programmiersprachen Warum Java als Programmiersprache verwenden? Ein einfaches Java-Programm erstellen, übersetzen und

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Entwicklung einer echtzeitfähigen CLI-Laufzeitumgebung für den Einsatz in der Automatisierungstechnik

Entwicklung einer echtzeitfähigen CLI-Laufzeitumgebung für den Einsatz in der Automatisierungstechnik Entwicklung einer echtzeitfähigen CLI-Laufzeitumgebung für den Einsatz in der Automatisierungstechnik Echtzeit 2010 Alexej Schepeljanski Martin Däumler Matthias Werner Echtzeit 2010 / 18. November 2010

Mehr

2008 Jiri Spale, Programmierung in eingebetteten Systemen 1

2008 Jiri Spale, Programmierung in eingebetteten Systemen 1 2008 Jiri Spale, Programmierung in eingebetteten Systemen 1 NetX - Einführung 2008 Jiri Spale, Programmierung in eingebetteten Systemen 2 NetX is... a highly integrated network controller with a new system

Mehr

Client-Server Beziehungen

Client-Server Beziehungen Ersetzbarkeit, Client-Server Beziehungen 182.132 VL Objektorientierte Programmierung Peter Puschner nach Folien von Franz Puntigam, TU Wien Überblick Ersetzbarkeit Kovarianz, Kontravarianz, Invarianz Client-Server

Mehr

Java - Einführung in die Programmiersprache. Leibniz Universität IT Services Anja Aue

Java - Einführung in die Programmiersprache. Leibniz Universität IT Services Anja Aue Java - Einführung in die Programmiersprache Leibniz Universität Anja Aue Handbücher am RRZN Programmierung. Java: Grundlagen und Einführung Java: Fortgeschrittene Techniken und APIs Java und XML Java -

Mehr

Effiziente Java Programmierung

Effiziente Java Programmierung Effiziente Java Programmierung Seminar Implementierung moderner virtueller Maschinen am Beispiel von Java SS 2009 von Reinhard Klaus Losse 20. Mai 2009 Gliederung Definition Effizienz Werkzeuge zum Messen

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:

Mehr

Grundkonstrukte der Objektorientierung in Java, C# und C++

Grundkonstrukte der Objektorientierung in Java, C# und C++ Grundkonstrukte der Objektorientierung in Java, C# und C++ 2 Viele Patterns basieren auf einer Kombination einiger zentraler Modellierungskonstrukte, namentlich auf Schnittstellen- und Implementierungsvererbung

Mehr

Informatik II Übung 1 Gruppe 7

Informatik II Übung 1 Gruppe 7 Informatik II Übung 1 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 1 Leyna Sadamori 27. Februar 2014 1 Ablauf der Übung Administratives (wenn vorhanden) Debriefing (Besprechung

Mehr

Java lernen mit BlueJ

Java lernen mit BlueJ Java lernen mit BlueJ Eine Einführung in die objektorientierte Programmierung David J. Barnes Michael Kölling 4.0 Lernen in Eigenregiegi Vorlesungen Seminare Übungen Bücher Webseiten Diskussionslisten

Mehr

JAVA. Ein kurzer Überblick. Thomas Karp

JAVA. Ein kurzer Überblick. Thomas Karp JAVA Ein kurzer Überblick Thomas Karp WAS IST JAVA? Java ist eine fast rein objektorientierte Sprache nicht JavaScript eine professionelle Sprache eine im Unterricht weit verbreitete Sprache für verschiedene

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

JUG Saxony Christian Wurbs

JUG Saxony Christian Wurbs JUG Saxony 16.07.2009 Christian Wurbs Die Aufgabe Die Idee Lessons Learned Java Content Repository JVM Tool Interface AspectJ Groovy Ausblick Software für die Halbleiterindustrie muss eine schnelle Integration

Mehr

Integration einer auf der Arden-Syntax basierenden Entscheidungsunterstützungskomponente. Telematikplattform

Integration einer auf der Arden-Syntax basierenden Entscheidungsunterstützungskomponente. Telematikplattform Integration einer auf der Arden-Syntax basierenden Entscheidungsunterstützungskomponente in eine Telematikplattform Geisler M 1, Bott OJ 1, Tegtbur U 2, Bergmann J 1, Pretschner DP 1 1 Institut für Medizinische

Mehr

Software Engineering, SoSe 07, WSI, D. Huson, (Original Author: A. Zeller), 4. Juni 2007 45

Software Engineering, SoSe 07, WSI, D. Huson, (Original Author: A. Zeller), 4. Juni 2007 45 Software Engineering, SoSe 07, WSI, D. Huson, (Original Author: A. Zeller), 4. Juni 2007 45 7 Programmverstehen + Fehlersuche Nach einer Vorlesung von Prof. Andreas Zeller, Lehrstuhl Softwaretechnik Universität

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Diplomarbeit: GOMMA: Eine Plattform zur flexiblen Verwaltung und Analyse von Ontologie Mappings in der Bio-/Medizininformatik

Diplomarbeit: GOMMA: Eine Plattform zur flexiblen Verwaltung und Analyse von Ontologie Mappings in der Bio-/Medizininformatik Diplomarbeit: GOMMA: Eine Plattform zur flexiblen Verwaltung und Analyse von Ontologie Mappings in der Bio-/Medizininformatik Bearbeiter: Shuangqing He Betreuer: Toralf Kirsten, Michael Hartung Universität

Mehr

Spec# Einführung. Formale Software-Entwicklung Seminar SS 07 Universität Karlsruhe Hilal Akbaba

Spec# Einführung. Formale Software-Entwicklung Seminar SS 07 Universität Karlsruhe Hilal Akbaba Spec# Einführung Formale Software-Entwicklung Seminar SS 07 Universität Karlsruhe Hilal Akbaba Inhalt Einführung in C# Das Spec# System Die Konstrukte Vererben der Verträge System Architektur Einführung

Mehr

Visualisierung paralleler bzw. verteilter Programme

Visualisierung paralleler bzw. verteilter Programme Seminar Visualisierung in Informatik und Naturwissenschaften im SS 1999 Visualisierung paralleler bzw. verteilter Programme Holger Dewes Gliederung Zum Begriff Motivation PARADE Beispiel 1: Thread basierte

Mehr

1. Java Grundbegriffe

1. Java Grundbegriffe 1. Java Grundbegriffe Geschichte von Java Programmieren mit Java Interpretieren vs. Kompilieren Java Byte-Code Jave Virtual Machine Arbeitsmaterialien Allgemeine Informatik 2 SS09 Folie 1.1 Java, eine

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008 PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik

Mehr

Verträge für die funktionale Programmierung Design und Implementierung

Verträge für die funktionale Programmierung Design und Implementierung 1 Verträge für die funktionale Programmierung Design und Implementierung RALF HINZE Institut für Informatik III, Universität Bonn Römerstraße 164, 53117 Bonn, Germany Email: ralf@informatik.uni-bonn.de

Mehr

Formale Methoden: Ein Überblick

Formale Methoden: Ein Überblick Formale Methoden, Heinrich Rust, Lehrstuhl für Software-Systemtechnik, BTU Cottbus, 2004-09-16, p. 1 Formale Methoden: Ein Überblick Heinrich Rust Lehrstuhl für Software-Systemtechnik BTU Cottbus 2004-09-16

Mehr

Auf Spurensuche in der Java-VM

Auf Spurensuche in der Java-VM Auf Spurensuche in der Java-VM In der jüngeren Vergangenheit ist in der Java-Welt eine Art von Werkzeugen entstanden, die sich zwischen den Extremen "Debugging" und "Profiling" ansiedelt. Diese Werkzeuge

Mehr

Übung 8: Semaphore in Java (eigene Implementierung)

Übung 8: Semaphore in Java (eigene Implementierung) Übung 8: Semaphore in Java (eigene Implementierung) Ziel der Übung: Diese Übung dient dazu, eine eigene Implementierung einer Semaphore-Klasse in der Programmiersprache Java kennenzulernen. Anschließend

Mehr

Softwaretechnik. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen

Softwaretechnik. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2010/11 Überblick I Software-Produktlinien Software-Produktlinien:

Mehr

Alternative Architekturkonzepte

Alternative Architekturkonzepte Alternative Architekturkonzepte Motivation: Suche nach einer Gesamtstruktur meistens: dominante nichtfunktionale Eigenschaften legen Architektur fest Antrieb: Architekturziel Ziel: globale Betrachtung

Mehr

Einführung in Eclipse und Java

Einführung in Eclipse und Java Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Einführung in Eclipse und Java Dipl.Inf. Manuel Götz Lehrstuhl für Angewandte Informatik

Mehr

oscan ein präemptives Echtzeit-Multitasking-Betriebssystem

oscan ein präemptives Echtzeit-Multitasking-Betriebssystem ein präemptives Echtzeit-Multitasking-Betriebssystem 2011. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V0.9 2011-10-12 Management

Mehr

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik-

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. michael.roth@h-da.de. Hochschule Darmstadt -Fachbereich Informatik- Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VII Einstieg in Java I Michael Roth (h_da) Informatik

Mehr

Programmierung für Mathematik (HS13)

Programmierung für Mathematik (HS13) software evolution & architecture lab Programmierung für Mathematik (HS13) Übung 5 1 Aufgabe: Eclipse IDE 1.1 Lernziele 1. Die Entwicklungsumgebung Eclipse einrichten. 2. Eclipse kennen lernen und mit

Mehr

Softwaretechnik. Überblick I. Prof. Dr. Rainer Koschke. Sommersemester 2006

Softwaretechnik. Überblick I. Prof. Dr. Rainer Koschke. Sommersemester 2006 Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Sommersemester 2006 Überblick I 1 Software-Produktlinien Software-Produktlinien:

Mehr

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML) Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung

Mehr

gsysc Visualisierung von SystemC Projekten

gsysc Visualisierung von SystemC Projekten gsysc Visualisierung von SystemC Projekten Studienarbeit Christian J Eibl (eibl@informatikuni-luebeckde) gsysc p1 Inhaltsübersicht Motivation (für SystemC) SystemC Motivation (für gsysc) Stand der Technik

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

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

Behandlung von Netzwerk- und Sicherheitsaspekten in einem Werkzeug zur verteilten Paarprogrammierung

Behandlung von Netzwerk- und Sicherheitsaspekten in einem Werkzeug zur verteilten Paarprogrammierung Behandlung von Netzwerk- und Sicherheitsaspekten in einem Werkzeug zur verteilten Paarprogrammierung Institut Mathematik und Informatik - 15. April 2010 Agenda 1 Einleitung 2 Saros Architektur Daten senden

Mehr

Softwareentwicklung mit Enterprise JAVA Beans

Softwareentwicklung mit Enterprise JAVA Beans Softwareentwicklung mit Enterprise JAVA Beans Java Enterprise Edition - Überblick Was ist J2EE Java EE? Zunächst mal: Eine Menge von Spezifikationen und Regeln. April 1997: SUN initiiert die Entwicklung

Mehr

Informatik 3 Sitzung 3 - Theorie. Roland Mühlenbernd

Informatik 3 Sitzung 3 - Theorie. Roland Mühlenbernd Informatik 3 Sitzung 3 - Theorie Roland Mühlenbernd 2. EQDDS: Rückblick: Letzte Sitzung Vergleich der folgenden imperativen Programmiersprachen: Component Pascal Eiel C++ Java C# durch Betrachtung der

Mehr

Vererbung und Polymorphie

Vererbung und Polymorphie Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter

Mehr

Smalltalk vs. Java c Chris Burkert 2002. Smalltalk versus Java

Smalltalk vs. Java c Chris Burkert 2002. Smalltalk versus Java Smalltalk versus Java Gliederung Einführung Geschichte sprachliche Aspekte technische Aspekte theoretische Aspekte praktische Aspekte Fazit Einführung - Merkmale Objektorientierung Einführung - Merkmale

Mehr

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

Mehr

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Die Java Reflection API liefert per Introspection Informationen über Klassen => Meta-Daten.

Mehr

Übersetzung objektorientierter Programmiersprachen

Übersetzung objektorientierter Programmiersprachen Bernhard Bauer Riitta Höllerer Übersetzung objektorientierter Programmiersprachen Konzepte, abstrakte Maschinen und Praktikum Java-Compiler" Mit 29 Abbildungen Springer Teil 1: Theorie 1 Einleitung 3 l.

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Programmieren 2 Java Überblick

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

Mehr