Ähnliche Dokumente
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

1 Mathematische Grundlagen

Primzahlen und RSA-Verschlüsselung

trivum Multiroom System Konfigurations- Anleitung Erstellen eines RS232 Protokolls am Bespiel eines Marantz SR7005

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

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

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

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Registrierung am Elterninformationssysytem: ClaXss Infoline

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Projektmanagement in der Spieleentwicklung

Theoretische Grundlagen der Informatik WS 09/10

Arbeiten mit UMLed und Delphi

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Neues aus Burma. Liebe Projekt- Burma Freunde,

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Grundbegriffe der Informatik

Einführung und Motivation

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Kurzanleitung OOVS. Reseller Interface. Allgemein

Inbetriebnahme Profinet mit Engineer. Inhaltsverzeichnis. Verwendete Komponenten im Beispiel:

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

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

Leit-Bild. Elbe-Werkstätten GmbH und. PIER Service & Consulting GmbH. Mit Menschen erfolgreich

SS 2014 Torsten Schreiber

Professionelle Seminare im Bereich MS-Office

Paint.Net Der Paint.NET Bildschirm

Fax einrichten auf Windows XP-PC

Grundlagen von Python

Wie Sie mit Mastern arbeiten

Kapitalerhöhung - Verbuchung

Installationsanleitung. Update ATOSS SES 2.40 für Windows ATOSS Server

Einführung in die Java- Programmierung

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen

WordPress. Dokumentation

SEP 114. Design by Contract

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

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

Reporting Services und SharePoint 2010 Teil 1

10 größten SLA Irrtümer. Seminar: 8663 Service-Level-Agreement. Qualified for the Job

Widerrufsbelehrung der Free-Linked GmbH. Stand: Juni 2014

GRS SIGNUM Product-Lifecycle-Management

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Requirements Engineering für IT Systeme

Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen. Wir bringen Qualität. Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Wichtiges Thema: Ihre private Rente und der viel zu wenig beachtete - Rentenfaktor

Individuelle Formulare

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

Codex Newsletter. Allgemeines. Codex Newsletter

Wie gestaltet man Online-Umfragen mit SurveyMonkey?

Systemwette. Sporttip set

Objektbasierte Entwicklung

Lizenzen auschecken. Was ist zu tun?

Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation

Testen mit JUnit. Motivation

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

Beschreibung Regeln z.b. Abwesenheitsmeldung und Weiterleitung

Fragebogen: Abschlussbefragung

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus:

Das Leitbild vom Verein WIR

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Anleitung für Aussteller So funktioniert s!

SWE5 Übungen zu Software-Engineering

Java Einführung Packages

Checkliste. zur Gesprächsvorbereitung Mitarbeitergespräch. Aktivität / Frage Handlungsbedarf erledigt

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

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

Repetitionsaufgaben Wurzelgleichungen

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Alle Schlüssel-Karten (blaue Rückseite) werden den Schlüssel-Farben nach sortiert und in vier getrennte Stapel mit der Bildseite nach oben gelegt.

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

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

WORKSHOP für das Programm XnView

4. BEZIEHUNGEN ZWISCHEN TABELLEN

Anleitung über den Umgang mit Schildern

Dokumentation EGVP-Übertmittlungsfehler bei Server-Engpässen Vorgehensweise Seite 1 von 5

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Artikel Schnittstelle über CSV

Statuten in leichter Sprache

Herstellen von Symbolen mit Corel Draw ab Version 9

Welche Gedanken wir uns für die Erstellung einer Präsentation machen, sollen Ihnen die folgende Folien zeigen.

Informationsblatt Induktionsbeweis

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Alle gehören dazu. Vorwort

HIER GEHT ES UM IHR GUTES GELD ZINSRECHNUNG IM UNTERNEHMEN

OP-LOG

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

Version Deutsch In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen.

Anleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH

Erfolgsfaktoren im Projektmanagement

Summenbildung in Bauteiltabellen mit If Then Abfrage

Arcavis Backend - Invoice Baldegger+Sortec AG

Beweisbar sichere Verschlüsselung

Aufgaben zur Flächenberechnung mit der Integralrechung

PHPNuke Quick & Dirty

How to do? Projekte - Zeiterfassung

Transkript:

Pattern Praxis Techniken lassen sich wiederholt anwenden: Wieviele Substrings hat es im Wort Restaurant? Wie zeichne ich aus einer römischen IX mit einem zusätzlichen Strich eine Sechs? Was bedeutet: DER GEFANGENE FLOH Wie gross ist die W'keit 2 Vierer zu würfeln? P = U I, W = U I t, welche Bedeutung hat die Formel?

Nutzen von Patterns Design or not sein --> Programming for change reuse --> Inheritance extendability --> Interfaces maintainability --> Modules availability --> Design by Contract useability --> Style Guides

Patterns History CH - Effekt: Pascal mit ersten Patterns (N. Wirth, 1971), WWW am CERN als Plattform von Patterns (Tim Barner Lee, 1986), Erstes Buch v. Patterns (E. Gamma, 1995). Dass sich Design Patterns mit UML visualisieren lassen ist selbstverständlich und das ist in Tools auch vorhanden Wenn das Klassendiagramm so zentral ist, sollten doch viele Projekte vor uns mit ähnlichen Problemen konfrontiert gewesen sein, bis ihre Lösungen dokumentiert wurden. Definition A Pattern is a proven Solution for a general Problem

Motivation Jedes Pattern beschreibt eigentlich ein Problem, das immer wieder vorkommt und sich dadurch wiederholt auflösen lässt. Pattern ist das Ergebnis, als auch die Regel selbst. Man muss zuerst das Problem erkennen, bevor man die Lösung einsetzen kann. Komponenten selbst sind zu konkret, um z.b. zu einer vernünftigen Architektur zu gelangen. Wenn eine Lösung sich bewährt hat, ist eine Katalogisierung zum Auffinden der Patterns nötig.

Allgemeiner Nutzen Ihre Verwendung zur Beschreibung von Problemlösungs-Beziehungen bringen folgende drei Vorteile: Ein gemeinsames Vokabular und Glossar Ihr Name reicht aus, um über diverse Alternativen zu sprechen Dokumentations-, Bau- und Lernhilfe Da Patterns für allgemeine Probleme, die immer wieder vorkommen, Lösungen anbieten, liegt es nahe sie für den gesamten Lehrbereich im Fach Softwarebau, Management oder Engineering einzusetzen Erweiterung zu bestehenden Techniken in der OO-Welt

Katalog Muster besitzen fünf fundamentale Bestandteile: 1. Der Mustername benennt das Problem, die Lösung und die Konsequenzen in ein bis zwei Worten. 2. Das Problem beschreibt das Umfeld des Musters. Es wird zuerst der Kern des Problems allgemein beschrieben. 3. Kontext und Beschreibung der Situation, in der das Pattern sich einsetzen lässt. 4. Die Lösung spezifiziert die Elemente, ihre Beziehungen 5. Konsequenzen die sich aus der Anwendung ergeben

Kategorisierung Analyse Patterns bei Anforderungen Prozess Patterns bei Vorgehensmodellen Architektur Patterns bei der Verteilten Systemen Design Patterns Creational Patterns beschäftigen sich mit der dynamischen Erzeugung und Wiederbelebung von Objekten unabhängig der Typen Structural Patterns beschreiben den statischen Zusammenhang von Objekten und Klassen, die andere Klassen binden oder zu Strukturen führen Behavioral Patterns charakterisieren das dynamische Verhalten von Objekten und Klassen

Pattern Welt

Prozess Pattern

Activity als Analyse Pattern

Adapter Passe die Schnittstelle einer Klasse an ein andere erwartete Schnittstelle an. Ein Adapter läßt Klassen zusammenarbeiten, die wegen inkompatibler Schnittstellen sonst nicht fähig wären. In den meisten Fällen sind Typen nicht kompatibel zueinander Bsp.: Ein Form klinkt sich in einen Adapter ein, d.h. es macht seinen Typ dem Adapter über den Konstruktor bekannt. Da der Adapter schon von TObserver abstammt, stammt nun indirekt auch das neue Form von TObserver ab

Adapter UML Ein inkompatibler Monitor wird typenkompatibel

Adapter Code TBankFormAdapter = class(tobserver) private FAdapt: TBMonitor1; public constructor create(aform: TBMonitor1); end; Die eigentliche Kopplung des Objektes an den Adapter geschieht im Konstruktor: constructor TBankFormAdapter.create(aForm:TBMonitor1); begin inherited Create; FAdapt:= aform; end;

Observer Definiere eine Abhängigkeit von 1 : n zwischen Objekten, so dass bei einer Zustandsänderung alle registrierten Objekte benachrichtigt werden und sich dann automatisch aktualisieren können. Mit den Behaviorals gilt der Observer als Star und Liebling. Mechanismen sind raffiniert und besitzen hohen Stellenwert. Im Zusammenhang mit dem MVC Prinzip, ist das Observer bestens bekannt. Es braucht eine Klasse, die als Model die einzelnen Objekte die benachrichtigt werden wollen, registrieren kann

Observer UML Das MVC Prinzip

Observer Code procedure TDispCenter.changeAmount(value: double); begin if value <> 0 then begin FAmount:= value; Notify; Die Methode Notify ist nun angewiesen, dass alle Objekte die Methode Update besitzen, damit die Nachricht ankommt: procedure TDispCenter.Notify; begin for i:= 0 to pred(fobservers.count) do TObserver(FObservers.Items[i]).Update(Self); end;

Observer Sequenz

Strategy Bestimme eine Gruppe von Algorithmen, kapsle jeden einzelnen und ermögliche deren Austauschbarkeit während der Laufzeit. Das Strategiemuster ermöglicht den Algorithmus unabhängig vom Aufrufer zu variieren. Das Strategiemuster legt den Fokus auf die Algorithmen und deren Aufgabe etwas zu berechnen. Ein Simulator, zyklische Berechnungen oder eine Rezeptur einer SPS leben von Strategien und dem zugehörigen Muster.

Strategy UML

Strategy Code Mit der Uebergabe der Referenz im Konstruktor erreichen wir maximale Flexibilität, mit oder ohne benannte Instanzen: FNormalCharges: TChargeContext; FPreferredCharges: TChargeContext; FTrialCharges: TChargeContext; FNormalCharges:= TJahrCharges.Create(TNormalCharge.Create); FNormalCharges.Free;

Master Slave Ermögliche einem Master, die zu lösende Aufgabe zwischen gleichberechtigten Slaves aufzuteilen, die fehlertoleranten und genauen Ergebnisse zu einem Gesamtergebniss zusammenzuführen. Das Master Slave Muster kennt Fehlertoleranz indem bei Ausfall eines Slaves der Master dem Client trotzdem ein Resultat garantieren kann. Genauigkeit wird durch den Vergleich der einzelnen Slaves erreicht. In der Industrie oder Automation gebräuchliches Muster.

Master Slave Code Mit der Uebergabe eines Hash gewinnnt der erste konfliktfreie Wert durch seine Eindeutigkeit: function MakeHash(const s: string): Longint; {small hash maker} var I: Integer; begin Result:= 0; for I:= 1 to Length(s) do Result:= ((Result shl 7) or (Result shr 25)) + Ord(s[I]); end;

Praxisbezug Ermögliche in allen Anforderungen und Geschäftsprozessen eine einheitliche Notation. Folien: Prozess IT-Systeme der armasuisse und Planungshandbuch GST Patterns lassen sich in Packages verwalten MDA umfasst das Konzept der Patterns bei Transformationen Generierter Code 60-70% heisst nicht gesparte Zeit! XM als Extreme Modelling einführen (Ausführbare Spezifikation, Simulation)

Fazit Patterns als Tech. Anf. festlegen Patterngenerator in Tools prüfen Architektur vor Klassen Design ist Implementierung der Architektur Module vor Komponenten Fragen Sie nach DP inside bei Sourcen Koppeln Sie DP an die Dokumentation Code Patterns versus Design Patterns MDA in UML 2.0 baut auf Patterns Teile und herrsche Auch einer der aus dem Rahmen fällt kann noch im Bilde sein... Fragen: max@kleiner.com

Viel Spass mit den täglichen Mustern