Aspektorientierte Softwareentwicklung

Größe: px
Ab Seite anzeigen:

Download "Aspektorientierte Softwareentwicklung"

Transkript

1 Ausarbeitung zum Thema Aspektorientierte Softwareentwicklung Erstellt von: Thomas Steinhart HS Furtwangen CN 8 Für: Leiter: Hr. F. Kaspar

2 Inhaltsverzeichnis Inhaltsverzeichnis... 2 Einleitung... 3 Aspekt-Orientierte Software Entwicklung (AOSD)... 4 Was ist ein Aspekt?... 4 Crosscutting Concerns... 4 Separation of Concerns... 5 Ein Beispiel... 6 Der objektorientierte Lösungsansatz... 6 Der aspektorientierte Lösungsansatz... 7 Aspektorientierte Tools... 9 AspectJ... 9 CaesarJ... 9 Funktionsweise von CaesarJ...10 Noch ein Beispiel...10 AspectJ vs. CaesarJ...14 Fazit...15 Literaturverzeichnis /15 Thomas Steinhart

3 Einleitung Die Aspektorientierung ist ein relativ junges Forschungsgebiet mit dem Ziel, Methoden, Sprachen und Werkzeuge für die bessere Modularisierung von funktionalen und nicht funktionalen Belangen zu entwickeln (Bonomo-Kappeler, 2004). In herkömmlichen, objekt-orientierten Systemen können die Kernfunktionen für sich allein sauber in verschiedenen Klassen modularisiert werden. Allerdings gibt es in jedem System auch nicht funktionale Belange, so genannte Crosscutting Concerns (Stal, 2005). Diese Crosscutting Concerns schneiden sich sozusagen quer durch die Kernfunktionen eines Systems (engl. crosscut). Dazu gehören Funktionen wie z.b. Autorisierung, Logging, Tracing, etc. Diese Funktionen lassen sich nicht eindeutig zu einer der Kernfunktionen zuordnen sondern sind durch das gesamte System verstreut. Dadurch verhindern sie eine wirklich saubere Modularisierung und verschlechtern somit die Wartbarkeit, Lesbarkeit, Wiederverwendbarkeit und (Rück-) Verfolgbarkeit (Bonomo-Kappeler, 2004). Diese allerdings sind heutzutage wichtige Kriterien vor allem in Bezug auf die Kosten eines Systems. Die Aspektorientierung beschäftigt sich nun genau mit diesem Problem und versucht Lösungswege aufzuzeigen und Werkzeuge bereitzustellen /15 Thomas Steinhart

4 Aspekt-Orientierte Software Entwicklung (AOSD) Aspektorientierte Software-Entwicklung ist, wie eingangs schon erwähnt, ein sehr junges Forschungsgebiet des Software Engineerings. Sie wird definiert als die Berücksichtigung von Entwurfsentscheidungen, welche quer durch das ganze System getroffen werden müssen (crosscutting concerns) (Bonomo-Kappeler, 2004). Die Aspektorientierung steckt noch in den Kinderschuhen ihrer Entwicklungsphase, zeigt aber schon einige Methoden zur Vorgehensweise auf, die z.t. auf bewährten Methoden des Software Engineerings aufsetzten wie z.b. auf UML. Wie der Name schon andeutet bezieht sich die Aspektorientierung auf einzelne Aspekte, die aus verschiedenen Funktionalitäten heraus definiert und als separate Konstrukte implementiert werden um somit Kernfunktionalitäten zu bereinigen und auf ihre eigentlichen Funktionen zu beschränken. Was ist ein Aspekt? In der Literatur lassen sich verschiedene Definitionen zu Aspekt finden. Allerdings widersprechen sich die einzelnen Definitionen nicht sondern gehen mehr oder weniger tief in die Thematik ein. 1. Definition: Aspekt. Modulare Implementierung eines Crosscutting Concerns. (Definition von Lieberherr, Orleans, Ovlinger, 2001 aus (Bonomo-Kappeler, 2004)) 2. Definition: Aspekt. Modulare Einheit einer crosscutting Implementierung. (Ivar Jacobson, 2004) 3. Definition: Aspekt. Funktionale Einheit, die durch das ganze übrige Systemverhalten gewoben ist. (Siobhán Clarke, 2005) Wie Bonomo-Kappeler zeigt, sind noch einige weitere Definitionen zu finden, allerdings ist die hier als 1.Definition genannte die bevorzugte Definition. Ein Aspekt ist also ein modular implementierter Crosscutting Concern. Was aber ist ein Crosscutting Concern? Crosscutting Concerns Das Wort Concern geht nach Duden (1997) auf lateinisch concernere beachten, berücksichtigen, betreffen, sich beziehen auf, eigentlich Unterschiedliches /15 Thomas Steinhart

5 zusammenmischen (lateinisch con zusammen, mit und lateinisch cernere unterscheiden ) zurück. Es lässt sich auf Deutsch mit Angelegenheit, Interesse, Beziehung übersetzen (Langenscheidt 1991). In der Literatur zu AOSD finden sich zu Concern u.a. folgende Definitionen: 1. Definition: Concern. Spezifische Anforderung oder Gesichtspunkt, welche(r) in einem Software-System behandelt werden muss, um die übergreifenden Systemziele zu erreichen (Laddad, 2003). 2. Definition: Concern. Irgendeine Sache, die an einem System interessiert, d.h. ein Ziel oder eine Menge von Eigenschaften, die das System erfüllen muss (Definition von Brito, Moreira, 2004 aus (Bonomo-Kappeler, 2004)). Auch hier ist die erste Definition wiederum die zu bevorzugende, da sie präziser ist. Ein Concern stellt also eine spezifische Anforderung dar, die behandelt werden muss um übergreifende Systemziele umzusetzen. Dazu gehören natürlich die Kernfunktionalitäten (Core Concerns), ohne die es kein System gäbe. Aber auch durch diese Core Concerns quer schneidende (engl. crosscut), nicht zu diesen Core Concerns gehörende Funktionalitäten gehören hier dazu. Diese werden Crosscutting Concerns genannt. 3. Definition: Crosscutting Concerns. Realisieren diejenigen Funktionen eines Systems, welche die Core Concerns oder andere Crosscutting Concerns quer schneiden, beispielsweise Authentisierung oder Logging (Laddad, 2003). Ein Aspekt stellt somit eine modular implementierte, spezifische Anforderung dar, die mehrere Core Concerns betrifft und diese quer schneidet. Wie aber erkennt man nun einen solchen Aspekt bzw. den Crosscutting Concern? Separation of Concerns Generell versucht man, die Anforderungen während der Planungsphase eines Software Systems zu separieren, d.h. zu identifizieren und so zu trennen, dass die einzelnen Concerns voneinander unabhängig bzw. Schnittmengenfrei sind (Stal, 2005). Dadurch lassen sich die einzelnen Anforderungen separat planen, implementieren und erst später, wenn das Projekt schon weiter fortgeschritten ist, sauber zusammenfügen. Bei diesem Schritt fallen nun die nicht funktionalen Belange bzw. die Anforderungen, die mehrere Core Concerns betreffen, aber nicht dazugehören, auf. Sie werden als /15 Thomas Steinhart

6 Crosscutting Concerns spezifiziert und somit in die Planung mit aufgenommen und später dann als Aspekte implementiert. Ein Beispiel Anhand eines Beispiels kann die Thematik und Problematik der Aspektorientierung etwas verdeutlicht werden. Im Folgenden soll die Methode booking() einer Klasse RoomBooking am Beginn und Ende der Methode mitgeloggt werden. Dies geschieht durch eine Klasse Trace und deren Methoden traceentry(string) und traceexit(string). Der objektorientierte Lösungsansatz UML-Klassendiagramm UML-Sequenzdiagramm Trace RoomBooking :RoomBooking :Trace +traceentry() +traceexit() +booking() booking() traceentry() Code von booking() traceexit() Hier erkennt man sehr deutlich die Probleme der objektorientierten Implementation dieses Aspekts: 1. Die booking()-methode enthält neben ihren eigentlichen Kernfunktionalitäten auch noch die Aufrufe für traceentry() und traceexit(). Dadurch sind die Wiederverwendbarkeit und die Lesbarkeit des Codes eingeschränkt. Dieses Problem wird Tangling genannt (Siobhán Clarke, 2005) /15 Thomas Steinhart

7 2. Das Tracing-Verhalten ist über beide Klassen (RoomBooking, Trace) verteilt. Dies hat zur Folge, dass auch jede andere Methode, die das Tracing implementieren soll, die Methodenaufrufe implementieren muss. Änderungen des Aufrufs müssen also in allen aufrufenden Methoden durchgeführt werden. Dieses Problem wird Scattering genannt (Siobhán Clarke, 2005). Diese Probleme sind mit den Methoden der Objektorientierung nicht oder nur sehr schwer zu umgehen. Der aspektorientierte Lösungsansatz Der aspektorientierte Lösungsversuch moduliert nun die Tracing-Funktionalität als Aspekt. Somit enthält die Klasse RoomBooking keinen Aufruf von traceentry() oder traceexit() mehr. Das übernimmt alles der Aspekt Tracing. Der dafür erforderliche Code des Tracing-Aspekts sieht in AspectJ in etwa folgendermaßen aus: public aspect Tracing { before () : withincode (void Main.startTest()) && call (void RoomBooking.booking()){ Trace.traceEntry(); after () : /15 Thomas Steinhart

8 withincode (void Main.startTest()) && call (void RoomBooking.booking()){ Trace.traceExit(); Der Code kann natürlich nicht mit dem normalen Java-Compiler kompiliert werden. Dazu ist (in diesem Fall) der AspectJ-Compiler verantwortlich /15 Thomas Steinhart

9 Aspektorientierte Tools AspectJ AspectJ ist eine Mehrzweck-, aspektorientierte Erweiterung zur Java- Programmiersprache. Aus diesem Grund ist jedes gültige Java Programm auch ein gültiges AspectJ Programm. Ein AspectJ-Compiler erzeugt.class-dateien die konform mit der Java Byte-Code Spezifikation sind und die von jeder Java Virtual Machine ausgeführt werden können. Dadurch, dass AspectJ Java als Grundsprache verwendet, nutzt es alle Vorteile von Java und macht es Java Programmierern einfach, die AspectJ Sprache zu verstehen (Laddad, 2003). Aspektorientiertes Programmieren funktioniert kurz gesagt folgendermaßen: Man entwickelt die Java Klassen mit den Kernfunktionen seines Systems, dann entwickelt man die Aspekte, die die Crosscutting Concerns bilden. Ob man die Objekte und Aspekte zusammen, separat, nacheinander oder parallel entwickelt hängt nur davon ab, welche Entwicklungsstrategie man verwendet. Wichtig ist, dass, nach dem man alles fertig entwickelt hat, man das Ganze mit dem AspectJ-Compiler kompiliert. Er macht die komplette horizontale Bündelung in Java und erzeugt dann den ausführbaren Byte-Code (Kiselev, 2003). Der AspectJ-Compiler ist als Eclipse Plug-In erhältlich unter CaesarJ Bisher wurde nur die Möglichkeit in Betracht gezogen, Crosscutting Concerns in AspectJ zu implementieren. CaesarJ bietet dagegen die Möglichkeit, Aspekte nicht nur zu lokalisieren sondern sie auch wieder verwendbar zu machen. CaesarJ bietet sich somit sehr gut an für Produktlinienarchitekturen die z.b. viel mit Plug-Ins arbeiten. CaesarJ ist wie AspectJ eine auf Java basierende, aspektorientierte Sprache die Mechanismen zur Verfeinerung und Komposition in größerem Umfang integriert. Kompositionsmechanismen wie Vererbung und Polymorphie werden auf Gruppen von Klassen und nicht nur auf einzelne Klassen angewendet. Ausserdem bietet CaesarJ die Möglichkeit, neue Komponenten ohne Änderung des bestehenden Quelltextes in ein existierendes System zu integrieren. Wie für AspectJ gibt es auch für CaesarJ ein Eclipse Plug-In unter /15 Thomas Steinhart

10 Funktionsweise von CaesarJ CaesarJ arbeitet mit in sich geschlossenen Funktionseinheiten, die mehrere Klassen und alle relevanten Abstraktionen, die für eine Komponente bzw. ein Feature notwendig sind, beinhalten. Das bedeutet, dass alle für eine Komponente bzw. ein Feature notwendigen Klassen in abstrakten Klassen geschachtelt sind, ähnlich wie inner classes in Java. Allerdings können hier die inneren Klassen, genau wie die Methoden in diesen Klassen, in Ableitungen der äußeren Klasse überschrieben bzw. erweitert werden. Diese inneren Klassen sind darum virtuelle Klassen. Um sowohl innere als auch äußere CaesarJ Klassen von normalen Java Klassen zu unterscheiden, werden sie nicht mit dem normalen class-schlüsselwort eingeleitet sondern mit cclass. Die Funktionseinheiten entsprechen in etwa den Aspekten, die oben definiert wurden. Allerdings sind diese Funktionseinheiten wieder unterteilt in Core Concerns und Elementen, die direkt mit der originalen Anwendung zu tun haben. Dies garantiert eine modulare Bauweise der Komponenten. Als Schnittstelle von einer Komponente bzw. einem Feature zu einer Anwendung werden in CaesarJ so genannte collaboration Interfaces (CI) implementiert. Diese definieren die Klassenordnung sowie provided - und expected - Methoden für die virtuellen Klassen. Provided Methoden definieren die Funktionalität und damit die Core Concerns der Komponente bzw. des Features. Expected Methoden dienen zur Abfrage kontextspezifischer Informationen, die notwendig sind wenn bestimmte Teile der Komponente anwendungsspezifisch sind. Noch ein Beispiel An einem Beispiel (entnommen aus (Iris Groher, 2005)) soll gezeigt werden, wie die Implementierung aussehen kann. Dabei soll eine Pricing-Komponente zu einer StockInformationBrocker-Anwendung hinzugefügt werden, um Aktienkursabfragen preislich zu belangen. Die Anwendung sieht wie folgt aus: /15 Thomas Steinhart

11 Folgender Code zeigt die Implementierung eines collaboration Interfaces für die Pricing-Komponente: abstract cclass PricingCI { abstract public cclass Customer { /* provided */ abstract public double getbalance(); abstract public void charge(item it); abstract public Bill createbill(); /* expected */ abstract public String getcustinfo(); abstract public cclass Item { /* provided */ public double getprice(); public double gettax(); public BillLine createbillline(); /* expected */ public double getbaseprice(); public String getitemdescr(); Die einfache Implementierung der Pricing-Komponente sieht folgendermaßen aus, wobei hier nur die provided Methoden implementiert werden, da sie nur die Core Concerns der Komponente darstellt: abstract cclass SimplePricing extends PricingCI { abstract public cclass Customer { private double balance; private List billlines; public double getbalance() { return balance; public void charge(item item) { balance -= item.getprice(); /15 Thomas Steinhart

12 billllines.add(item.createbillline()); public Bill createbill() { String header = "Bill for " + getcustinfo();... abstract public cclass Item { public double getprice() { return getbaseprice() + gettax(); public BillLine createbillline() { return new BillLine(getItemDescr(), getprice(), gettax()); public double gettax() {... Nun muss diese Implementierung aber auch an die originale StockInformationBroker- Anwendung gebunden werden, d.h. sie muss in die Anwendung integriert werden. Dies geschieht bei CaesarJ mit Hilfe eines Bindings. Dabei werden die restlichen expected Methoden implementiert: abstract public cclass PerStockRequestBinding extends PricingCI { public cclass ClientCustomer extends Customer wraps Client { public String getcustinfo() { return wrappee.getclientname() + " " + wrappee.getclientid(); public cclass StockItem extends Item wraps StockInfoRequest { public double getbaseprice() { return 5 + wrappee.getstocks().length * 0.2; public String getitemdescr() { return "Stock req. "+ wrappee.getstocks().length; after(client client, StockInfoRequest request) : (call(stockinfo StockInfoBroker.collectInfo(..)) && this(c) && args(request)) { ClientCustomer(client).charge(StockItem(request)); /15 Thomas Steinhart

13 Das Binding beschreibt also die Verbindung zwischen Features und Anwendung. Bisher waren alle Klassen abstrakt. Um die ganzen Einzelteile nun funktionsfähig miteinander zu kombinieren muss ein Binding mit einer Komponentenimplementierung (den Core Concerns) kombiniert werden. In diesem Beispiel kann mit der folgenden Deklaration SimplePricing mit PerStockRequestBinding kombiniert werden: cclass SimplePricingPerStockRequest extends SimplePricing & PerStockRequestBinding { Dieses Konstrukt zeigt nun eine Klasse die von zwei anderen Klassen erbt. Das ist möglich, da CaesarJ eine einfache Form der Mehrfachvererbung unterstützt wobei die Vererbungshierarchie linearisiert wird, um die typischen Probleme von Mehrfachvererbung zu vermeiden. Die Klassenkomposition setzt sich durch den &-Operator rekursiv in allen geschachtelten Klassen fort, d.h. durch die Komposition der umschließenden Klassen werden auch alle anderen, unterschiedlichen Erweiterungen derselben virtuellen Klassen ebenfalls miteinander kombiniert. Somit werden alle Implementierungen der expected und der provided Methoden der virtuellen Klassen miteinander kombiniert: Um nun die SimplePricingPerStockRequest Klasse tatsächlich einzubinden, muss ein Objekt dieser Klasse explizit mit Hilfe eines Deployment-Mechanismus aktiviert werden. Hierzu wird das Pricing-Feature für den Block innerhalb der Klammern nach dem Schlüsselwort deploy aktiviert, danach ist es wieder deaktiviert: final SimplePricingPerStockRequest pricing = /15 Thomas Steinhart

14 new SimplePricingPerStockRequest(); deploy (pricing) { StockInfoRequest request = new StockInfoRequest(stockList); StockInfo si = StockInformationBroker.getInstance().collectInfo( request); /* Advice ist während der Ausführung dieses Blocks aktiviert*/ CaesarJ bietet mehrere unterschiedliche Deployment-Mechanismen, von denen hier aber nur dieser eine verwendet wird. Dieser ganze Aufwand bringt nun einige Vorteile zur üblichen Implementierung mit AspectJ oder gar mit objektorientierten Mitteln: Die einzelnen Implementierungen, wie PerStockRequestBinding (Binding), SimplePricing (Core Concerns) und PricingCI (Collaboration Interface) können wieder verwendet werden. Verschiedene Implementierungen können miteinander kombiniert werden. Und die Einbindung erfolgt komplett nicht invasiv, was bedeutet, dass die Klassen der ursprünglichen Anwendung nicht geändert werden müssen. AspectJ vs. CaesarJ AspectJ und CaesarJ unterscheiden sich in einigen wesentlichen Punkten: - Behandlung von Aspekten: Bei AspectJ ist ein Aspekt keine Java Klasse und kann deshalb auch nicht instanziiert werden. Bei CaesarJ werden Aspekte als Objekte implementiert und könne je nach bedarf aktiviert oder deaktiviert werden. - Ansatz in der Sichtweise: AspectJ wird meist nur in Verbindung mit der Lösung von Crosscutting Concerns gesehen. CaesarJ wurde mit der Aufgabenstellung entwickelt, ein effektives Werkzeug für die Entwicklung von Software-Systemfamilien zu haben /15 Thomas Steinhart

15 Fazit Meiner Meinung nach ist die Entwicklung und Anwendung von CaesarJ ein logischer Schritt nach der Entwicklung und Einführung der AOSD und AspectJ. Der generelle Ansatz der AOSD ist wichtig und gut um Software besser zu Modularisieren und vermehrt Wiederverwendbar zu machen. Ob der Quellcode dadurch allerdings Lesbarer wird (Bonomo-Kappeler, 2004) wage ich angesichts der komplexen Strukturen von CaesarJ zu bezweifeln. Literaturverzeichnis - Bonomo-Kappeler, I. (2004). Aspektorientierte Software-Entwicklung Unter Besonderer Berücksichtigung Der Begrifflichen Zusammenhänge Und Der Einbettung in Den Entwicklungsprozess. Unpublished Diplomarbeit, Universität Zürich, CH-5430 Wettingen. - Iris Groher, V. G., Christa Schwanninger, Klaus Ostermann. (2005). Aspektorientierte Softwareentwicklung Mit Caesarj. Java Spektrum, 6/2005, Ivar Jacobson, P.-W. N. (2004). Aspect-Oriented Software Development with Use Cases: Addison-Wesley. - Kiselev, I. (2003). Aspect-Oriented Programming with Aspectj: Sams Publishing. - Laddad, R. (2003). Aspectj in Action. Greenwich: Manning Publications Co. - Siobhán Clarke, E. B. (2005). Aspect-Oriented Analysis and Design - the Theme Approach: Addison-Wesley. - Stal, M. (2005). Aspekte Ohne Grenzen. Java Spektrum, 6/2005, /15 Thomas Steinhart

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, 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:

Mehr

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum C A R L V O N O S S I E T Z K Y Agile Vorgehensmodelle in der Softwareentwicklung: Scrum Johannes Diemke Vortrag im Rahmen der Projektgruppe Oldenburger Robot Soccer Team im Wintersemester 2009/2010 Was

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte 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

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik 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,

Mehr

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt Objektorientierter Software-Entwurf Grundlagen 1 1 Einordnung der Veranstaltung Analyse Design Implementierung Slide 1 Informationssystemanalyse Objektorientierter Software-Entwurf Frühe Phasen durch Informationssystemanalyse

Mehr

Software Engineering Klassendiagramme Assoziationen

Software 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

Prinzipien Objektorientierter Programmierung

Prinzipien 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........................

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. 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

Mehr

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015 Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015 CODESYS a trademark of 3S-Smart Software Solutions GmbH Agenda 1 Warum

Mehr

Arbeiten mit UMLed und Delphi

Arbeiten 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

Mehr

Robot Karol für Delphi

Robot Karol für Delphi Robot Karol für Delphi Reinhard Nitzsche, OSZ Handel I Version 0.1 vom 24. Januar 2003 Zusammenfassung Nach der Einführung in die (variablenfreie) Programmierung mit Robot Karol von Freiberger und Krško

Mehr

Projektmanagement in der Spieleentwicklung

Projektmanagement in der Spieleentwicklung Projektmanagement in der Spieleentwicklung Inhalt 1. Warum brauche ich ein Projekt-Management? 2. Die Charaktere des Projektmanagement - Mastermind - Producer - Projektleiter 3. Schnittstellen definieren

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen Alexander Schunk Henry Trobisch Inhalt 1. Vergleich der Unit-Tests... 2 2. Vergleich der Codeabdeckungs-Tests... 2 3. Vergleich

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken Version 2.0 1 Original-Application Note ads-tec GmbH IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken Stand: 27.10.2014 ads-tec GmbH 2014 IRF2000 2 Inhaltsverzeichnis

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank

Mehr

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

Mehr

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Vermeiden Sie es sich bei einer deutlich erfahreneren Person dranzuhängen, Sie sind persönlich verantwortlich für Ihren Lernerfolg. 1 2 3 4 Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg. Gerade beim Einstig in der Programmierung muss kontinuierlich

Mehr

Das Leitbild vom Verein WIR

Das Leitbild vom Verein WIR Das Leitbild vom Verein WIR Dieses Zeichen ist ein Gütesiegel. Texte mit diesem Gütesiegel sind leicht verständlich. Leicht Lesen gibt es in drei Stufen. B1: leicht verständlich A2: noch leichter verständlich

Mehr

Was meinen die Leute eigentlich mit: Grexit?

Was meinen die Leute eigentlich mit: Grexit? Was meinen die Leute eigentlich mit: Grexit? Grexit sind eigentlich 2 Wörter. 1. Griechenland 2. Exit Exit ist ein englisches Wort. Es bedeutet: Ausgang. Aber was haben diese 2 Sachen mit-einander zu tun?

Mehr

Aspektorientierte Softwareentwicklung mit CaesarJ

Aspektorientierte Softwareentwicklung mit CaesarJ Des Kaisers neue Kleider Aspektorientierte Softwareentwicklung mit CaesarJ Iris Groher, Vaidas Gasiunas, Christa Schwanninger, Klaus Ostermann In der Softwareentwickler-Community ist aspektorientierte

Mehr

Outsourcing und Offshoring. Comelio und Offshoring/Outsourcing

Outsourcing und Offshoring. Comelio und Offshoring/Outsourcing Outsourcing und Offshoring Comelio und Offshoring/Outsourcing INHALT Outsourcing und Offshoring... 3 Comelio und Offshoring/Outsourcing... 4 Beauftragungsmodelle... 4 Projektleitung vor Ort und Software-Entwicklung

Mehr

Objektorientierte Programmierung

Objektorientierte 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

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: 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

Mehr

ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN. Der Zauberwürfel-Roboter. Paul Giese. Schule: Wilhelm-Raabe-Schule

ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN. Der Zauberwürfel-Roboter. Paul Giese. Schule: Wilhelm-Raabe-Schule ZfP-Sonderpreis der DGZfP beim Regionalwettbewerb Jugend forscht BREMERHAVEN Der Zauberwürfel-Roboter Paul Giese Schule: Wilhelm-Raabe-Schule Jugend forscht 2013 Kurzfassung Regionalwettbewerb Bremerhaven

Mehr

Kompilieren und Linken

Kompilieren und Linken Kapitel 2 Kompilieren und Linken Bevor wir uns auf C++ selbst stürzen, brauchen wir einiges Vorgeplänkel, wie man komfortabel ein größeres C++- kompilieren kann. Mit Java stellt sich der Kompiliervorgang

Mehr

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,

Mehr

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:

Mehr

Programmieren in Java

Programmieren 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

Mehr

Geld Verdienen im Internet leicht gemacht

Geld Verdienen im Internet leicht gemacht Geld Verdienen im Internet leicht gemacht Hallo, Sie haben sich dieses E-book wahrscheinlich herunter geladen, weil Sie gerne lernen würden wie sie im Internet Geld verdienen können, oder? Denn genau das

Mehr

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version 2.0.1 Deutsch 01.07.2014

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version 2.0.1 Deutsch 01.07.2014 Konfiguration VLAN's Version 2.0.1 Deutsch 01.07.2014 In diesem HOWTO wird die Konfiguration der VLAN's für das Surf-LAN der IAC-BOX beschrieben. Konfiguration VLAN's TITEL Inhaltsverzeichnis Inhaltsverzeichnis...

Mehr

Anleitung über den Umgang mit Schildern

Anleitung über den Umgang mit Schildern Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte 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/

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken. In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht

Mehr

Professionelle Seminare im Bereich MS-Office

Professionelle 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

Mehr

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers

Daniel 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

Mehr

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst.

40-Tage-Wunder- Kurs. Umarme, was Du nicht ändern kannst. 40-Tage-Wunder- Kurs Umarme, was Du nicht ändern kannst. Das sagt Wikipedia: Als Wunder (griechisch thauma) gilt umgangssprachlich ein Ereignis, dessen Zustandekommen man sich nicht erklären kann, so dass

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binä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

Mehr

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2.1 Die Einrichtung der Benutzeroberfläche Das Einrichten einer Android-Eclipse-Entwicklungsumgebung zur Android-Entwicklung ist grundsätzlich nicht

Mehr

! " # $ " % & Nicki Wruck worldwidewruck 08.02.2006

!  # $  % & Nicki Wruck worldwidewruck 08.02.2006 !"# $ " %& Nicki Wruck worldwidewruck 08.02.2006 Wer kennt die Problematik nicht? Die.pst Datei von Outlook wird unübersichtlich groß, das Starten und Beenden dauert immer länger. Hat man dann noch die.pst

Mehr

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein. Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester 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

Mehr

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing Fassade Objektbasiertes Strukturmuster C. Restorff & M. Rohlfing Übersicht Motivation Anwendbarkeit Struktur Teilnehmer Interaktion Konsequenz Implementierung Beispiel Bekannte Verwendung Verwandte Muster

Mehr

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:

Mehr

SANDBOXIE konfigurieren

SANDBOXIE konfigurieren SANDBOXIE konfigurieren für Webbrowser und E-Mail-Programme Dies ist eine kurze Anleitung für die grundlegenden folgender Programme: Webbrowser: Internet Explorer, Mozilla Firefox und Opera E-Mail-Programme:

Mehr

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock infach Ihr Weg zum finanzellen Erfolg Geld Florian Mock FBV Die Grundlagen für finanziellen Erfolg Denn Sie müssten anschließend wieder vom Gehaltskonto Rückzahlungen in Höhe der Entnahmen vornehmen, um

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

Fortgeschrittenes Programmieren mit Java. Test Driven Development

Fortgeschrittenes Programmieren mit Java. Test Driven Development Fortgeschrittenes Programmieren mit Java Test Driven Development Test getriebene Programmierung Benedikt Boeck Hochschule für Angewandte Wissenschaften Hamburg 6. November 2009 B. Boeck (HAW Hamburg) Test

Mehr

Online Newsletter III

Online Newsletter III Online Newsletter III Hallo zusammen! Aus aktuellem Anlass wurde ein neuer Newsletter fällig. Die wichtigste Neuerung betrifft unseren Webshop mit dem Namen ehbshop! Am Montag 17.10.11 wurde die Testphase

Mehr

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert. Usability Heuristiken Karima Tefifha Proseminar: "Software Engineering Kernkonzepte: Usability" 28.06.2012 Prof. Dr. Kurt Schneider Leibniz Universität Hannover Die ProSeminar-Ausarbeitung beschäftigt

Mehr

1 Mathematische Grundlagen

1 Mathematische Grundlagen Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.

Mehr

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3

Mehr

5.2 Neue Projekte erstellen

5.2 Neue Projekte erstellen 5.2 Neue Projekte erstellen Das Bearbeiten von bestehenden Projekten und Objekten ist ja nicht schlecht wie aber können Sie neue Objekte hinzufügen oder gar völlig neue Projekte erstellen? Die Antwort

Mehr

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung.

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung. StuPro-Seminar Dokumentation in der Software-Wartung StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung Folie 1/xx Software-Wartung: theoretisch Ausgangslage eigentlich simpel: fertige

Mehr

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7 Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Roboter programmieren mit NXC für Lego Mindstorms NXT 1. Auflage Roboter programmieren mit NXC für Lego Mindstorms NXT schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag

Mehr

extreme Programming (XP) Hermann Götz Sergij Paholchak Agenda Was ist XP? Grundprinzipien Der Entwicklungsprozess Die Projektplanung Praktiken Vorteile und Nachteile Wann macht XP Sinn für ein Projekt?

Mehr

Dieses erste Kreisdiagramm, bezieht sich auf das gesamte Testergebnis der kompletten 182 getesteten Personen. Ergebnis

Dieses erste Kreisdiagramm, bezieht sich auf das gesamte Testergebnis der kompletten 182 getesteten Personen. Ergebnis Datenanalyse Auswertung Der Kern unseres Projektes liegt ganz klar bei der Fragestellung, ob es möglich ist, Biere von und geschmacklich auseinander halten zu können. Anhand der folgenden Grafiken, sollte

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am 14.08.08

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am 14.08.08 Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements von Stephanie Wilke am 14.08.08 Überblick Einleitung Was ist ITIL? Gegenüberstellung der Prozesse Neuer

Mehr

Aspektorientierte Programmierung (aspect-oriented programming, AOP)

Aspektorientierte 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

Mehr

Kurzanleitung zu. von Daniel Jettka 18.11.2008

Kurzanleitung zu. von Daniel Jettka 18.11.2008 Kurzanleitung zu Tigris.org Open Source Software Engineering Tools von Daniel Jettka 18.11.2008 Inhaltsverzeichnis 1.Einführung...1 2.Das Projektarchivs...3 2.1.Anlegen des Projektarchivs...3 2.2.Organisation

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

Lizenzen auschecken. Was ist zu tun?

Lizenzen auschecken. Was ist zu tun? Use case Lizenzen auschecken Ihr Unternehmen hat eine Netzwerk-Commuterlizenz mit beispielsweise 4 Lizenzen. Am Freitag wollen Sie Ihren Laptop mit nach Hause nehmen, um dort am Wochenende weiter zu arbeiten.

Mehr

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 Referentin: Dr. Kelly Neudorfer Universität Hohenheim Was wir jetzt besprechen werden ist eine Frage, mit denen viele

Mehr

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren: 4. AUSSAGENLOGIK: SYNTAX 4.1 Objektsprache und Metasprache 4.2 Gebrauch und Erwähnung 4.3 Metavariablen: Verallgemeinerndes Sprechen über Ausdrücke von AL 4.4 Die Sprache der Aussagenlogik 4.5 Terminologie

Mehr

Internet Explorer Version 6

Internet Explorer Version 6 Internet Explorer Version 6 Java Runtime Ist Java Runtime nicht installiert, öffnet sich ein PopUp-Fenster, welches auf das benötigte Plugin aufmerksam macht. Nach Klicken auf die OK-Taste im PopUp-Fenster

Mehr

Folge 18 - Vererbung

Folge 18 - Vererbung Workshop Folge 18 - Vererbung 18.1 Ein einfacher Fall der Vererbung Schritt 1 - Vorbereitungen Besorgen Sie sich - vielleicht aus einer der Übungen der Folge 17 - ein fertiges und lauffähiges Listenprojekt,

Mehr

5. Abstrakte Klassen

5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,

Mehr

Objektorientierte Programmierung

Objektorientierte 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)

Mehr

.NET Code schützen. Projekt.NET. Version 1.0

.NET Code schützen. Projekt.NET. Version 1.0 .NET Code schützen Projekt.NET Informationsmaterial zum Schützen des.net Codes Version 1.0 Autor: Status: Ablage: Empfänger: Seiten: D. Hoyer 1 / 6 Verteiler : Dokument1 Seite 1 von 1 Änderungsprotokoll

Mehr

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung Anleitung zur Daten zur Datensicherung und Datenrücksicherung Datensicherung Es gibt drei Möglichkeiten der Datensicherung. Zwei davon sind in Ges eingebaut, die dritte ist eine manuelle Möglichkeit. In

Mehr

Letzte Krankenkassen streichen Zusatzbeiträge

Letzte Krankenkassen streichen Zusatzbeiträge Zusatzbeiträge - Gesundheitsfonds Foto: D. Claus Einige n verlangten 2010 Zusatzbeiträge von ihren Versicherten. Die positive wirtschaftliche Entwicklung im Jahr 2011 ermöglichte den n die Rücknahme der

Mehr

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 Kapitel 4 Die Datenbank Kuchenbestellung Seite 1 4 Die Datenbank Kuchenbestellung In diesem Kapitel werde ich die Theorie aus Kapitel 2 Die Datenbank Buchausleihe an Hand einer weiteren Datenbank Kuchenbestellung

Mehr

Einführung in die Programmierung

Einfü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

Mehr

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken Dateiname: ecdl5_01_00_documentation_standard.doc Speicherdatum: 14.02.2005 ECDL 2003 Basic Modul 5 Datenbank - Grundlagen

Mehr

Repetitionsaufgaben Wurzelgleichungen

Repetitionsaufgaben Wurzelgleichungen Repetitionsaufgaben Wurzelgleichungen Inhaltsverzeichnis A) Vorbemerkungen B) Lernziele C) Theorie mit Aufgaben D) Aufgaben mit Musterlösungen 4 A) Vorbemerkungen Bitte beachten Sie: Bei Wurzelgleichungen

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

Nutzung von GiS BasePac 8 im Netzwerk

Nutzung von GiS BasePac 8 im Netzwerk Allgemeines Grundsätzlich kann das GiS BasePac Programm in allen Netzwerken eingesetzt werden, die Verbindungen als Laufwerk zu lassen (alle WINDOWS Versionen). Die GiS Software unterstützt nur den Zugriff

Mehr

10.1 Auflösung, Drucken und Scannen

10.1 Auflösung, Drucken und Scannen Um einige technische Erläuterungen kommen wir auch in diesem Buch nicht herum. Für Ihre Bildergebnisse sind diese technischen Zusammenhänge sehr wichtig, nehmen Sie sich also etwas Zeit und lesen Sie dieses

Mehr

Einfügen von Bildern innerhalb eines Beitrages

Einfügen von Bildern innerhalb eines Beitrages Version 1.2 Einfügen von Bildern innerhalb eines Beitrages Um eigene Bilder ins Forum einzufügen, gibt es zwei Möglichkeiten. 1.) Ein Bild vom eigenem PC wird auf den Webspace von Baue-die-Bismarck.de

Mehr

Eigenen Farbverlauf erstellen

Eigenen Farbverlauf erstellen Diese Serie ist an totale Neulinge gerichtet. Neu bei PhotoLine, evtl. sogar komplett neu, was Bildbearbeitung betrifft. So versuche ich, hier alles einfach zu halten. Ich habe sogar PhotoLine ein zweites

Mehr

Java Enterprise Architekturen Willkommen in der Realität

Java Enterprise Architekturen Willkommen in der Realität Java Enterprise Architekturen Willkommen in der Realität Ralf Degner (Ralf.Degner@tk-online.de), Dr. Frank Griffel (Dr.Frank.Griffel@tk-online.de) Techniker Krankenkasse Häufig werden Mehrschichtarchitekturen

Mehr

GetName(), GetName(), GetGeschlecht() und AelterWerden().

GetName(), GetName(), GetGeschlecht() und AelterWerden(). 11. Vererbung Vererbung ist eine der mächtigsten Funktionalitäten der objektorientierten Programmiersprachen. Man versteht unter Vererbung die Tatsache, dass eine Klasse alle Methoden und Variablen einer

Mehr

Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation

Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation Einführung Mit welchen Erwartungen gehen Jugendliche eigentlich in ihre Ausbildung? Wir haben zu dieser Frage einmal die Meinungen von Auszubildenden

Mehr

Einkaufen im Internet. Lektion 5 in Themen neu 3, nach Übung 10. Benutzen Sie die Homepage von: http://www.firstsurf.de/klietm9950_f.

Einkaufen im Internet. Lektion 5 in Themen neu 3, nach Übung 10. Benutzen Sie die Homepage von: http://www.firstsurf.de/klietm9950_f. Themen neu 3 Was lernen Sie hier? Sie formulieren Ihre Vermutungen und Meinungen. Was machen Sie? Sie erklären Wörter und Ausdrücke und beurteilen Aussagen. Einkaufen im Internet Lektion 5 in Themen neu

Mehr

impact ordering Info Produktkonfigurator

impact ordering Info Produktkonfigurator impact ordering Info Copyright Copyright 2013 veenion GmbH Alle Rechte vorbehalten. Kein Teil der Dokumentation darf in irgendeiner Form ohne schriftliche Genehmigung der veenion GmbH reproduziert, verändert

Mehr

Barrierefreie Webseiten erstellen mit TYPO3

Barrierefreie Webseiten erstellen mit TYPO3 Barrierefreie Webseiten erstellen mit TYPO3 Alternativtexte Für jedes Nicht-Text-Element ist ein äquivalenter Text bereitzustellen. Dies gilt insbesondere für Bilder. In der Liste der HTML 4-Attribute

Mehr

Erfahrungen mit Hartz IV- Empfängern

Erfahrungen mit Hartz IV- Empfängern Erfahrungen mit Hartz IV- Empfängern Ausgewählte Ergebnisse einer Befragung von Unternehmen aus den Branchen Gastronomie, Pflege und Handwerk Pressegespräch der Bundesagentur für Arbeit am 12. November

Mehr

EasyWk DAS Schwimmwettkampfprogramm

EasyWk DAS Schwimmwettkampfprogramm EasyWk DAS Schwimmwettkampfprogramm Arbeiten mit OMEGA ARES 21 EasyWk - DAS Schwimmwettkampfprogramm 1 Einleitung Diese Präsentation dient zur Darstellung der Zusammenarbeit zwischen EasyWk und der Zeitmessanlage

Mehr

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers Ist Excel das richtige Tool für FMEA? Einleitung Wenn in einem Unternehmen FMEA eingeführt wird, fangen die meisten sofort damit an,

Mehr

Was bedeutet Inklusion für Geschwisterkinder? Ein Meinungsbild. Irene von Drigalski Geschäftsführerin Novartis Stiftung FamilienBande.

Was bedeutet Inklusion für Geschwisterkinder? Ein Meinungsbild. Irene von Drigalski Geschäftsführerin Novartis Stiftung FamilienBande. Was bedeutet Inklusion für Geschwisterkinder? unterstützt von Ein Meinungsbild - Irene von Drigalski Geschäftsführerin Novartis Stiftung FamilienBande Haben Sie Kontakt zu Geschwistern schwer chronisch

Mehr

Leichte-Sprache-Bilder

Leichte-Sprache-Bilder Leichte-Sprache-Bilder Reinhild Kassing Information - So geht es 1. Bilder gucken 2. anmelden für Probe-Bilder 3. Bilder bestellen 4. Rechnung bezahlen 5. Bilder runterladen 6. neue Bilder vorschlagen

Mehr

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken? UErörterung zu dem Thema Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken? 2000 by christoph hoffmann Seite I Gliederung 1. In zu großen Mengen ist alles schädlich. 2.

Mehr

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Übersicht Struts Forms Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen. Allgemeines Autor: Sascha Wolski http://www.laliluna.de/tutorials.html

Mehr