Bekannte Lösungen für bekannte Probleme benutzen. Entwurf auf höherer Abstraktionsebene als bei Programmiersprachen

Ähnliche Dokumente
Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

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

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

Design Pattern - Strukturmuster. CAS SWE - OOAD Marco Hunziker Klaus Imfeld Frédéric Bächler Marcel Lüthi

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

Objektorientiertes Software-Engineering

Informationssystemanalyse Lebenszyklusmodelle 3 1. Lebenszyklusmodelle sollen hauptsächlich drei Aufgaben erfüllen:

Was ist Software-Architektur?

Specifying Patterns for Dynamic Pattern Instance Recognition with UML 2.0 Sequence Diagrams. Lothar Wendehals. Universität Paderborn

1 Mathematische Grundlagen

Wir machen neue Politik für Baden-Württemberg

Patterns & Softwarearchitektur

FRISCHE POWER FÜR IHREN VERTRIEBSERFOLG. GANZ EINFACH! INTERAKTIVE TABLETBERATUNG

Fragen Arthur Zaczek. Apr 2015

Eine Anwendung mit InstantRails 1.7

Übungen zu Softwaretechnik

Jan Parthey, Christin Seifert. 22. Mai 2003

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

Unified Communication Client Installation Guide

Softwareentwicklungspraktikum Sommersemester Grobentwurf

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Objektorientierte Programmierung OOP

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Software-Engineering 2. Übungen zur Wiederholung. IT works. Metris GmbH

WinVetpro im Betriebsmodus Laptop

Java Enterprise Architekturen Willkommen in der Realität

Muster. Selbstverantwortliches Lernen. für. Eine Mustersprache für die Waldorfpädagogik?

Software Defined Networking. und seine Anwendbarkeit für die Steuerung von Videodaten im Internet

Unterprogramme. Funktionen. Bedeutung von Funktionen in C++ Definition einer Funktion. Definition einer Prozedur

Fachbereich Medienproduktion

Allgemeines zu Datenbanken

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Step by Step Remotedesktopfreigabe unter Windows Server von Christian Bartl

Softwaretechnik (Allgemeine Informatik) Überblick

Abschlussklausur Geschäftsprozessmodellierung und Workflowmanagement

12.4 Sicherheitsarchitektur

Wiederholung: Beginn

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Die Installation eines MS SQL Server 2000 mit SP3a wird in diesem Artikel nicht beschrieben und vorausgesetzt.

Die Zertifizierungsstelle der TÜV Informationstechnik GmbH bescheinigt hiermit dem Unternehmen

Test zur Bereitschaft für die Cloud

2 Evaluierung von Retrievalsystemen

Analogie Transfer im Bereich Mensch-Computer-Interaktion. Wenn die Interfacekonsistenz zu unpassendem Analogie Transfer führt

GEZIELT MEHR SICHERHEIT MIT 4I ACCESS SERVER & 4I CONNECT CLIENT

s.beat DAP-10X White Paper USB Stromversorgung am Apple Macintosh und deren Auswirkung

Bedienungsanleitung. LED Tristar

Übungsklausur vom 7. Dez. 2007

Kapitel 10 Aktive DBMS

Melde- und Veröffentlichungsplattform Portal (MVP Portal) Hochladen einer XML-Datei

Java und XML 2. Java und XML

Comparison of Software Products using Software Engineering Metrics

Requirements Engineering WS 11/12

OP-LOG

Design Patterns 2. Model-View-Controller in der Praxis

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Regeln zur Beurteilung von Investitionen

Anforderungen und Umsetzung einer BYOD Strategie

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

ACCESS das Datenbankprogramm. (Einführung) DI (FH) Levent Öztürk

GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen. Teil 1: Einführung: Wissensbasis und Ontologie.

J.6 Programmierung eingebetteter Systeme

Objektorientierte Programmierung

Referenz-Konfiguration für IP Office Server. IP Office 8.1

Anleitung für die Online-Bewerbung über LSF auf Lehrveranstaltungen aller Lehramtsstudiengänge

Senioren ans Netz. schreiben kurze Texte. Lektion 9 in Themen aktuell 2, nach Übung 7

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Grundlagen der Softwaretechnik

Behavioral Patterns. Seminar Software-Entwurf WS 04/05. Przemyslaw Dul

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

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Bedienungsanleitung: Onlineverifizierung von qualifiziert signierten PDF-Dateien

ASV-Betrieb für die Coburger Schulen. Einbindung externer Schulen via RemoteApp

Inbetriebnahme einer Fritzbox-Fon an einem DSLmobil Anschluss Konfiguration einer PPPOE-Einwahl (DSLmobil per Funk)

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Rapide An Event-Based Architecture Definition Language

START - SYSTEMSTEUERUNG - SYSTEM - REMOTE

Globally Harmonized System (GHS)

FORUM 16 IT DIE DOKUMENTATIONSPROTHESE DER SOZIALEN ARBEIT INNOVATION, HILFSMITTEL ODER BEHINDERUNG?

Der lokale und verteilte Fall

Konzepte der Informatik

msm net ingenieurbüro meissner kompetent - kreativ - innovativ

Benutzeranleitung Web Login (Internetzugang an Öffentlichen Datendosen und in Studentenwohnheimen )

R-ADSL2+ Einrichthinweise unter Windows 98/ME

Statuten in leichter Sprache

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

E POSTBUSINESS BOX Release Notes. Release 2.0

MOC Entwicklung von ASP.NET MVC 4 Webapplikationen

Effiziente Administration Ihrer Netzwerkumgebung

Es kann maximal ein Prozess die Umladestelle benutzen.

Resultate GfS-Umfrage November Wie bekannt ist das Phänomen Illettrismus bei der Schweizer Bevölkerung?

Transparente SOA Governance mit Modellierung. OOP 2010 München, 28. Januar 2010, 12:30 Uhr Modeling Day

Anbindung des eibport an das Internet

8 Design Patterns. Events

Kennzahlensysteme in der Leitstelle. Kennzahlen und Leitstelle ist das kompatibel? Praktischer Nutzen von Kennzahlen. Florian Dax

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

Online-Abzüge 4.0. Ausgabe 1

Cisco AnyConnect VPN Client - Anleitung für Windows7

Die SPD und die Grünen machen im Niedersächsischen Landtag. Alle Menschen sollen in der Politik mitmachen können.

Transkript:

Michael Saecker

Bekannte Lösungen für bekannte Probleme benutzen Entwurf auf höherer Abstraktionsebene als bei Programmiersprachen Gemeinsames Vokabular für Designer 2

http://www.clickpix.de/sommer/architektur.jpg 3

http://www.kaernten-netz.de/resources/userdata/images/image/kaernten-netz/architektur.jpg 4

http://www.monstropolis.org/cms/upload/2007/02/architektur.jpg 5

Definitionen Design Patterns Patterns in der Softwarearchitektur Design Patterns im RSA J2EE spezifische Patterns Zusammenfassung Diskussion 6

Definitionen Design Patterns Patterns in der Softwarearchitektur Design Patterns im RSA J2EE spezifische Patterns Zusammenfassung Diskussion 7

Design Pattern Beschreibt ein wiederkehrendes Problem Beschreibt den Kern der Lösung Ermöglicht Wiederverwendung der Lösung ohne 2x das Gleiche machen zu müssen 8

Softwarearchitektur Beschreibung der Subsysteme & Komponenten und deren Beziehungen Globale Eigenschaft des Systems Schwer im Nachhinein zu ändern Bestimmt durch nicht-funktionale Eigenschaften, wie Modifizierbarkeit, Wartbarkeit 9

Softwarearchitektur Pattern Pattern auf höherer Abstraktionsebene Kein lokaler, sondern globaler Entwurf hilft eine globale System-Eigenschaft herzustellen 10

Definitionen Design Patterns Patterns in der Softwarearchitektur Design Patterns im RSA J2EE spezifische Patterns Zusammenfassung Diskussion 11

Benachrichtigung von Beobachtern bei einer Änderung am Objekt Anwendbarkeit Eine Änderung zieht mehrere Änderungen an anderen Objekten nach sich Benachrichtigung von Objekten ohne zu wissen wen Abstraktion hat 2 Aspekte, die voneinander abhängig sind 12

Subject attach(observer) detach(observer) notify() observers Observer Update() ConcreteSubject subjectstate getstate() setstate() subject ConcreteObserver observerstate 13

Vorteile Abstrakte Kopplung zwischen Subjekt und Beobachter Broadcast Kommunikation an alle relevanten Objekte Nachteile Nicht bekannt was verändert wird Kann viele Updates zur Folge unerwarteten Änderungen 14

Familie von Algorithmen zusammenfassen Strategie lässt Algorithmus variieren Anwendbarkeit Viele zusammenhängende Klassen mit ähnlichem Verhalten Verschiedene Varianten eines Algorithmus werden benötigt Algorithmus benutzt Daten, die nicht entblößt werden sollen Klasse mit vielen Verhalten als mehrfache Conditionals in den Operationen => Auslagern nach Strategy 15

Context ContextInterface() strategy Strategy AlgorithmInterface() ConcreteStrategyA AlgorithmInterface() ConcreteStrategyB AlgorithmInterface() 16

Form Ausmalen(Muster abc) Fuellen() Muster Schraffiert Komplett Kariert Fuellen() Fuellen() Fuellen() 17

Vorteile Familien von Algorithmen Alternative zu Subklassen Eliminiert Abfragen und Verzweigungen Nachteile größere Anzahl von Objekten Strategien müssen bekannt sein Schnittstellen evtl. zu groß für simple Strategien 18

Definitionen Design Patterns Patterns in der Softwarearchitektur Design Patterns im RSA J2EE spezifische Patterns Zusammenfassung Diskussion 19

Definition Trennen der Anwendung in verschiedene Schichten nach Unteraufgaben Unteraufgaben in verschiedenen Abstraktionen Kommunikation nur zwischen benachbarten Schichten 20

FTP FTP TCP TCP IP Ethernet Übertragung IP Ethernet 21

Facade Application Service DAO Datenbank 22

Vorteile Kommunikation über Schnittstellen => Schichten austauschbar Schichten evtl. wiederverwendbar Nachteile Effizienz leidet ( Durchreichen der Anforderungen) Schwierig korrekte Anzahl an Schichten zu bestimmen 23

http://www.diplomatie.gouv.fr/de/img/jpg/13-1-4.jpg 24

Definition Trennen der Anwendung in 3 Komponenten Model Daten Kernfunktionalität Controller Behandeln Benutzereingaben View Informationen visualisieren View & Controller stellen User-Interface dar 25

Daten Ergebnisse Blue 8,2 Red 3,2 Green 1,4 Purple 1,2 Blue 8,2 Red 3,2 Green 1,4 Purple 1,2 26

call update Observer Model update coredata setofobservers attach(observer) detach(observer) notify getdata service attach call service Controller mymodel myview initialize(model,view) handleevent update manipulate display create View mymodel mycontroller attach getdata initialize(model) makecontroller activate display update 27

Vorteile Mehrere Sichten auf gleiches Modell Austauschbarkeit von View & Controller Look & Feel einfach zu realisieren durch verschiedene Views & Controller Nachteile Erhöhte Komplexität View & Controller sind eng gekoppelt View & Controller sind ans Modell gebunden => Modelländerungen ziehen sich durchs System 28

Definitionen Design Patterns Patterns in der Softwarearchitektur Design Patterns im RSA J2EE spezifische Patterns Zusammenfassung Diskussion 29

30

31

32

33

Definitionen Design Patterns Patterns in der Softwarearchitektur Design Patterns im RSA J2EE spezifische Patterns Zusammenfassung Diskussion 34

Clients von der Komplexität der Remote Aufrufe befreien. Ziel Kopplung minimieren und Details des Service verstecken Unnötige Remote-Aufrufe verhindern Übersetzen von Netzwerk-Exceptions in Benutzerexceptions Anfragen, Wiederholungen usw. vom Client verstecken 35

Client BusinessDelegate uses BusinessService LookupService lookup / create 36

Konsequenzen Reduziert Kopplung erhöhrt Wartbarkeit Übersetzt Business Exceptions Bietet dem Client ein simples Interface Erhöhrt Performance (caching) Führt eine zusätzliche Schicht ein Versteckt Remote-Aufrufe 37

Ziel Funktionen nach außen verfügbar machen ohne direkte Kopplung von Client und Server Keinen direkten Zugang zur BusinessLogic Remote Access Layer für Business Objekte Logische Gruppierung von Funktionen nach außen Einfache Schnittstelle nach außen verbirgt interne Komplexität 38

Client <<EJBSession>> SessionFacade accesses 1..* BusinessObject <<EntityEJB>> BusinessEntity DataAccessObject <<SessionEJB>> BusinessSession 39

Konsequenzen Layer für remote Services Reduziert Kopplung zwischen Client und Server Erhöht Wartbarkeit und Flexibilität Reduziert Komplexität Security Management kann zentralisiert werden Weniger Remote-Interfaces für den Client 40

Ihr wisst jetzt, was Design Patterns Architektur Patterns J2EE Patterns sind. Noch Fragen? 44

Haltet ihr Patterns für sinnvoll? Benutzt ihr Patterns? Vielleicht ohne es zu wissen? Gibt es ausreichend Toolunterstützung? 45

GoF, Design Patterns Elements of Reusable Object- Oriented Software, Addison-Wesley, 1997 F.Buschmann, R.Meunier, H.Rohnert, P.Sommerlad, M.Stal; Pattern-Oriented Software Architecture A System of Patterns, Wiley, 1996 http://de.wikipedia.org/wiki/softwarearchitektur http://www.corej2eepatterns.com/patterns2nded/ index.htm http://java.sun.com/blueprints/corej2eepatterns/patter ns/ index.html http://www.ibm.com/developerworks/ibm/library/iodoebp21/ http://www.ibm.com/developerworks/ibm/library/iodoebp8/ 46