Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

24. Methoden und Verfahren der objektorientierten Analyse Realisierung

Ähnliche Präsentationen


Präsentation zum Thema: "24. Methoden und Verfahren der objektorientierten Analyse Realisierung"—  Präsentation transkript:

1 24. Methoden und Verfahren der objektorientierten Analyse Realisierung
Artikelverwaltung Die folgenden Anforderungen beschreiben eine einfache Artikel-verwaltung, die objektorientiert zu modellieren ist.

2 10 Schritte bis zum OOA-Modell
1 Finden Sie Klassen (  Klassen) Für jede Klasse nur soviele Attribute und Operationen identifizieren, wie für das Problemverständnis und das einwandfreie Identifizieren der Klasse notwendig sind. 2 Finden Sie Assoziationen und Aggregationen ( Assoziationen,  Aggregationen,  Kardinalitäten,  Muster) Parallel zu 1 Assoziationen und / oder Aggregationen ermitteln, wobei die Unterscheidung zwischen beiden noch nicht relevant ist. Kardinalitäten können zunächst vernachlässigt werden. 3a Finden Sie Attribute für jede Klasse ( Attribute) Weitere Attribute identifizieren und spezifizieren.

3 3b Finden Sie externe Operationen für jede Klasse ( Operationen)
(Externe Operationen werden durch Botschaften, die von der Benutzungs-Oberfläche kommen, aktiviert). Alle Operationen, die an der Benutzungs-Oberfläche sichtbar sind, identifizieren. 3a und 3b können vertauscht oder parallel durchgeführt werden. 4 Erstellen Sie den Objekt-Lebenszyklus ( Objekt-Lebenszyklus) Jede Klasse daraufhin überprüfen, ob ein nicht-trivialer Objekt-Lebenszyklus erstellt werden kann. Daraus lassen sich oft weitere Operationen ableiten. 5 Finden Sie Vererbungsstrukturen ( Vererbung,  Muster) Erste Strukturen aufgrund der eingetragenen Attribute und Operationen aufstellen.

4 6 Finden Sie interne Operationen für jede Klasse ( Operationen,  Botschaften,  Objekt-Lebenszyklus) (Interne Operationen werden von Botschaften anderer Objekte aktiviert). Aus externen Operationen (Schritt 3b) interne ableiten, einschließlich der Ein- / Ausgabeschnittstelle. Dazu Botschaftswege eintragen und / oder Interaktionsdiagramme erstellen. 7 Spezifizieren Sie Operationen ( Botschaften,  Objekt-Lebenszyklus) Mischung aus freiem Text, Pseudo-Code-Konstruktionen und Standardbefehlen von impliziten Operationen verwenden. 8 Überprüfen Sie die Vererbungsstrukturen (Vererbung,  Muster) Aufgrund der eingetragenen internen Operationen nochmals die Vererbungsstruktur überprüfen und ggf. korrigieren.

5 9 Überprüfen Sie Assoziationen und Aggregationen
( Assoziationen, Aggregationen, Kardinalitäten,  Muster) Aufgrund der Kommunikation zwischen den Objekten Assoziationen und Aggregationen überprüfen und ggf. korrigieren. Endgültige Festlegung auf Assoziationen oder Aggregationen sowie Festlegung der Kardinalitäten. 10 Finden Sie Subsysteme ( Subsysteme) Umfaßt das OOA-Modell mehr als eine DIN A4-Seite, dann bereits bei der Klassenidentifizierung grobe Subsystem-Bildung vornehmen, z.B. durch geeignete grafische Anordnung der Klassen.

6 Lastenheft Artikelverwaltung
/LF 10/ Die Firma will ihre Artikel und Bestellungen verwalten. /LF 20/ Für jeden Artikel werden die Artikelnummer, die Artikelbezeichnung und der Verkaufspreis festgehalten. Jeder Artikel gehört zu einer oder mehreren Artikelgruppen. /LF 30/ Jeder Artikel kann an mehreren Orten gelagert werden. Beispielsweise lagert die Firma Artikel in ihren Filialen in Essen und Düsseldorf. Pro Lagerort werden für jeden Artikel dessen Maximalbestand, Mindestbestand, aktueller Bestand und Name des Lagers gespeichert. Eine Lagerliste soll Auskunft über die Bestände geben. /LF 40/ Jeder Artikel kann von verschiedenen Lieferanten bezogen werden. Dabei gibt es je nach Lieferant unterschiedliche Einkaufspreise und Verpackungseinheiten. Bei jedem Lieferanten besitzt der Artikel eine eigene Bestellnummer.

7 /LF 50/ Für jeden Lieferanten müssen dessen Name, Adresse, Telefonnummer und der Ansprechpartner gespeichert werden. Jeder Lieferant kann mehrere Artikel liefern. /LF 60/ Jeden Tag werden die Lagerbestände kontrolliert. Wird der Mindestbestand unterschritten, so wird ein Bestellvorschlag erstellt. Er enthält außer den Daten eines Artikels auch die verschiedenen Lieferanten mit ihren Lieferkonditionen. Für jedes Lager wird errechnet, wie viele Artikel nachbestellt werden müssen. Die vorgeschlagene Anzahl errechnet sich aus dem Maximalbestand und dem aktuellen Bestand. Diese Anzahl ist auf ein n-faches der Verpackungseinheit eines jeden Lieferanten abzurunden. /LF 70/ Jeder Artikel kann in beliebiger Anzahl bestellt werden. Dabei wird vom System automatisch der günstigste Lieferant ausgewählt. /LF80/ Jeder Artikel wird einzeln bei einem Lieferanten bestellt. Für jede Lieferantenbestellung werden das Bestelldatum und das Lieferdatum festgehalten. Der Einfachheit halber schließen wir Teillieferungen aus.

8 /LF 90/ Ein Kunde kann eine oder mehrere Bestellungen erteilen, die erfaßt werden müssen.
Jede Bestellung erhält eine eindeutige Bestellnummer. Außerdem werden das Bestelldatum, das Lieferdatum und die Portokosten festgehalten. /LF 100/ Jede Kundenbestellung kann sich auf mehrere Artikel beziehen. Für jeden bestellten Artikel ist die gewünschte Anzahl festzuhalten. Außerdem kann der Gesamtpreis für mehrere Artikel ungleich Anzahl*Verkaufspreis sein. /LF 110/ Jede Kundenbestellung wird von einem Sachbearbeiter bearbeitet. Für jeden Sachbearbeiter sollen dessen Personalnummer, ein Kürzel, der Name und die Telefonnummer gespeichert werden. /LF 120/ Außerdem sollen folgende Statistiken erstellt werden: Welchen Umsatz hat ein Kunde X im aktuellen Jahr erzielt? Welchen Umsatz hat ein Sachbearbeiter X mit seinen verschiedenen Kunden erzielt?

9 Klassendiagramm der Artikelverwaltung
Lieferkondition Einkaufspreis Verpackungseinheit Bestellnr Lieferant Person Name Telefon Artikel Nummer Bezeichnung Verkaufspreis Artikelgruppen Bestellvorschlag erst.(K) Günstigste Lieferkondition 1 0, m 0, m 1 Lieferant Adresse Ansprechpartner 0, m Lierferanten-Bestell. Bestelldatum Lieferdatum Anzahl Bestellung durchführen 1 0, m 0, m 1 0, m 1 Artikelbestand Maximalbestand Mindestbestand Aktueller Bestand Lagername Lagerliste drucken(K) Nachbestellung ermitteln Kunde Nummer Adresse Umsatz im Jahr Kundenbestellung Bestellnr Bestelldatum Lieferdatum Portokosten/Rechn.betrag Erfassen 1 1, m 1 Sachbearbeiter Personalnr Kürzel Umsatz pro Kunde 1, m 0, m Bestellposten Anzahl Artikel Gesamtpreis 1 1

10 Artikelverwaltung Artikel Nummer Bezeichnung Verkaufspreis
Artikelgruppen Für alle Objekte der Klasse: (Lieferant) Müller Textil&Co ... (Lieferkondition) 10,00 50 7125 (Artikel) 1234 T-Shirt 20,00 Freizeit, Sport Nachbestellung ermitteln (Anzahl, Lagername) (Lieferant) Blues Jeans-Laden (Lieferkondition) 12,00 20 8957 (Artikelbestand) 70 35 40 Düsseldorf (Artikelbestand) 100 65 50 Essen Assoziation bzw. Aggregation Objektverwaltung

11 Spezifikation der externen Operationen
Klasse Artikel Operation Bestellvorgang_erstellen() // Für alle Artikel ist für jedes Lager und als Gesamtsumme zu // ermitteln, welche Anzahl bis zum Maximalbestand fehlt, wobei die // Verpackungseinheiten zu berücksichtigen sind; alle Lieferanten mit // ihren Lieferkonditionen sind anzugeben Für alle Objekte der Klasse: Für jeden Artikelbestand: Artikelbestand.Nachbestellung_ermitteln (out Anzahl, Lagername) Summe = Anzahl von allen Lagerorten Für jede Lieferkondition: Lieferkondition.GetVerpackungseinheit(); GetLieferant() Summe auf n-faches von Verpackungseinheit abrunden

12 Operation Bestellung_durchführen()
Klasse Lieferantenbestellung Operation Bestellung_durchführen() // Bestellung eines gewählten Artikels in der gewünschten Anzahl, wobei // das System den günstigsten Lieferanten wählt Artikel auswählen Eingabe der Anzahl zu bestellender Artikel Artikel.Günstige_Lieferkondition_ermitteln(Lieferkondition) Lieferkondition.GetVerpackungseinheit() Anzahl auf Verpackungseinheiten abrunden Lieferkondition.GetLieferant() Lieferanten_Bestellung.Create(Bestelldatum, Anzahl) Von der Klasse Lieferanten-Bestellung existiert ein temporärer Botschaftsweg zur Klasse Lieferkondition. Die Empfängerobjekte der Klasse Lieferkondition werden durch die Operation „Artikel.Günstige_Lieferkondition?“ festgestellt.

13 Operation Erfassen() Klasse Kundenbestellung // Bestellung eines Kunden erfassen, wobei für jeden // bestellten Artikel ein Bestellposten anzulegen ist. Kunden-Bestellung.Create(Bestell-Nr, Bestelldatum) Für jeden Bestellposten: Eingabe von Artikelnummer und Anzahl Bestellposten.Create(AnzahlArtikel) Bestellposten.SetGesamtpreis() = AnzahlArtikel * Artikel.GetVerkaufspreis() oder Sonderpreis Rechnungspreis = Summe aller Gesamtpreise + Portokosten SetLieferdatum(), SetPortokosten() Von der Klasse Kunden-Bestellung existiert ein temporärer Botschaftsweg zur Klasse Artikel. In der Bestellung sind die gewünschten Artikel eindeutig identifiziert. Wir können daher direkt auf die Daten der jeweiligen A. zugreifen.

14 Operation Umsatz im Jahr (in Jahr, out Umsatz)
Klasse Kunde //Für einen Kunden ist der Gesamtumsatz des // Jahres zu ermitteln Für jede Kundenbestellung Kunden-Bestellung.Get(Rechnungsbetrag(); GetBestelldatum() Umsatz = Summe aller Rechnungsbeträge des angegebenen Jahres Operation Umsatz pro Kunde (out Umsatz) Klasse Sachbearbeiter //Für jeden Sachbearbeiter ist die Höhe des Umsatzes // für jeden Kunden zu ermitteln Für jede Kunden-Bestellung Kunden-Bestellung.GetRechnungsbetrag(); GetKunde() addiere alle Rechnungsbeträge pro Kunde separat auf

15 Operation Günstigste_Lieferkondition ermitteln (out Lieferkondition)
Für jede Lieferkondition: Lieferkondition.GetEinkaufspreis() Lieferkondition mit dem niedrigsten Einkaufspreis herausfinden Klasse Artikelbestand Operation Lagerliste drucken() // Falls der Mindestbestand eines Artikels in diesem Lager // unterschritten ist, soll auf den Maximalbestand aufgefüllt werden Rest = Aktueller Bestand - Mindestbestand Wenn kein Rest vorhanden ist dann Anzahl = Maximalbestand - Aktueller Bestand

16 Checkliste „So finden Sie Klassen“
1 Lassen sich konkrete Objekte identifizieren? Bei technischen Systemen bieten sich die realen Objekte als Ausgangsbasis an. Bei kommerziellen Systemen finden sich Objekte oft in Formularen. 2 top-down und /oder bottom-up-Vorgehensweise?

17 top-down Liegen verbale Anforderungen vor, dann Text durchgehen und nach Klassen durchsuchen. Handelt es sich um eine potentielle Klasse? Besitzt die Klasse Attribute und Operationen oder nur Operationen? bottom-up Attribute (Daten) und Operationen(Funktionen) sammeln. Attribute und Operationen zu Klassen zusammenfassen. Der Klassenname muß der Gesamtheit der Attribute entsprechen, im Zweifelsfall mehrere Klassen. Im 1. Schritt Attribute und Operationen nur soweit ausfüllen, um Klassen eindeutig zu identifizieren.

18 Checkliste: „So finden Sie Assoziationen“
1 Liegen zwischen Objekten permanente Beziehungen vor? Welche Beziehungen existieren? Existieren sie für einen längeren Zeitraum? Sind die Assoziationen problemrelevant? Existiert eine Beziehung unabhängig von allen nicht beteiligten Klassen? In der Problembeschreibung nach Verben suchen, insbesondere: a) räumliche Nähe (in der Nähe von) d) Besitz (hat) b) Aktionen (fährt) e) allgemeine Beziehungen c) Kommunikation (redet mit) (verheiratet mit)

19 Checkliste: „So finden Sie Aggregationen“
1 Existieren eine Rangordnung und ein enger semantischer Zusammenhang? Läßt sich die Beziehung durch „besteht aus“ oder „ist Teil von“ beschreiben? Kann problemlos angegeben werden, ob eine Klasse Aggregat oder Teil in der Beziehung ist? Besteht ein enger semantischer Zusammenhang? Gehören die beteiligten Klassen in ein Subsystem? Wenn der Zugriff auf die Teilobjekte ausschließlich über das Aggregat- Objekt erfolgt, dann liegt eindeutig eine Aggregation vor.

20 Checkliste: „So ermitteln Sie die richtigen Kardinalitäten“
Die Kardinalitäten gelten ausschließlich für binäre Assoziationen und Aggregationen. Für jede Seite einer Assoziation / Aggregation ist folgendes zu überlegen: 1 Liegt eine Muß-Beziehung vor? Sobald das Objekt erzeugt ist , muß auch die Beziehung zu dem anderen Objekt aufgebaut werden. 2 Liegt eine Kann-Beziehung vor? Die Beziehung kann zu einem beliebigen Zeitpunkt nach dem Erzeugen des Objekts aufgebaut werden. 3 Ist die Obergrenze fest oder variabel? Ist eine Obergrenze vom Problem her zwingend vorgesehen? Im Zweifelsfall mit variablen Obergrenzen arbeiten. 4 Gelten besondere Bedingungen? Beispiele: Gerade Anzahl, mindestens 2, maximal 6.

21 Checkliste: „So finden Sie Attribute“
1 Ist ein Attribut problemrelevant im Sinne der Systemanalyse? Ist jedes Attribut Gegenstand der Systemanalyse? Kann jedes Attribut „im Laufe seines Lebens“ einen Wert annehmen? Ist jedes Attribut relevant für die zu modellierende Anwendung? 2 Welcher Blickwinkes und welches Abstraktionsniveau ist relevant? Ist jedes Attribut unter dem jeweiligen Blickwinkel von Bedeutung? Würden für jedes Attribut geeignete Datenstrukturen gebildet? 3 Ist ein Schnappschuß oder die Historie zu modellieren? Soll ein Objekt die Attributwerte zu einem bestimmten Zeitpunkt enthalten? Soll ein Objekt die Attributwerte über einem gewissen Zeitraum enthalten? Anfragen dazu an das System formulieren.

22 Checkliste: “So finden Sie Operationen“
1 Welche Aufgaben müssen realisiert werden? Fragen Sie: „Welche Aufgaben hat das System zu erfüllen?“ Fragen Sie nicht: „Welche Operationen enthält jede Klasse?“ 2 Auf welche Ereignisse muß das System reagieren? Überlegen Sie, welche Ereignissen in der Umgebung für das System relevant sind. Für jedes Ereignis muß eine (externe) Operation existieren, die darauf reagiert bzw. entdeckt, daß ein entsprechendes Ereignis vorliegt. Unterscheiden Sie externe Ereignisse und zeitliche Ereignisse.

23 Checkliste: „So erstellen Sie einen Objekt-Lebenszyklus“
1 Besitzt das Objekt einen nicht-trivialen Lebenszyklus? Ein Objekt-Lebenszyklus sollte spezifiziert werden, wenn gilt: a) Das gleiche Ereignis kann - in Abhängigkeit von dem Zustand, in dem sich das Objekt befindet - unterschiedliche Aktionen auslösen. b) Die Operationen können nur in bestimmten Situationen auf ein Objekt angewendet werden. Tritt in einem anderen Zustand eine entsprechende Botschaft bzw. ein Ereignis auf, so wird sie bzw. es ignoriert. Ein trivialer Objekt-Lebenszyklus liegt vor, wenn er nicht zum besseren Verständnis der Problematik beiträgt.

24 Checkliste: „So erstellen Sie Vererbungsstrukturen“
1 Liegt eine Struktur der Einfachvererbung vor? Entweder bottom-up (Generalisieren), top-down (Spezialisieren) oder kombiniert. bottom-up: Von den spezialisierten zu den allgemeineren Klassen. a) Bilden einer neuen Oberklasse aus Klassen, die gemeinsame Attribute/ Operationen besitzen. - Ist die Generalisierung / Spezialisierung erfüllt? - Ist die neue Klasse eine abstrakte Klasse? - Liegt die neue Klasse innerhalb des Problembereichs? b) Auswählen einer existierenden Oberklasse? - Ist ein Teil der Attribute / Operationen einer Klasse bereits in einer anderen Klasse definiert? - Gilt die Generalisierung / Spezialisierung?

25 top-down: Von den allgemeineren Klasse ausgehend spezialisierte suchen.
a) Kann ein Objekt für jedes seiner Attribute immer einen Wert besitzen? Kann jede Operation angewendet werden? b) Können aus Klassen, die sehr viele Attribute / Operationen besitzen spezialisierte Klassen gebildet werden? 2 Liegt eine Struktur der Mehrfachvererbung vor? Prüfen, ob eine gegebene Klasse eine Unterklasse von zwei oder mehr Klassen sein kann. Lösung von Namenskonflikten. a) Bei Namenskonflikten müssen die Attribute / Operationen der Oberklassen umbenannt werden, oder es muß auf die Mehrfachvererbung verzichtet werden. b) Attribute, die in den Oberklassen namentlich identisch sind, müssen auch vom selben Typ sein. c) Bei der Unterklasse wird durch Angabe der jeweiligen Oberklasse festgelegt, welches Attribut bzw. Operation geerbt werden soll.


Herunterladen ppt "24. Methoden und Verfahren der objektorientierten Analyse Realisierung"

Ähnliche Präsentationen


Google-Anzeigen