Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Methodik: Objektorientierte Analyse

Ähnliche Präsentationen


Präsentation zum Thema: "Methodik: Objektorientierte Analyse"—  Präsentation transkript:

1 Methodik: Objektorientierte Analyse
Statisches Modell erstellen

2 Freitag, 10.12.04 15.15 Uhr Hauptgebäude XIa öffentlicher Vortrag
Claus Huitfeld, University of Bergen, Norway Markup Languages for Complex Documents

3 Checklisten statisches Modell
Checklisten für: Klassen Assoziationen Attribute Vererbung

4 Checkliste Klasse: Identifizierung 1
Checkliste Klasse: Identifizierung 1. Durch Dokumentenanalyse (Formularanalyse) Merkmale: Attribute/ Bestandteile der bestehenden Dokumente werden zusammengefasst auch zur Identifizierung von Assoziationen geeignet

5 Checkliste Klasse 2. Mittels Beschreibungen
aus Beschreibungen der Use Cases oder allgemeinen Anforderungsbeschreibungen werden Klassen identifiziert Klassen sind - oft Substantive - manchmal aus Verben ableitbar - durch Attribute identifizierbar

6 Checkliste Klasse 3. Mittels Kategorienbildung
Personen und deren Rollen (in jeder Rolle anderes Verhalten  Rolle = Klasse) Datenspeicherung in Folge einer Aktion (Kategorie= Informationen über Aktionen; Bsp.: Bestellung/ Banküberweisung)  Aktion = Klasse Ort im Sinne funktionaler Trennung (Anmelde-/ Warte-/Abholbereiche  Ort = Klasse) Organisationen Ereignisse Kataloge Verträge ....

7 Checkliste Klasse Analytische Schritte: Validieren
Klassenname: - fachterminologisches, aussagekräftiges Substantiv im Singular - semantisch klar abgegrenzt von anderen Klassennamen - die Gesamtheit der Attribute der Klasse ausdrückend - keine Rollenbeziehung zwischen Klassen wiederspiegelnd - eindeutig im Paket  Modellverständlichkeit Kurzbeschreibung der Klasse Abstraktionsniveau: - zu hoch = zu wenige Klassen, zu niedrig = zu viele Klassen - Richtwerte: ca. 1 Mitarbeiterjahr  Klassen Mitarbeiterjahre  Klassen

8 Checkliste Klasse Analytische Schritte: Validieren
Objektverwaltung: keine Klassen modellieren, die Mengen von Objekten verwalten  Modellverständlichkeit Fehlerquellen: - Zu wenig komplexe Attribute  zu viele Klassen + Assoziationen - Jedes konkrete Objekt als Klasse modellieren - Klasse modelliert Entwurfs- und Implementierungsdetails

9 Checkliste Klasse Ergebnisse:
Klassendiagramm Kurzbeschreibung der Klassen Konstruktive Schritte: Welche Klassen lassen sich mittels Dokumentanalyse identifizieren? Welche Klassen lassen sich aus der Beschreibung der Anwendungsfälle identifizieren? Sind Klassen aus Kategorien zu modellieren? Analytische Schritte: Liegt ein aussagefähiger KIassenname vor? Ist das gewählte Abstraktionsniveau richtig? Fehlerquellen: Zu kleine Klassen (aus jedem Dokument eine Klasse modellieren) Modellierung von Entwurfs- und Implementierungsdetails

10 Checkliste Assoziationen
Zuerst notwendige (nicht unbedingt alle möglichen) Assoziationen ermitteln durch/ aus: Dokumentenanalyse Beschreibungen 2. Schritt: bestimmen von: Kardinalitäten Komposition Aggregation

11 Checkliste Assoziationen Dokumentenanalyse/Beschreibung Use Case
Dokumente/ Use Cases, die auch bei Klassenidentifizierung genutzt werden Direkte Assoziationen und Assoziationen als assoziative Klassen identifizieren

12 Checkliste Assoziationen Analytische Schritte: Validieren
Kardinalitäten, Aggregation und Komposition bestimmen - Gibt die Beschreibung Aufschluss über Objektmengen? - Wie und wann werden Objekte der Klassen erzeugt? - Können beteiligte Objekte gelöscht werden und mit welcher Konsequenz? - Ist ein Objekt der Klasse X Teil von Y ? whole-part- Beziehung * Multiplizität der Agregatklasse <=1  Komposition * wird das Ganze gelöscht, so werden auch alle Teile gelöscht  Komposition Im Zweifelsfall gilt: einfache Assoziation verwenden! - lassen sich über die Natur des Objekts feste Grenzen ableiten? ( z.B.: ein Schachspiel hat zu jeder Zeit höchstens 32 und mindestens 2 Figuren) 2

13 Checkliste Assoziationen Analytische Schritte: Validieren
mögliche Einschränkungen (constraints) identifizieren 2 3

14 Checkliste Assoziationen Analytische Schritte: Validieren
Rollennamen erhöhen die Verständlichkeit (Welche Rolle spielt die Klasse?) Assoziationsnamen: Läßt sich mit den beteiligten Klassen und dem gewählten Assoziationsnamen ein Satz bilden? Gibt es mehrere unterschiedliche Assoziationen zwischen zwei Klassen? * unterschiedliche Bedeutungen einer Assoziation * unterschiedliche Kardinalitäten

15 Checkliste Assoziationen Analytische Schritte: Validieren
Nach abgeleitete Assoziationen überprüfen Eintragung empfiehlt sich - bei existierenden Systemen, um vorhandene Redundanzen zu dokumentieren - evtl. um bessere Übersichtlichkeit zu gewährleisten

16 Checkliste Assoziationen
Ergebnis: Klassendiagramm um Assoziationen erweitert Konstruktive Schritte: Welche Assoziationen lassen sich mittels Dokumentanalyse oder Beschreibungen ableiten? Analytische Schritte: Ist eine Benennung oder Rollenangabe notwendig oder sinnvoll? Existieren zwischen zwei Klassen mehrere Assoziationen? Sind abgeleitete Assoziationen notwendig? Soll eine assoziative Klasse oder eine eigenständige Klasse modelliert werden? Fehlerquelle: Verwechseln von Assoziation mit Vererbung.

17 Checkliste Attribute Ziel: Vervollständigen der Klassenspezifikation
Konstruktive Schritte: - Ableiten aus Dokumentenanalyse oder Beschreibungen der Anforderungen/ Anwendungsfälle - In Beschreibungen oft Substantive Wird das identifizierte Attribute wirklich benötigt (wird es im Laufe seines Lebens einen Wert annehmen)? Welche Daten werden zur Ausführung aller Use Cases benötigt?

18 Checkliste Attribute Analytische Schritte: Validieren
Attributname: kurzes, eindeutiges verständliches Substantiv (Welche Daten repräsentiert das Attribut?) Lassen sich Attribute zu Datenstrukturen zusammenfassen? Gehört ein Attribut zu einer Klasse oder zu einer Assoziation? Muß das Attribut auch dann zu jedem Objekt der Klasse gehören, wenn die betreffende Klasse isoliert von allen anderen Klassen betrachtet wird?  ja= Attribut gehört zur Klasse

19 Checkliste Attribute Validieren
Auf Klassenattribute prüfen - Wert gilt für alle Objekte der Klasse --> Bsp.: fixe Stundenlöhne für alle Personen der Kategorie XY, - Informationen über die Gesamtheit der Objekte  z.B.: Anzahl der Objekte einer Klasse abgeleitete Attribute werden dann in die Klasse eingetragen, wenn z.B. - Ihre Werte für den Benutzer an der Benutzungsoberfläche sichtbar sein sollen Beginn, Ende, /Dauer - die Lesbarkeit verbessert werden soll

20 Checkliste Attribute Ergebnisse:
Klassendiagramm um Attributnamen und -spezifikation erweitert Konstruktive Schritte: Welche Attribute lassen sich mittels Dokumentanalyse oder anhand der Beschreibung von Anforderungen oder Anwendungsfällen identifizieren? Wird das jeweilige Attribut wirklich benötigt? Analytische Schritte: Ist der Attributname geeignet? Einfache Attribute oder Datenstrukturen? Wurde das richtige Abstraktionsniveau gewählt? Gehört das Attribut zu einer Klasse oder einer Assoziation? Liegen Klassenattribute vor? Abgeleitete Attribute verwenden?

21 Checkliste Vererbung Ziel: Zusammenhänge und Unterschiede von Klassen deutlich machen Konstruktive Schritte Ermitteln über bottom-up Vergleiche Gibt es genügend Gemeinsamkeiten zwischen Klassen, die zur Bildung einer gemeinamen Oberklasse berechtigen? Über top-down Inspektion - Kann jedes Objekt der Klasse für jedes Attribut einen Wert annehmen? - (Später:) Kann jede Operation auf jedes Obekt der Klasse angewandt werden? Analytische Schritte Benötigt jede Unterklasse alle geerbten Attribute, Operationen und Assoziationen? Ist die Vererbungshirarchie flach genug?

22 Checkliste Vererbung

23 Checkliste Vererbung Ergebnis:
Klassendiagramm um Vererbungsstrukturen erweitert Konstruktive Schritte: Ergibt sich durch Generalisierung eine Vererbung ? Ergibt sich durch Spezialisierung eine Vererbung? Analytische Schritte: Liegt eine »gute« Vererbungsstruktur vor? Verbesserung des Modells? 3-5 Hierarchiestufen? „Ist-ein“ – Frage stellen

24 Übung 1 Ziel: Statisches Modell (Klassendiagramm) aus allgemeiner Beschreibung erstellen. Für Paletten ist eine Lagerverwaltung zu organisieren, eine Palette kann in einem offenen Lager (z.B. eine große Lagerhalle) stehen. Für jedes offene Lager sind dessen Bezeichnung, der Standort, das Lagerprofil (z.B. Kühlung vorhanden) zu speichern. Eine Palette kann alternativ auf einem Stellplatz in einem Stellplatzlager gelagert werden. Für jeden Stellplatz, der mehrere Paletten aufnehmen kann, sind festzuhalten: Koordinaten und Angabe, ob frei oder belegt ist. Für das Stellplatzlager sind prinzipiell die gleichen Informationen zu speichern wie für das offene Lager, jedoch bezieht sich das Lagerprofil immer auf einzelne Stellplätze. Paletten sollen auch ohne Zuordnung zu einem Lager erfasst werden.

25 Lösung

26 Lösung

27 Lösung

28 Lösung

29 2. Klassen notieren Lager Offenes Lager Stellplatz- Lager Stellplatz
„Lagerhalle“ bezeichnet eine Variante eines offenen Lagers; es bleibt daher als Klasse im primären einfachen Analysemodell unberücksichtigt; eine spätere Modellierung als Subklasse von „Offenes Lager“ (Satz: Lagerhaus IST EIN offenes Lager) ist ggf. möglich. Lager Offenes Lager Stellplatz- Lager Stellplatz Palette

30 3. Attribute hinzufügen Lager bezeichnung standort Offenes Lager
Für das Stellplatzlager sind prinzipiell die gleichen Informationen zu speichern wie für das offene Lager, jedoch bezieht sich das Lagerprofil immer auf einzelne Stellplätze. Lager bezeichnung standort Offenes Lager Stellplatz- Lager profil Stellplatz Palette koordinate profil istFrei Anmerkung: „Kühlung“ ist eine Profilart und bezeichnet zunächst nur einen möglichen Wert für „Lagerprofil“.

31 4. Assoziationen hinzufügen
1. eine Palette kann in einem offenen Lager stehen.. 2. Eine Palette kann alternativ auf einem Stellplatz in einem Stellplatzlager gelagert werden Lager bezeichnung standort Offenes Lager Stellplatz- Lager profil Stellplatz koordinate profil Palette istFrei

32 5. Vererbungsstrukturen identifizieren
Für das Stellplatzlager sind prinzipiell die gleichen Informationen zu speichern wie für das offene Lager Lager bezeichnung standort Offenes Lager Stellplatz- Lager profil Stellplatz koordinate profil Palette istFrei

33 6. Assoziationen verfeinern/ Attribute verfeinern
1. Für jeden Stellplatz, der mehrere Paletten aufnehmen kann,… 2. Eine Palette kann alternativ auf einem Stellplatz in einem Stellplatzlager gelagert werden Lager bezeichnung standort Offenes Lager Stellplatz- Lager profil 1 0..1 1..* {xor} Stellplatz * koordinate 0..1 profil * Palette /istFrei

34 Übung 2 Ziel: Klassendiagramm systematisch aus Beschreibung erstellen
Erstellt werden soll ein Programm, mit dem Leser und ausleihbare Medien einer Bibliothek verwaltet werden können. Zu einem Leser sollen dessen Name, Vorname, Anschrift und eine Kundennummer gespeichert werden. Verliehen werden Bücher und DVDs. Zu einem Buch werden gespeichert der Name des Autors, der Titel, die ISBN-Nummer, zu einer DVD der Titel und die Spielzeit. Alle Medien enthalten eine eindeutige Mediennummer. Ein Leser kann bis zu 10 Bücher oder DVDs auf einmal ausleihen. Ein Medium ist entweder ausgeliehen oder verfügbar.

35 Übung 3 Lernziel: Assoziationen vollständig spezifizieren können
Modellieren Sie folgende Problemstellungen durch Klassen und Assoziationen: Auf einer Palette sind mehrere Fässer. Paletten werden im Normalfall komplett geliefert und im Normalfall komplett weiterverkauft. Es können jedoch auch einzelne Fässer verkauft werden. Leere Paletten und einzelne Fässer können nicht vorkommen. Jedes Projekt hat genau einen Projektleiter, der für mehrere Projekte verantwortlich sein kann. Die meisten Programmierer arbeiten für mehrere Projekte. Jede Hauptabteilung besteht aus mehreren Abteilungen. Die meisten Abteilungen sind in einer Hauptabteilung eingegliedert, die anderen (z.B. Stabsabteilungen) berichten direkt an die Geschäftsleitung. In einer Abteilung sind mehrere Mitarbeiter tätig. Jeder Mitarbeiter ist genau einer Abteilung zugeordnet. Ein Lexikon besteht aus mehreren Bänden. Jedes Buch kann Teil einer Buchreihe sein.


Herunterladen ppt "Methodik: Objektorientierte Analyse"

Ähnliche Präsentationen


Google-Anzeigen