Die Definitionsphase -Objektorientierte Analyse - Das statische Modell

Slides:



Advertisements
Ähnliche Präsentationen
Business Engineering Philipp Osl, Alexander Schmidt
Advertisements

ER-Modell: Objekte und Klassen
Zur Rolle der Sprache bei der Modellierung von Datenbanken
Datenmodellierung Externe Phase Informationsstruktur
23. Grundlagen der objektorientierten Analyse
Vorlesung Softwaretechnik
Objektorientierte Programmierung Definition von Klassen
OO Analyse Analyseprozess Erstellen eines Modells
Assoziationen Verbindungen zwischen Objekten einer Klasse
Methodik: Objektorientierte Analyse
Objektorientierter Entwurf
Objektorientierter Entwurf
WS 04/05 wiss. Übung: Systemanalyse und Softwaredesign
Objektorientierter Entwurf (OOD) Übersicht
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
Abhängigkeitsbeziehung
UML im Überblick – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/22
Objektorientierter Entwurf
Methodik: Objektorientierte Analyse
Objektorientierte Konzepte und Notation in UML
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 5 Polymorphismus Sommersemester 2003 Lars Bernard.
Modellierung komplexer Realität mit Objekten
Das Kernmodell eines Workflow-Management-Systems Entwurf
Übung Datenbanksysteme UML
Software-Technik: (fortgeschrittene) Klassendiagramme
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Objektorientierte DBMS Klassen und Beziehungen Seminar: Verteilte Datenbanken Manuela Fischer.
RDF-Schema Seminar: „Semantic Web“ André Rosin,
DVG Klassen und Objekte
Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl
RelationentheorieObjektorientierte Datenbanken AIFB SS Die Objekt-Definitionssprache ODL (1/24) Alle Elemente des Objektmodells können beschrieben.
1 Klassen (1) Eine Klasse beschreibt eine Menge von Objekten mit gemeinsamer Struktur gemeinsamem Verhalten gemeinsamen Beziehungen gemeinsamer Semantik.
Ralf KüstersDagstuhl 2008/11/30 2 Ralf KüstersDagstuhl 2008/11/30 3.
Rational Rose und UML: Erstellung einer Kontoverwaltung
Unified Modeling Language Einführung zu UML Was ist „UML“?
Objektorientierte Modellierung
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
7. Vorlesung Vererbung Einfach- und Mehrfachvererbung Polymorphismus
6. Vorlesung: Statische Konzepte
12. Vorlesung: Aktivitätsdiagramme
5. Vorlesung: Grundkonzepte Objekt-Orientierung
10. Vorlesung: Dynamische Konzepte
Unified Modeling Language Repetition / Einführung zu UML
Entwurfs- und Implementationsdiagramme
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.
Generalisierung/Spezialisierung Subtypisierung/Vererbung
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Objektorientierte Analyse
UML-Kurzüberblick Peter Brusten.
Vom Geschäftsprozess zum Quellcode
Informatik und Programmieren 3
EPROG Tutorium #4 Philipp Effenberger
Analyseprodukte numerischer Modelle
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
Objektorientierte Modellierung mit UML
Klassen und Klassenstruktur
Unified Modeling Language UML
HG13_ Herzgen, Jung & Lorkowski1 Java Programmierung BlueJ Workshop.
Java-Kurs Übung Besprechung der Hausaufgabe
Sichtbarkeit einschränken
Gerhard Röhner September 2012
UML-Klassendiagramm: Klassen
OCL – Object Constraint Language
 Präsentation transkript:

Die Definitionsphase -Objektorientierte Analyse - Das statische Modell

Vorlesungsinhalt Das statisches Modell in der OOA Objekte und Klassen Assoziation, Aggregation/Komposition Vererbung Klassendiagramm

Das statische Modell Basiert auf Objektorientierte Konzepte objektorientierten Konzepten der semantischen Datenmodellierung (ERM) Objektorientierte Konzepte Objekt/Klasse Attribute/Operationen vs. Zustand/Verhalten Assoziation, Aggregation/Komposition Vererbung

Objekt Gegenstand der Untersuchung individuelles Exemplar von Dingen, Personen, Begriffen besitzt einen Zustand und ein Verhalten Zustand: Attributwerte und Verbindungen zu anderen Objekten Verhalten: Reaktion auf Botschaften der Umwelt besitzt eine eigene Identität

Klasse Menge von Objekten mit Schablone zur Erzeugung von Objekten gleichen Eigenschaften (Attributen) gleichen Beziehungen gleichem Verhalten (Operationen) Schablone zur Erzeugung von Objekten In der OOA wird davon ausgegangen, daß eine Klasse eine Objektverwaltung hat Klassenextension

Objekte in der UML Namen Attribute Objekt Objekt:Klasse :Klasse Attributname=Attributwert

Klassen in der UML Namen Attribute Operationen Stereotype (zur Klassifikation von Modellelementen) Merkmale {Kommaliste Schlüsselwort=Wert} Attribute Operationen

Attribute Beschreibung durch Klassenattribute abgeleitete Attribute Namen Typ Anfangswert (optional) Restriktionen (constraints;optional) Klassenattribute abgeleitete Attribute

Attribute in der UML Attributname: Typ = Wert Attributname: Typ Klassenattribut: Typ /abgeleitetes Attribut:Typ { constraints} Datentypen in der UML nicht festgelegt

Operationen Objektoperationen Konstruktor- und Destruktoroperationen lesender Zugriff schreibender Zugriff Berechnungen Verwaltung der Verbindung zu anderen Objekten Aktivierung von Operationen anderer Klassen Konstruktor- und Destruktoroperationen Klassenoperationen

Operationen in der UML Operation() Klassenoperation() Verwaltungsoperationen sollten nicht im Klassendiagramm aufgeführt werden Basisoperationen externe Verwaltungsoperationen

Assoziationen Verbindung zwischen Objekten (!) sind in der OOA generell bidirektional können Namen haben (bidirektional!) verbundene Objekte haben Rollen haben eine Kardinalität

Restriktionen für Assoziationen rein textuell {ordered} grafisch und textuell {or}, {subset} OCL (Object Constraint Language)

Spezielle Assoziationen Qualifizierte Assoziationen Abgeleitete Assoziationen Reflexive Assoziationen n-äre Assoziationen

Assoziative Klassen Werden eingeführt, wenn Assoziationen Attribute und Verbindungen zu anderen Klassen besitzen Werden häufig aufgelöst in eine eigenständige Klasse und n Assoziationen (für n-äre Assoziationen)

Aggregation / Komposition Whole - Part - Beziehung Komposition ist die stärkere Form: Teile gehören zu einem Zeitpunkt nur zu einem Ganzen Die Dynamik des Ganzen bestimmt die Dynamik der Teile Wird das Ganze gelöscht, so auch die Teile

Vererbung Generalisierung - Spezialisierung Basisklasse (base class) - Abgeleitete Klasse (derived class) Jedes Objekt der abgeleiteten Klasse ist ein Objekt der Basisklasse (Is A - Beziehung)

Abstrakte Klassen Klassen, von denen keine Objekte erzeugt werden können In der UML durch kursive Darstellung des Namens und durch das Merkmal {abstract} gekennzeichnet

Begriffe Einfachvererbung Mehrfachvererbung Konfliktbehandlung notwendig? eher ein Thema für OOD und OOP Diskriminatoren dienen zur Beschreibung des Spezialisierungskriteriums Partitionierung (vollständig, disjunkt)?

Der Weg zum statischen Modell Klassen identifizieren Assoziationen identifizieren Attribute identifizieren Vererbungsstrukturen identifizieren Assoziationen vervollständigen Attribute spezifizieren Analysemuster beachten!

Checkliste Klasse Konstruktiv: Analytisch: Dokumentenanalyse Beschreibung der Geschäftsprozesse Beschreibung der Produktdaten im Lasten- und Pflichtenheft Analytisch: Klassenname Abstraktionsniveau Keine Containerklassen

Checkliste Assoziation (1) Konstruktiv: Zuordnung von Assoziationen zu Kategorien A ist physische, logische Komponente von B oder einer Liste in B A ist Mitglied, organisatorische Einheit von B A benutzt B, A kommuniziert mit B, A besitzt B Assoziationsnamen Rollen Restriktionen

Checkliste Assoziation (2) Analytisch: Benennung von Assoziationen und Rollen mehrere Assoziationen zwischen Klassen abgeleitete Assoziationen assoziative Klassen 1:1 - Assoziationen Assoziation und Vererbung unterscheiden!

Checkliste Attribut Analytisch: Attributname komplexes Attribut oder Klasse? Zugehörigkeit zu Klasse oder Assoziation Schlüsselattribute Klassenattribute abgeleitete Attribute

Checkliste Vererbung Konstruktiv: Analytisch: Ergibt sich durch Generalisierung eine Einfachvererbung? Ergibt sich durch Spezialisierung eine Einfachvererbung? Analytisch: Verständnis des Modells verbessert? Liegt eine Is A - Beziehung vor? Hierarchiestufen (2-4)

Checkliste Kardinalität Momentaufnahme oder Historie? Optionale oder mandatorische Assoziationen? Im Zweifelsfall optionale Assoziationen verwenden! Feste Werte für Kardinalität?

Checkliste Assoziation, Aggregation,Komposition Kriterien für Komposition beachten Zugehörigkeit der Teile zu einem Ganzen Lebensdauer der Teile an die des Ganzen gebunden Dynamik des Ganzen bestimmt Dynamik der Teile Aggregation ist häufig eine Komposition Im Zweifelsfall Assoziation verwenden!

Analysemuster (Analysis Patterns) Liste Exemplartyp Baugruppe Stückliste Koodinator

Analysemuster (Analysis Patterns) Verschiedene Rollen Wechselnde Rollen Historie Gruppe Gruppenhistorie

CRC-Karten Das CASE Tool des kleinen Mannes? Karteikarten Oben wird der Klassenname eingetragen (Class) Links unten werden die Verantwortlichkeiten der Klassen eingetragen (Responsibilities) Rechts unten wird die Zusammenarbeit mit anderen Klassen eingetragen (Collaborations) Verifikation des Modells an der Pinwand?