Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

G.Heyer Digitale Informationsverarbeitung 1 24. Methoden und Verfahren der objektorientierten Analyse Realisierung Artikelverwaltung Die folgenden Anforderungen.

Ähnliche Präsentationen


Präsentation zum Thema: "G.Heyer Digitale Informationsverarbeitung 1 24. Methoden und Verfahren der objektorientierten Analyse Realisierung Artikelverwaltung Die folgenden Anforderungen."—  Präsentation transkript:

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

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

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

11 G.Heyer Digitale Informationsverarbeitung 11 Spezifikation der externen Operationen 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 Klasse Artikel

12 G.Heyer Digitale Informationsverarbeitung 12 Operation Bestellung_durchführen() Klasse Lieferantenbestellung // 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 G.Heyer Digitale Informationsverarbeitung 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 G.Heyer Digitale Informationsverarbeitung 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 G.Heyer Digitale Informationsverarbeitung 15 Operation Günstigste_Lieferkondition ermitteln (out Lieferkondition) Für jede Lieferkondition: Lieferkondition.GetEinkaufspreis() Lieferkondition mit dem niedrigsten Einkaufspreis herausfinden 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 Klasse Artikelbestand

16 G.Heyer Digitale Informationsverarbeitung 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 G.Heyer Digitale Informationsverarbeitung 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 G.Heyer Digitale Informationsverarbeitung 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 G.Heyer Digitale Informationsverarbeitung 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 G.Heyer Digitale Informationsverarbeitung 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 G.Heyer Digitale Informationsverarbeitung 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 G.Heyer Digitale Informationsverarbeitung 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 G.Heyer Digitale Informationsverarbeitung 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 G.Heyer Digitale Informationsverarbeitung 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 G.Heyer Digitale Informationsverarbeitung 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 "G.Heyer Digitale Informationsverarbeitung 1 24. Methoden und Verfahren der objektorientierten Analyse Realisierung Artikelverwaltung Die folgenden Anforderungen."

Ähnliche Präsentationen


Google-Anzeigen