OOD – Object Oriented Design I

Slides:



Advertisements
Ähnliche Präsentationen
interaktiver Web Service Workflows
Advertisements

Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Programmieren im Großen von Markus Schmidt und Benno Kröger.
Harald Köbler Software Design Patterns Prototype.
On the Criteria to Be Used in Decomposing Systems into Modules
Was ist J2EE Die Vorteile von J2EE J2EE Modell Die Komponente von J2EE
Design Patterns- Entwurfsmuster
Ruby on Rails im Überblick
Objektorientierter Entwurf (OOD) Übersicht
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Java: Objektorientierte Programmierung
Komponentenbasierter Taschenrechner mit CORBA
Cassey - Common Answer Set Evaluation sYstem Jean Gressmann Benjamin Kaufmann Robert Lenk.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
MVC – ein Architekturmuster
Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung.
Christian Kästner Modellgetriebene Softwareentwicklung Eclipse Modelling Framework.
Business Logik als EJB-Applikation Gruppe pea19 Raed IssaChristian KubanekHonoré Tiako.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Modellierung der Zugriffslogik auf Datenbanktabellen Software Component Technology for Distributed Applications Andreas Fink.
Explizite und editierbare Metainformationen für Software Muster.
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Entwurfsmuster – Iterator
Entwurfsmuster EDV Entwurfsmuster.
OO Analyse und Entwurf für Anwender XIII. Objektorientierte Benutzeroberfäche Dr. Michael Löwe.
Wizards & Builders GmbH Schichtenarchitektur Multi-Tier-Applikationen mit Microsoft Visual FoxPro.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 6 Sitzung 6: Model-View-Controller als Grundlage.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Weitere Vorgehensmodelle Der Rational Unified Process RUP –bei IBM.
Herzlich Willkommen… welcome… soyez la bienvenue….
Software Architektur III
Software Architektur I
Software Architektur IV
OOD – Object Oriented Design II
Mitglied der Fachhochschule Ostschweiz FHO 1 © FHS St.Gallen Software Engineering OOD – Object Oriented Design III GUI-Design.
Software Architektur II
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Mit 3 Schichte zum Erfolg
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen.
1. Verhalten der Objekte: Operationen Werden in den Klassen definiert Werden (i.d.R.) auf einem Objekt aufgerufen Wird das Empfängerobjekt genannt Weitere.
Architekturen und Techniken für computergestützte Engineering Workbenches.
Vorstellung des Projektergebnisses. Agenda I. Bla II. Änderungen beim Design III. Zeitliche Aufwände IV. Komplexität V. Produktpräsentation VI. Mögliche.
Konzepte der objektorientierten Programmierung
Hauptseminar Web Engineering – Semantic Web Dominik Pretzsch.
Auslegung eines Vorschubantriebes
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Seminar Softwareentwicklung Programmierstil Helmut Schmidauer
Komponentenschnittstellen (1)
Beschreiben Sie das Szenario wenn ein ORB einen Server aktiviert und eine Objektimplementation aufruft. Activate Server impl_is_ready Activate Object (GetID.
NDK Enterprise Technologien Informationen Infrastruktur und Fallstudie Daniel Nydegger Studienleiter Enterprise System Entwicklung.
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
EPROG Tutorium #4 Philipp Effenberger
Analyseprodukte numerischer Modelle
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
Unified Modeling Language UML
VirtualPatt 2000 Interaktives 3D-Schachspiel
Software Design Patterns
Seite 1 © 2007 Dr. Schwaiger Roland VP SW-Technologien WS 2007/2008 VP Softwaretechnologien WS2007/2008 SAP GUI Pattern und Componentry Dr.
OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe.
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Entwurfsmuster (Design Pattern)
Design Pattern1 Motivation Entwurfsmuster Entwurf wiederverwendbarer objektorientierter Software schwer gute Entwürfe entstehen durch Wiederverwen- dung.
Dieser Vortrag wird gesponsort von:
Informatik Softwareentwicklung – 4.3 Entwurfsmuster
 Präsentation transkript:

OOD – Object Oriented Design I Design-Prozess Design-Patterns Prototyping

Lernziele Sie können ... die wesentlichen Design-Prinzipien erläutern. die wichtigsten Design-Patterns darlegen und anwenden. die wesentlichen Funktionen und Möglichkeiten des Prototyping darlegen.

Literatur Applikationen objektorientiert konzipieren Kapitel 6 Lehrbuch der Objektmodellierung LE 14 (Entwurfsmuster)

Design - Entwurf Analyse-Modell Design-Modelle (Entwurfs-Modelle): Implementationsunabhängig  Überführung in Design-Modelle (Entwurfs-Modelle): GUI-Interaktionsmodell  meist Design-Prototyp Komponentenmodell Persistenzmodell (meist Datenbankmodell) Design 1:1-Modell der Implementation (des Codes)

Entwurfsproblemkreise Benutzerinteraktion/GUI Sitzungsverwaltung Workflowgestaltung Anwendungslogik Persistenz (Datenhaltung) Datenzugriff Datenhaltung

OOP  COP OOP – Object Oriented Programming COP – Component Oriented Programming Komponentenmodelle (z.B. J2EE) Komponenten laufen in Container Mehrere Klassen werden zu einer Komponente zusammengefasst Container übernehmen zusätzliche Dienste: Session-Handling Security Persistence ...

Heuristiken «Best Practices» Regeln, Konzepte die sich in der Praxis bewährt haben: Geheimnisprinzip realisieren

Designprinzipien Kapselung Lose Koppelung Hohe Kohäsion Interne Logik wird «versteckt» Information Hiding, Geheimnisprinzip realisieren Zugriff erfolgt über definierte und kontrollierte Schnittstellen Lose Koppelung Möglichst wenig Abhängigkeiten zwischen Klassen bzw. Komponenten Hohe Kohäsion Möglichst hoher logischer innerer Zusammenhalt in einer Klasse bzw. Komponente

Separation of Concerns Zuständigkeiten sauber separiert Je Modell, Subsystem, Komponente Möglichst keine Überschneidung im Fokus Beispiele der Trennung von: Schichtenarchitektur Front-End – Middle Tier – Back-End Subsysteme je Geschäftslogikeinheit Kunde, Artikel, Auftrag, … Geschäftslogik und technikabhängige Komponenten Geschäftskomponente Kundenauftrag Datenzugriffskomponente Kundenauftragsdaten Funktionslogische Trennung Schnittstelle, Steuerung und Implementation

Design by Abstraction Ziel: Flexibilität für zukünftige Änderungen Konkreteres wird in Allgemeineres abstrahiert Sich nicht im Detail verlieren Allgemeine Muster herausarbeiten Bildung von Entwicklungsmuster in Form von Abstrakten Klassen Interface Klassen

Design by Enumeration Gegenteil von «Design by Abstraction» Alle Anwendungsmöglichkeiten prüfen Alle Lösungsmöglichkeiten eruieren und evaluieren ist meist zu aufwändig Ein sich Verlieren im Detail!

Design by Mapping Synonym: Recursive Design Iteratives Vorgehen: Je Element pro Modellebene

Design by Contract Ziel: zuverlässige Software Bei Schnittstellen wird ein Kontrakt (Abmachung, Vertrag) festgelegt: Vorbedingungen (precondition) Nachbedingungen (postcondition) Modellierung mittels OCL (Object Constraint Language) Bei «Vertragsbruch»: «Raising» (werfen) einer bestimmten Exception (Ausnahmebehandlung)

Muster - Patterns Beschreiben allgemeine Lösungen zu häufig wiederkehrenden Problemstellungen Ebenen von Muster: Problemorientierte Seite: Analysemuster Lösungsorientierte Seite (abhängig von Granularität): Architekturmuster Grobkörniger Siehe auch Musterarchitekturen in Kapitel Softwarearchitektur! Entwurfsmuster Feinkörniger

Schichtenmuster (Layer Pattern) Architekturmuster Schnittstellen nur zwischen angrenzenden Layers Höhere Layer haben die Kontrolle und ist von unterem Layer abhängig Unterer Layer ist von oberen Layer unabhängig

MVC – Model View Control Architekturmuster Model enthält Business Logik und Daten View Präsentation der Daten Control Steuerung durch Benutzerinteraktion

MVC-Implementation im Java-Umfeld

Entwurfsmuster (Design Patterns) Die Dokumentation enthält: Kontext Problembeschreibung Lösung Auswirkungen Bekannte Musterkataloge: GoF – Gang of Four J2EE-Patterns http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html

GoF – Design Patterns Erzeugungsmuster (creational patterns) Fabrikmethode (factory method) Singleton Strukturmuster (structural patterns) Adapter Proxy Fassade (facade) Kompositum (composite) Verhaltensmuster (behavioral patterns) Beobachter (observer) Schablonenmethode (template method)

Fabrikmethode GoF Erzeugungsmuster Virtueller Konstruktor, bietet eine Schnittstelle zum Erzeugen eines Objektes, wobei die Unterklasse entscheidet von welcher Klasse es sein soll. Allg. Framework spezifische Implementation

Singleton GoF Erzeugungsmuster Stellt sicher, dass von einer Klasse nur genau ein Objekt erzeugt wird. z.B. ein Steuerobjekt Objektreferenz

Adapter GoF Strukturmuster Passt Schnittstelle an die Erwartungen des Klienten an. Wenn z.B. Client nicht geändert werden kann. Target.Request(gewünschte Schnittstelle)

Proxy GoF Strukturmuster Surrogat, Stellvertreter-Objektes (Proxy) Ermöglicht: Zugriffsschutz, Ortstransparenz Objektdiagramm:

Fassade GoF Strukturmuster Einfache Schnittstelle zu einem Paket mit einer Menge von Komponenten (oder Klassen) Implementierung

Kompositum GoF Strukturmuster Setzte Objekte zu Baumstrukturen zusammen. Bsp.: Grafik, aus Linien, Rechtecke, Text und Bilder Objektdiagramm: Einzelobjekte Containerobjekte

Beobachter GoF Verhaltensmuster Bei Änderung eines Objektes werden alle davon abhängigen Objekte benachrichtigt. Diagrammanzeige (Observer-2) Tabellenanzeige (Observer-1) Datenpool (Subject)

Schablonenmethode GoF Verhaltensmuster Definiert den Rahmen bzw. den invarianten Teil eines Algorithmus in einer Operation und delegiert Teilschritte an Unterklassen. Enthält keinen Programmcode Enthält invarianten Programmcode Konkreter Programmcode

Kontrollmuster Fork-Interaction: Stair-Interaction: Ein Steuerobjekt kontrolliert alle Aufrufe Stair-Interaction: Die Kontrolle ist dezentral bei den Fachkomponenten GoF Verhaltensmuster: Zuständigkeitskette (Chain of Responsability)

Literaturhinweis Patterns kompakt Eilebrecht, Starke ISBN: 3-8274-1591-8 Spektrum Verlag www.patterns-kompakt.de

Prototyping Analyseprototyp weiterführen Explorativer Prototyp abhängig von eingesetztem Tool Explorativer Prototyp Verifizierung der Machbarkeit von Lösungsideen „Spike“  Prototyp zur Überprüfung von Architekturentscheiden (High-Fidelity) Design-Prototyp Anwenderinteraktion partizipatives Prototyping (d.h. Anwender wird miteinbezogen) Bildschirmlayout direkt in Implementation weiterverwenden

Übungen UML-Übungen Übung 7 Fallstudie Auftrag 6 Auftrag 7