310 likes | 447 Views
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 objektorientierten Konzepten
E N D
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 • 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 • 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 • Objekt • Objekt:Klasse • :Klasse • Attribute • Attributname=Attributwert
Klassen in der UML • Namen • Stereotype (zur Klassifikation von Modellelementen) • Merkmale {Kommaliste Schlüsselwort=Wert} • Attribute • Operationen
Attribute • Beschreibung durch • 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 • 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: • 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: • 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-KartenDas 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?