Objektorientierte Analyse (OOA) OOA-Pattern

Ähnliche Dokumente
Objektorientierte Analyse (OOA) Logischer Aufbau (statische Sicht)

Analysemuster. Marc Monecke

Praxisbuch Objektorientierung

8. Analyse Muster. Entwurfsprinzipien. Siehe auch Heide Balzert: Lehrbuch der Objektmodellierung. 8. Analyse Muster 1

Auf einen Blick. 1 Einleitung Die Basis der Objektorientierung Die Prinzipien des objektorientierten Entwurfs...

Model-View-Controller

Übungen Softwaretechnik I

Einführung in die Programmierung für NF. Übung

JSP Übung. JEE Vorlesung Teil 7. Ralf Gitzel

Software- /Systemarchitektur

ERM/ERD Entity Relationship Model Entity Relationship Diagram.

Softwaretechnologie Wintersemester 2009/2010 Dr. Günter Kniesel, Pascal Bihler

Softwaretechnik 2015/2016

OO-Design. Klausur FHF * WI1 / WI2 * SS Name:.../ Semester:...

Siehe auch Heide Balzert: Lehrbuch der Objektmodellierung.

- Objektorientierte Analyse (OOA) -

Abschnitt 20: Ein Grundprinzip der Software-Architektur

Datenbanken 1. Sommersemester Übung 2

Objektorientierte Programmierung

Dabei sollen die Nutzern nach einer Authentifizierung entsprechend ihren Rechten Begriffe ändern, anlegen und kommentieren können.

Klausur. Softwareentwurf. 04. Februar 2013 Bearbeitungszeit: 120 Minuten

Software Engineering Analyse und Analysemuster

UML -Klassendiagramme

Eine Untersuchung der Funktionen des Apache Wicket Webframeworks

Assoziationen in Java

Geoinformation I Datenmodellierung

Informatik IIa: Modellierung

UML (Unified Modelling Language) von Christian Bartl

Einführung in die objektorientierte Programmierung

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

Model-View-Controller

APEX Datenverwaltung Wo sind die Daten gerade? Dr. Gudrun Pabst

Kurzeinführung in UML

Klausur Softwaretechnologie SS 2017

PRÜFUNG. Grundlagen der Softwaretechnik

Inhalt. 1 Einführungsveranstaltung. 2 Pflichtenheft ANFORDERUNGSSPEZIFIKATION - GROBPLANUNG ANFORDERUNGSSPEZIFIKATION - SOLLKONZEPT

Vorlesung Programmieren

APEX Datenverwaltung Wo sind die Daten gerade?

Aufbau und Bestandteile von Formularen. Oracle Forms. Erstellen eines neuen Blocks (1) Starten von Oracle Forms

Informatik IIa: Modellierung. Frühlingssemester Assessment Prüfung 5. Juni 2009

Klausur Software Engineering 2 WNB SS 2008

Software Engineering. 3. Analyse und Anforderungsmanagement

7. Objektorientierung. Informatik II für Verkehrsingenieure

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

Informatik IIa: Modellierung

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester Teil 4 -

Objektorientierte Modellierung (1)

MVC Ein wichtiges Konzept der Software-Architektur

Javakurs für Anfänger

Objektorientierung in Oracle

GERICHTETER GEWICHTETER GRAPH DESIGNDOKUMENT

Übungen zu Softwaretechnik

Objektorientierte Analyse (OOA) Strukturmodellierung

5.2 Entity-Relationship-Modell

Bitte beachten: Die Vorschläge sind keine Musterlösung!

Anwendungsentwicklung Datenbanken Datenbankentwurf. Stefan Goebel

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

Objektorientierte und Funktionale Programmierung SS 2014

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Software Engineering, SoSe 07, WSI, D. Huson, May 7,

Objektorientierte Analyse (OOA) Inhaltsübersicht

SWE5 Übungen zu Software-Engineering

Attributs-Wertverteilungen / Distribution of Distinct Values Seite 1 von 5

Kompendium der Web-Programmierung

Einführung Servlets. JEE Vorlesung Teil 2. Ralf Gitzel

Softwarearchitektur, UML, Design Patterns und Unit Tests

INSPIRE - Modellierung

Analyse und Modellierung von Informationssystemen

systems landscape engineering - übung -

Erklären können, wie der Analyseprozess ablaufen soll. Verstehen, wie man zu einem guten Analysemodell kommt

Das relationale Datenmodell

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit

4. Übung zu Software Engineering

Nr. 1 L-Aufgabe

ÜBUNGEN ZUR OBJEKTORIENTIERTEN MODELLIERUNG

Aufgabe 1: Strukturmodellierung mittels Klassendiagramm Wiederholen Sie das Kapitel aus der Vorlesung, das sich mit dem Klassendiagramm beschäftigt.

Kapitel 5: Das Design

Objektdiagramm Komponentendiagramm Paketdiagramm. 6. Weitere Strukturdiagramme

Entwurfsmuster (Design Patterns)

Instanz ist objeket einer klasse. bsp: elefant Name gewicht alter Frisst scheißt fliegt. Assoziation haben?

Arbeiten mit einer Datenbank 1

Software Engineering in der Praxis

Klassendiagramm im Rahmen der objekt-orientierten Analyse

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

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller

Von der UML nach C++

3. Objektorientierte Analyse

Übersicht. Softwarearchitektur. Softwarearchitektur, UML, Design Patterns und Unit Tests. Softwarearchitektur

Transkript:

OOA-Muster (Architektur Pattern) Ein Pattern (Entwurfsmuster) ist ein Problem mit seiner Lösung in einem Kontext. Der Kontext enthält in der Regel Zielkonflikte, die der Designer lösen muss, z.b. Performance gegen Kosten oder Einfachheit gegen Wartbarkeit. Ein eigenes Design, das man einmal gemacht hat und das man in der Form von Patterns beschreibt, ist noch lange kein Pattern (es fehlen die sog. Known Uses) Eine Lösung zu einem häufig auftretenden Problem ist noch lange kein gut geschriebenes Pattern, wenn die Zielkonflikte und die Konsequenzen der Lösung nicht erläutert sind (es fehlen die sog. Forces und Consequences) Seite 1

OOA-Muster (Pattern): Liste (Container/Collection) Lagerliste Nummer 4 Störungsstatus OK X Koordinate Y Koordinate Belegt Status Sperrkennzeichen Regalseite 50 100 frei kein A 50 200 belegt kein A 50 300 frei kein A Es liegt eine Komposition vor Ein Ganzes besteht aus gleichartigen Teilen, d.h. es gibt nur eine Teil-Klasse Teil-Objekte bleiben einem Aggregat-Objekt fest zugeordnet Sie können jedoch gelöscht werden, bevor das Ganze gelöscht wird Seite 2

OOA-Muster (Pattern): Exemplar (Typ-Objekt) Einfache Assoziation Einmal erstellte Objektverbindungen werden i. Allg. nicht verändert Sie werden nur gelöscht, wenn das betreffende Exemplar entfernt wird Der Name der neuen Klasse enthält oft Begriffe wie Typ, Gruppe, Beschreibung, Spezifikation Eine Beschreibung kann zeitweise unabhängig von konkreten Exemplaren existieren, deshalb 0..* Würde auf die neue Klasse verzichtet, so würde als Nachteil lediglich die redundante»speicherung«von Attributwerten auftreten. Seite 3

OOA-Muster (Pattern): Baugruppe Es handelt sich um physische Objekte Es liegt eine Komposition vor Objektverbindungen bestehen über eine längere Zeit Ein Teil-Objekt kann von seinem Aggregat- Objekt getrennt werden und einem anderen Ganzen zugeordnet werden Ein Ganzes kann aus unterschiedlichen Teilen bestehen. Seite 4

OOA-Muster (Pattern): Stückliste (Composit-Component) Es liegt eine Komposition vor Das Aggregat-Objekt und seine Teil-Objekte müssen sowohl als Einheit als auch einzeln behandelt werden können Teil-Objekte können anderen Aggregat-Objekten zugeordnet werden Die Kardinalität bei der Aggregat- Klasse ist 0..1 Ein Objekt der Art A kann sich aus mehreren Objekten der Arten A, B und C zusammensetzen Objekt-Diagramm: Seite 5

OOA-Muster (Pattern): Stückliste (Composit-Component) Der Sonderfall der Stückliste ist, dass ein Stück nicht aus Objekten unterschiedlicher Art, sondern nur aus einer einzigen Art besteht Seite 6

OOA-Muster (Pattern): Koordinator Es liegen einfache Assoziationen vor Koordination wird verwendet, wenn die Attribute einer m:n- Beziehung gespeichert werden müssen Die Koordinator-Klasse ersetzt eine n-äre (n >= 2) Assoziation durch binäre Assoziationen mit assoziativer Klasse Die Koordinator-Klasse besitzt kaum Attribute/Operationen, sondern mehrere Assoziationen zu anderen Klassen, i. Allg. zu genau einem Objekt jeder Klasse. Seite 7

Übung: Um welche OOA-Muster handelt es sich bei den folgenden Klassendiagrammen? Seite 8

OOA-Muster (Pattern): Rollen Objektmodell: Zwischen 2 Klassen existieren 2 oder mehrere einfache Assoziationen Ein Objekt kann zu einem Zeitpunkt in Bezug auf die Objekte der anderen Klasse verschiedene Rollen spielen Objekte, die verschiedene Rollen spielen können, besitzen unabhängig von der jeweiligen Rolle die gleichen Eigenschaften und ggf. gleiche Operationen. Seite 9

OOA-Muster (Pattern): Wechselnde Rollen Ein Objekt der realen Welt kann zu verschiedenen Zeiten verschiedene Rollen spielen In jeder Rolle kann es unterschiedliche Eigenschaften (Attribute, Assoziationen) und Operationen besitzen Die unterschiedlichen Rollen werden mittels Vererbung modelliert Objektverbindungen zwischen dem Objekt und seinen Rollen werden nur erweitert, d.h. weder gelöscht noch zu anderen Objekten aufgebaut. Seite 10

OOA-Muster (Pattern): Historie Es liegt eine einfache Assoziation vor Für ein Objekt sind mehrere Vorgänge bzw. Fakten zu dokumentieren Für jeden Vorgang bzw. jedes Faktum ist der Zeitraum festzuhalten Aufgebaute Objektverbindungen zu den Vorgängen bzw. Fakten werden nur erweitert Die zeitliche Restriktion {t#k} (k = gültige Kardinalität) sagt aus, was zu einem Zeitpunkt gelten muss, wobei # für die Vergleichsoperationen =, <, >, <=, >= und steht. Seite 11

OOA-Muster (Pattern): Gruppe(nhistorie) Bei der Gruppe liegt eine einfache Assoziation vor Mehrere Einzel-Objekte gehören zu einem Zeitpunkt zum selben Gruppen-Objekt Es ist jeweils zu prüfen, ob die Gruppe zeitweise ohne Einzel-Objekte existieren kann oder ob sie immer eine Mindestanzahl von Einzel-Objekten enthalten muss Objektverbindungen können auf- und abgebaut werden. Wenn ein Einzel-Objekt im Laufe der Zeit zu unterschiedlichen Gruppen- Objekten gehört, wird die Historie mittels einer assoziativen Klasse modelliert, dadurch ist die Zuordnung zwischen Einzel-Objekten und Gruppen deutlich sichtbar Da Informationen über einen Zeitraum festzuhalten sind, bleiben bei der Gruppenhistorie erstellte Objektverbindungen bestehen und es werden nur Verbindungen hinzugefügt Seite 12

Model View Controller (MVC) - Konzept Als Model wird die Datenquelle bezeichnet, die Daten unabhängig vom Erscheinungsbild liefert (also beispielsweise aus einer relationalen Datenbank) Die View zeigt diese Daten dann in passender Art und Weise an (z.b. als Tabelle in einer Java-Applikation) Der Controller kümmert sich um die Interaktion mit dem Benutzer (das Verhalten der Komponente). Seite 13

MVC Beispiel: Web-Registrierung Der Benutzer (Client) fragt als erstes die Seite register.jsp an. Das Formular in der Antwort enthält als?action? die validate.jsp. Also schickt der Browser die eingegebenen Daten an die validate.jsp. Die prüft die eingegebenen Werte und gibt dazu die Kontrolle an die entsprechenden Views weiter: an register.jsp (mit Fehler-Hinweis), wenn die Eingaben ungültig waren, sonst an die ok.jsp (mit Erfolgsbestätigung) an. Sind die Eingaben korrekt, werden die Daten zur Speicherung an die UsersBean übergeben. Seite 14

Anhang: Lösungen der Übungsaufgabe Seite 8 : Bus Fahrgast: Baugruppe (?) Vermietung: Koordinator Buch Buchexemplar: Exemplar Seite 15