OO Analyse und Entwurf für Anwender

Slides:



Advertisements
Ähnliche Präsentationen
ER-Modell: Objekte und Klassen
Advertisements

Objektorientierte Programmierung
Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
UML-Basics: Einführung in Objekt-Orientierte Modellierung mit der Unified Modeling Language Michael Hahsler.
Kapitel 4 Datenstrukturen
Objektorientierte Programmierung Definition von Klassen
Objektorientierter Entwurf
Anwendungsfalldiagramm
Anwendungsfalldiagramm
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Sequenzdiagramm.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
Klassendiagramm Verwandte Begriffe: class, Typ, Objektfabrik
UML im Überblick – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/22
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 5 Polymorphismus Sommersemester 2003 Lars Bernard.
Das Strukturmuster Kompositum von C. Günther, T. Hammerschmidt und D. Kuhn.
Das Kernmodell eines Workflow-Management-Systems Entwurf
Software-Technik: (fortgeschrittene) Klassendiagramme
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Objektorientierte DBMS Klassen und Beziehungen Seminar: Verteilte Datenbanken Manuela Fischer.
Abstrakte Klassen, Interface
DVG Klassen und Objekte
Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl
Klassen 02 - Klassen.
RelationentheorieObjektorientierte Datenbanken AIFB SS Die Objekt-Definitionssprache ODL (1/24) Alle Elemente des Objektmodells können beschrieben.
Klassen und Schnittstellen Klasse: Definiert Zustandsraum ihrer Instanzen vollständig (Implementierung der Struktur, soweit Voraussetzung für die Methoden-
1 Klassen (1) Eine Klasse beschreibt eine Menge von Objekten mit gemeinsamer Struktur gemeinsamem Verhalten gemeinsamen Beziehungen gemeinsamer Semantik.
OO Analyse und Entwurf für Anwender
OO Analyse und Entwurf für Anwender
OO Analyse und Entwurf für Anwender XIII. Objektorientierte Benutzeroberfäche Dr. Michael Löwe.
OO Analyse und Entwurf für Anwender
Übung zum Thema Architektur
OO Analyse und Entwurf für Anwender
UML Begleitdokumentation des Projekts
Objektorientierte Softwareentwicklung
Objektorientierte Modellierung
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Vorgehensmodelle: Schwergewichtige Modelle
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
12. Vorlesung: Aktivitätsdiagramme
Unified Modeling Language Repetition / Einführung zu UML
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Objektorientierte Konzepte/UML Geoinformation I Vorlesung 2 WS 2000/2001.
UML WS 09/10: Datenbanken vs MarkUp Dozent: Prof. Dr. Manfred Thaller
1. Verhalten der Objekte: Operationen Werden in den Klassen definiert Werden (i.d.R.) auf einem Objekt aufgerufen Wird das Empfängerobjekt genannt Weitere.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Strukturierter Entwurf (und Realisierung)
UML-Kurzüberblick Peter Brusten.
UML Modellierung des Verhaltens von Klassen und Objekten
Vom Geschäftsprozess zum Quellcode
SOFTWARE TECHNOLOGY 2009/2010 Faculty of Electrical Engineering and Technical Informatics Budapest University of Technology and Economics OO problems 1.
Wenn alles so einfach wäre
Objektorientierung.
Objektorientierte Modellierung mit UML
Klassen und Klassenstruktur
Software Engineering Grundlagen
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Unified Modeling Language UML
OO Analyse und Entwurf für Anwender XII. Entwurfsmuster Dr. Michael Löwe.
XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.
Sichtbarkeit einschränken
Objektorientierte (OO) Programmierung
Objektorientierte Programmierung Was ist das eigentlich ?
Java-Kurs - 5. Übung Das Paradigma der Objektorientierung (OO)
1. Die rekursive Datenstruktur Liste 1
OO Analyse und Entwurf für Anwender
OO Analyse und Entwurf für Anwender
 Präsentation transkript:

OO Analyse und Entwurf für Anwender X. Der Kern der Objektorientierung: Der Entwurf Dr. Michael Löwe

Prof. Dr. Michael Löwe, FHDW, Hannover Inhalt der Ausbildung Kennzeichen objektorientierter Softwareentwicklung (1) Projektorganisation (2) Architektur (2) Objektorientierte Analyse (4) Objektorientierter Entwurf (5) Realisierung und Test (2) Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Prof. Dr. Michael Löwe, FHDW, Hannover Lernziele Verständnis für die Wichtigkeit des Entwurfs Einsicht in die Dreifaltigkeit Material, Werkzeug, Prozeß Attribute, Operationen, Interaktion Gefühl für den Übergang Analyse / Entwurf Kennenlernen der Beschreibungsmittel Einsicht in den nötigen Detaillierungsgrad Erlernen erster Faustregeln für guten Entwurf Regeln für angemessene Benutzeroberflächen Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Prof. Dr. Michael Löwe, FHDW, Hannover Inhalt Aufgaben und Ergebnisse im Entwurf (Wiederholung) Was ist der Entwurf? Übergang in den Entwurf Das Thema des Entwurfs: Innere (und äußere) Struktur der Klassen Attribute, Operationen, Schnittstellen und Interaktion Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Prof. Dr. Michael Löwe, FHDW, Hannover Aufgaben im Entwurf Abbildung der Analyse-Ergebnisse (ideale Technik) auf die verfügbare Technik Abbildung der Analyseklassen auf DV-Datentypen Abbildung der Analyseobjekte auf DV-Objekte Dabei Abstraktion durch Begrenzung der Eigenschaften Festlegung der konkreten Dienste (Protokolle) Festlegung der konkreten Zusammenarbeit Dabei Festlegung der endgültigen Beziehungsstruktur Berücksichtigung der technischen Belange Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Ergebnisse des Entwurfs Vollständiges Objekt/Klassendiagramm Ergänzung der Analyse-Ergebnisse um technische Klassen Attribute und Operationen (Datentyp) Vererbungsbeziehungen Vervollständigung der Beziehungen Spezifikation der Zusammenarbeit (Interaktion) Sequenzdiagramme für komplizierte Szenarien Angabe zu verwendender Entwurfsmuster Entwurf der Benutzerinteraktion Oberflächenprototypen Dialogfolgeskizzen für Szenarien Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Rückkopplung im Entwicklungsprozeß Analyse Entwurf Analyse Entwurf Realisierung Planung Analyse Entwurf Realisierung Planung Analyse Entwurf Realisierung Planung Analyse Entwurf Realisierung Planung Planung Realisierung Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Prof. Dr. Michael Löwe, FHDW, Hannover Was ist der Entwurf? Die Ergebnisse der Analyse beschreiben die Struktur einer fachlichen Lösung für eine Entwicklungsaufgabe unter der Annahme idealer Technik. Die Ergebnisse des Entwurfs beschreiben die Struktur einer fachlichen Lösung für eine Entwicklungsaufgabe unter der gegebenen Technik. Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Übergang in den Entwurf Kontextdiagramm: System und seine Akteure Anwendungsfalldiagramm: Anwendungsfälle und ihre Akteure Fachlexikon: Fachbegriffe und -strukturen Anwendungsbeschreibung: Systemfunktionen und ihre Abläufe Fachliches Klassenmodell: Klassen und Beziehungen Aktivitätsdiagramme: Aktivitäten und kausale Abhängigkeit Fachliches Klassenmodell: Attribute und Operationen Interaktionsdiagramme: Realisierung der Aktivitäten durch Interaktion von Objekten Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Von der Interaktion zu den Operationen Aktivität: Aus Angebot mit eigenen Daten Vertrag erzeugen Angebot Vertrag Kunde Vertrag erzeugen neu Daten übernehmen *Einzelnes Datum holen Kunde zuordnen Vertrag zuordnen Anschrift zuordnen Anschrift prüfen . Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Übergang in den Entwurf Einfluß der eingesetzten Technik Ober- fläche Persistenz Anwendungsfalldiagramm Anwendungsfallbeschreibung * Fachlexikon Aktivitätsdiagramm Klassenmodell (Struktur) Interaktionsdiagramm * Klassenmodell (vollständig) Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Innere Struktur von Klassen Zustände und Eigenschaften Attribute Typen Verhalten Operationen Methoden Nachrichten Schnittstellen Interaktion Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Beispiel Klassenname Kreis Attributname Attribut-Typ Initialwert radius: Länge mittelpunkt: Punkt = (10,10) zeigDich () versteckDich () setzeMittelpunkt(pos:Punkt) setzeRadius(rad:Länge) liefereRadius():Länge Attributname Attribut-Typ Initialwert Parameter Parameter-Typ Operationsname Rückgabe-Typ Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Beispiel k2 k1 k3 „instance of“ Kreis radius: Länge mittelpunkt: Punkt = (10,10) zeigDich () versteckDich () setzeMittelpunkt(pos:Punkt) setzeRadius(rad:Länge) liefereRadius():Länge k1 k2 k3 „instance of“ k1:Kreis radius = 1 mittelpunkt = (0,0) k2:Kreis radius = 2.5 mittelpunkt = (3,1.25) k3:Kreis radius = 1.5 mittelpunkt = (-1.5,-3) Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Beispiel (Fortsetzung) Kreis radius: Länge mittelpunkt: Punkt = (10,10) zeigDich () versteckDich () setzeMittelpunkt(pos:Punkt) setzeRadius(rad:Länge) liefereRadius():Länge k1 k2 k1:Kreis radius = 1 mittelpunkt = (0,0) k2:Kreis radius = 2.5 mittelpunkt = (3,1.25) k3:Kreis radius = 1.5 mittelpunkt = (-1.5,-3) k3 versteckDich zeigDich Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Prof. Dr. Michael Löwe, FHDW, Hannover Attribut Definition: Ein Attribut ist ein Element, das in jedem Objekt einer Klasse gleichermaßen enthalten ist und von jedem Objekt mit einem individuellen Wert repräsentiert wird. Im Gegensatz zu Objekten haben Attribute außerhalb des Objektes, von dem sie Teil sind, keine eigene Identität. Attribute sind vollständig unter der Kontrolle der Objekte, von denen sie Teil sind. Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Attribut (Beispiele) name : String = ‚Unbekannt‘ angebot : Angebot Elementarer Typ: String, Integer, Float, Character,... name : String = ‚Unbekannt‘ angebot : Angebot rechnungsdatum : Datum farbe : {rot, blau, grün} \alter : Integer {alter = today - gebDatum} vornamen [1..5] : String Typangabe durch Klassenname Aufzählungstyp Abgeleitetes Attribut Mehrfachattribut Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Prof. Dr. Michael Löwe, FHDW, Hannover Operation Definitionen: Operationen sind Dienstleistungen, die von einem Objekt angefordert werden können, sie werden beschrieben durch ihre Signatur (Operationsname, Parameter- und Rückgabespezifikation). Eine Methode implementiert eine Operation. (Sie ist eine Sequenz von Anweisungen/Interaktionen.) Eine Nachricht überbringt einem Objekt die Information darüber, welche Aktivität von ihm erwartet wird und fordert es so zur Ausführung einer Operation auf. Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Operation (Beispiele) Kein Parameter Rückgabetyp freigeben () : Vertragsstatus vergrößern (umFaktor : Real) : GeomFigur setzePosition (x : Integer, y : Integer) rufnrHinzufügen (rufnr : String, art : Rufart) Parameter, Parametertyp Typgleiche Parameter Mehrere Parameter Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Operation, Methode und Nachricht Gekapselt Daten: Attribute Gekapselte Funktionen: Methoden Schnittstelle: Operationen Kunde Dienstleister Nachricht Merke: Eine Operation kann durch diese Trennung über viele verschiedene Methoden realisiert sein!!! Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Operationen und abstrakte Klassen Person Versicherungsnehmer hat * Kommunikationsweg {abstract} = Telefonnr. Versandweg {abstract} standardwegZuordnen (v : Vertrag) 1 Vertrag Faxnr. email-Adr. Anschrift Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Schnittstellenklassen Versteckbar {abstract} zeigDich() versteckDich() „interface“ Versteckbar zeigDich() versteckDich() Kreis radius: Länge mittelpunkt: Punkt = (10,10) zeigDich () versteckDich () setzeMittelpunkt(pos:Punkt) setzeRadius(rad:Länge) liefereRadius():Länge „implements“ Kreis radius: Länge mittelpunkt: Punkt = (10,10) zeigDich () versteckDich () setzeMittelpunkt(pos:Punkt) setzeRadius(rad:Länge) liefereRadius():Länge Versteckbar Kreis radius: Länge mittelpunkt: Punkt = (10,10) zeigDich () versteckDich () setzeMittelpunkt(pos:Punkt) setzeRadius(rad:Länge) liefereRadius():Länge Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Elementare Interaktion Gekapselt Daten: Attribute Gekapselte Funktionen: Methoden Schnittstelle: Operationen Kunde Dienstleister Nachricht Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Prof. Dr. Michael Löwe, FHDW, Hannover Interaktion Aktivität: Aus Angebot mit eigenen Daten Vertrag erzeugen Klassenname Objekt Angebot Vertrag Kunde Vertrag erzeugen neu Nachricht mit Absender und Empfänger Daten übernehmen Iteration *Einzelnes Datum holen Kunde zuordnen Lebenslinie Vertrag zuordnen Anschrift zuordnen Anschrift prüfen . Reihenfolge Zeit  Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover

Prof. Dr. Michael Löwe, FHDW, Hannover Zusammenfassung Entwurf und Analyse haben viele Modelle gemeinsam Analyse: Ideale Technik Entwurf: Gegebene Technik {Bemerkung: Gegebene Technik bewegt stark auf ideale Technik zu!} Entwurf ergänzt die Analysergebnisse Attribute und Operationen Technische Klassen Interaktion Oberflächen Das Ergebnis im Entwurfs ist das Klassenmodell Realisierung implementiert die Methoden Entwurf Prof. Dr. Michael Löwe, FHDW, Hannover