Software Engineering

Download Report

Transcript Software Engineering

Die Definitionsphase
-Objektorientierte Analyse -
Das statische Modell
1
Vorlesungsinhalt
•
•
•
•
•
Das statisches Modell in der OOA
Objekte und Klassen
Assoziation, Aggregation/Komposition
Vererbung
Klassendiagramm
2
Das statische Modell
• Basiert auf
– objektorientierten Konzepten
– der semantischen Datenmodellierung (ERM)
• Objektorientierte Konzepte
–
–
–
–
Objekt/Klasse
Attribute/Operationen vs. Zustand/Verhalten
Assoziation, Aggregation/Komposition
Vererbung
3
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
4
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
5
Objekte in der UML
• Namen
– Objekt
– Objekt:Klasse
– :Klasse
• Attribute
– Attributname=Attributwert
6
Klassen in der UML
• Namen
– Stereotype (zur Klassifikation von
Modellelementen)
– Merkmale {Kommaliste Schlüsselwort=Wert}
• Attribute
• Operationen
7
Attribute
• Beschreibung durch
– Namen
– Typ
– Anfangswert (optional)
– Restriktionen (constraints;optional)
• Klassenattribute
• abgeleitete Attribute
8
Attribute in der UML
•
•
•
•
•
Attributname: Typ = Wert
Attributname: Typ
Klassenattribut: Typ
/abgeleitetes Attribut:Typ
{ constraints}
• Datentypen in der UML nicht festgelegt
9
Operationen
• Objektoperationen
– lesender Zugriff
– schreibender Zugriff
– Berechnungen
– Verwaltung der Verbindung zu anderen Objekten
– Aktivierung von Operationen anderer Klassen
• Konstruktor- und Destruktoroperationen
• Klassenoperationen
10
Operationen in der UML
• Operation()
• Klassenoperation()
• Verwaltungsoperationen sollten nicht im
Klassendiagramm aufgeführt werden
– Basisoperationen
– externe Verwaltungsoperationen
11
Assoziationen
•
•
•
•
•
Verbindung zwischen Objekten (!)
sind in der OOA generell bidirektional
können Namen haben (bidirektional!)
verbundene Objekte haben Rollen
haben eine Kardinalität
12
Restriktionen für Assoziationen
• rein textuell
– {ordered}
• grafisch und textuell
– {or}, {subset}
• OCL (Object Constraint Language)
13
Spezielle Assoziationen
•
•
•
•
Qualifizierte Assoziationen
Abgeleitete Assoziationen
Reflexive Assoziationen
n-äre Assoziationen
14
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)
15
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
16
Vererbung
• Generalisierung - Spezialisierung
• Basisklasse (base class) - Abgeleitete Klasse
(derived class)
• Jedes Objekt der abgeleiteten Klasse ist ein
Objekt der Basisklasse (Is A - Beziehung)
17
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
18
Begriffe
• Einfachvererbung
• Mehrfachvererbung
– Konfliktbehandlung notwendig?
– eher ein Thema für OOD und OOP
• Diskriminatoren dienen zur Beschreibung des
Spezialisierungskriteriums
– Partitionierung (vollständig, disjunkt)?
19
Der Weg zum statischen Modell
•
•
•
•
•
•
•
Klassen identifizieren
Assoziationen identifizieren
Attribute identifizieren
Vererbungsstrukturen identifizieren
Assoziationen vervollständigen
Attribute spezifizieren
Analysemuster beachten!
20
Checkliste Klasse
• Konstruktiv:
– Dokumentenanalyse
– Beschreibung der Geschäftsprozesse
– Beschreibung der Produktdaten im Lasten- und Pflichtenheft
• Analytisch:
– Klassenname
– Abstraktionsniveau
– Keine Containerklassen
21
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
22
Checkliste Assoziation (2)
• Analytisch:
–
–
–
–
–
–
Benennung von Assoziationen und Rollen
mehrere Assoziationen zwischen Klassen
abgeleitete Assoziationen
assoziative Klassen
1:1 - Assoziationen
Assoziation und Vererbung unterscheiden!
23
Checkliste Attribut
• Analytisch:
–
–
–
–
–
–
Attributname
komplexes Attribut oder Klasse?
Zugehörigkeit zu Klasse oder Assoziation
Schlüsselattribute
Klassenattribute
abgeleitete Attribute
24
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)
25
Checkliste Kardinalität
• Momentaufnahme oder Historie?
• Optionale oder mandatorische Assoziationen?
– Im Zweifelsfall optionale Assoziationen verwenden!
• Feste Werte für Kardinalität?
26
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!
27
Analysemuster (Analysis Patterns)
•
•
•
•
•
Liste
Exemplartyp
Baugruppe
Stückliste
Koodinator
28
Analysemuster (Analysis Patterns)
•
•
•
•
•
Verschiedene Rollen
Wechselnde Rollen
Historie
Gruppe
Gruppenhistorie
29
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?
30