Hauptseminar AOSD. Aspektorientierte Programmierung am Beispiel AspectJ
|
|
- Max Schuster
- vor 8 Jahren
- Abrufe
Transkript
1 Hauptseminar AOSD Aspektorientierte Programmierung am Beispiel Seite 1
2 Aspektorientierte Programmierung Umfeld - eine Definition Elemente in Introduction Pointcut Join Point Advice Aspect Errors and Warnings Aspect Weaver Zusammenfassung Praxis Seite 2
3 Xerox - PARC Palo Alto Research Center (Palo Alto, Californien) Gegründet 1970 (von Xerox) Wichtige Erfindungen: Computer Maus Ethernet (IPv6) Objekt orientierte Programmierung (Smalltalk) Aspekt orientierte Programmierung Gregor Kiczales Aspektorientierte Programmierung Seite 3
4 Gregor Kiczales Current Projects: ActiveAspect A crosscutting structure presentation tool. CBD Debugging with control-flow breakpoints. PointcutDoctor An natural AJDT extension that helps developers write pointcuts. Professor Software Practices Lab Department of Computer Science University of British Columbia Main Mall Vancouver, B.C., Canada V6T 1Z [voice] [FAX] gregor@cs.ubc.ca Office: ICICS/CS 311 Aspect-Oriented Design Pattern Implementation Exploring effects of implementation language on software design patterns. Aspect-Oriented Logic Meta Programming Using logic meta programs to represent aspects and aspect languages. Seite 4
5 - Definition is a simple and practical aspect-oriented extension to Java. With just a few new constructs, provides support for modular implementation of a range of crosscutting concerns. In s dynamic join point model, join points are well-defined points in the execution of the program; pointcuts are collections of join points; advice are special method-like constructs that can be attached to pointcuts; and aspects are modular units of crosscutting implementation, comprising pointcuts, advice, and ordinary Java member declarations. code is compiled into standard Java bytecode. Simple extensions to existing Java development environments make it possible to browse the crosscutting structure of aspects in the same kind of way as one browses the inheritance structure of classes. Several examples show that is powerful, and that programs written using it are easy to understand. [Kiczales2001] Seite 5
6 Statisches und dynamisches Crosscutting 1 Statisches Crosscutting Erweitert die statischen Strukturen des Programms Neue Membervariablen/Funktionsdeklarationen einfügen Unterstützt meistens das dynamische Crosscutting Dynamisches Crosscutting Ausführbare Funktionen Neuer Code Advice = dynamisches Crosscutting Seite 6
7 Statisches und dynamisches Crosscutting 2 Statisches Crosscutting Dynamisches Crosscutting Seite 7
8 Elemente in Introduction Statisches Crosscutting (Struktur) Join Point Eindeutiger Punkt im Programmfluss Pointcut Komposition von Join Points Advice Dynamisches Crosscutting (Code) Aspect Gesamtheit aus Introduction, Pointcut und Advice Seite 8
9 Introduction Entspricht statischem Crosscutting Erweitert bestehende Strukturen um Member Funktionsdeklarationen Interfaces Declarations error/warning parents precedence... Seite 9
10 Join Point Eindeutig im Programmfluss identifizierbarer Punkt Zentraler Aspekt bei AOP Seite 10
11 Wildcards and Operators Wildcards * Beliebige Anzahl von Zeichen (außer. ).. Beliebige Anzahl von Zeichen (inkl.. ) + Beliebige Unterklasse/Interface Operators! && Negation Und-Verknüpfung Oder-Verknüpfung Seite 11
12 Join Point Typen Exposed Join Points Method Execution Call Constructor Execution Call Field Access Read Write Exception Handler Class Initialization Object Initialization und Pre-Initialization Advice Execution Hidden Join Points For, while loops!(exposed join points) Seite 12
13 Pointcut Enthält 1..n Join Points (Pointcut-definition) Anonym oder Benannt Genereller Aufbau [zugriffsrechte] pointcut pointcut-name([args]) : pointcut-definition Seite 13
14 Kinded vs. Unkinded Pointcuts Kinded Execution Call Get Set Exception Handler Advice Unkinded Control-Flow Lexical-Structure Execution Objects Arguments Conditional [Laddad2003] Seite 14
15 Control-Flow (cflow) Pointcuts Vergleichbar mit Call-Stack foo() -> bar() Der Aufruf von bar() befindet sich im cflow von foo() Beziehen sich immer auf einen anderen Pointcut cflow( call( foo() ) ) cflowbelow( call( foo() ) ) Typen cflow Inkl. foo() cflowbelow Exkl. foo() Seite 15
16 Lexical-Structure Pointcuts Vergleichbar mit :: (scope) Typen within Gilt in allen Klassen, Aspekten, etc. und darin enthaltenen Unter-Strukturen within(foo) (würde auch bar enthalten) withincode Bezieht sich auf eine spezielle Methode/Konstuktor withincode(foo) (bezieht sich nur auf foo) Seite 16
17 Execution Object Pointcuts Werden verwendet um Kontext zu erhalten Des aufrufenden Objekts Des aufgerufenen Objekts Typen This this(hund) (alle Objekte vom Typ Hund) Target target(katze) (alle Objekte vom Typ Katze) Wichtig: Keine Wildcards möglich! Typprüfung erfolgt durch JAVA Seite 17
18 Argument Pointcuts Ebenfalls geeignet um Kontext zu erlangen Argumente einer Funktion werden betrachtet Call Argumente der Funktion die aufgerufen wird Get/Set Index des Feldes Exception Ausnametyp des Objekts Bsp: args(int) args(int, String, double) args(aspectexception) Seite 18
19 Conditional Pointcuts Abfrage einer Bedinung Normalerweise Context Binding erforderlich Vergleichsoperatoren wie bekannt ==,!= >, < >=, <= Seite 19
20 Advice Bestimmt das Verhalten Methodenähnlicher Aufbau Typen before() Vor dem Pointcut after() Nach dem Pointcut around() before()!! Proceed!! After() Spezialfälle returning() after() returning() : throwing after() throwing() : Seite 20
21 Aspect Vergleichbar mit einer Klasse Kombiniert Join Points, Pointcuts und Advice Enthält dynamisches und statisches Crosscutting Zugriffsrechte wie alle anderen im System ABER: Es geht auch anders... Seite 21
22 Privileged Aspects Einfach Schlüsselwort privileged voranstellen public privileged aspect myprivilegedaspect{} Schon kann man ÜBERALL zugreifen Achtung: Hier sollte man sich NOCH genauer überlegen, was man tun möchte. Seite 22
23 Join Point Information Vergleichbar mit this -Referenz Spezielle Objekte thisjoinpoint Dynamische Informationen (Objekt-ID, Referenz auf Objekt,...) thisjoinpointstaticpart Statische Information (Name der Klasse/Methode, Adresse,...) thisenclosingjoinpointstaticpart Information über den Kontext (z.b. von der Call-Funktion) Seite 23
24 Hierarchy und Member Seite 24
25 Aspect Association Normalerweise nur eine Aspektinstanz vorhanden (Singleton) Mehrere Instanzen von Aspekten sind möglich Mögliche Assoziationen Virtual Machine (default Singleton) Objekt bezogen Contol-Flow bezogen Konstruktor kommt für Aspekt hinzu Objekt bezogen perthis() pertarget() Control-Flow bezogen percflow() percflowbelow() Seite 25
26 Errors and Warnigs Können zur Compile-Zeit ausgegeben werden declare warning : <pointcut> : <message>; declare error : <pointcut> : <message>; Verhalten wie bei C/C++ Waring -> Übersetzung geht weiter Error -> Übersetzung wird abgebrochen Nur statisch typisierte Werte können geprüft werden!!! Also NICHT: this und target args if cflow und cflowbelow Seite 26
27 Aspect Weaver Input: Class Files Output: Class Files 3 mögliche Zeitpunkte des Zusammenführens Compile Time Post Compile Time Load Time Laufzeitverhalten bei allen drei Varianten identisch!!! Seite 27
28 Zusammenfassung Aspect = Join Point -> Pointcut + Advice Crosscutting statisch dynamisch Ergebnis ist bei allen Varianten gleich Errors und Warning nur, wenn vor Laufzeit gebunden wurde Aspekt-Instanzen sind möglich Standard ist aber Singleton Seite 28
29 Quellen [1] [2] [3] [4] Ramnivas Laddad in action [5] Seite 29
spectj AOP mit Java, Konzepte und Beispiele
A spectj AOP mit Java, Konzepte und Beispiele AspectJ Ist eine Erweiterung von Java Ist eine aspektorientierte Sprache (wie Java eine objektorientierte Sprache ist) Ist frei verfügbar der Compiler ist
MehrJavadoc. 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
MehrAspekt Orientierte Programmierung
Kapitel 13 Aspekt Orientierte Programmierung 13.1 Aspekte in Apache Wir betrachten den Quellcode des Apache-Servers: Der Code zum XML-Parsen steckt in einer eigenen Klasse (rot) Quelle: aspectj.org 0 ausgearbeitet
MehrGrundlagen von Python
Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
MehrEinführung in AOP. Rico Schiekel - 012816 rschiekel@web.de. Agenda. Kernproblem der Objekt Orientierung
Einführung in AOP Informatikseminar Rico Schiekel - 012816 rschiekel@web.de Fachhochschule Ravensburg Weingarten Hochschule für Technik und Sozialwesen Einführung in AOP Agenda Kernproblem der Objekt Orientierung
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22
Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften
MehrPrinzipien Objektorientierter Programmierung
Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................
MehrObjects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0
Objects First With Java A Practical Introduction Using BlueJ Mehr über Vererbung Exploring polymorphism 1.0 Zentrale Konzepte dieses Kapitels Methoden-Polymorphie statischer und dynamischer Typ Überschreiben
MehrSoftware-Engineering und Optimierungsanwendungen in der Thermodynamik
Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering 5 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger OPTSWE_SWE: 5 Programmentwicklung
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrGliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions
try-catch Schlüsselworte try-catch e Schlüsselwort Schlüsselwort selbst erstellte ermöglichen die Behandlung von Fehlern, die zur Laufzeit entstehen. try-catch in C: Fehler führt immer zum Abbruch des
MehrAspektorientierte Programmierung (aspect-oriented programming, AOP)
Aspektorientierte Programmierung (aspect-oriented programming, AOP) Abstract Die aspektorientierte Programmierung ist ein neues Programmierparadigma, das die Probleme und Nachteile, die aus der prozeduralen
MehrProgrammentwicklung ohne BlueJ
Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie
MehrProblemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.
Universität Osnabrück 1 Problemstellung 3 - Objektorientierte Programmierung in Java Vorlesung 24: Reflection 1 SS 2006 Prof. Dr. Frank M. Thiesing, FH Osnabrück Um ein Objekt anzulegen, eine seiner Methoden
MehrDie 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,
MehrAnzeige des Java Error Stack in Oracle Forms
Anzeige des Java Error Stack in Oracle Forms (Version 2.0) Juni 2008 Autoren: Jürgen Menge / Thomas Robert Seite 1 von 7 Oracle Forms bietet seit der Version 6i die Möglichkeit, serverseitig Java-Klassen
MehrKünstliches binäres Neuron
Künstliches binäres Neuron G.Döben-Henisch Fachbereich Informatik und Ingenieurwissenschaften FH Frankfurt am Main University of Applied Sciences D-60318 Frankfurt am Main Germany Email: doeben at fb2.fh-frankfurt.de
MehrSecurity Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08
Security Patterns Benny Clauss Sicherheit in der Softwareentwicklung WS 07/08 Gliederung Pattern Was ist das? Warum Security Pattern? Security Pattern Aufbau Security Pattern Alternative Beispiel Patternsysteme
MehrÜ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,
MehrHochschule Darmstadt Fachbereich Informatik
Hochschule Darmstadt Fachbereich Informatik Entwicklung webbasierter Anwendungen 1 Hochschule Darmstadt Fachbereich Informatik PHP 7 2 Releasekalender http://php.net/supported-versions.php 3 Historie Urpsrünglicher
MehrPragmatik von Programmiersprachen
Pragmatik von Programmiersprachen Im Kontext der Notation von Quelltexten Mike Becker, 11. Dezember 2014 Szenario: IT Dienstleister Unternehmen: Produkte: Kunden: IT Dienstleistung Beratung und Software
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
Mehr12. Vererbung. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)
12. Vererbung Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Vererbung Konzept!Protected Section!Virtuelle Mitgliedsfunktionen!Verwendung von Vererbung Copyright: M. Gross, ETHZ, 2003 2 Vererbung!
MehrObjektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
MehrAssoziation und Aggregation
Assoziation und Aggregation Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Verstehen der Begriffe Assoziation und Aggregation Implementierung von Assoziationen in Java schreiben
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrObjektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)
MehrJavakurs 2013 Objektorientierung
Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
MehrFachhochschule Deggendorf Platzziffer:...
Sommersemester 2008 Zahl der Blätter: 9 Fachbereich: Betriebswirtschaft WI Bachelor Hilfsmittel: alles ohne Computer Zeit: 90 Minuten 1 Betrachten Sie die drei markierten Zeilen. 1. Angenommen Sie hätten
MehrSWE1 / Übung 2 (19.10.2011)
SWE1 / Übung 2 (19.1.211) Simulation von Algorithmen Testen, Testplan Beispiel arithmetische Ausdrücke Handsimulation von Algorithmen Man versteht einen Algorithmus (insbesonders einen "Fremden"), wenn
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrAdvanced Software Engineering WS0910 Kapitel4. Dr. Dominik Haneberg
Advanced Software Engineering WS0910 Kapitel4 Dr. Dominik Haneberg ASPEKT-ORIENTIERTE ENTWICKLUNG 08.02.2010 Advanced Software Engineering 2 Einführung Aspektorientierte Programmierung (AOP) ist ein Programmierparadigma,
MehrNathan 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
MehrVersion 0.3. Installation von MinGW und Eclipse CDT
Version 0.3 Installation von MinGW und Eclipse CDT 1. Stellen Sie fest, ob Sie Windows in der 32 Bit Version oder in der 64 Bit Version installiert haben. 2. Prüfen Sie, welche Java Runtime vorhanden ist.
MehrKlassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java
Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte
MehrJava Einführung Collections
Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...
Mehrarlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek
arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek Speaker Andreas Holubek VP Engineering andreas.holubek@arlanis.com arlanis Software AG, D-14467 Potsdam 2009, arlanis
MehrProgrammieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
MehrJava 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.
MehrTesten mit JUnit. Motivation
Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen
MehrObjektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
MehrKomponententest. Testen von Software Systemen. Übung 02 SS 2009 Version: 1.0 09.06.2009
Testen von Software Systemen Übung 02 SS 2009 Version: 1.0 09.06.2009 Komponententest Kunde: Dr. Reinhold Plösch Dr. Johannes Sametinger Kundenreferenz: 259.019 Team 19 Mitarbeiter: Christian Märzinger
MehrDesign Patterns 2. Model-View-Controller in der Praxis
Design Patterns 2 Model-View-Controller in der Praxis Design Patterns Oft Schablonen für eine Klassenstruktur... aber nicht immer! Dahinterliegende Konzepte wichtiger als wörtliche Umsetzung Pattern werden
MehrSoftware Engineering Klassendiagramme Assoziationen
Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen
MehrÜ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
MehrDer Begriff Cloud. Eine Spurensuche. Patric Hafner 29.06.2012. geops
Der Begriff Cloud Eine Spurensuche Patric Hafner geops 29.06.2012 Motivation Der größte Hype der IT-Branche Hype heißt sowohl Rummel als auch Schwindel slashdot.org The cloud represents a foundational
Mehr1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung
K05 Vererbung & Polymorphie in C++ 1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung 2 Vererbung in C++: Grundlagen Analog zu Java unterstützt C++ das Konzept der Vererbung:
MehrAlgorithmen mit Python
Algorithmen mit Python Vorbesprechung zum Proseminar im Sommersemester 2009 http://www.python.org 1 Sie lernen in DAP Java und C/C++: 80% Syntax, 20% Algorithmen-Design Idee Schon ein einfaches Hello World
MehrDer Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.
Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.
Mehr1 Motivation und Einleitung
AspectJ - AOP für Java Georg Blaschke (georg.blaschke@stud.informatik.uni-erlangen.de) Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für Betriebssysteme und Verteilte Systeme 3. Mai 2003
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
MehrTel.: 040-528 65 802 Fax: 040-528 65 888 Email: support_center@casio.de. Ein Text oder Programm in einem Editor schreiben und zu ClassPad übertragen.
Ein Text oder Programm in einem Editor schreiben und zu ClassPad übertragen. Die auf dem PC geschriebene Texte oder Programme können über dem ClassPad Manager zu ClassPad 300 übertragen werden. Dabei kann
MehrJava Entwicklung für Embedded Devices Best & Worst Practices!
Java Entwicklung für Embedded Devices! George Mesesan Microdoc GmbH Natürlich können wir dieses neue log4j Bundle auch auf dem Device verwenden. Ist doch alles Java. Java Micro Edition (ME) Java Standard
MehrInformatik GK 12 Klassen Klassen programmieren in Delphi am Beispiel der konkreten Klasse Auto
programmieren in Delphi am Beispiel der konkreten Klasse Auto Auto -Baujahr -Typ -Besitzer -Farbe -Kilometerstand -Fahren() -Bremsen() Objekt1: Auto Typ: Golf Baujahr: 1998 Besitzer: Peter Farbe: rot Kilometerstand:
MehrFür AX 4.0, den letzten Hotfix rollup einspielen. Der Hotfix wurde das erste Mal im Hotfix rollup 975357 eingeschlossen:
I. DOCTYPE-Deklaration Die INDEX.XML-Datei, die beim GDPdU-Export erstellt wird, beinhaltet eine DOCTYPE-Deklaration, die inkorrekterweise als Kommentar herausgegeben wird:
MehrInnere Klassen in Java
Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird
MehrApplications Applets (eingeschränkte Rechte)
1 Arten von Java-Programmen Man unterscheidet 2 verschiedene Arten von Java-Programmen: Applications Applets (eingeschränkte Rechte) Erstere sind eigenständige Programme. Letztere sind "kleine" Programme,
MehrKlassenbeziehungen & Vererbung
Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in
MehrArbeiten mit UMLed und Delphi
Arbeiten mit UMLed und Delphi Diese Anleitung soll zeigen, wie man Klassen mit dem UML ( Unified Modeling Language ) Editor UMLed erstellt, in Delphi exportiert und dort so einbindet, dass diese (bis auf
MehrGrundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN
Grundzüge der Programmierung Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN Inhalt dieser Einheit JAVA ist objektorientiert! Grundbegriffe der objektorientierten Programmierung:
Mehre-books aus der EBL-Datenbank
e-books aus der EBL-Datenbank In dieser Anleitung wird erklärt, wie Sie ein ebook aus der EBL-Datenbank ausleihen und mit dem Programm Adobe Digital Edition öffnen. Folgende Vorraussetzungen sind eventuell
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
MehrApplet 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
MehrQt-Projekte mit Visual Studio 2005
Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung
MehrXcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X
Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X SwissMacMeeting #1 26. Juni 2004 Messeturm Basel http://mac.naepflin.com Was ist das Ziel dieses Kurses? Starthilfe Einblick in die Möglichkeiten,
MehrDaniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers
Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des
MehrHow-to: Webserver NAT. Securepoint Security System Version 2007nx
Securepoint Security System Inhaltsverzeichnis Webserver NAT... 3 1 Konfiguration einer Webserver NAT... 4 1.1 Einrichten von Netzwerkobjekten... 4 1.2 Erstellen von Firewall-Regeln... 6 Seite 2 Webserver
MehrFachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer
Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,
MehrROOT Tutorial für HEPHY@CERN. D. Liko
ROOT Tutorial für HEPHY@CERN D. Liko Was ist ROOT? Am CERN entwickeltes Tool zur Analyse von Daten Funktionalität in vielen Bereichen Objekte C++ Skriptsprachen Was kann ROOT Verschiedene Aspekte C++ as
MehrInstallation der SAS Foundation Software auf Windows
Installation der SAS Foundation Software auf Windows Der installierende Benutzer unter Windows muss Mitglied der lokalen Gruppe Administratoren / Administrators sein und damit das Recht besitzen, Software
MehrJava Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
MehrVererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
MehrHauptseminar 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
MehrProfessionelle Seminare im Bereich MS-Office
Der Name BEREICH.VERSCHIEBEN() ist etwas unglücklich gewählt. Man kann mit der Funktion Bereiche zwar verschieben, man kann Bereiche aber auch verkleinern oder vergrößern. Besser wäre es, die Funktion
MehrJava Einführung Abstrakte Klassen und Interfaces
Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer
MehrBeispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging
Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Das Beispiel orientiert sich am selben Code, der im Teil 1 der Serie verwendet wurde. Text Styles: Shell Prompt mit
Mehr8 Design Patterns. Events
8 Design Patterns. Events Jörn Loviscach Versionsstand: 28. März 2015, 19:13 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work
MehrLokale Installation von DotNetNuke 4 ohne IIS
Lokale Installation von DotNetNuke 4 ohne IIS ITM GmbH Wankelstr. 14 70563 Stuttgart http://www.itm-consulting.de Benjamin Hermann hermann@itm-consulting.de 12.12.2006 Agenda Benötigte Komponenten Installation
MehrSoftware Engineering Klassendiagramme Einführung
Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt
MehrGroße Übung Praktische Informatik 1
Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,
MehrAOSTA. Aspects in Operating Systems: Tools and Applications
AOSTA Aspects in Operating Systems: Tools and Applications Michael Engel, Philipps-Universität Marburg AG Verteilte Systeme engel@informatik.uni-marburg.de Aspektorientierung in 5 Minuten ;-) Crosscutting
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrGebundene Typparameter
Gebundene Typparameter interface StringHashable { String hashcode(); class StringHashMap { public void put (Key k, Value v) { String hash = k.hashcode();...... Objektorientierte
MehrKurzanleitung um Transponder mit einem scemtec TT Reader und der Software UniDemo zu lesen
Kurzanleitung um Transponder mit einem scemtec TT Reader und der Software UniDemo zu lesen QuickStart Guide to read a transponder with a scemtec TT reader and software UniDemo Voraussetzung: - PC mit der
MehrTutorium Rechnerorganisation
Woche 2 Tutorien 3 und 4 zur Vorlesung Rechnerorganisation 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu
MehrEinführung in die Programmierung für NF
Einführung in die Programmierung für NF UML Valerie Holmeyer Michael Kirsch Direct Feedback Eure Mitarbeit ist mir wichbg Quiz nach den jeweiligen AbschniGen Jeder kann mitmachen App socra&ve auf Smartphone
MehrC# im Vergleich zu Java
C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung
MehrUsability ohne Maus und ohne Bildschirm
Usability ohne Maus und ohne Bildschirm Referent: Jan Eric Hellbusch Publikationen Buch "Barrierefreies Webdesign" (1. Auflage 2005, 391 Seiten) bf-w.de/dpunkt/ KnowWare-Heft "Barrierefreies Webdesign"
MehrÜbungen zu C++ Kapitel 1
Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme
MehrApplets I. Grundlagen der g Applet-Programmierung
Applets I Grundlagen der g Applet-Programmierung 2 Inhalt Applets Was sind Applets Entwicklung Grundlagen Zustandssteuerung eines Applets Methoden zum Nachrichtentransfer Soundausgabe Animation Einbindung
MehrUnterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:
Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: If-clauses - conditional sentences - Nie mehr Probleme mit Satzbau im Englischen! Das komplette Material finden Sie hier: School-Scout.de
MehrLua. June 9, 2015. Marcus Brenscheidt Marcin Golkowski ( Dynamische Programmiersprachen Lua )
Lua Marcus Brenscheidt Marcin Golkowski Dynamische Programmiersprachen June 9, 2015 June 9, 2015 1 / 15 Geschichte I Entwickelt von Roberto Ierusalimschy, Luiz Henrique und Waldemar Celes Mitglieder der
MehrSich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. www.blogger.com ist einer davon.
www.blogger.com Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. www.blogger.com ist einer davon. Sie müssen sich dort nur ein Konto anlegen. Dafür gehen Sie auf
MehrAnleitung Grundsetup C3 Mail & SMS Gateway V02-0314
Anleitung Grundsetup C3 Mail & SMS Gateway V02-0314 Kontakt & Support Brielgasse 27. A-6900 Bregenz. TEL +43 (5574) 61040-0. MAIL info@c3online.at loxone.c3online.at Liebe Kundin, lieber Kunde Sie haben
Mehr4. AuD Tafelübung T-C3
4. AuD Tafelübung T-C3 Simon Ruderich 17. November 2010 Arrays Unregelmäßige Arrays i n t [ ] [ ] x = new i n t [ 3 ] [ 4 ] ; x [ 2 ] = new i n t [ 2 ] ; for ( i n t i = 0; i < x. l e n g t h ; i ++) {
MehrFolgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version 7.4.4. - Optional einen DHCP Server.
1. Dynamic Host Configuration Protocol 1.1 Einleitung Im Folgenden wird die Konfiguration von DHCP beschrieben. Sie setzen den Bintec Router entweder als DHCP Server, DHCP Client oder als DHCP Relay Agent
MehrWerkzeuge der Informatik UNIX
Autor: David Mainzer Institut für Informatik 1 Werkzeuge der Informatik UNIX Prof. Dr. Gabriel Zachmann (zach@in.tu-clausthal.de) David Mainzer (dm@tu-clausthal.de) Institut für Informatik 17. Dezember
MehrProf. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)
Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen
Mehr