Chain of Responsibility

Größe: px
Ab Seite anzeigen:

Download "Chain of Responsibility"

Transkript

1 Seminar Entwurfmuster Chain of Responsibility (Zuständigkeitskette) Betreuende Professoren Prof. Dr. B. Renz Prof. Dr. W. Henrich Fachhochschule Giessen-Friedberg Studiengang Informatik Stand: 17. Juni 2003

2 Inhaltsverzeichnis 1 Ein kurze Einführung Der Nutzen von Entwurfsmustern (Pattern) Die Gruppe der Verhaltensmuster (Behavioral Pattern) Chain of Responsibility - Zuständigkeitskette Motivation Layoutanpassung mit der Zuständigkeitskette Ein schnelles Beispiel Allgemeine Struktur Die Zuständigkeitskette im Beispiel Weitere Beispiele in der Praxis Verschiedene Aspekte der Zuständigkeitskette Konsequenzen der Zuständigkeitskette Nachrichtenkodierung Strukturen und Strategien Die Verbindung zu anderen Mustern Bewertung der Entwurfmuster Anwendbarkeit der Zuständigkeitskette Mit Entwurfmustern zu besserer Software? Quellenverzeichnis 14 Anhang 15 A Quellcode zum Einführungsbeispiel 15 B Quellcode des Beispiels zur Layoutanpassung 17 Zusammenfassung Diese Ausarbeitung soll einen Überblick über das Entwurfsmuster Chain of Responsibility geben. Anhand eines Beispiels soll die Verwendung und den Zweck des Musters erläutert werden. Dabei werden die Konsequenzen und einige Probleme, die während der Implementierung auftreten, angesprochen und Lösungsvorschläge angeführt. Dem Leser soll das Bewustsein geschärft werden, bei der Lösung verschiedener Softwareprobleme den Einsatz von Entwurfmustern, insbesondere des Musters Chain of Responsibility, genau abzuwägen, um so gut strukturierte Software zu schreiben.

3 Ein kurze Einführung Seite 3 1 Ein kurze Einführung Entwurfmuster gewinnen seit einigen Jahren immer mehr an Bedeutung und werden oft schon mit erfolgreicher Softwareentwicklung gleichgesetzt. Entwurfsmuster, engl. Design Patterns, werden in drei Gruppen aufgeteilt, die verschiedene Bereiche des objektorientierten Designs behandeln. Dabei werden Erzeugungsmuster, Strukturmuster und Verhaltensmuster unterschieden. 1.1 Der Nutzen von Entwurfsmustern (Pattern) Entwurfsmuster beschreiben Lösungen für wiederkehrende Probleme in der Entwicklung objektorientierter Systeme. Sie liefern Entwicklern Ansätze bestimmte Probleme mit Hilfe von Mustern zu lösen. Dabei wird die Struktur gleichartiger Probleme vereinheitlicht und die Wartbarkeit von Programmen erleichtert. Entwurfmuster sollen dem Entwickler auch schon beim Entwurf von Softwaresystemen helfen, durch den geschickten Einsatz verschiedener Muster, qualitativ höherwertige Software zu schreiben. Das Standardwerk für Entwurfmuster Design Patterns der GoF, Gang of Four, (siehe [GHJV-EM]) erläutert 23 verschiedene Entwurfmuster. Die Entwurfmuster selbst werden dabei bestehend aus vier Teilen beschrieben. Mustername - beschreibt Problem, Lösung und Konsequenz in wenigen Worten Problemabschnitt - erläutert den Kontext in dem das Muster zum Einsatz kommt Lösungsabschnitt - beschreibt Struktur, Verhalten und Beziehungen der Elemente, die das Muster ausmachen Konsequenzabschnitt - wägt die Vor- und Nachteile des Musters ab und erläutert seinen entgültigen Nutzen 1.2 Die Gruppe der Verhaltensmuster (Behavioral Pattern) Das im folgenden beschriebene Entwurfsmuster Chain of Responsibility zählt zu den Verhaltensmustern. Diese beschreiben nicht nur die Struktur von Klassen oder Objekten, sondern vor allem die Interaktion untereinander. So können komplexe Kontrollflüsse mit Hilfe der Interaktion der Objekte einfacher erklärt werden. Dabei befassen sich Verhaltensmuster auch mit Algorithmen und der Zuweisung von Zuständen. Zur Gruppe der Varhaltensmuster gehören verschieden Muster, die hier nur mit ihrem Namen aufgeführt werden: Befehl, Beobachter, Besucher, Interpreter, Iterator, Schablonenmethode, Strategie, Vermittler, Zustand und natürlich auch die Zuständigkeitskette.

4 Chain of Responsibility - Zuständigkeitskette Seite 4 2 Chain of Responsibility - Zuständigkeitskette Das Entwurfsmuster der Zuständigkeitskette wird von der Gang of Four wie folgt definiert [GHJV-EM]: Vermeide die Kopplung des Auslösers einer Anfrage mit seinem Empfänger, indem mehr als ein Objekt die Möglichkeit erhält, die Aufgabe zu erledigen. Verkette die empfangenden Objekte und leite die Anfrage an einer Kette entlang, bis ein Objekt sie erledigt. Die Aufgabe der Zuständikeitskette definiert Stephen Stelting [SSOM-AJP]: Führe eine Kette in einem System ein, damit Nachrichten entweder dort behandelt werden, wo sie empfangen wurden oder an ein Objekt weiterleitet werden, welches die Nachricht bearbeiten kann. 2.1 Motivation Die Zuständigkeitskette versucht die Kopplung von Objekten zu verringern, indem eine Aufgabe in einer Kette von Objekten bearbeitet wird. Man stelle sich ein Unternehmen vor, das aus einem Vorstand, Abteilungsleitern und Sekretärinnen besteht. Das folgende Klassendiagramm verdeutlicht die Struktur. Abbildung 1: Das Firmenmodell als Klassendiagramm Eine Sekretärin einer kleinen Abteilung erhält eine Anfrage über die Vertiefung künftiger Kundenbeziehungen. Sie kann sie nicht bearbeiten, weil sie keine Entscheidungskompetenzen hat. Also wird dem Abteilungsleiter diese Anfrage wietergegeben. Da er über die künftigen Bezeihungen des Kunden, z.b. ein wichtiger Großkunde, nicht entscheiden darf, leitet auch er die Anfrage an die Sekretärin seines Vorgesetzen weiter. Diese gibt Sie wiederum an ihren Vorgesetzten. Da dieser Kunde für eine erfolgreiche Zukunft des Unternehmens von großer Bedeutung ist, wird schließlich der Vorstand in die Entscheidungsfindung mit eingebunden.

5 Chain of Responsibility - Zuständigkeitskette Seite 5 Die Anfrage wurde also anhand einer Kette weitergeben, ohne dass die erste Sekretärin wusste, dass die Anfrage beim Vorstand landen würde. Wäre die Anfrage vielleicht von einem Kleinkunden oder Privatmann eingegangen, hätte der Abteilungsleiter selber die Anfrage bearbeiten können, ohne sie Richtung Führungsspitze weiterleiten zu müssen. Abbildung 2: Bearbetungsmodell der Anfrage Alle Anfragen werden also immer an den Vorgesetzen in dieser Kette weitergeleitet, bis einer sie bearbeitet. Die Kopplung für die Bearbeitung der Aufgabe ist gelockert. Der genaue Aufbau der Klassen und Objekte sowie ihre Rolle in der Zuständigkeitskette soll nun an einem weiterem Beispiel verdeutlicht werden. 2.2 Layoutanpassung mit der Zuständigkeitskette Die Zuständigkeitskette kann in Verbindung mit grafischen Benutzeroberflächen (kurz: GUI) genutzt werden. Die Elemente einer Benutzeroberfläche, wie Fenster, Dialoge, Eingabefelder oder Buttons sind in C# Spezialisierungen der Klasse Component und können wiederum weitere Components enthalten. So ergibt sich eine Baumstruktur. Wird zum Beispiel die Hintergrundfarbe des Hauptfensters geändert, werden alle abhängigen Komponenten ebenfalls angewiesen die Hintergrundfarbe zu ändern. Die Nachricht wird also von der Wurzel der Baumstruktur zu den einzelnen Blättern weitergegeben. Die Zuständigkeitskette kann nun dazu benutzt werden, Nachrichten in anderer Richtung von den Blättern bis zur Wurzel weiterzuleiten. Das Beispielprogramm soll nun sein Aussehen des GUIs ändern, je nach dem, was der Benutzer einstellt. Im folgenden werden zwei Programme vorgestellt, die das Problem mit und ohne Zuständigkeitskette lösen, um die Unterschiede, Vor- und Nachteile ansprechen zu können. 2.3 Ein schnelles Beispiel Das erste Programm zur Änderung des Layouts, gibt dem Benutzer die Möglichkeit über RadioButtons und Buttons verschiedene Einstellungen an der Oberfläche vorzunehmen (siehe Abb. 3). Zum Einem kann die Hintergrundfarbe eines Panels, der die ganzen Einstellbuttons enthält, geändert werden. Das Clientfenster kann Bilder anzeigen und der Text der Titelzeile kann über einen Button ausgetauscht werden.

6 Chain of Responsibility - Zuständigkeitskette Seite 6 Die gesamte Anwendung wird von einer Klasse repräsentiert, die von Form abgeleitet ist und das Hauptfenster darstellt. Sie enthält alle weiteren GUI-Objekte und initialisiert die Oberfläche. Die Event-Behandlung in C# stellt sich recht einfach dar, indem einer Komponente eine spezielle private Methode der Hauptfensterklasse als Eventhandler zugewiesen wird. Eine solche Methode sieht wie folgt aus. private void radiobutton4_checkedchanged(object sender, EventArgs e) panel1.backcolor = System.Drawing.Color.Blue; Wird der Radiobutton4 angewählt, wird ein Event erzeugt und an alle Eventhandler dieses Radiobuttons weitergeleitet. Da nur dieser Eventhandlerfunktion zur Verfügung steht, wird der Code ausgeführt. Dabei die die Hintergrundfarbe des vorhin angesprochenden Panel auf Blau geändert. Alle anderen Event-Methoden sehen ähnlich aus. Abbildung 3: Screenshot der Beispielprogramms Unschwer ist die enge Kopplung der Radiobuttons zu dem Panel zu sehen. Die anderen Radiobuttons, die ebenfalls die Hintergrundfarbe ändern wollen, greifen ebenfalls in enger Kopplung auf die Eigenschaften des Panels zu. Soll nun die Farbe einer anderen Komponente z.b. des Hauptfensters geändert werden, müssten alle Event-Methoden, welche die Farbe des Panels ändern, angepasst werden. Nun könnte es unter bestimmten Umständen nicht erwünscht sein, dass Eigenschaften von außen geändert werden sollen. Dass heißt, das Objekt selbst soll entscheiden, ob es seine Eigenschaften ändern will oder nicht. In einem dynamischen System, wo sich die Verbindungen zwischen einzelnen Komponenten zur Laufzeit ändern können, würde eine feste Kopplung die Dynamik des System schwer beeinträchtigen. Hier kann die Zuständigkeitskette aushelfen.

7 Chain of Responsibility - Zuständigkeitskette Seite Allgemeine Struktur Kommen wir zunächst zum allgmeinen Aufbau der Chain of Responsibility, bevor wir das geänderte Beispiel näher betrachten. Das Klassendiagramm in Abb. 4 zeigt die Struktur der Zuständigkeitskette. Den Mittelpunkt des Musters bildet die abstrakte Klasse Handler. Sie definiert eine abstrakte Methode handle(), die alle abgeleiteten Klassen implementieren müssen. Der Handler verwaltet die Referenz auf das Nachfolger- Objekt, das die Weiterverarbeitung in der Kette übernimmt. Abbildung 4: Chain of Responsibility (Quelle: [GHJV-EM]) Die abgeleitenten Klassen Handler1 und Handler2 implementieren nun das Verhalten der einzelnen Objekte in der Kette. Der Client löst eine Anfrage an irgendeiner Stelle der Kette aus und ruft dabei die Bearbeitungsmethode handle() des Kettenobjektes auf. Wenn dieses die Anfrage nicht oder nur teilweise bearbeiten kann, wird die Anfrage an das Nachfolgerobjekt in der Kette weitergeleitet. Je nachdem, ob die Anfrage bearbeitet werden kann, wird die handle()-methode des Nachfolgerobjekts aufgerufen oder nicht. Die Weiterleitung wird beendet, bis ein Element der Kette die Anfrage bearbeiten konnte oder die Kette zu Ende ist. Die Chain of Responsibility bietet also keine Abarbeitungsgarantie. Es wird nur garantiert, dass eine Anfrage, die von einem Element nicht bearbeitet werden konnte, an das Nachfolgeelement weitergegeben wird. 2.5 Die Zuständigkeitskette im Beispiel Für verschiedene Implementierungsaspekte wollen wir nun das Beispiel von vorhin aufgreifen und mit Hilfe einer Zuständigkeitskette realisieren. Zunächst muss eine abstrakte Klasse eingeführt werden, von der alle Elemente der Kette erben müssen. Hier ergibt sich ein Problem der fehlenden Mehrfachvererbung in C#. Die einzelnen Elemente müssen von den GUI-Klassen erben, damit sie die gleiche Funktionalität wie vorher besitzen. Das Problem wird mit dem Einsatz eines Interfaces anstatt einer abstrakten Klasse umgangen. Im Interface LayoutHandler wird die Bearbeitungsmethode handlelayoutchange() der Kette vorgeschlagen. Die einzelnen Objekte der

8 Chain of Responsibility - Zuständigkeitskette Seite 8 Kette müssen nun diese Schnittstelle einhalten. Die Benutzung eines Interface beeinträchtig nicht den Aufbau oder die Benutzung der Zuständigkeitskette. Abbildung 5: Klassendiagramm zum Beispielprogramm Am eigentlichen Programm ändert sich nicht viel. Anstatt der normalen GUI Klassen, wie From, Panel oder RadioButton, werden die spezialisierten Klassen, wie MainWnd, ColorPanel oder RadioBtn, verwendet. Diese implementieren noch zusätzlich die Bearbeitungsmethode des Interfaces LayoutHandler. Eine geänderte Klasse sieht dann wie folgt aus: public class RadioBtn : RadioButton, LayoutHandler private LayoutHandler successor; public RadioBtn(LayoutHandler successor) this.successor = successor; public virtual void handlelayoutchange(layoutproperty property) // deliver to successor handler if(successor!= null) successor.handlelayoutchange(property); Im Konstruktor wird eine Referenz auf das Nachfolgeobjekt übergeben, so das evtl. Anfragen weitergeleitet werden können. Die Bearbeitungsmethode handlelayoutchange() bearbeitet die Anfrage. Hier wird die Anfrage direkt an den Nachfolger weitergeleitet. Die Klasse MainWnd übernimmt sowohl die Funktion des Clients als auch das Ende der Kette. Ihre handlelayoutchange()-methode ist leer implementiert, so dass die Kette hier spätestens abbricht. Die Inititalisierung der Zuständigkeitskette wird von MainWnd erledigt. Hier ein paar Codezeilen aus der Inititalisierungsprozedur: this.imagewnd = new ImageWnd(this); this.colorpanel = new ColorPanel(this.imageWnd); this.radioboxcolor = new RadioBox(this.colorPanel); this.radiobuttongreen = new RadioBtn(this.radioBoxColor);

9 Chain of Responsibility - Zuständigkeitskette Seite 9 Die Eventhandler-Methoden der Hauptklasse MainWnd werden nun als Einstiegspunkte in die Zuständigkeitskette realisiert. Während im Beispiel ohne Zuständigkeitskette dort direkt die Änderung der Eigenschaften verschiedener Fensterobjekte programmiert wurden, erhält nun das Fensterobjekt, zu dem der Eventhandler gehört, die Aufgabe, die Anfrage zu bearbeiten. private void radiobuttonblue_checkedchanged(object sender, EventArgs e) LayoutProperty lp = LayoutProperty("Blue", LayoutProperty.BACKGROUND); radiobuttonblue.handlelayoutchange(lp); Ob nun der RadioButton die Aufgabe erledigt oder in der Kette weiterleitet, ist für den Client nun nicht mehr sichtbar. Die Kopplung zwischen RadioButton und Panel, wie im ersten Beispiel, wurde aufgelöst. Ob nun das Panel die Nachricht erhält und bearbeitet, kann nicht mehr garantiert werden. Dafür muss die Zuständigkeitskette entsprechend aufgebaut werden, damit die Anwendung sich genauso verhält, wie die erste Lösung. Wird nun eine Event ausgelöst und ein Element angewiesen, die Anfrage zu bearbeiten, wird eine Bearbeitungskette angestoßen, die sich durch folgendes Sequenzdiagramm darstellt. Abbildung 6: Sequenzdiagramm einer Zusändigkeitskette Ein Radiobutton wird über einen Klick auf den Button vom Client angewiesen, die Anfrage zu bearbeiten. Die Anfrage wird mit einer Nachricht kodiert, die von der Klasse LayoutPropery repräsentiert wird. Die Nachrichtenobjekte werden durch einen Typ und einer Nachricht spezifiziert (siehe Abb. 5). Mit verschiedenen Ansätzen zur Nachrichtenkodieren befasst sich später das Kapitel 3.2. Anhand des Typs entscheidet nun der einzelne Bearbeiter in der Kette, ob er die Anfrage bearbeiten kann oder nicht. Das Beispiel im Sequenzdiagramm zeigt eine Situation, in der die Anfrage bis zum Hauptfenster weitergeleitet werden muss, weil kein Bearbeiter die Anfrage zuvor ausreichend bearbeiten konnte.

10 Chain of Responsibility - Zuständigkeitskette Seite 10 Die Fensterelemente sind in diesem Beispiel als Baum angeordnet, wie es bei grafischen Benutzeroberflächen üblich ist. Daher bietet es sich an, mehrere Zuständigkeitesketten, beginnend bei jedem Blatt im Baum, zu realisieren. Für dieses Beispiel musste im Fall des Panels, die Kette über die PictureBox umgeleitet werden, damit Anfragen, die an verschiedene Buttons gestellt werden, von der PictureBox bearbeitet werden können. Beispiele für andere Ausprägungen der Kette werden später diskutiert. Abbildung 7: Chain of Responsibility in einem Baum 2.6 Weitere Beispiele in der Praxis In den angeführten Beispielen haben wir schon zwei Anwendungsgebiete der Chain of Responsibility gesehen. Sie eignet sich besonders für verschiedene Aktivitäten eines GUIs, wie Formatieren oder Positionieren von Komponenten. In der Praxis wird sie bei der Nachrichtenbehandlung angewandt. Das ET++ Framework, ein objektoriertiertes Programmiersystem in C++, realisiert die Aktualisierung des Bildschirm über Zuständigkeitsketten. In Java werden viele Event-Handler als Kette realisiert, damit alle Objekte auf einen Event reagieren können. Die Nachrichtenbehandlung in Windows wird ebenfalls als Kette realisert, indem alle Nachrichtenfunktionen nacheinander aufgerufen werden und entsprechende Funktionen ausführen. Da dort keine Objektmodell verwendet wird, kann man nicht von einer Zuständigkeitskette sprechen.

11 Verschiedene Aspekte der Zuständigkeitskette Seite 11 3 Verschiedene Aspekte der Zuständigkeitskette Dieses Kapitel bespricht die Vorteile, Verpflichtungen und Besonderheiten der Zuständigkeitskette. Einige implementierungsspezifischen Aspekte sollen näher betrachtet werden. Da Entwurfmuster nur selten alleine auftreten, soll das Zusammenspiel mit verschieden Mustern näher beleuchtet werden. 3.1 Konsequenzen der Zuständigkeitskette Die Verwendung der Zuständigkeitskette bringt für die Softwareentwicklung einige Vorteile, aber auch Verpflichtungen mit, die sich wie folgt gliedern: Reduzierte Kopplung Ein Objekt muss nicht mehr wissen, welches Objekt die Anfrage bearbeitet. Dadurch ist es möglich, Objektbeziehungen zu vereinfachen. Die Anfrage wird nur in der Kette weitergegeben, bis sie bearbeitet wird, dabei ist die Struktur der Kette für die einzelnene Objekte nicht relevant. Höhere Flexibilität Die Zuständigkeiten können leicht verändert werden, indem Objekte der Kette gelöscht oder neue Objekte eingefügt werden. So kann zur Laufzeit die Stuktur der Kette beliebig geändert und das Verhalten des Systems beeinflusst werden. Keine Abarbeitungsgaratie Da die Objekte eine Anfrage an einen Nachfolger wieterleiten, kann nicht garantiert werden, dass die Anfrage auch wirklich bearbeitet wird. 3.2 Nachrichtenkodierung Anfragen in der Zuständigkeitskette werden im Normalfall durch einen Methodenaufruf realisiert. Falls die Bearbeiterobjekte verschiedene Aufgaben erledigen können, ist es am einfachsten, verschiedene Methoden zu definieren, welche die Aufgaben erledigen. Dies ist aber wenig flexibel, da die Anzahl der Aufgaben auf die Anzahl der Methoden begrenzt wird. Soll die Kette um eine weitere Aufgabe erweitert werden, müssen alle existierenden Bearbeiter Klassen diese Methode implementieren. Einfacher ist es nur eine einzige Bearbietermethode zu definieren, die einen Parameter enthält. Wenn unterschiedliche Parameter benötig werden, bietet es sich an, eine Anfrageobjekt einzuführen. Im Beispiel wurde dazu die Klasse LayoutProperty verwendet, um eine Anfrage zu kodieren. Mit Hilfe festgelegter Typen und einer Nachricht, können die Bearbeiter entscheiden, ob sie die Anfrage bearbeiten können. Kann das Objekt die Anfrage bearbeiten, wird die Nachricht ausgewertet und entsprechender Code ausgeführt. Kann die Anfrage nicht bearbeitet werden, wird sie einfach an den Nachfolger in der Kette weitergegeben.

12 Verschiedene Aspekte der Zuständigkeitskette Seite Strukturen und Strategien In den Beispielen wurde die Zuständigkeitskette in einem Baum verwendet. Die Zuständigkeitskette kann aber auch in linearer Abfolge alle möglichen Bearbeiter durchlaufen, bis die Anfrage bearbeitet wird. Auch Implementierungen als Ring sind denkbar. Wie eine Zuständigkeitskette aufgebaut wird, muss der Entwickler abwägen. Die Abbildung 8 zeigt eine lineare Struktur. Abbildung 8: Chain of Responsibility als lineare Kette Mit zunehmender Länge einer Kette handelt man sich aber vielleicht zusätzliche Probleme ein. Fehler im Laufzeitverhalten können nur schwer gefunden werden, vor allem wenn die Struktur der Kette variabel ist. Um späteren Problemen vorzubeugen, können verschiedene Implentierungs-Strategien benutzt werden. Bearbeite jede Nachricht, die nicht zur Wieterleitung spezifiziert ist Leite jede Anfrage weiter, die nicht zur Bearbeitung gekennzeichnet ist Jede Nachricht, die nicht bearbeitet werden kann, leite zum Standardbearbeiter Jede Anfrage, die werder bearbeitet noch wietergeleitet werden soll, wird ignoriert 3.4 Die Verbindung zu anderen Mustern Die Chain of Responsibility kann zusammen mit dem Muster Composite eingesetzt werden. Das Elternobjekt wird in der Kette als Nachfolgerobjekt verwendet. Das Kompositum erstellt eine Baumstruktur in dem die Zuständigkeitskette die Nachrichtenfunktion übernimmt. Während beim Kompositum die Nachrichten von der Wurzel zu den Blätter wandern, wird der umgekehrte Weg über die Zuständigkeitskette geregelt. Im Buch von J. W. Cooper ([SWC-IDPC]) wird ein Beispiel einer Zuständigkeitskette mit dem Interpretermuster betrachtet.

13 Bewertung der Entwurfmuster Seite 13 4 Bewertung der Entwurfmuster Es gibt viele Meinungen, wie gute Software auszusehen hat. Die 23 Entwurfsmuster, die Erich Gamma und wietere herausgestellt haben, sind aus wiederkehrenden Problemstellungen und Lösungen in Softwaresystemen entstanden. Heute existiern noch eine gnaze Reihe neuer Muster und Varienten von Mustern, die versuchen, für verschiedene Problemstellungen Lösungsansätze bereitzustellen. Das hier angesprochene Muster Chain of Responsibility will feste Objektbeziehungen auflösen und durch einfache Kettenstrukturen ersetzten, damit das System mehr Dynamik erhält, aber dennoch wartbar und wiederverwendbar bleibt. 4.1 Anwendbarkeit der Zuständigkeitskette In dieser Ausarbeitung wurden mehrere Situationen vorgestellt, wo die Zuständigkeitskette eingesetzt werden kann. Sie dient dazu, die Kopplung der Objekte zu verringern und Wiederverwendbarkeit von Softwareteilen zu erhöhen. Dafür ist das Entwickeln und Testen bei größeren Systemen schwieriger. Der Entwickler muss also abwägen, ob die Verwendung der Zuständigkeitskette einen Nutzen bringt. Im Allgemeinen wird sie immer da eingesetzt werden, wo Nachrichten von Objekten gesendet und empfangen werden. Durch ihre einfache Handhabung und Verkettungsmöglichkeiten ist die Zuständigkeitskette besonders in dynamischen Laufzeitsystemen einsetzbar. Untersuchungen zeigen, dass der Einsatz der Zuständigkeitskette im Bezug auf die Performance kleinerlei Einschränkung darstellt ([FHI-EP]). Auch wenn sie in der Praxis nur selten Anwendung findet, sollte der Entwickler beim Design immer ein Auge auf die Zuständigkeitskette werfen. 4.2 Mit Entwurfmustern zu besserer Software? Entwurfsmuster werden schon seit Jahren erfolgreich beim objektorientieren Entwurf eingesetzt. Sie helfen Software übersichtlicher zu gestalten und mit erprobten Mustern schon Fehler beim Entwurf zu vermeiden. Zudem erhöhen Sie Wartbarkeit und Wiederverwendebarkeit der Software. Wer sowieso schon gut strukturiert Software schreibt, wird in seinem Quellcode immer wieder die Verwendung verschiedener Entwurfsmuster entdecken. Bei rein objektorientierten Sprachen, wie C#, Java oder Smalltalk, bieten Muster ein gutes Handwerkszeug für den Entwickler, um Probleme einfacher und effizienter zu lösen.

14 LITERATUR Seite 14 Literatur [GHJV-EM] Dr. E. Gamma, Dr. R. Helm, Dr. R. Johnson, Dr. J. Vlissides Entwurfsmuster - Elemente wiederverwendbarer objektorientierter Software, 4. Auflage, deutsche Übersetzung von D. Riehle Addison-Wesley, Bonn 1996 [SSOM-AJP] Stephen Stelting, Olav Massen Applied Java Patterns Sun Microsystems, Inc., 2002 [SWC-IDPC] James W. Cooper Introduction to Design Patterns in C# IBM T J Watson Research Center, 2002 [FHI-EP] Fraunhofer Institut Entwurfsmuster und Performance

15 Quellcode zum Einführungsbeispiel Seite 15 Anhang A Quellcode zum Einführungsbeispiel public class Firma : System.Windows.Forms.Form private System.Windows.Forms.NumericUpDown numericupdown1; private System.Windows.Forms.Label label1; private System.Windows.Forms.Button button1; private System.Windows.Forms.TextBox textbox1; private System.Windows.Forms.Label label2; Vorstand v; Abteilungsleiter a2; Sekretärin s2; Abteilungsleiter a1; Sekretärin s1; private System.ComponentModel.Container components = null; public Firma() InitializeComponent(); initchain(); protected override void Dispose( bool disposing )... private void InitializeComponent()... private void initchain() v = new Vorstand("Vorstand"); a2 = new Abteilungsleiter("Abteilungsleiter2",70, v); s2 = new Sekretärin("Sekretärin2",20, a2); a1 = new Abteilungsleiter("Abteilungsleiter1",40, s2); s1 = new Sekretärin("Sekretärin1",10, a1); static void Main() Application.Run(new Form1()); private void button1_click(object sender, System.EventArgs e) decimal stufe = numericupdown1.value; s1.bearbeiteanfrage(decimal.toint32(stufe), textbox1.text); public abstract class Personal protected int bearbeitungsstatus; protected Personal vorgesetzer; protected string name; public abstract void bearbeiteanfrage(int stufe, string nachricht);

16 Quellcode zum Einführungsbeispiel Seite 16 public class Vorstand : Personal private Personal[] mitarbeiter; public Vorstand(string name) this.bearbeitungsstatus = 100; this.vorgesetzer = null; this.name = name; public Personal[] Mitarbeiter get return mitarbeiter; set mitarbeiter = value; public override void bearbeiteanfrage(int stufe, string nachricht) System.Windows.Forms.MessageBox.Show(this.name + " bearbeite: " + nachricht + "\n"); public class Abteilungsleiter : Personal private Personal[] al; public Abteilungsleiter(string name, int bearbeitungsstatus, Personal vorgesetzer) this.bearbeitungsstatus = bearbeitungsstatus; this.vorgesetzer = vorgesetzer; this.name = name; public Personal[] Al get return al; set al = value; public override void bearbeiteanfrage(int stufe, string nachricht) if(stufe <= this.bearbeitungsstatus) MessageBox.Show(this.name + " bearbeite: " + nachricht + "\n"); else MessageBox.Show(this.name + " weiterleiten: " + nachricht + "\n"); vorgesetzer.bearbeiteanfrage(stufe, nachricht); public class Sekretärin : Personal public Sekretärin(string name, int bearbeitungsstatus, Personal vorgesetzer) this.bearbeitungsstatus = bearbeitungsstatus; this.vorgesetzer = vorgesetzer; this.name = name; public override void bearbeiteanfrage(int stufe, string nachricht) if(stufe <= this.bearbeitungsstatus) MessageBox.Show(this.name + " bearbeite: " + nachricht + "\n"); else MessageBox.Show(this.name + " weiterleiten: " + nachricht + "\n"); vorgesetzer.bearbeiteanfrage(stufe, nachricht);

17 Quellcode des Beispiels zur Layoutanpassung Seite 17 B Quellcode des Beispiels zur Layoutanpassung public class MainWnd : System.Windows.Forms.Form, LayoutHandler // Fensterobjekte private ImageWnd imagewnd; private RadioBox radioboxcolor; private RadioBtn radiobuttongreen; private RadioBtn radiobuttonred; private RadioBtn radiobuttonblue;... public MainWnd() InitializeComponent(); public virtual void handlelayoutchange(layoutproperty property) // Ende der Zustaendigkeitskette return; private void InitializeComponent() // Fensterinitialiserungen this.imagewnd = new ImageWnd(this); this.colorpanel = new ColorPanel(this.imageWnd); this.radioboxcolor = new RadioBox(this.colorPanel); this.radiobuttongreen = new RadioBtn(this.radioBoxColor); this.radiobuttonred = new RadioBtn(this.radioBoxColor); this.radiobuttonblue = new RadioBtn(this.radioBoxColor);... static void Main() System.Windows.Forms.Application.Run(new MainWnd()); private void buttonexit_click(object sender, System.EventArgs e) System.Windows.Forms.Application.Exit(); private void radiobuttonimage1_checkedchanged(object sender, System.EventArgs e) radiobuttonimage1.handlelayoutchange(new LayoutProperty("Sofi.jpg", LayoutProperty.IMAGE)); private void radiobuttonimage2_checkedchanged(object sender, System.EventArgs e) radiobuttonimage2.handlelayoutchange(new LayoutProperty("Karibik.jpg", LayoutProperty.IMAGE)); private void radiobuttonimage3_checkedchanged(object sender, System.EventArgs e) radiobuttonimage3.handlelayoutchange(new LayoutProperty("Wiese.jpg", LayoutProperty.IMAGE)); private void radiobuttonblue_checkedchanged(object sender, System.EventArgs e) radiobuttonblue.handlelayoutchange(new LayoutProperty("Blue", LayoutProperty.BACKGROUND)); private void radiobuttonred_checkedchanged(object sender, System.EventArgs e) radiobuttonred.handlelayoutchange(new LayoutProperty("Red", LayoutProperty.BACKGROUND)); private void radiobuttongreen_checkedchanged(object sender, System.EventArgs e) radiobuttongreen.handlelayoutchange(new LayoutProperty("Green", LayoutProperty.BACKGROUND)); private void messagebutton_click(object sender, System.EventArgs e) messagebutton.handlelayoutchange(new LayoutProperty("Nachricht", LayoutProperty.MESSAGE));

18 Quellcode des Beispiels zur Layoutanpassung Seite 18 // the handler interface public interface LayoutHandler // the handle method in the Chain of Responsibility void handlelayoutchange(layoutproperty property); // message object public class LayoutProperty //Konstanten public static int BACKGROUND = 1; public static int IMAGE = 2; public static int MESSAGE = 3; // Variablen private int type; private string message; public LayoutProperty(string message, int type) this.message = message; this.type = type; public string getmessage() return message; public int gettype() return type; public class ColorPanel : System.Windows.Forms.Panel, LayoutHandler private LayoutHandler successor; public ColorPanel(LayoutHandler successor) this.successor = successor; public virtual void handlelayoutchange(layoutproperty property) if(property.gettype() == LayoutProperty.BACKGROUND) // Change Background-Color if(property.getmessage() == "Red") this.backcolor = System.Drawing.Color.Red; else if(property.getmessage() == "Green") this.backcolor = System.Drawing.Color.Green; else if(property.getmessage() == "Blue") this.backcolor = System.Drawing.Color.Blue; else // deliver to successor handler if(successor!= null) successor.handlelayoutchange(property);

19 Quellcode des Beispiels zur Layoutanpassung Seite 19 public class ImageWnd : System.Windows.Forms.PictureBox, LayoutHandler private LayoutHandler successor; public ImageWnd(LayoutHandler successor) this.successor = successor; public virtual void handlelayoutchange(layoutproperty property) if(property.gettype() == LayoutProperty.IMAGE) // Load a new Image System.Drawing.Image image = System.Drawing.Image.FromFile(property.getMessage()); this.image = new System.Drawing.Bitmap(image, this.size); else // deliver to successor handler if(successor!= null) successor.handlelayoutchange(property); public class RadioBox : System.Windows.Forms.GroupBox, LayoutHandler private LayoutHandler successor; public RadioBox(LayoutHandler successor) this.successor = successor; public virtual void handlelayoutchange(layoutproperty property) // deliver to successor handler if(successor!= null) successor.handlelayoutchange(property); public class RadioBtn : System.Windows.Forms.RadioButton, LayoutHandler private LayoutHandler successor; public RadioBtn(LayoutHandler successor) this.successor = successor; public virtual void handlelayoutchange(layoutproperty property) // deliver to successor handler if(successor!= null) successor.handlelayoutchange(property); public class MessageBtn : System.Windows.Forms.Button, LayoutHandler private LayoutHandler successor; public MessageBtn(LayoutHandler successor) this.successor = successor; public virtual void handlelayoutchange(layoutproperty property) // deliver to successor handler if(successor!= null) successor.handlelayoutchange(property);

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

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

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

Software-Entwurfsmuster

Software-Entwurfsmuster Software-Entwurfsmuster Prinzip von Entwurfsmustern und einige elementare Beispiele Malte Spiess malte@mathematik.uni-ulm.de Seminar Bildanalyse und Simulation mit Java im WS 2003/2004 Universität Ulm

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

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

Vererbung & Schnittstellen in C#

Vererbung & 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

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

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

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

Vermittler (Mediator) Sabine Müller - Sven Richter - Jens Wagenbreth 03IN2-P-D

Vermittler (Mediator) Sabine Müller - Sven Richter - Jens Wagenbreth 03IN2-P-D Vermittler (Mediator) Sabine Müller - Sven Richter - Jens Wagenbreth 03IN2-P-D 1 1. EINLEITUNG... 3 2. ZWECK... 3 3. MOTIVATION... 3 4. ANWENDBARKEIT... 6 5. STRUKTUR... 6 6. TEILNEHMER... 7 7. INTERAKTION...

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

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

Software Engineering Interaktionsdiagramme

Software Engineering Interaktionsdiagramme Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)

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

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

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

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

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

Zwischenablage (Bilder, Texte,...)

Zwischenablage (Bilder, Texte,...) Zwischenablage was ist das? Informationen über. die Bedeutung der Windows-Zwischenablage Kopieren und Einfügen mit der Zwischenablage Vermeiden von Fehlern beim Arbeiten mit der Zwischenablage Bei diesen

Mehr

C# im Vergleich zu Java

C# 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

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java 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

Mehr

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche

Mehr

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar 2015. ZID Dezentrale Systeme Novell Client Anleitung zur Verfügung gestellt durch: ZID Dezentrale Systeme Februar 2015 Seite 2 von 8 Mit der Einführung von Windows 7 hat sich die Novell-Anmeldung sehr stark verändert. Der Novell Client

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

Übung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter

Übung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter Prof. Dr. Dr. h.c. Manfred Broy Sommersemester Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter Einführung in die Softwaretechnik Übung 6: Feinentwurf Aufgabe 17: Entwurfsmuster

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

Anleitung zur Verwendung der VVW-Word-Vorlagen

Anleitung zur Verwendung der VVW-Word-Vorlagen Anleitung zur Verwendung der VVW-Word-Vorlagen v1.0. Feb-15 1 1 Vorwort Sehr geehrte Autorinnen und Autoren, wir haben für Sie eine Dokumentenvorlage für Microsoft Word entwickelt, um Ihnen die strukturierte

Mehr

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems Name: Bruno Handler Funktion: Marketing/Vertrieb Organisation: AXAVIA Software GmbH Liebe Leserinnen und liebe Leser,

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

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

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

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

Microsoft Access 2013 Navigationsformular (Musterlösung)

Microsoft Access 2013 Navigationsformular (Musterlösung) Hochschulrechenzentrum Justus-Liebig-Universität Gießen Microsoft Access 2013 Navigationsformular (Musterlösung) Musterlösung zum Navigationsformular (Access 2013) Seite 1 von 5 Inhaltsverzeichnis Vorbemerkung...

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

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2

Mehr

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. www.blogger.com ist einer davon.

Sich 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

Mehr

Erstellen von x-y-diagrammen in OpenOffice.calc

Erstellen von x-y-diagrammen in OpenOffice.calc Erstellen von x-y-diagrammen in OpenOffice.calc In dieser kleinen Anleitung geht es nur darum, aus einer bestehenden Tabelle ein x-y-diagramm zu erzeugen. D.h. es müssen in der Tabelle mindestens zwei

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

Analyse und Modellierung von Informationssystemen

Analyse und Modellierung von Informationssystemen Analyse und Modellierung von Informationssystemen Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2013 1 / 19 Einführung: Entwurfsmuster Erzeugungsmuster Fabrik-Muster Singleton-Muster Beispiel 2

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

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

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

AZK 1- Freistil. Der Dialog Arbeitszeitkonten Grundsätzliches zum Dialog Arbeitszeitkonten AZK 1- Freistil Nur bei Bedarf werden dafür gekennzeichnete Lohnbestandteile (Stundenzahl und Stundensatz) zwischen dem aktuellen Bruttolohnjournal und dem AZK ausgetauscht. Das Ansparen und das Auszahlen

Mehr

Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma:

Anwendungsbeispiele. Neuerungen in den E-Mails. Webling ist ein Produkt der Firma: Anwendungsbeispiele Neuerungen in den E-Mails Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Neuerungen in den E- Mails 2 Was gibt es neues? 3 E- Mail Designs 4 Bilder in E- Mails einfügen 1 Neuerungen

Mehr

NetStream Helpdesk-Online. Verwalten und erstellen Sie Ihre eigenen Tickets

NetStream Helpdesk-Online. Verwalten und erstellen Sie Ihre eigenen Tickets Verwalten und erstellen Sie Ihre eigenen Tickets NetStream GmbH 2014 Was ist NetStream Helpdesk-Online? NetStream Helpdesk-Online ist ein professionelles Support-Tool, mit dem Sie alle Ihre Support-Anfragen

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

FORUM HANDREICHUNG (STAND: AUGUST 2013)

FORUM HANDREICHUNG (STAND: AUGUST 2013) FORUM HANDREICHUNG (STAND: AUGUST 2013) Seite 2, Forum Inhalt Ein Forum anlegen... 3 Forumstypen... 4 Beiträge im Forum schreiben... 5 Beiträge im Forum beantworten... 6 Besondere Rechte der Leitung...

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

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

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

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

WPF Steuerelemente Listbox, ComboBox, ListView,

WPF Steuerelemente Listbox, ComboBox, ListView, WPF Steuerelemente Listbox, ComboBox, ListView, Dr. Beatrice Amrhein Überblick Einführung Listen ComboBox Tabellen 2 Einführung 3 Listen- und Tabellen-Elemente Listen und Tabellen-Elemente sind Steuerelemente,

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 13 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Bedienung von BlueJ. Klassenanzeige

Bedienung von BlueJ. Klassenanzeige Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument

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

.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

Drägerware.ZMS/FLORIX Hessen

Drägerware.ZMS/FLORIX Hessen Erneuerung des ZMS Nutzungs-Zertifikats Lübeck, 11.03.2010 Zum Ende des Monats März 2010 werden die Zugriffszertifikate von Drägerware.ZMS/FLORIX Hessen ungültig. Damit die Anwendung weiter genutzt werden

Mehr

Objektorientiertes Software-Engineering

Objektorientiertes Software-Engineering Objektorientiertes Software-Engineering Vorlesung VIII Inhalt der Vorlesung Wiederholung Vorlesung VII Factory Method Observer s Übung Vorstellung des (Gruppe Jukebox) Folie 2 Definiert ein Objekt zur

Mehr

PowerPoint 2010 Mit Folienmastern arbeiten

PowerPoint 2010 Mit Folienmastern arbeiten PP.002, Version 1.1 07.04.2015 Kurzanleitung PowerPoint 2010 Mit Folienmastern arbeiten Der Folienmaster ist die Vorlage für sämtliche Folien einer Präsentation. Er bestimmt das Design, die Farben, die

Mehr

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller Proseminar: Website-Managment-System NetObjects Fusion von Christoph Feller Netobjects Fusion - Übersicht Übersicht Einleitung Die Komponenten Übersicht über die Komponenten Beschreibung der einzelnen

Mehr

Lieber SPAMRobin -Kunde!

Lieber SPAMRobin -Kunde! Lieber SPAMRobin -Kunde! Wir freuen uns, dass Sie sich für SPAMRobin entschieden haben. Mit diesem Leitfaden möchten wir Ihnen die Kontoeinrichtung erleichtern und die Funktionen näher bringen. Bitte führen

Mehr

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000 Folgende Anleitung beschreibt, wie Sie ein bestehendes Postfach in Outlook Express, bzw. Microsoft Outlook bis Version 2000 einrichten können. 1. Öffnen Sie im Menü die Punkte Extras und anschließend Konten

Mehr

Bilder zum Upload verkleinern

Bilder zum Upload verkleinern Seite 1 von 9 Bilder zum Upload verkleinern Teil 1: Maße der Bilder verändern Um Bilder in ihren Abmessungen zu verkleinern benutze ich die Freeware Irfan View. Die Software biete zwar noch einiges mehr

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

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010. FHNW, Services, ICT

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010. FHNW, Services, ICT Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender 2010 FHNW, Services, ICT Windisch, März 2013 Berechtigungen im Kalender 1 1 Gruppen 3 1.1 Die Gruppe/der Benutzer Standard

Mehr

Anleitung Postfachsystem Inhalt

Anleitung Postfachsystem Inhalt Anleitung Postfachsystem Inhalt 1 Allgemeines... 2 2 Einloggen... 2 3 Prüfen auf neue Nachrichten... 2 4 Lesen von neuen Nachrichten... 3 5 Antworten auf Nachrichten... 4 6 Löschen von Nachrichten... 4

Mehr

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC PARAGON Technologie GmbH, Systemprogrammierung Heinrich-von-Stephan-Str. 5c 79100 Freiburg, Germany Tel. +49 (0) 761 59018201 Fax +49 (0) 761 59018130 Internet www.paragon-software.com Email sales@paragon-software.com

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

Mehr

Einführung in die Informatik Tools

Einführung in die Informatik Tools Einführung in die Informatik Tools Werkzeuge zur Erstellung von Softwareprojekten Wolfram Burgard 8.1 Motivation Große Softwareprojekte werden schnell unübersichtlich. Änderungen im Code können leicht

Mehr

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen

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

Kommunikations-Management

Kommunikations-Management Tutorial: Wie importiere und exportiere ich Daten zwischen myfactory und Outlook? Im vorliegenden Tutorial lernen Sie, wie Sie in myfactory Daten aus Outlook importieren Daten aus myfactory nach Outlook

Mehr

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI

Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun. Java Projekt. Schiffe Versenken mit GUI Anwendungspraktikum aus JAVA Programmierung im SS 2006 Leitung: Albert Weichselbraun Java Projekt Schiffe Versenken mit GUI 1. Über den Autor: Name: Marija Matejic Matrikelnummer: 9352571 E-mail: marijamatejic@yahoo.com

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

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Autorisierung Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Dokumentation zum Referat von Matthias Warnicke und Joachim Schröder Modul: Komponenten basierte Softwareentwickelung

Mehr

Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster

Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster Kap. 35 Swing: Grundlagen Kap. 36.1 Swing: Hauptfenster by Ali Bastan Gliederung Grundlagen von Swing 1. Kurze Einleitung 2. Warum Swing, wenn es das AWT gibt? 3. Was ist Swing? 4. Merkmale von Swing 5.

Mehr

Nach der Installation kann es auch schon losgehen. Für unseren Port Scanner erstellen wir zunächst ein neues Projekt:

Nach der Installation kann es auch schon losgehen. Für unseren Port Scanner erstellen wir zunächst ein neues Projekt: Ein Port Scanner ist eine gute Möglichkeit den eigenen Server auf offene Ports zu scannen. Zu viele nicht benötigte und offene Ports können auf Ihrem Server und auf Ihrem Computer ein Sicherheitsrisiko

Mehr

8 Design Patterns. Events

8 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

Mehr

Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent

Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent Outlook 2003 - Aufbaukurs 19 Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent Wie kann ich die Bearbeitung von Nachrichten automatisieren? Wie kann ich Nachrichten automatisch

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

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen) 1. Einführung: Über den ODBC-Zugriff können Sie bestimmte Daten aus Ihren orgamax-mandanten in anderen Anwendungen (beispielsweise Microsoft Excel oder Microsoft Access) einlesen. Dies bietet sich beispielsweise

Mehr

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software

1. Software installieren 2. Software starten. Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software 1. Software installieren 2. Software starten Hilfe zum Arbeiten mit der DÖHNERT FOTOBUCH Software 3. Auswahl 1. Neues Fotobuch erstellen oder 2. ein erstelltes, gespeichertes Fotobuch laden und bearbeiten.

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

Anwendungsbeispiele Buchhaltung

Anwendungsbeispiele Buchhaltung Rechnungen erstellen mit Webling Webling ist ein Produkt der Firma: Inhaltsverzeichnis 1 Rechnungen erstellen mit Webling 1.1 Rechnung erstellen und ausdrucken 1.2 Rechnung mit Einzahlungsschein erstellen

Mehr

WhiteStarUML Tutorial

WhiteStarUML Tutorial WhiteStarUML Tutorial Autor: Simon Balázs, BME IIT, 2015. Übersetzung: Kovács Márton, 2015. Installation Herunterladen und installieren Sie das WhiteStarUML: http://sourceforge.net/projects/whitestaruml/

Mehr

Praktikum IKT 3. Semester

Praktikum IKT 3. Semester Praktikum IKT 3. Semester Dr. Andreas Müller, TU Chemnitz, Fakultät für Informatik Inhaltsverzeichnis 1 1 Einführung in QT 1.1 Die QT-Bibliothek Informationen: http://www.trolltech.com Lehner, B: KDE-

Mehr

Anleitung zur Verwendung der VVW-Word-Vorlagen

Anleitung zur Verwendung der VVW-Word-Vorlagen Anleitung zur Verwendung der VVW-Word-Vorlagen v1.0. Jun-15 1 1 Vorwort Sehr geehrte Autorinnen und Autoren, wir haben für Sie eine Dokumentenvorlage für Microsoft Word entwickelt, um Ihnen die strukturierte

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007 Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

Mehr

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Informatik Kurs Simulation. Hilfe für den Consideo Modeler Hilfe für den Consideo Modeler Consideo stellt Schulen den Modeler kostenlos zur Verfügung. Wenden Sie sich an: http://consideo-modeler.de/ Der Modeler ist ein Werkzeug, das nicht für schulische Zwecke

Mehr

Mediator 9 - Lernprogramm

Mediator 9 - Lernprogramm Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop

Mehr

Erstellen eines Screenshot

Erstellen eines Screenshot Blatt 1 von 5 Erstellen eines Screenshot Einige Support-Probleme lassen sich besser verdeutlichen, wenn der Supportmitarbeiter die aktuelle Bildschirmansicht des Benutzers sieht. Hierzu bietet Windows

Mehr

Microsoft Access 2010 Navigationsformular (Musterlösung)

Microsoft Access 2010 Navigationsformular (Musterlösung) Hochschulrechenzentrum Justus-Liebig-Universität Gießen Microsoft Access 2010 Navigationsformular (Musterlösung) Musterlösung zum Navigationsformular (Access 2010) Seite 1 von 5 Inhaltsverzeichnis Vorbemerkung...

Mehr

DFBnet Postfachsystem Signatur, Automatische Antwort, Weiterleitung

DFBnet Postfachsystem Signatur, Automatische Antwort, Weiterleitung DFBnet Postfachsystem Signatur, Automatische Antwort, Weiterleitung Kapitel 1 - Einwahl ins Postfach Schritt 1 Einwahl über die Startseite des DFBnet www.dfbnet.org und Auswahl des DFBnet-Moduls DFBnet

Mehr