Home

News

Software

Bilder

Texte
  - Börse
  - Favoriten
    - Goddesses
  - Winsock
  - Diplomarbeit
    - Titel
    - Inhalt
    - Einleitung
    - Kapitel 2
      - Kapitel 2-1
      - Kapitel 2-2
      - Kapitel 2-3
    - Kapitel 3
      - Kapitel 3-1
      - Kapitel 3-2
      - Kapitel 3-3
    - Ausblick
    - Literatur
    - Anhang

Alles fliesst

Comics

Musik

Leben

Links

Sitemap

Admin


Zahlreiche Auktionen bei
Henrys Auktionshaus

[ TEXT-INDEX] [ 25-stunden-woche] [ Abteilungsbildung] [ Aggression] [ Alleine-im-all] [ Arbeit-im-wertewandel] [ Arbeitsgestaltung] [ Arbeitszufriedenheit] [ Atlantis] [ Betriebssysteme-fakten] [ Betriebssysteme-fragen] [ Betriebssysteme] [ Casetools] [ Client-server-computing] [ Computerknowhow] [ Das-werkzeug-der-mathematik] [ Datenmodellierung] [ Der-gang-ins-all] [ Der-gekruemmte-raum] [ Dialog-arbeitszufriedenheit] [ Eingliederungs-programme] [ Entscheidungstheorie] [ Evolutionaeres-management] [ Familiaer-fraktales-organisationsmodell-1] [ Familiaer-fraktales-organisationsmodell-2] [ Frauenangst] [ Fuehrung] [ Fuzzy-logic-neuronale-netzwerke] [ Ibm-as400] [ Information-retrieval-systeme] [ Informations-management] [ Informations-technik-1] [ Informations-technik-2] [ Ki-mix] [ Leanmanagement] [ Literarischer-stil] [ Mobbing-als-spiel] [ Moderne-arbeitsformen] [ Mythos-ibm] [ Neuronale-netzwerke-mix] [ Objektorientierte-analyse] [ Objektorientierte-entwicklung-cpp] [ Objektorientierte-entwicklung-mix-1] [ Objektorientierte-entwicklung-mix-2] [ Objektorientierte-metriken] [ Objektorientiertes-design] [ Online-transaction-processing] [ Organisationsanalyse] [ Organisationsentwicklung] [ Organisationskultur] [ Organisationspsychologie1] [ Organisationspsychologie2] [ Organisationsstrukturen] [ Organisationstheorie1] [ Organisationstheorie2] [ Organisatorische-effizienz] [ Organisatorische-fuehrung] [ Outsourcing] [ Papierkorbmodell] [ Pc-host-kommunikation] [ Personalbeurteilung] [ Perspektive-in-der-geschichte] [ Philosophie-der-neuzeit] [ Philosophie-des-mittelalters] [ Property-rights-theorie] [ Rationalisierung-in-der-verwaltung] [ Rechnernetze-fragen] [ Rechnernetze-muendlich] [ Rechnernetze] [ Restrukturierung] [ Revitalisierung] [ Simulation-neuronaler-netzwerke] [ Sw-hw-migration] [ Sw-reuse] [ Transzendenz-kunst-religion] [ Und-ward-nicht-mehr-gesehen] [ Verteilte-betriebssysteme] [ Wissensbasierte-systeme] [ Wissenschaftstheorie] [ Wut-und-ihr-nutzen]


Objektorientiertes Analyse

von Daniel Schwamm (11.04.1994 bis 13.04.1994)

Aus "Heimat des Dilettantismus"
http://www.henrys.de/daniel/index.php?cmd=texte_objektorientierte-analyse.htm
nach Prof. Schader (Wintersemester 1991/92)

Inhaltsverzeichnis

0.  Einleitung - Phasenmodelle

1.  Das Entity Relationship-Modell-Information Modeling

1.1  Begriffe und Notation

2.  Zustandsdiagramme - Lebenszyklen von Informationsobjekten

3.  Strukturierte Analyse

  3.1  Datenflußdiagramme

  3.2  Prozeßspezifikation

  3.3  Data Dictionary

4.  Objektorientierte Analyse

  4.1  Motivation

  4.2  Objektorientierung - Begriffe

  4.3  OOA-Einführung

  4.4  Festlegung von Klassen und Objekten

  4.5  Identifizierung der Strukturen

  4.6  Identifizierung von Subjekten

  4.7  Definition von Attributen

  4.8  Definition von Methoden

0. Einleitung - Phasenmodelle

Zur industriellen Herstellung von SW werden in der Literatur mehrere Phasenmodelle vorgestellt, also Modelle, die vorsehen, die Entwicklung der SW in einer bestimmten Anzahl von Schritten zu realisieren. Sehen wir uns dazu zuerst einmal die klassischen Phasen und ihre Aufgaben an, und danach die diversen Phasenmodelle.

* Analyse: In dieser Phase wird ein Ist-Modells des relevanten Realitätsausschnittes erstellt. Es wird geklärt, was die SW zu leisten hat (nicht wie sie es zu leisten hat!). Als Methoden eignet sich die Entity Relationship-Modellierung, die Strukturierte Analyse oder die OOA.

* Design: In dieser Phase werden die Ergebnisse der Analyse um lösungsspezifische Komponenten erweitert, es wird also geklärt, wie die Anforderungen der Analyse zu erreichen sind. Hier steht die Benutzerführung, die Hardware und das Datenhandling im Mittelpunkt. Im Gegensatz zur Analysephase können die Ergebnisse nun nicht mehr systemunabhängig sein.

* Implementation: In dieser Phase werden die Ergebnisse des Designs (und der Analyse) in eine Programmiersprache umgestezt.

* Test: In dieser Phase wird die Brauchbarkeit und Korrektheit des SW-Produktes überprüft. Wichtig sind v.a. Akzeptanztests bei den späteren Endanwendern.

* Wartung: Ddiese Phase bleibt während des gesamten Produktlebenszyklus bestehen und kann einen Großteil der Entwicklungskosten verschlingen. Es gilt: je genauer analysiert und designed wurden, um so geringer fällt die nötige Wartung aus.

(1) Wasserfallmodell (Boehm): Bei diesem Modell werden die Phasen sequentiell durchlaufen, wobei zwar Rückkopplungen im Prinzip vorgesehen sind, aber aus Kostengründen so selten als möglich durchgeführt werden sollten - schließlich fließt Wasser normalerweise auch nicht bergauf.

(2) Spiralenmodell (Boehm): Bei diesem Modell werden alle Phasen wie beim Wasserfallmodell sequentielle durchlaufen, dies aber immer wieder so oft wie nötig, d.h. nach der Testphase wird erneut analysiert. Zu direkten Rückkopplungen kommt es hierbei nicht.

(3) Fontänenmodell: Bei diesem Modell wird die Sequentialität aufgehoben und explizit Überscheidungen zwischen den Phasen zugelassen, d.h. das Design beginnt, während die Analyse noch in Arbeit ist, so daß Designergebnisse die Analyse beeinflussen können. Dazu ist es wichtig, daß die Ergebnisse der einzelnen Phasen untereinander kompatibel sind - eine Forderung, die der obbjektorientierten Entwicklung bereits sehr nahe kommt.

(4) objektorientierte Entwicklung: Im Gegensatz zu den funktionalen Ansätzen können bei diesem Modell wegen der Methodenhomogenität alle Phasenergebnisse direkt in die nächste Phase übernommen werden, wo sie jeweils phasenspezifisch erweitert werden.

1. Das Entity Relationship-Modell-Information Modeling

Das ERM von Chen dient zur Beschreibung von Daten und ihren STATISCHEN Beziehungen untereinander. Es besitzt den großen Vorteil, daß darauf hierarchische, netzwerkartige, relationale und sogar objektorientierte Datenmodelle aufbauen können.

1.1 Begriffe und Notation

Wir unterscheiden nach Shlaer/Mellor bei ERMs folgende Begriffe:

* Entity: eindeutig identifizierbares Objekt, z.B. "Dagobert"

* Entity-Set: eine Menge gleichartiger Entities, z.B. "Comic-Figuren"

* Attribut: typische Eigenschaft von Entity-Set-Entities

* Schlüssel: minimale und identifizierende Attributeausprägung eines Entities

* Referential Attribute: Schlüssel eines anderen Beziehungs-Entity-Sets

* Relationship-Set: Verknüpfung zweier (verschiedener) Entity-Sets

* 1:1-Relationship-Set: bijektive, binäre Entity-Verknüpfung

* 1:M-Relationship-Set: ein Entity ist mit vielen Entities verknüpft

* N:M-Relationship-Set: viele Entities sind mit vielen Entities verknüpft

* konditionaler Relationship-Set: ein Entity ist nicht an der Beziehung beteiligt

* Supertyp: generalisierter Entity-Set einer "is a"-Beziehung

* Subtyp: spezialisierter Entity-Set einer "is a"-Beziehung

Grafische ERM-Darstellung nach Shlaer/Mellor:

* Entity-Set: Rechteck mit enhaltenden Objektname und Attributen

* Attribut: stehen in Entity-Sets mit vorangehendem Punkt

* Schlüssel: wie Attribut, nur statt eines Punktes ein Stern

* Referential Attribute: wie Attribut, nur mit nachstehenden r in Klammer

* Relationship-Set: Verbindungslinie zwischen den Entity-Sets

* 1:1-Relationship-Set: Doppelpfeil

* 1:M-Relationship-Set: Doppelpfeil mit einseitiger Doppelspitze

* N:M-Relationship-Set: Doppelpfeil mit Doppelspitzen und Raute in der Mitte

* konditionaler Relationship-Set: C über Pfeilspitze ggü. des beziehungslosen Entity

* Super-/Subtyp-Relationship-Set: Linienverbund mit gerader Linie am Kopf

Die Modellierung des 1:1-Relationship-Sets, z.B. zwischen "Kunde" und "Konto", verlangt die Aufnahme eines referentiellen Attributes, z.B. "Kundennummer", in einem der beteiligten Entiy-Sets. Bei der Umsetzung von 1:M-Relationship-Sets geschieht das gleiche, nur daß hier in jedem Fall das Entity-Set das referential Attribut erhält, daß in der Beziehung mehrfach vorkommt. Bei N:M-Beziehungen dagegen kann man auf das referentielle Attribut verzichten, kommt dafür aber nicht umhin, einen neuen Entity-Set zu bilden, dessen Attribute den Schlüsseln der beteiligten Entity-Sets entsprechen. Diesen neuen Entity-Set nennt man auch Korrelationstabelle oder Beziehungs-Entity-Set. Zu beachten ist noch, daß 1:1c-Beziehungen verlangen, daß das referentielle Attribut dem Entity-Set zuzuordnen ist, der an jeder Beziehung teilnimmt. Und 1c:1c-Beziehungen können zuguterletzt ebenso gut über referentielle Attribute realisiert werden wie über Korrelationstabellen.

Zur Spezifikation der Entity-Sets und der Relationship-Sets als unverzichtbarer Bestandteile des Information Modelings werden von Shlaer/Mellor zwei Dokumente vorgeschlagen:

(1) Entity-Spezifikation:

1.	Entity(Attribute)			1.	Seminar(Thema, Zeit, Ort)
Schlüssel: ... Schlüssel: Thema+Zeit
Beschreibung: ... Beschreibung: ...

1.1 Entity.Attribut1 1.1 Seminar.Thema
Beschreibung: ... Beschreibung: ...
Typ: ... Typ: String
Wertebereich: ... Wertebereich: uneingeschränkt
1.2 ...

(2) Relationship-Spezifikation:

1.	Entity1 VERB1 Entity2		1.	Betreuer BETREUT Arbeit (1:Mc)
Entity2 VERB2 Entity1 Arbeit WIRD BETREUT VON Betreuer
Beschreibung: ... Beschreibung: ...

2. Zustandsdiagramme - Lebenszyklen von Informationsobjekten

Im Rahmen des information Modelings werden die Daten eines Systems und ihre Strukturen nur statisch beschrieben; die DYNAMISCHE Sicht auf die daten wird durch Zustandsdiagramme (State Transition Diagrams, STDs) modelliert. Die möglichen Zustände, die ein Entity im Laufe seines "Lebens" annehmen kann, werden hierbei durch die folgenden vier Komponenten pro Entity-Set gekennzeichnet:

(1) Zustand: ein Zustand repräsentiert eine Situation, in der die Eigenschaften des Obhjekts einen definierten Wert besitzen. Grafisch dargestellt wird dies durch ein Rechteck mit dem Zustandsnamen inseitig, z.B. "Warten auf Eingabe".

(2) Zustandsübergang: Objekte können ihrern Zustand in einen bestimmten anderen Zustand ändern. Welche anderen Zustände dies sein können, wird durch Pfeile zwischen den Zuständen symbolisiert.

(3) Ereignis: bevor ein Objekt seinen Zustand ändert, muß mindestens ein bestimmtes Ereignis, z.B. "korrekte Eingabe", eingetreten sein. Dieses Ereignis wird über den Zustandsübergangs-Pfeil geschrieben, den es aktivieren soll.

(4) Aktion: ein Ereignis bewirkt eine unmittelbare Aktion, z.B. "Bildschirm löschen", die das Objekt in den nächsten Zustand überführt. Symbolisiert wird dies durch einen mit einem Strich vom Ereignis abgetrennten Text.

Bleibt nur noch zu sagen: die STDs werden durch die im nächsten Kapitel beschriebene Strukturierte Analyse näher spezifiziert.

3. Strukturierte Analyse

Die Strukturierte Analyse von DeMarco bzw. Yourdon/Constantine ist eine datenflußorientierte (un d also DYNAMISCHE) Vorgehensweise der Systemanalyse. Die in der Strukturierten Analyse erstellten Dokumente sind Datenflußdiagramme, Prozeßspezifikationen und Data Directories.

3.1 Datenflußdiagramme

Ein Datenflußdiagramm (DFD) ist von einem Zustandsdiagramm zu unterscheiden. Es beschreibt ein System in Form eines Netzwerkes und besteht aus den folgenden Elementen:

(1) Datenflüsse: durch einen Pfeil symbolisierter Informationsfluß zwischen Prozessen, Dateien oder Datenquellen/-senken.

(2) Prozesse: durch Kreise symbolisierte Einheiten, in denen Eingangsdatenflüsse in Ausgangsdatenflüsse transformiert werden.

(3) Dateien: durch zwei parallele Striche symbolisierte temporärer Speicher von Daten (Repository), z.B. "Bestelldaten".

(4) Datenquellen/-senken: durch ein Recheck symboloisierte Entität, die außerhalb des zu analysierenden Systems liegen. Sie repräsentieren die Schnittstellen des Systems zur Umwelt hin.

Vorgehensweise der Strukturierten Analyse: anhand der Problemspezifikation wird ein Kontextdiagramm erstellt, das nur aus einem Prozeß und den zugehörigen Datenquellen/-senken besteht. Die Datenflüsse dazwischen werden ihrer Aufgabe gemäß beschriftet. Dieses Kontextdiagramm, insbesonderer der Prozeß, wird in den folgenden Schritten durch neue DFDs immer weiter verfeinert; die Strukturierte Analyse ist also eine "Top down"-Entwurfsmethode. Damit jeder Prozeß eindeutig identifizierbat bleibt, wird er in hierarchischer Form nummeriert (z.B. mit 1., 1.1 und 1.2.3).

Für die Verfeinerung der Prozesse schlägt DeMarco folgende Regeln vor:

(1) Die Verfeinerung des Prozesses n ist im DFD mit der Nummer n enthalten. Z.B. enthält das DFD mit der Nummer 1.2 die Prozesse 1.2.1, 1.2.2, ...

(2) Eingangs- und Ausgangsdatenflüsse müssen balanciert sein, d.h. die Datenflüsse aus Diagramm n müssen auch in Diagramm n+1 vorkommen.

(3) In jeder Hierarchieebene werden Dateien nur dargestellt, falls als Schnittstellen zwischen den Prozessen dienen. Dateien innerhalb von Prozessen werden nicht eingezeichnet.

(4) Sowie Dateien das erstemal dargestellt werden, müssen auch die jeweiligen Zugriffsmöglichkeiten darauf durch Pfeile symbolisiert werden.

(5) Die Verfeinerung ist abgeschlossen, wenn jeder Prozeß durch eine etwa eine Seite umfassende Prozeßspezifikation beschreibbar ist.

3.2 Prozeßspezifikation

Die Prozeßspezifikation wird oft auch auch Minispezifikation oder P-Spec genannt. Sie sind redundanzfreie Beschreibungen der durch den Prozeß vorgenommen Transformationen der Eingangs- in Ausgangsdaten. Für jeden Prozeß, der nicht durch ein DFD weiter verfeinert werden kann, muß eine Prozeßspezifikation vorgenommen werden. Dazu werden drei Methoden verwendet:

(1) Strukturierte Sprache: dient der verbalen Beschreibung eines Prozesses, wobei eine eingeschränktes Vokabular und eine begrenzte Syntax zum Einsatz kommt. Beispiel:

  Für jede Geldausgabe tue folgendes:

    1. Sende Nachricht an Dagobert Duck

    2. Falls Geldausgabe>100 durch Donald Duck erfolgt

      dann generiere Wutanfall Dagoberts

      sonst ignoriere Geldausgabe

(2) Entscheidungstabellen: hiermit werden (nur komplexe) formale Entscheidungsprozesse tabellarisch wiedergegeben, wobei es folgenden Aufbau einzuhalten gilt:

Bedingung: Geldausgabe		| Bedingungsteil: Nein	 Ja    Ja
Betrag > 100 | Nein Nein Ja
-----------------------------------------------------------
Aktion: Wutanfall | Regelteil: X
Ignorieren | X X

(3) Entscheidungsbäume: ???

3.3 Data Dictionary

Im Data Dictionary werden die Zusammensetzung aller Datenflüsse und der in den Datein gespeicherten Datenpackete definiert. Diese Definitionen sollten redundanzfrei und leicht erweiterbar sein, z.B. durch einen hierarchischen Aufbau. DeMarco schlägt folgende Syntaxkonventionen vor:

- Zuweisung: symbolisiert durch "="-Zeichen

- Konjunktion: die Und-Verknüpfung wird durch "+" dargestellt

- Selektion: XOR wird durch "[]" dargestellt

- Wiederholung: Elemente werden durch "{}"-Einklammerung wiederholt

- Option: Elemente in "()"-Klammern sind optional

- Kommentar: Kommenatre werden mit "**" eingeklammert

Geldausgabe = Geldausgeber + Gesamtbetrag + { Bestellposition }

Geldausgeber = Name + Adresse

Gesamtbetrag = [kleiner gleich 100 | größer 100]

Bestellposition = Artikelnummer + Anzahl

Artikelnummer

Typ: Ziffern

Wertebereich: vierstellig

Anzahl

Typ: positiv ganze Zahl

Wertebereich: unbeschränkt

4. Objektorientierte Analyse

4.1 Motivation

Die in den vorherigen Kapiteln vorgestellten Methoden haben sich in der industriellen SW-Entwicklung zwar zu Standards entwickelt, können jeweils aber nur einen Teilaspekt des abzubildenden Systems wiedergeben. Im Hinblick auf objektorientierte Programmiersprachen sind sie mit zusätzlichen Schwächen behaftet, so müssen z.B. in allen Phasen unterschiedliche, nicht-kompatible Methoden zum Einsatz kommen.

Coad und Yourdan entwickelten daher die OOA, die in den folgenden Abschnitten vorgestellt wird.

4.2 Objektorientierung - Begriffe

Folgende Begriffe finden bei objektorientierter SW-Entwicklung allgemeine Verwendung:

* Objekt: entspricht Entity, wobei aber Methoden mitmodelliert werden können

* Methode: Eigenschaft eines Entities, die das Verhalten beschreibt

* Kapselung: Anwender sieht nur Schnittstelle, nicht das Entity-Innenleben

* Klassen: entspricht Entity-Set, das auch Methoden mitenhalten kann

* Instanzen: das sind Objekte einer Klasse (Objekt kann auch klassenlos sein)

* Vererbung: Eigenschaften-Wiedergabe der Bassisklasse an abgeleitete Klasse

* Polymorphismus: ein Methodennamen kann für unterschiedliches Verhalten stehen

4.3 OOA-Einführung

Coad und Yourdon sehen für die OOA fünf grundlegende Aktivitäten vor, die iterativ, aber in belibiger Reihenfolge durchgeführt werden. Dies sind die Aktivitäten:

* Festlegung von Objekten und Klassen

* Identifizierung von Strukturen

* Identifizierung von Subjekten

* Definition von Attributen

* Definition von Methoden

Durch die OOA entsteht ein Analysemodell, bei dem die folgenden fünf Schichten untrschieden werden, wobei der Detaillierungsgrad der Darstellung von den Subjekten in Richtung Methoden zunimmt:

(1) Subjekt-Schicht

(2) Klassen-Schicht

(3) Struktur-Schicht

(4) Attribut-Schicht

(5) Methoden-Schicht

4.4 Festlegung von Klassen und Objekten

* Notation: Klassen werden nach Coad und Yourdon als Rechteck mit runden Ecken dargestellt. Abstrakte Klassen haben nur einen Rand, andere Klassen einen Doppelrand. Im oberen Drittel wird der Klassenname eingetragen, in der Mitte die Attribute und im unteren Drittel die Methoden.

* Vorgehensweise: zur Festlegung/Findung von Klassen und Objekten sind:

- die Endanwender zu befragen, um den relevanten Realitätsauschnitt und das nötige Vokabular zu erfahren.

- der Problembereich vom Systembereich zu trennen, d.h. es muß festgestellt werden, welche Probleme durch das System bearbeitet werden können und welche durch die zu entwicklende SW bearbeitet werden müssen. So können z.B. viele typische Attribute eines Objektes wegfallen, da sie für das zu lösende Problem nicht relavant sind.

- alle Informationen/Strukturen zu sammeln, die mit den modellierten Objekten irgendwie in Beziehung stehen. Dazu sind alle Rollen, externen Systeme, Ereignisse, Organisationseinheiten, Instrumente, Prozesse und Orte festzustellen, z.B. sprechende_Ente, Geldspeicher, Geldausgabe, Familie, Rupfmaschine, Wutanfall und Geschäft.

* Überprüfung: die Klassen, die in das Systemmodell aufgenommen werden, sollten:

- nur für das System relevante Eigenschaften enhalten

- mehr als eine Methode/als ein Attribut enthalten

- mehr als nur ein Objekt enthalten

- nur Eigenschaften enthalten, die für alle Objekte davon gültig sind

- keine ableitbaren/berechenbaren Informationen enthalten

- nur den Problembereich berühren und sich nicht mit Programmierungsdetails befassen

4.5 Identifizierung der Strukturen

Coad und Yourdon unterscheiden zwei Strukturformen (deren Kombination auch eine dritte Strukturform erlaubt), die wir uns in diesem Abschnitt nun einmal ansehen wollen.

(1) Generalisierung-/Spezialisierungsstruktur

* Notation: die Basisklasse steht oben, die abgeleiteten Klassen darunter. Verbunden sind sie über Linien, die bis an die innere Klassenumrandung herangehen, weil die "is a"-Beziehung einen Klassen- und keine Objektbeziehung darstellt. In der Mitte der Verbindung befindet sich ein Halbkreis, dessen "Spitze" auf die Basisklasse weist.

* Vorgehensweise: jede Klasse ist zunächst als Basisklasse zu verstehen. Der Systemanalytiker überlegt sich, welche Klassen ableitbar gestaltbar sind. Danach wird jede Klasse als abgeleitete Klasse gesehen, für die Basisklassen gefunden werden müssen. Wichtig ist, die früheren Ergebnisse der OOA wiederzuverwenden. Gibt es zwischen den Spezialfällen kein Mittelding, dann eignen sich abstrakte Basisklassen zur Generalisierung.

* Hierarchie versus Verband: die Generalisierungs-/Spezialisierungsstruktur kann als Baumhierarchie-Struktur ohne Mehrfachvererbung, oder als Verbund-Struktur mit Mehrfachvererbung modelliert werden. Letzterer Weg ist der bessere, da durch diesen unnötige Redundanzen vermieden werden können - allerdings können leichter Konflikte durch inkonsistente Namensgebungen auftreten (Coad und Yourdon empfehlen diesbezüglich nur, stets eindeutige Namen zu verwenden).

(2) Aggregations-/Zerlegungsstruktur

* Notation: die Aggregationsklasse steht oben, die Zerlegungsklassen darunter. Verbunden sind sie über Linien, die nur bis an die äußeren Objektränder gehen, da die "part of"-Beziehung keine Klassen-, sondern eine Objektbeziehung modelliert. In der Mitte der Verbindung befindet sich ein EDreieck, dessen Spitze auf die Aggegationsklasse weist. Ist die Zerlegungsklasse gar nicht oder mehrfach in der Aggragationsklasse enthalten, so wird die Verbindung direkt unter der Aggregationsklasse mit "0, m" beschriftet - damit wird die Kardinalität wiedergegeben.

* Vorgehensweise: Coad und Yourdon unterscheiden drei Arten von Aggregations-/Zerlegungsstrukturen, nach denen der Systemanalytiker im Problembereich zu suchen hat:

- Gesamt-/Teilstruktur, z.B. Endprodukt--0,m--<|--1--Teilprodukt

- Container-/Inhaltstruktur, z.B. LKW--0,m--<|--0,1--Ladung

- Gruppierung-/Mitgliedstruktur, z.B. Verein--1,m--<|--1,n--Mitglied

(3) Komplexe Strukturen: dies sind Strukturen, die aus einer Kombination von Generalisierungs-/Spezialisierungs- und Aggregations-/Zerlegungstrukturen bestehen, z.B. ist beim Schach die Klasse "Figur" "part of" Klasse "Schachspiel" (Schachspiel--32--<|--1--Figur) und außerdem die Generalisierung der Spezialklassen "Bauer", "Springer", usw. In diesem Beispiel kommt es auch zu einer Verbandstruktur zwischen "Turm", "Läufer" und "Dame".

4.6 Identifizierung von Subjekten

Große Analysemodelle können hunderte von Klassen enthalten. Um hier nicht die Übersicht zu verlieren, können mehrere Klassen zu größeren Einheiten, zu sogenannten Subjekten zusammengefaßt werden. Dadurch werden Diagramme nicht mit Informationen überladen und bleiben nachvollziehbar. Zudem sollen einige Komponenten für den Endanwender auch bewußt unsichtbar gehalten werden.

* Notation: Subjekte werden dadurch dargestellt, daß ein Rahmen um die zugehörigen Klassen gelegt wird, der in den Ecken eine Subjekt-Nummer erhält.

* Vorgehensweise: zunächst wird jeder eigenständige Beziehungsverbund und jede Aggregations- bzw. Zerlegungsklasse als potentielles Subjekt deklariert. Diese Subjekte können zu größeren Subjekten zusammengefaßt werden, sofern sie nach innen Verbindungen aufweisen, nach außern hin - subjektübergreifend - aber nicht. Üblicherweise werden Subjekte bereits früh in das Modell aufgenommen, da sie dann besser von verschiedenen Gruppen bearbeitet werden können.

4.7 Definition von Attributen

* Notation von Attributen: die Attributre einer Klasse werden in das mittlere Drittel des Klassensymbols eingetragen.

* Notation von Objektbeziehungen: durch die Wahl der Attribute kommt es zu relationalen Beziehungen zwischen Objekten verschiedener Klassen. Diese Beziehungen werden ähnlich wie im ERM durch einfache Linien zwischen den Objektumrandungen dargestellt, wobei darauf zu achten ist, daß die Kardinalitäten gerade umgedreht zur ERM plaziert werden. Die Beziehung Server--0,m----1--Client bedeutet also, daß ein Server mit keinem oder mehrern Clients verbunden sein kann, daß ein Client aber stets mit genau einer Serverinsatnz in Beziehung steht. Das gemeinsame Attribut könnte in diesem Falle die Prozeß-ID sein. Die Beziehungslinie kann beschriftet werden.

* Vorgehensweise bei Attributen: die Attribute eines Objektes werden gefunden, wenn man aufzählt, welche Zustände sie einnehmen können, welche Merkmale insgesamt typisch für sie sind und welche davon für den Problembereich relevant sind. Die Normalisierung, die Festlegung der Schlüssel und die Behandlung von ableitbaren Attributen sind Aufgaben des OOD, nicht der OOA! Allerdings läßt sich im Bezug auf ableitbare Attribute vermerken, daß diese so nahe wie sinnvoll an der Generalisierungsklasse liegen sollten.

* Vorgehensweise bei Objektbeziehungen: die Objektbeziehungen (zu denen auch die Aggregations-/Zerlegungsstrukturen gehören) sollten Beziehungen des zu modellierenden Realweltausschnitts wiederspiegeln. Sie alleine verbinden i.d.R. die verschiedenen Subjekte eines OOA-Modells. Bei optionalen Beziehungen ist die Kardinalzahl-Untergrenze 0 und bei obligatorischen Beziehungen ist die Kardinalzahl-Untergrenze 1 oder größer. Nimmt ein Objekt an einer Beziehung nur einmal teil, dann ist die Kardinalzahl-Obergrenze 1, und sonst größer. Bei M:N-Beziehungen sind neue Klassen mit gemeinsamen Attributen zu definieren; zusätzlich können aber auch die direkten M:N-Beziehungslinien bestehen bleiben!

* Überprüfung: Attribute müssen

- für alle Objekte gelten, die sie enthalten

- in mehrfacher Weise in mehreren Objekten einer Klasse vorkommen

- voneinander unableitbar sein

* Attributespezifikationen: in die Spezifikation müssen die Wertebereiche der Attributeausprägungen, die Genauigkeit, mögliche Standardwerte, die Zugriffsrechte und Zusammenhangsbeschreibungen zu anderen Attributen/Objekten eingehen.

4.8 Definition von Methoden

* Notation: die Methoden werden im unteren Drittel des Klassensymbols genannt.

* Vorgehensweise: die Definition der Methoden besteht aus den folgenden fünf Aktivitäten.

- Identifizieren von Objektzuständen: jede Attributeausprägunmgs-Änderung eines Objektes stellt eine Zustandsänderung dar. Um die möglichen Zustände einzuschränken, gibt es zulässige Wertebereiche für die Attributeausprägungen. Grafisch dargestellt wird dies mit Hilfe von STDs.

- Identifizieren benötigter Methoden: Coad und Yourdan unterscheiden zwei Gruppen von Methoden: algorithmisch einfache Methoden und algorithmisch komplexe Methoden. Erstere Methoden werden in der Methodenschicht der OOA NICHT explizit dargestellt; es sind dies die Methoden Create (Objekterzeugung), Connect (Initilaisierung eines Beziehungsobjekts), Access (Attribute-Änderungsaufruf) und Release (Objektlöschung). Die algorithmisch komplexen Methoden dagegen werden explizit dargestellt in der Methoden-Schicht der OOA; mit ihnen werden anhand der Objektzustände neue Objektzustände berechnet.

- Identifizieren von Methodenaufrufen: Objekte kommunizieren über Methodenaufrufe, was in der OOA durch Pfeile vom Sender- zum Empfängerobjekt dargestellt wird.

- Spezifikation der Methoden: kann innerhalb von CASE-Vordrucken realisiert werden, indem die Algorhitmen oder Struktogramme der Methoden mit passender Beschreibung darin niedergelegt werden.


| Home | News | Software | Bilder | Texte | Börse | Favoriten | Goddesses | Winsock | Diplomarbeit | Titel | Inhalt | Einleitung | Kapitel 2 | Kapitel 2-1 | Kapitel 2-2 | Kapitel 2-3 | Kapitel 3 | Kapitel 3-1 | Kapitel 3-2 | Kapitel 3-3 | Ausblick | Literatur | Anhang | Alles fliesst | Comics | Musik | Leben | Links | Sitemap | Admin |

© by DanPHPEd - Letzte Änderung: 15. April 2009