OOAD - Funktionsmodellierung

Die funktionale Modellierung gibt die Prozessperspektive des objektorientierten Analysemodells und einen Überblick darüber, was das System tun soll. Es definiert die Funktion der internen Prozesse im System mit Hilfe von Datenflussdiagrammen (DFDs). Es zeigt die funktionale Ableitung der Datenwerte, ohne anzugeben, wie sie bei der Berechnung abgeleitet werden oder warum sie berechnet werden müssen.

Datenflussdiagramme

Die funktionale Modellierung wird durch eine Hierarchie von DFDs dargestellt. Das DFD ist eine grafische Darstellung eines Systems, die die Eingaben in das System, die Verarbeitung der Eingaben, die Ausgaben des Systems sowie die internen Datenspeicher zeigt. DFDs veranschaulichen die Reihe von Transformationen oder Berechnungen, die an den Objekten oder dem System durchgeführt werden, sowie die externen Steuerelemente und Objekte, die die Transformation beeinflussen.

Rumbaugh et al. haben DFD definiert als: "Ein Datenflussdiagramm ist ein Diagramm, das den Fluss von Datenwerten von ihren Quellen in Objekten durch Prozesse zeigt, die sie zu ihren Zielen auf anderen Objekten transformieren."

Die vier Hauptteile eines DFD sind -

  • Processes,
  • Datenflüsse,
  • Schauspieler und
  • Datenspeicher.

Die anderen Teile eines DFD sind -

  • Einschränkungen und
  • Kontrollflüsse.

Merkmale eines DFD

Prozesse

Prozesse sind die Rechenaktivitäten, die Datenwerte transformieren. Ein ganzes System kann als ein Prozess auf hoher Ebene visualisiert werden. Ein Prozess kann weiter in kleinere Komponenten unterteilt werden. Der Prozess der untersten Ebene kann eine einfache Funktion sein.

Representation in DFD - Ein Prozess wird als Ellipse mit seinem Namen dargestellt und enthält eine feste Anzahl von Eingabe- und Ausgabedatenwerten.

Example - Die folgende Abbildung zeigt einen Prozess Compute_HCF_LCM, der zwei Ganzzahlen als Ein- und Ausgänge für HCF (höchster gemeinsamer Faktor) und LCM (kleinstes gemeinsames Vielfaches) akzeptiert.

Datenflüsse

Der Datenfluss repräsentiert den Datenfluss zwischen zwei Prozessen. Dies kann zwischen einem Akteur und einem Prozess oder zwischen einem Datenspeicher und einem Prozess liegen. Ein Datenfluss bezeichnet den Wert eines Datenelements zu einem bestimmten Zeitpunkt der Berechnung. Dieser Wert wird vom Datenfluss nicht geändert.

Representation in DFD - Ein Datenfluss wird durch einen gerichteten Bogen oder einen Pfeil dargestellt, der mit dem Namen des Datenelements gekennzeichnet ist, das er trägt.

In der obigen Abbildung stellen Integer_a und Integer_b die Eingabedatenflüsse für den Prozess dar, während LCM und HCF die Ausgabedatenflüsse sind.

Ein Datenfluss kann in den folgenden Fällen gegabelt werden:

  • Der Ausgabewert wird an mehrere Stellen gesendet, wie in der folgenden Abbildung dargestellt. Hier sind die Ausgabepfeile unbeschriftet, da sie denselben Wert bezeichnen.

  • Der Datenfluss enthält einen Gesamtwert, und jede der Komponenten wird an verschiedene Stellen gesendet, wie in der folgenden Abbildung dargestellt. Hier ist jede der gegabelten Komponenten beschriftet.

Schauspieler

Akteure sind die aktiven Objekte, die mit dem System interagieren, indem sie entweder Daten erzeugen und in das System eingeben oder vom System erzeugte Daten verbrauchen. Mit anderen Worten, Akteure dienen als Quellen und Senken von Daten.

Representation in DFD- Ein Schauspieler wird durch ein Rechteck dargestellt. Akteure sind mit den Ein- und Ausgängen verbunden und liegen an der Grenze des DFD.

Example - Die folgende Abbildung zeigt die Akteure Customer und Sales_Clerk in einem Counter-Sales-System.

Datenspeicher

Datenspeicher sind die passiven Objekte, die als Datenrepository dienen. Im Gegensatz zu Schauspielern können sie keine Operationen ausführen. Sie werden verwendet, um Daten zu speichern und die gespeicherten Daten abzurufen. Sie repräsentieren eine Datenstruktur, eine Festplattendatei oder eine Tabelle in einer Datenbank.

Representation in DFD- Ein Datenspeicher wird durch zwei parallele Linien dargestellt, die den Namen des Datenspeichers enthalten. Jeder Datenspeicher ist mit mindestens einem Prozess verbunden. Eingabepfeile enthalten Informationen zum Ändern des Inhalts des Datenspeichers, während Ausgabepfeile Informationen enthalten, die aus dem Datenspeicher abgerufen werden. Wenn ein Teil der Informationen abgerufen werden soll, ist der Ausgabepfeil beschriftet. Ein unbeschrifteter Pfeil kennzeichnet den vollständigen Datenabruf. Ein Zwei-Wege-Pfeil impliziert sowohl das Abrufen als auch das Aktualisieren.

Example- Die folgende Abbildung zeigt den Datenspeicher Sales_Record, in dem die Details aller Verkäufe gespeichert sind. Die Eingabe in den Datenspeicher umfasst Details zu Verkäufen wie Artikel, Rechnungsbetrag, Datum usw. Um den durchschnittlichen Umsatz zu ermitteln, ruft der Prozess die Verkaufsaufzeichnungen ab und berechnet den Durchschnitt.

Einschränkungen

Einschränkungen geben die Bedingungen oder Einschränkungen an, die im Laufe der Zeit erfüllt werden müssen. Sie ermöglichen das Hinzufügen neuer oder das Ändern bestehender Regeln. Einschränkungen können in allen drei Modellen der objektorientierten Analyse auftreten.

  • In der Objektmodellierung definieren die Einschränkungen die Beziehung zwischen Objekten. Sie können auch die Beziehung zwischen den verschiedenen Werten definieren, die ein Objekt zu verschiedenen Zeiten annehmen kann.

  • In der dynamischen Modellierung definieren die Einschränkungen die Beziehung zwischen den Zuständen und Ereignissen verschiedener Objekte.

  • In der funktionalen Modellierung definieren die Einschränkungen die Einschränkungen für die Transformationen und Berechnungen.

Representation - Eine Einschränkung wird als Zeichenfolge in geschweiften Klammern gerendert.

Example- Die folgende Abbildung zeigt einen Teil des DFD zur Berechnung des Gehalts von Mitarbeitern eines Unternehmens, das beschlossen hat, allen Mitarbeitern der Verkaufsabteilung Anreize zu bieten und das Gehalt aller Mitarbeiter der Personalabteilung zu erhöhen. Es ist ersichtlich, dass die Einschränkung {Abteilung: Vertrieb} bewirkt, dass der Anreiz nur berechnet wird, wenn die Abteilung Verkauf ist, und die Einschränkung {Abteilung: HR} bewirkt, dass das Inkrement nur berechnet wird, wenn die Abteilung HR ist.

Kontrollflüsse

Ein Prozess kann einem bestimmten Booleschen Wert zugeordnet sein und wird nur ausgewertet, wenn der Wert wahr ist, obwohl es sich nicht um eine direkte Eingabe in den Prozess handelt. Diese Booleschen Werte werden als Kontrollflüsse bezeichnet.

Representation in DFD - Kontrollflüsse werden durch einen gepunkteten Bogen vom Prozess, der den Booleschen Wert erzeugt, zu dem von ihnen gesteuerten Prozess dargestellt.

Example- Die folgende Abbildung zeigt einen DFD für die arithmetische Division. Der Divisor wird auf einen Wert ungleich Null getestet. Wenn es nicht Null ist, hat der Kontrollfluss OK den Wert True und anschließend berechnet der Divide-Prozess den Quotienten und den Rest.

Entwicklung des DFD-Modells eines Systems

Um das DFD-Modell eines Systems zu entwickeln, wird eine Hierarchie von DFDs erstellt. Das DFD der obersten Ebene besteht aus einem einzelnen Prozess und den mit ihm interagierenden Akteuren.

Auf jeder nachfolgenden unteren Ebene werden nach und nach weitere Details aufgenommen. Ein Prozess wird in Unterprozesse zerlegt, die Datenflüsse zwischen den Unterprozessen werden identifiziert, die Kontrollflüsse werden bestimmt und die Datenspeicher werden definiert. Während der Zerlegung eines Prozesses sollte der Datenfluss in oder aus dem Prozess mit dem Datenfluss auf der nächsten DFD-Ebene übereinstimmen.

Example- Betrachten wir ein Softwaresystem, Wholesaler Software, das die Transaktionen eines Großhandelsgeschäfts automatisiert. Der Laden verkauft in großen Mengen und hat eine Kundschaft, die sich aus Händlern und Ladenbesitzern zusammensetzt. Jeder Kunde wird gebeten, sich mit seinen Angaben zu registrieren, und erhält einen eindeutigen Kundencode, C_Code. Sobald ein Verkauf abgeschlossen ist, registriert der Shop seine Daten und sendet die Waren zum Versand. Jedes Jahr verteilt der Shop Weihnachtsgeschenke an seine Kunden, die je nach Gesamtumsatz und Entscheidung des Inhabers aus einer Silber- oder einer Goldmünze bestehen.

Das Funktionsmodell für die Wholesale-Software ist unten angegeben. Die folgende Abbildung zeigt das DFD der obersten Ebene. Es zeigt die Software als einen einzelnen Prozess und die Akteure, die mit ihr interagieren.

Die Akteure im System sind -

  • Customers
  • Salesperson
  • Proprietor

In der nächsten DFD-Ebene werden, wie in der folgenden Abbildung gezeigt, die Hauptprozesse des Systems identifiziert, die Datenspeicher definiert und die Interaktion der Prozesse mit den Akteuren sowie die Datenspeicher eingerichtet.

Im System können drei Prozesse identifiziert werden:

  • Kunden registrieren
  • Verkäufe verarbeiten
  • Bestimmte Geschenke ermitteln

Die erforderlichen Datenspeicher sind -

  • Kundendetails
  • Verkaufsdetails
  • Geschenkdetails

Die folgende Abbildung zeigt die Details des Prozesses Kunden registrieren. Es gibt drei Prozesse: Details überprüfen, C_Code generieren und Kundendetails aktualisieren. Wenn die Details des Kunden eingegeben werden, werden sie überprüft. Wenn die Daten korrekt sind, wird C_Code generiert und die Kundendaten des Datenspeichers aktualisiert.

Die folgende Abbildung zeigt die Erweiterung des Prozesses "Geschenke ermitteln". Es enthält zwei Prozesse: Gesamtumsatz ermitteln und Art der Geschenkmünze festlegen. Der Prozess "Gesamtumsatz suchen" berechnet den jährlichen Gesamtumsatz für jeden Kunden und zeichnet die Daten auf. Ausgehend von dieser Aufzeichnung und der Entscheidung des Inhabers als Eingabe werden die Geschenkmünzen im Rahmen des Verfahrens zur Art der Geschenkmünze zugeteilt.

Vor- und Nachteile von DFD

Vorteile Nachteile
DFDs stellen die Grenzen eines Systems dar und sind daher hilfreich, um die Beziehung zwischen den externen Objekten und den Prozessen innerhalb des Systems darzustellen. Die Erstellung von DFDs dauert lange, was aus praktischen Gründen möglicherweise nicht möglich ist.
Sie helfen den Benutzern, sich mit dem System vertraut zu machen. DFDs liefern keine Informationen über das zeitabhängige Verhalten, dh sie geben nicht an, wann die Transformationen durchgeführt werden.
Die grafische Darstellung dient den Programmierern als Blaupause für die Entwicklung eines Systems. Sie werfen kein Licht auf die Häufigkeit von Berechnungen oder die Gründe für Berechnungen.
DFDs bieten detaillierte Informationen zu den Systemprozessen. Die Erstellung von DFDs ist ein komplexer Prozess, der erhebliches Fachwissen erfordert. Es ist auch für eine nicht technische Person schwer zu verstehen.
Sie werden als Teil der Systemdokumentation verwendet. Die Zubereitungsmethode ist subjektiv und lässt viel Spielraum, um ungenau zu sein.

Beziehung zwischen Objekt-, dynamischen und Funktionsmodellen

Das Objektmodell, das dynamische Modell und das Funktionsmodell ergänzen sich für eine vollständige objektorientierte Analyse.

  • Die Objektmodellierung entwickelt die statische Struktur des Softwaresystems in Bezug auf Objekte. Somit zeigt es die "Macher" eines Systems.

  • Dynamic Modeling entwickelt das zeitliche Verhalten der Objekte als Reaktion auf externe Ereignisse. Es zeigt die Abfolgen von Operationen, die an den Objekten ausgeführt werden.

  • Das Funktionsmodell gibt einen Überblick darüber, was das System tun soll.

Funktionsmodell und Objektmodell

Die vier Hauptteile eines Funktionsmodells in Bezug auf das Objektmodell sind -

  • Process - Prozesse implizieren die Methoden der Objekte, die implementiert werden müssen.

  • Actors - Akteure sind die Objekte im Objektmodell.

  • Data Stores - Dies sind entweder Objekte im Objektmodell oder Attribute von Objekten.

  • Data Flows- Datenflüsse zu oder von Akteuren repräsentieren Operationen an oder durch Objekte. Datenflüsse zu oder von Datenspeichern stellen Abfragen oder Aktualisierungen dar.

Funktionsmodell und dynamisches Modell

Das dynamische Modell gibt an, wann die Operationen ausgeführt werden, während das Funktionsmodell angibt, wie sie ausgeführt werden und welche Argumente benötigt werden. Da Akteure aktive Objekte sind, muss das dynamische Modell angeben, wann es handelt. Die Datenspeicher sind passive Objekte und reagieren nur auf Aktualisierungen und Abfragen. Daher muss das dynamische Modell nicht angeben, wann sie handeln.

Objektmodell und dynamisches Modell

Das dynamische Modell zeigt den Status der Objekte und die Operationen an, die für das Auftreten von Ereignissen und die nachfolgenden Zustandsänderungen ausgeführt wurden. Der Zustand des Objekts infolge der Änderungen wird im Objektmodell angezeigt.