Wednesday 29 November 2017

Trading House Automation System Dfd


Funktionsorientierter Softwareentwurf (Fortsetzung) Vortrag 6 Dr. R. Mall 2 Organisation dieser Vorlesung Kurzer Überblick über die bisherigen Vorlesungen. Funktionsorientierte Softwaregestaltung Fortsetzung: Vorlesung 6 - PowerPoint PPT Presentation Transcript und Presenters Notes Titel: FunctionOriented Software Design Fortsetzung: Ein größeres Beispiel für Strukturierte Analyse Strukturiertes Design Ein wesentliches Ziel dieser Vorlesung ist, dass Sie in der Lage sein sollten, strukturiertes Design aus jedem DFD-Modell zu entwickeln. Beispiele Zusammenfassung 3 Rückblick auf die letzte Vorlesung In der letzten Vorlesung haben wir begonnen, die Diskussion über die Strukturierte Analyse / Strukturierte Konstruktion (SA / SD) zu studieren. SA / SD besteht aus zwei wichtigen Teilen strukturierte Analyse strukturierte Design. 4 Überprüfung der letzten Vorlesung Das Ziel der strukturierten Analyse führt zur funktionalen Zersetzung. Datenflussdiagramme (DFDs) darstellen. DFDs sind ein hierarchisches Modell Wir untersuchten, warum jedes hierarchische Modell ist leicht zu verstehen Nummer 7 heißt die magische Zahl. 5 Überprüfung der letzten Vorlesung Während der strukturierten Analyse findet auch eine Funktionszerlegung statt, die Datenzerlegung findet statt. Auf der abstraktesten Ebene Kontext Diagramm verfeinert, um detailliertere Ebenen. Wir diskutierten zwei kleine Beispiele RMS-Berechnungssoftware tic-tac-toe Computerspielsoftware 6 Überprüfung der letzten Vorlesung Mehrere CASE-Tools stehen Ihnen bei der Planung von Aktivitäten zur Verfügung, um das Datenwörterbuch zu pflegen, zu überprüfen, ob DFDs ausgeglichen sind usw. DFD-Modell ist schwer zu implementieren Muss eine Programmiersprache in strukturiertes Design umgesetzt werden. 7 Beispiel 3 Handelshaus-Automatisierungssystem (TAS) Ein großes Handelshaus möchte, dass wir eine Software entwickeln, um Buchhaltungstätigkeiten mit ihrem Geschäft zu automatisieren. Es hat viele Stammkunden, die Bestellungen für verschiedene Arten von Rohstoffen. 8 Beispiel 3 Handelshaus-Automatisierungssystem (TAS) Das Handelshaus unterhält Namen und Adressen seiner Stammkunden. Jedem Kunden wird eine eindeutige Kundennummer (CIN) zugewiesen. Nach der laufenden Praxis, wenn ein Kunde die Bestellung bestellt, prüft die Buchhaltung zunächst die Kreditwürdigkeit des Kunden. 9 Beispiel Handelshaus-Automatisierungssystem (TAS) Die Kreditwürdigkeit eines Kunden wird durch die Analyse der Geschichte seiner Zahlungen an die ihm in der Vergangenheit gesendeten Rechnungen bestimmt. Wenn ein Kunde nicht kreditwürdig ist, werden seine Aufträge nicht weiter verarbeitet, eine entsprechende Ablehnungsnachricht wird für den Kunden generiert. 10 Beispiel Handelshaus-Automatisierungssystem (TAS) Wenn ein Kunde kreditwürdige Gegenstände bestellt hat, die er / sie bestellt hat, werden sie gegen die Liste der Gegenstände, mit denen sich das Handelshaus befasst, geprüft. Die Posten, für die das Handelshaus nicht zuständig ist, werden nicht weiter verarbeitet. Für diese Posten wird eine entsprechende Meldung für den Kunden generiert. 11 Beispiel Handelshaus-Automatisierungssystem (TAS) Die Positionen eines Kundenauftrags, die das Handelshaus befasst, werden auf Verfügbarkeit im Inventar überprüft. Sind die Positionen im Bestandsverzeichnis in gewünschten Mengen vorhanden, wird eine Rechnung mit der Weiterleitungsadresse des Kunden ausgedruckt. Wird ein Materialausgabebeleg gedruckt. 12 Beispiel Handelshaus-Automatisierungssystem (TAS) Der Kunde kann den Materialausgangsschein am Lagerhaus abholen. Inventurdaten angepasst, um den Verkauf an den Kunden widerzuspiegeln. 13 Beispiel Handelshaus-Automatisierungssystem (TAS) Wenn eine bestellte Position im Inventar nicht in ausreichender Menge zur Verfügung steht, um ausstehende Bestellungen zu erfassen, können Sie die Details in einer ausstehenden Bestandsliste mit der bestellten Menge abrufen. Kundennummer 14 Beispiel Trading-House Automation System (TAS) Die Einkaufsabteilung würde regelmäßig Befehle ausgeben, um Einrückungen zu erzeugen. Wenn der Befehl "Einzug erzeugen" ausgegeben wird, sollte das System die Datei "Ausstehende Aufträge" untersuchen, um die Aufträge zu ermitteln, für die die erforderliche Gesamtmenge für die einzelnen Elemente erforderlich ist. 15 Beispiel Handelshaus-Automatisierungssystem (TAS) TAS sollte herausfinden, dass die Adressen der Lieferanten, die die benötigten Positionen liefern, die Datei untersuchen, die die Lieferantendetails enthält (ihre Adresse, Elemente, die sie liefern usw.), Vertretungen zu diesen Anbietern auszudrucken. 16 Beispiel Trading-House Automation System (TAS) TAS sollte auch beantworten Management-Abfragen Statistiken der verschiedenen Posten verkauft über einen bestimmten Zeitraum entsprechende Menge verkauft und der Preis realisiert. 17 Kontextdiagramm Indent-Abfrage Trading-House-Automation-System0 Managerstatistikreihenfolge Generieren-Einrückung Kunde Einkauf - Abteilung 18 Level 1 DFD Kundenprotokoll Itemdatei Abfrage Accept-order0.1 Statistik Inventar Kunden-Datei Handle-Abfrage0.3 Reihenfolge Process-order0.2 Akzeptierte Aufträge Vendor-Liste Handle-indent-request0.4 Verkaufsstatistiken Einrückungsauftrag Material-Issue-Slip-Rechnung pending-order Einzug 19 Beispiel Data Dictionary Response-Rechnung Material-Issue-Slip, Reject-Message-Abfrage Period / Abfrage vom Manager in Bezug auf Umsatzstatistik / Periodendatierung, Monat, Jahr, Tag Datum Jahr Monat Tag Jahr Integer Monat Integer Tag Integer-Bestellung Kunden-ID-Artikel Menge Bestellte Bestellposition / bestellte Artikel in Inventur / Ablehnungsnachricht / Pending-Orders Kundennummer itemquantity Kundenadresse namehousestreetcitypin 20 Beispiel Data Dictionary Positionsname string Haus String String String Stadt String Pin Integer Kunden-ID Integer Rechnungsposition Stückpreis Gesamtbetrag Kundenadresse Material-Issue-Slip-Nachricht Artikelmenge Kunde-Adresse Nachricht Stringstatistik Artikel Menge Preis Verkaufsstatistik Statistik Menge Integer 21 Beobachtung Aus den Beispielen wird beobachtet, dass DFDs dazu beitragen, ein Datenmodell-Funktionsmodell zu erstellen 22 Beobachtung Da ein DFD in größeren Detailstufen verfeinert wird, führt der Analytiker eine implizite Funktionalität durch Zersetzung. Gleichzeitig finden Verfeinerungen der Daten statt. 23 Richtlinien für die Konstruktion von DFDs Kontextdiagramm sollte das System als eine einzelne Blase darstellen Viele Anfänger begehen den Fehler, mehr als eine Blase im Kontextdiagramm zu zeichnen. 24 Richtlinien für den Aufbau von DFDs Alle externen Entitäten sollten im Kontextdiagramm dargestellt werden. Externe Entitäten sollten auf keiner anderen Ebene von DFD erscheinen. Es sollten nur 3 bis 7 Blasen pro Diagramm zugelassen werden, wobei jede Blase auf 3 bis 7 Blasen zerlegt werden sollte. 25 Richtlinien für den Aufbau von DFDs Ein häufiger Fehler, den viele Anfänger beabsichtigen, Kontrollinformationen in einer DFD darzustellen. z. B. Um die Reihenfolge darzustellen, in der verschiedene Funktionen ausgeführt werden. 26 Richtlinien für den Aufbau von DFDs Ein DFD stellt keine Steuerinformationen dar, wenn oder in welcher Reihenfolge unterschiedliche Funktionen (Prozesse) aufgerufen werden. Die Bedingungen, unter denen unterschiedliche Funktionen aufgerufen werden, sind nicht dargestellt. Beispielsweise könnte eine Funktion eine Funktion oder eine andere Funktion abhängig von einer bestimmten Bedingung aufrufen. Viele Anfänger versuchen, diesen Aspekt darzustellen, indem sie einen Pfeil zwischen den entsprechenden Blasen zeichnen. 27 Beispiel-1 Eingangswert prüfen Wenn der Eingangswert kleiner als -1000 oder größer als 1000 ist, erzeugen Sie eine Fehlermeldung ansonsten Suche nach der Zahl GenerateError-Meldung Checknumber Nummer Nummer Suche gefunden, nicht gefunden 28 Richtlinien für den Aufbau von DFDs Wenn eine Bubble A Ruft entweder Blase B oder Blase C auf, abhängig von einigen Bedingungen repräsentieren die Daten, die von Blase A zu Blase B und Blasen A bis C fließen, nicht die Bedingungen, die davon abhängen, auf welchen ein Prozess aufgerufen wird. 29 Beispiel-2 Eine Funktion übernimmt den zu durchsuchenden Buchnamen vom Benutzer Wenn der eingegebene Buchname kein gültiger Buchname ist, wird eine Fehlermeldung generiert. Wenn der Buchname gültig ist, durchsucht den Buchnamen in der Datenbank. Search-Buch Buch-Name Buch-Name Buch-Details Fehlermeldung Print-err-message Buchname 30 Richtlinien für die Erstellung von DFDs Alle Funktionen des Systems müssen im DFD-Modell erfasst werden, ohne dass eine Funktion im SRS angegeben ist Sollte übersehen werden. Nur diejenigen Funktionen, die im SRS-Dokument angegeben werden sollen, übernehmen keine zusätzliche Funktionalität des Systems, die nicht durch das SRS-Dokument spezifiziert ist. 31 Gemeinsam gemachte Fehler Unausgewogene DFDs Vergessen, die Namen der Datenflüsse zu erwähnen Nicht repräsentierte Funktionen oder Daten Externe Einheiten, die auf höheren Ebenen erscheinen DFDs Versuchen, Steueraspekte zu repräsentieren Kontextdiagramm mit mehr als einer Blase Eine Blase, die in zu viele Blasen in der nächsten Ebene abgebaut wird Beenden Zersetzung zu früh Substantive, die bei der Benennung von Blasen verwendet werden 32 Defizite des DFD-Modells DFD-Modelle leiden unter mehreren Nachteilen DFDs lassen reichlich Spielraum, um ungenau zu sein. In einem DFD-Modell, schlussfolgern wir über die Funktion von einer Blase aus seinem Label durchgeführt. Ein Label kann nicht alle Funktionen einer Blase erfassen. 33 Unzulänglichkeiten des DFD-Modells Eine Blase namens find-book-position hat beispielsweise nur intuitive Bedeu - tung, aber nicht, was geschieht, wenn einige Input-Informationen fehlen oder nicht korrekt sind. Vermittelt nichts darüber, was passiert, wenn Buch nicht gefunden wird oder was passiert, wenn es Bücher von verschiedenen Autoren mit dem gleichen Buchtitel gibt. 34 Unzulänglichkeiten der DFD-Modellsteuerinformationen werden nicht dargestellt. Die Reihenfolge, in der die Eingänge verbraucht und die Ausgänge erzeugt werden, ist nicht spezifiziert. Artikeldatei Kundenhistorie Auftragsbestand Auftragsabwicklung Auftragsannahme Auftragsannahme 35 Mängel des DFD-Modells Ein DFD gibt keine Synchronisationsaspekte an Beispielsweise spezifiziert das DFD im TAS-Beispiel nicht, ob der Prozessauftrag abwarten kann Bis die Annahme-Bestellung Daten erzeugt, ob Annahme-Ordnung und Handle-Reihenfolge gleichzeitig mit einem Puffermechanismus zwischen ihnen vor sich gehen können. 36 TAS Level 1 DFD Kundenhistorie Itemdatei Abfrageszenarien Bestandsaufnahme Inventur Kunden-Datei Handle-Abfrage-Bestellung Prozeßauftrag Angenommene Aufträge Vendor-Liste Handle-Indent-Anforderung Vertriebsstatistik Einrückungsauftrag Einzug ausstehender Bestellung 37 Mängel Des DFD-Modells Die Art und Weise, wie die Zersetzung durchgeführt wird, um die aufeinanderfolgenden Ebenen eines DFD zu erreichen, ist subjektiv. Die letzte Stufe, auf die die Zersetzung durchgeführt wird, ist subjektiv abhängig von der Wahl und Beurteilung des Analytikers. Auch für das gleiche Problem sind mehrere alternative DFD-Darstellungen möglich, oft ist es nicht möglich zu sagen, welche DFD-Darstellung besser oder besser ist. 38 Defizite der DFD-Modell-DFD-Technik liefern keine eindeutige Anleitung darüber, wie genau eine Zerlegung einer Funktion, die subjektiv zu beurteilen ist, um Zersetzung durchzuführen, geht. Strukturierte Analysetechniken geben nicht an, wann ein Zerlegungsprozess angehalten werden soll, um die Länge der Zerlegung durchzuführen. 39 Erweiterung der DFD-Technik auf Real-Time-Systeme Für Echtzeit-Systeme (Systeme mit zeitlichen Begrenzungen für ihre Aktionen), die für die Steuerung und Regelung von Ereignissen unerlässlich sind. Weit verbreitete Technik Ward und Mellor Technik. Wird ein Prozeß (Bubbles) eingeführt, der nur Steuerflüsse behandelt. Diese Prozesse werden durch gestrichelte Kreise dargestellt. 40 Strukturiertes Design Das Ziel des strukturierten Entwurfs verwandelt die Ergebnisse einer strukturierten Analyse (d. H. Einer DFD-Darstellung) in ein Strukturdiagramm. Ein Strukturdiagramm stellt die Softwarearchitektur dar, wobei verschiedene Module das System bilden, die Modulabhängigkeit (d. H. Welches Modul die anderen Module aufruft), Parameter, die zwischen verschiedenen Modulen übergeben werden. 41 Strukturdiagramm Strukturdiagrammdarstellung mit Programmiersprachen leicht umsetzbar. Der Schwerpunkt eines Strukturplans definiert die Modulstruktur einer Software, die Interaktion zwischen verschiedenen Modulen, verfahrenstechnische Aspekte (z. B. wie eine bestimmte Funktionalität erreicht wird) nicht dargestellt. 42 Grundbausteine ​​des Strukturdiagramms Rechteckige Box Eine rechteckige Box repräsentiert ein Modul. Die mit dem Namen des Moduls kommentiert ist, das es repräsentiert. Process-order 43 Pfeile Ein Pfeil zwischen zwei Modulen impliziert während der Ausführungssteuerung von einem Modul zum anderen in Richtung des Pfeils. Root Process-order Handle-indent Handle-Abfrage 44 Datenfluss-Pfeile Datenfluss-Pfeile repräsentieren Daten, die von einem Modul zum anderen in Richtung des Pfeils übergehen. Root order Process-order 45 Bibliotheksbausteine ​​Bibliotheksbausteine ​​repräsentieren häufig als Module ein Rechteck mit doppelten Seitenkanten. Vereinfacht die Zeichnung, wenn ein Modul von mehreren Modulen aufgerufen wird. Quick-sort 46 Auswahl Das Diamantsymbol repräsentiert ein Modul aus mehreren Modulen, die mit dem Diamantsymbol verbunden sind, abhängig von einer bestimmten Bedingung. Root Process-order Handle-indent Handle-query 47 Wiederholung Eine Schleife um Kontrollfluss-Pfeile bedeutet, dass die betroffenen Module wiederholt aufgerufen werden. Root Process-order Handle-indent Handle-query 48 Strukturdiagramm Am oberen Rand des Stammmoduls befindet sich nur ein Modul. Es gibt höchstens eine Steuerbeziehung zwischen zwei Modulen, wenn Modul A Modul B aufruft, Modul B kann Modul A nicht aufrufen. Hauptgrund für diese Einschränkung sind Module in einem Strukturdiagramm, die in Ebenen oder Ebenen angeordnet werden sollen. 49 Strukturdiagramm Das Prinzip der Abstraktion erlaubt es nicht, Module auf höherer Ebene aufzurufen. Aber zwei übergeordnete Module können das gleiche untergeordnete Modul aufrufen. 50 Beispielwurzel rms Gültige Zahlen rms Gültige Zahlen Get-good-data Berechnungslösung Display-Lösung Validierungsdaten Get-data 51 Schlechtes Design 52 Mängel des Strukturdiagramms Durch Betrachten eines Strukturdiagramms können wir nicht sagen, ob ein Modul anruft Ein anderes Modul nur einmal oder viele Male. Auch können wir durch Betrachten eines Strukturdiagramms nicht die Reihenfolge angeben, in der die verschiedenen Module aufgerufen werden. 53 Flußdiagramm (beiseite) Wir sind alle mit den Flußdiagrammdarstellungen vertraut Flußdiagramm ist eine bequeme Technik, um den Fluß der Steuerung in einem System darzustellen. AB if (c 100) P20 sonst p 80 while (pgt20) print (Schülermarke) AB nein ja P20 P80 Dummy ja nein Drucken 54 Flußdiagramm versus Strukturtabelle Ein Strukturdiagramm unterscheidet sich von einem Flußdiagramm in drei Hauptformen Identifizieren Module einer Software aus der Flußdiagrammdarstellung. Der Datenaustausch zwischen den Modulen ist in einem Flussdiagramm nicht dargestellt. Die sequentielle Reihenfolge der in einem Flussdiagramm enthaltenen Aufgaben wird in einem Strukturdiagramm unterdrückt. 55 Transformation eines DFD-Modells in Strukturdiagramm Es gibt zwei Strategien, um die Transformation eines DFD in ein Strukturdiagramm zu führen Transformationsanalyse Transaktionsanalyse 56 Transformationsanalyse Der erste Schritt in der Transformationsanalyse besteht darin, den DFD in drei Typen von Teileeingaben, logischer Verarbeitung und Ausgabe aufzuteilen. 57 Transformationsanalyse Eingabebereich in DFD-Prozessen, die Eingabedaten von physikalischer in logische Form umwandeln. z. B. Zeichen aus dem Terminal lesen und in internen Tabellen oder Listen speichern. Jeder Eingabeabschnitt, der als afferenter Zweig bezeichnet wird. Möglich, mehr als einen afferenten Zweig in einem DFD zu haben. 58 Transformationsanalyse Ausgabeabschnitt eines DFD transformiert Ausgabedaten von logischer Form in physische Form. z. B. Aus der Liste oder dem Array in Ausgabezeichen. Jeder Ausgabeabschnitt nennt man einen efferenten Zweig. Die verbleibenden Abschnitte einer DFD, die als zentrale Transformation bezeichnet werden, transformieren das Transformationsanalyse-Ableitungs-Strukturdiagramm, indem eine funktionale Komponente für die zentrale Transformation, für jeden afferenten Zweig, für jeden efferenten Zweig gezeichnet wird. 60 Transformationsanalyse Die Ermittlung der höchsten Eingangs - und Ausgangstransformationen erfordert Erfahrung und Geschick. Einige Richtlinien verfolgen die Eingaben, bis eine Blase gefunden wird, deren Ausgang nicht allein von den Eingängen abgeleitet werden kann. Prozesse, die die Eingabe validieren, sind keine zentralen Transformationen. Prozesse, die Eingangs - oder Filterdaten sortieren, sind. 61 Transformationsanalyse Erste Ebene des Strukturdiagramms zeichnen für jede Eingabe - und Ausgabeeinheit ein Feld für die zentrale Transformation. Als nächstes verfeinern Sie die Strukturdiagramm hinzufügen Subfunktionen, die von jedem High-Level-Modul erforderlich. Es können mehrere Module erforderlich sein. 62 Factoring Der Prozess der Unterbrechung von Funktionskomponenten in Unterkomponenten. Factoring umfasst das Hinzufügen von Lese - und Schreibmodulen, Fehlerbehandlungsmodule, Initialisierungs - und Terminierungsmodule usw. Schließlich prüfen Sie, ob alle Blasen auf Module abgebildet wurden. Beispiel 1 RMS-Berechnungssoftware Berechnen-RMS0 Datenelemente Benutzerergebnis Kontextdiagramm 64 Beispiel 1 RMS-Berechnungssoftware Aus einer flüchtigen Analyse der Problembeschreibung können Sie leicht erkennen, dass das System die Eingabenummern vom Benutzer akzeptieren muss Zahlen, berechnen das Wurzelmittel der eingegebenen Zahlen, zeigt das Ergebnis an. 65 Beispiel 1 RMS Berechnen Software-Nummern Lesen-Nummern0.1 Validieren-Nummern0.2 Gültige-Nummern Daten-Fehler Fehler Compute-rms0.3 Display0.4 Ergebnis RMS 66 Beispiel 1 RMS-Berechnungssoftware Durch die Beobachtung der DFD-Stufe 1 identifizieren Sie die Read-Number Und bestätigen Zahlblasen als die afferenten Zweiganzeige als den efferenten Zweig. 67 Beispiel 1 RMS-Berechnungssoftware root rms Gültige Zahlen rms Gültige Zahlen Get-good-data Berechnungslösung Display-Lösung Validierungsdaten Get-data 68 Beispiel 2 Tic-Tac-Toe-Computerspiel Sobald der menschliche Spieler ist Oder der Computer gewinnt, sollte eine Nachricht gratulieren den Sieger angezeigt werden. Wenn kein Spieler es schafft, drei aufeinanderfolgende Markierungen entlang einer geraden Linie zu erhalten, und alle Quadrate auf dem Brett gefüllt sind, dann wird das Spiel gezogen. Der Computer versucht immer, ein Spiel zu gewinnen. 69 Kontextdiagramm für Beispiel 2 Tic-Tac-Toe-Software0 Displaybewegung Human Player 70 Level 1 DFD-Spiel Anzeigetafelbewegungsergebnis Check-Gewinner Validate-move board Play-move 71 Struktur Diagrammwurzel Get-good-move Compute-Game-Anzeige Validieren - move Check-winner Get-move play-move 72 Transaktionsanalyse Nützlich für das Entwerfen von Transaktionsverarbeitungsprogrammen. Transform-zentrierte Systeme, gekennzeichnet durch ähnliche Verarbeitungsschritte für jedes Datenelement, das durch Eingabe-, Prozess - und Ausgabebubbles verarbeitet wird. Transaktionsgesteuerte Systeme, einer von mehreren möglichen Pfaden durch den DFD, wird abhängig vom Eingangsdatenwert durchlaufen. Transaktionsanalyse Transaktion beliebiger Eingabedatenwert, der eine Aktion auslöst Zum Beispiel können ausgewählte Menüoptionen unterschiedliche Funktionen auslösen. Repräsentiert durch ein Tag, das seinen Typ identifiziert. Die Transaktionsanalyse verwendet dieses Tag, um das System in mehrere Transaktionsmodule zu unterteilen, ein Transaktionszentrummodul. 74 Transaktionsanalyse Transaktionszentrum trans 3 trans 1 trans 2 Typ 1 Typ 2 Typ 3 75 Ebene 1 DFD für TAS Objektdatei Kundenhistorie Abfragesstatistiken Auftragsinventur Kunden-Datei Handle-Abfrage-Auftrag Prozess-Auftrag Angenommener Lieferant - listenhandle-indent-request Vertriebsstatistiken Einrückungsauftrag Einreichungen pending-order 76 Strukturdarstellung Wurzelabfrage-Einrückung Handle-order Handle-indent Handle-Abfrage Auftragsabwicklung Auftragsabwicklung 77 Zusammenfassung Wir haben zunächst eine strukturierte Analyse von Ein größeres Problem. Wir haben einige allgemeine Richtlinien für den Aufbau eines zufriedenstellenden DFD-Modells definiert. Die DFD-Modell zwar einfach und nützlich hat einige kurze Kommen. Wir begannen dann, strukturiertes Design zu diskutieren. 78 Zusammenfassung Ziel des strukturierten Entwurfs ist es, eine DFD-Darstellung in ein Strukturdiagramm umzuwandeln. Strukturdiagramm repräsentiert die Modulstrukturinteraktion zwischen verschiedenen Modulen, verfahrenstechnische Aspekte werden nicht dargestellt. 79 Zusammenfassung Strukturiertes Design bietet zwei Strategien zur Umwandlung eines DFD in ein Strukturdiagramm Transformationsanalyse Transaktionsanalyse 80 Zusammenfassung Wir diskutierten drei Beispiele für strukturiertes Design. Es braucht viel Übung, um ein guter Software-Designer zu werden Bitte versuchen Sie, alle Probleme, die in Ihrem Zuordnungsblatt aufgelistet sind, zu lösen, nicht nur die, die Sie einreichen müssen.1 Funktionsorientiertes Software-Design (Fortsetzung) Vorlesung 6 Prof. R. Mall Abt. Von CSE, IIT, Kharagpur. Präsentation zum Thema: 1 Funktionsorientiertes Software-Design (Fortsetzung) Vorlesung 6 Prof. R. Mall Abt. Von CSE, IIT, Kharagpur. Präsentationstranskript: 1 1 Funktionsorientiertes Software-Design (Fortsetzung) Vorlesung 6 Prof. R. Mall Abteilung der CSE, IIT, Kharagpur 2 2 Beispiel 3: Handelshaus-Automatisierungssystem (TAS) Ein großes Handelshaus möchte, dass wir ein Software: Automatisieren Buchhaltung Aktivitäten mit seinem Unternehmen verbunden. Es hat viele Stammkunden: Wer Platz Bestellungen für verschiedene Arten von Rohstoffen. 3 3 Beispiel 3: Handelshaus-Automatisierungssystem (TAS) Das Handelshaus unterhält Namen und Adressen seiner Stammkunden. Jedem Kunden wird eine eindeutige Kundennummer (CIN) zugewiesen. Nach derzeitiger Praxis beim Kundenauftrag: Die Buchhaltung prüft zunächst die Kreditwürdigkeit des Kunden. 4 4 Beispiel: Trading-House Automation System (TAS) Die Kreditwürdigkeit eines Kunden wird bestimmt: Durch die Analyse der Geschichte seiner Zahlungen an die Rechnungen, die ihm in der Vergangenheit zugesandt wurden. Wenn ein Kunde nicht kreditwürdig ist, werden seine Aufträge nicht weiter verarbeitet. Für den Kunden wird eine entsprechende Ablehnungsnachricht erzeugt. 5 5 Beispiel: Trading-House Automation System (TAS) Wenn ein Kunde kreditwürdig ist: Gegenstände, die er bestellt hat, werden mit der Liste der Gegenstände, mit denen das Handelshaus befasst ist, geprüft. Die Gegenstände, die vom Handelshaus nicht behandelt werden, werden nicht weiterverarbeitet. Für diese Gegenstände wird eine entsprechende Meldung für den Kunden erzeugt. 6 6 Beispiel: Handelshaus-Automatisierungssystem (TAS) Die Positionen eines Kundenauftrags, mit dem sich das Handelshaus befasst: Wird auf Verfügbarkeit im Inventar überprüft. Wenn die Positionen im Bestandsverzeichnis in den gewünschten Mengen vorhanden sind, wird eine Rechnung mit der Weiterleitungsadresse des Kunden ausgedruckt. Ein Materialausgabebeleg wird gedruckt. 7 7 Beispiel: Trading-House Automation System (TAS) Der Kunde kann die Materialausgabe im Lagerhaus produzieren: Die Lieferung der Artikel nehmen. Inventurdaten angepasst, um den Verkauf an den Kunden widerzuspiegeln. 8 8 Beispiel: Handelshaus-Automatisierungssystem (TAS) Wenn ein bestellter Artikel im Inventar nicht in ausreichender Menge vorhanden ist: Um ausstehende Aufträge zu speichern, können Sie Details in einer Auftragsdatei speichern. Out-of-stock-Artikel zusammen mit der bestellten Menge. Kunden-Identifikationsnummer 9 9 Beispiel: Handelshaus-Automatisierungssystem (TAS) Die Einkaufsabteilung: würde regelmäßig Befehle ausgeben, um Einkerbungen zu erzeugen. Bei der Erstellung des Befehls gener indent: Das System sollte die Pending Order-Datei untersuchen. Die anstehenden Aufträge ermitteln Die Gesamtmenge, die für die einzelnen Posten benötigt wird. 10 10 Beispiel: Handelshaus-Automatisierungssystem (TAS) TAS sollte die Adressen der Lieferanten, die die benötigten Positionen liefern, herausfinden: Prüfen Sie die Datei mit den Lieferantendetails (ihre Adresse, Positionen, die sie liefern usw.) 11 11 Beispiel: Trading-House Automation System (TAS) TAS sollte auch beantworten Management-Abfragen: Statistiken der verschiedenen Artikel verkauft über einen bestimmten Zeitraum Entsprechende Menge verkauft und der Preis realisiert. 12 12 Kontextdiagramm Trading - Haus - Automation - System 0 Manager CustomerPurchase - Abfrage - statistik Bestell - antwort Generieren - indent indent 13 13 Level 1 DFD Accept - order 0.1 Prozess - order 0.2 Handle - indent - request 0.4 Hand - ling 0.3 pending-order Vertriebsstatistik Inventur Lieferantenliste Kundendatei Objektdatei Kundenhistorie Einrückung Einrückungen Eingetragene Aufträge Auftragsstatistik Auftrag Material-Emissionsschein 14 14 Beispiel: Data Dictionary-Antwort: Stücklisten-Materialausgabe, Ablehnungsnachricht Abfrage: Zeitraum / Abfrage vom Manager in Bezug auf Verkaufsstatistik / Zeitraum: datedate, month, year, day date: year month day year: integer month: integer day: integer Reihenfolge: customer-id accept-order: Bestellung / bestellte Artikel im Inventar vorhanden / Reject-message: Auftragsnachricht / Ablehnungsnachricht / Ausstehende-Aufträge: Kunden-ID Kundenadresse: namehousestreetcitypin 15 15 Beispiel: Data Dictionary item-name: String Haus: String Strasse: String Ort: String Pin: Integer Kunden-ID: Integer-Rechnung: Gesamtmenge Kundenadresse Material-Issue-Slip: Meldungsposition Menge Kundenadresse Meldung: Stringstatistik: Umsatzstatistik: Menge: Integer 16 16 Beobachtung Aus den Beispielen ist zu erkennen, dass DFDs helfen: Datenmodell Funktionsmodell 17 17 Beobachtung Als DFD wird in größere Detailstufen verfeinert: Der Analytiker führt eine implizite funktionale Zerlegung durch. Gleichzeitig findet eine Verfeinerung der Daten statt. 18 18 Richtlinien für die Konstruktion von DFDs Das Kontextdiagramm sollte das System als eine einzige Bubble darstellen: Viele Anfänger begehen den Fehler, mehr als eine Bubble im Kontextdiagramm zu zeichnen. 19 19 Richtlinien für den Aufbau von DFDs Alle externen Entitäten sollten im Kontextdiagramm dargestellt werden: Externe Entitäten sollten auf keiner anderen Ebene von DFD auftreten. Es sollten nur 3 bis 7 Blasen pro Diagramm zugelassen werden: Jede Blase sollte auf 3 bis 7 Blasen zerlegt werden. 20 20 Richtlinien für den Aufbau von DFDs Ein häufiger Fehler, den viele Anfänger begangen haben: Versuch, Steuerinformationen in einer DFD darzustellen. z. B. Um die Reihenfolge darzustellen, in der verschiedene Funktionen ausgeführt werden. 21 21 Richtlinien für den Aufbau von DFDs Ein DFD stellt keine Steuerinformationen dar: Wenn oder in welcher Reihenfolge unterschiedliche Funktionen (Prozesse) aufgerufen werden Die Bedingungen, unter denen verschiedene Funktionen aufgerufen werden, werden nicht dargestellt. Beispielsweise kann eine Funktion eine Funktion oder eine Funktion in Abhängigkeit von einer bestimmten Bedingung aufrufen. Viele Anfänger versuchen, diesen Aspekt darzustellen, indem sie einen Pfeil zwischen den entsprechenden Blasen zeichnen. 22 22 Beispiel-1 Eingangswert prüfen: Wenn der Eingabewert kleiner oder größer ist als eine Fehlermeldung generieren sonst nach der Nummer suchen Chec k er er Generator Fehler Searc h Nummer Meldungsnummer gefunden, nicht gefunden 23 23 Richtlinien For Konstruieren von DFDs Wenn eine Blase A Blase B oder Blase C abhängig von einigen Bedingungen aufruft, stellen sie die Daten dar, die von Blase A zu Blase B und Blasen A bis C fließen, nicht die Bedingungen, die davon abhängen, auf welchen ein Prozess aufgerufen wird. 24 24 Beispiel-2 Eine Funktion akzeptiert den Buchnamen, der vom Benutzer gesucht werden soll Ist der eingegebene Buchname kein gültiger Buchname Erzeugen einer Fehlermeldung, wenn der Buchname gültig ist, Sucht den Buchnamen in der Datenbank. Get-book - name Print-err - message Such - buch Fehler - meldung Buch - name Good - book - name Buch - details 25 25 Richtlinien für die Erstellung von DFDs Alle Funktionen des Systems müssen im DFD-Modell erfasst werden: Keine Funktion angegeben in Sollte das SRS-Dokument übersehen werden. Es sollten nur die im SRS-Dokument angegebenen Funktionen dargestellt werden: Nehmen Sie keine zusätzliche Funktionalität des vom SRS-Dokument nicht spezifizierten Systems an. 26 26 Gemeinsam gemachte Fehler Unausgeglichene DFDs Vergessen, die Namen der Datenflüsse zu erwähnen Nicht repräsentierte Funktionen oder Daten Externe Einheiten, die auf höheren Ebenen erscheinen DFDs Versuchen, Steueraspekte darzustellen Kontextdiagramm mit mehr als einer Blase Eine Blase, die in zu viele Blasen in der nächsten Ebene zerlegt wird Beendigung der Zerlegung zu früh Nomen, die bei der Namensgebung von Blasen verwendet werden 27 27 Defizite des DFD-Modells DFD-Modelle leiden unter mehreren Mängeln: DFDs lassen reichlich Spielraum, um ungenau zu sein. In einem DFD-Modell, schlussfolgern wir über die Funktion von einer Blase aus seinem Label durchgeführt. Ein Label kann nicht alle Funktionen einer Blase erfassen. 28 28 Defizite des DFD-Modells Eine Blase namens find-book-position hat beispielsweise nur intuitive Bedeutung: Legt nicht mehrere Dinge fest: Was passiert, wenn einige Input-Informationen fehlen oder nicht korrekt sind. Vermittelt nichts darüber, was passiert, wenn Buch nicht gefunden wird oder was passiert, wenn es Bücher von verschiedenen Autoren mit dem gleichen Buchtitel gibt. 29 29 Unzulänglichkeiten der DFD-Modellsteuerinformation ist nicht dargestellt: Beispielsweise wird die Reihenfolge, in der die Eingänge verbraucht und die Ausgänge erzeugt werden, nicht angegeben. Accept - order Process - Order Kunden-File Item-File Kundenhistorie Accepted - Bestellen Inventar bestellen 30 30 Defragmentierung des DFD-Modells Ein DFD gibt keine Synchronisationsaspekte an: Beispielsweise spezifiziert das DFD im TAS-Beispiel nicht: Kann der Auftrag warten, bis die Annahme-Bestellung Daten erzeugt. Ob Annahme-Bestellung und Handle-Reihenfolge können gleichzeitig mit einigen Puffer-Mechanismus zwischen ihnen gehen. 31 31 TAS: Level 1 DFD Akzeptieren - order Prozess - bestellung Handle - indent - anfrage Hand - habung anhängig Verkaufsstatistiken inventar Lieferantenliste Kundendatei Objektdatei Kunden - geschichte Einrückung Einrückungen Akzeptiert - Bestellstatistiken bestellen 32 32 Defizite des DFD-Modells Die Art und Weise, wie die Zersetzung durchgeführt wird, um die aufeinanderfolgenden Ebenen eines DFD zu erreichen, ist subjektiv. Der letzte Grad, zu dem die Zersetzung durchgeführt wird, ist subjektiv: Abhängig von der Wahl und Beurteilung des Analytikers. Auch für das gleiche Problem sind mehrere alternative DFD-Darstellungen möglich: Oft ist es nicht möglich zu sagen, welche DFD-Darstellung überlegen oder vorzuziehen ist. 33 33 Mängel der DFD-Modell-DFD-Technik gibt es nicht: Jede klare Anleitung, wie genau eine Zerlegung einer Funktion gehen sollte: Man muss subjektives Urteil verwenden, um Zersetzung durchzuführen. Strukturierte Analysetechniken geben nicht an, wann ein Zersetzungsprozess gestoppt werden soll: Zu welcher Länge Zerlegung durchgeführt werden soll. 34 34 Erweiterung der DFD-Technik auf Real-Time-Systeme Für Echtzeit-Systeme (Systeme mit zeitlichen Begrenzungen auf ihre Aktionen) Weit akzeptierte Technik: Ward und Mellor Technik. Eine Art von Prozeß (Blasen), der nur Steuerflüsse behandelt, wird eingeführt. Diese Prozesse werden durch gestrichelte Kreise dargestellt. 35 35 Strukturiertes Design Ziel des strukturierten Designs Umwandlung der Ergebnisse einer strukturierten Analyse (d. H. Einer DFD-Darstellung) in ein Strukturdiagramm. Ein Strukturdiagramm stellt die Softwarearchitektur dar: Verschiedene Module, aus denen sich das System zusammensetzt, Modulabhängigkeit (d. H. Welches Modul die anderen Module aufruft), Parameter, die an verschiedene Module übergeben werden. 36 36 Strukturdiagramm Strukturdiagramm Einfache Implementierung über Programmiersprachen. Schwerpunkt eines Strukturplans: Definieren der Modulstruktur einer Software, Interaktion zwischen verschiedenen Modulen, Prozedurale Aspekte (z. B. wie eine bestimmte Funktionalität erreicht wird) werden nicht dargestellt. 37 37 Grundbausteine ​​des Strukturdiagramms Rechteckige Box: Eine rechteckige Box repräsentiert ein Modul. Mit dem Namen des Moduls versehen, das es repräsentiert. Prozess-Reihenfolge 38 38 Pfeile Ein Pfeil zwischen zwei Modulen impliziert: Während der Ausführung wird die Steuerung von einem Modul zum anderen in Richtung des Pfeils geführt. Process-orderHandle-indent root Handle-Abfrage 39 39 Datenfluss-Pfeile Datenfluss-Pfeile repräsentieren: Daten, die von einem Modul zum anderen in Richtung des Pfeils übergehen. Auftragsreihenfolge 40 40 Bibliotheksbausteine ​​Bibliotheksbausteine ​​repräsentieren häufig aufgerufene Module: Ein Rechteck mit doppelten Seitenkanten. Vereinfacht die Zeichnung, wenn ein Modul von mehreren Modulen aufgerufen wird. Quick-sort 41 41 Auswahl Das Diamantsymbol steht für: Ein Modul aus mehreren Modulen, die mit dem Diamantsymbol verbunden sind, wird abhängig von einer Bedingung aufgerufen. Process-orderHandle-indent root Handle-query 42 42 Repetition A loop around control flow arrows denotes that the concerned modules are invoked repeatedly. Process-orderHandle-indent root Handle-query 43 43 Structure Chart There is only one module at the top: the root module. There is at most one control relationship between any two modules: if module A invokes module B, Module B cannot invoke module A. The main reason behind this restriction: consider modules in a structure chart to be arranged in layers or levels. 44 44 Structure Chart The principle of abstraction: does not allow lower-level modules to invoke higher-level modules: But, two higher-level modules can invoke the same lower-level module. 45 45 Example root Get-good-data Compute-solution Display-solution Get-data Validate-data Valid-numbers rms 47 47 Shortcomings of Structure Chart By looking at a structure chart: we can not say whether a module calls another module just once or many times. Also, by looking at a structure chart: we can not tell the order in which the different modules are invoked. 48 48 Flow Chart (Aside) We are all familiar with the flow chart representations: Flow chart is a convenient technique to represent the flow of control in a system. AB if(c 100) P20 else p 80 while(p20) print(student mark) AB P20P80 Print yes no dummy yes no 20) print(student mark) AB P20P80 Print yes no dummy yes no 49 49 Flow Chart versus Structure Chart A structure chart differs from a flow chart in three principal ways: It is difficult to identify modules of a software from its flow chart representation. Data interchange among the modules is not represented in a flow chart. Sequential ordering of tasks inherent in a flow chart is suppressed in a structure chart. 50 50 Transformation of a DFD Model into Structure Chart Two strategies exist to guide transformation of a DFD into a structure chart: Transform Analysis Transaction Analysis 51 51 Transform Analysis The first step in transform analysis: Divide the DFD into 3 parts: input, logical processing, output. 52 52 Transform Analysis Input portion in the DFD: processes which convert input data from physical to logical form. z. B. read characters from the terminal and store in internal tables or lists. Each input portion: called an afferent branch. Possible to have more than one afferent branch in a DFD. 53 53 Transform Analysis Output portion of a DFD: transforms output data from logical form to physical form. z. B. from list or array into output characters. Each output portion: called an efferent branch. The remaining portions of a DFD called central transform 54 54 Transform Analysis Derive structure chart by drawing one functional component for: the central transform, each afferent branch, each efferent branch. 55 55 Transform Analysis Identifying the highest level input and output transforms: requires experience and skill. Some guidelines: Trace the inputs until a bubble is found whose output cannot be deduced from the inputs alone. Processes which validate input are not central transforms. Processes which sort input or filter data from it are. 56 56 Transform Analysis First level of structure chart: Draw a box for each input and output units A box for the central transform. Next, refine the structure chart: Add subfunctions required by each high-level module. Many levels of modules may required to be added. 57 57 Factoring The process of breaking functional components into subcomponents. Factoring includes adding: Read and write modules, Error-handling modules, Initialization and termination modules, etc. Finally check: Whether all bubbles have been mapped to modules. 58 58 Example 1: RMS Calculating Software Compute - RMS 0 User Data - items result Context Diagram 59 59 Example 1: RMS Calculating Software From a cursory analysis of the problem description, easy to see that the system needs to perform: accept the input numbers from the user, validate the numbers, calculate the root mean square of the input numbers, display the result. 60 60 Example 1: RMS Calculating Software Data - items result Read - numbers 0.1 Validate - numbers 0.2 Compute - rms 0.3 Display 0.4 RMS numbers Valid - numbers error 61 61 Example 1: RMS Calculating Software By observing the level 1 DFD: Identify read-number and validate-number bubbles as the afferent branch Display as the efferent branch. 62 62 Example 1: RMS Calculating Software root Get-good-data Compute-solution Display-solution Get-data Validate - data Valid-numbers rms 63 63 Example 2: Tic-Tac-Toe Computer Game As soon as either of the human player or the computer wins, A message congratulating the winner should be displayed. If neither player manages to get three consecutive marks along a straight line, And all the squares on the board are filled up, Then the game is drawn. The computer always tries to win a game. 65 65 Level 1 DFD board Display - board Check - winner Validate - move Play - move move result game 66 66 Structure Chart root Get-good-moveCompute-gameDisplay Get-move Validate - move play-move Check - winner 67 67 Transaction Analysis Useful for designing transaction processing programs. Transform-centered systems: Characterized by similar processing steps for every data item processed by input, process, and output bubbles. Transaction-driven systems, One of several possible paths through the DFD is traversed depending upon the input data value. 68 68 Transaction Analysis Transaction: Any input data value that triggers an action: For example, selected menu options might trigger different functions. Represented by a tag identifying its type. Transaction analysis uses this tag to divide the system into: Several transaction modules One transaction-center module. 69 69 Transaction analysis Transaction - center trans 1 trans 2 trans 3 type 1type 2type 3 70 70 Level 1 DFD for TAS Accept - order Process - order Handle - indent - request Handle - query pending-order Sales-statistics inventory Vendor-list Customer-file Item-file Customer-history Indent-request Indents Accepted-orders query order statistics 71 71 Structure Chart root Handle-orderHandle-indentHandle-query Get-order Accept-orderProcess - order order query indent 72 72 Summary We first discussed structured analysis of a larger problem. We defined some general guidelines for constructing a satisfactory DFD model. The DFD model though simple and useful does have several short comings. We then started discussing structured design. 73 73 Summary Aim of structured design: Transform a DFD representation into a structure chart. Structure chart represents: Module structure Interaction among different modules, Procedural aspects are not represented. 74 74 Summary Structured design provides two strategies to transform a DFD into a structure chart: Transform Analysis Transaction Analysis 75 75 Summary We Discussed three examples of structured design. It takes a lot of practice to become a good software designer: Please try to solve all the problems listed in your assignment sheet, Not only the ones you are expected to submit. Function-Oriented Software Design (continued): Lecture 6 Dr. R. Mall. 2 Organization of this Lecture zBrief review of previous lectures zA larger example of Structured Analysis zStructured Design yA major objective of this lecture is that you should be able to develop structured design from any DFD model. zExamples zSummary 3 Review of Last Lecture zLast lecture we started discussion on Structured Analysis/ Structured Design (SA/SD) technique: yincorporates features from some important design methodologies. zSA/SD consists of two important parts: ystructured analysis ystructured design. 4 Review of Last Lecture zThe goal of structured analysis: yperform functional decomposition. yrepresent using Data Flow Diagrams (DFDs). zDFDs are a hierarchical model: yWe examined why any hierarchical model is easy to understand ynumber 7 is called the magic number. 5 Review of Last Lecture zDuring structured analysis: yFunctional decomposition takes place yin addition, data decomposition takes place. zAt the most abstract level: ycontext diagram yrefined to more detailed levels. zWe discussed two small examples: yRMS calculating software ytic-tac-toe computer game software 6 Review of Last Lecture zSeveral CASE tools are available yhelp in design activities: yhelp maintain the data dictionary, ycheck whether DFDs are balanced, etc. zDFD model: ydifficult to implement using a programming language: yneeds to be transformed to structured design. 7 Example 3: Trading-House Automation System (TAS) zA large trading house wants us to develop a software: yto automate book keeping activities associated with its business. zIt has many regular customers: ywho place orders for various kinds of commodities. 8 Example 3: Trading-House Automation System (TAS) zThe trading house maintains names and addresses of its regular customers. zEach customer is assigned a unique customer identification number (CIN). zAs per current practice when a customer places order: ythe accounts department first checks the credit-worthiness of the customer. 9 Example: Trading-House Automation System (TAS) zThe credit worthiness of a customer is determined: yby analyzing the history of his payments to the bills sent to him in the past. zIf a customer is not credit-worthy: yhis orders are not processed any further yan appropriate order rejection message is generated for the customer. 10 Example: Trading-House Automation System (TAS) zIf a customer is credit-worthy: yitems he/she has ordered are checked against the list of items the trading house deals with. zThe items that the trading house does not deal with: yare not processed any further yan appropriate message for the customer for these items is generated. 11 Example: Trading-House Automation System (TAS) zThe items in a customers order that the trading house deals with: y are checked for availability in the inventory. zIf the items are available in the inventory in desired quantities: ya bill with the forwarding address of the customer is printed. ya material issue slip is printed. 12 Example: Trading-House Automation System (TAS) zThe customer can produce the material issue slip at the store house: ytake delivery of the items. yinventory data adjusted to reflect the sale to the customer. 13 Example: Trading-House Automation System (TAS) zIf an ordered item is not available in the inventory in sufficient quantity: yto be able to fulfill pending orders store details in a pending - order file. xout-of-stock items along with quantity ordered. xcustomer identification number 14 Example: Trading-House Automation System (TAS) zThe purchase department: ywould periodically issue commands to generate indents. zWhen generate indents command is issued: ythe system should examine the pending-order file ydetermine the orders that are pending ytotal quantity required for each of the items. 15 Example: Trading-House Automation System (TAS) zTAS should find out the addresses of the vendors who supply the required items: yexamine the file containing vendor details (their address, items they supply etc.) yprint out indents to those vendors. 16 Example: Trading-House Automation System (TAS) zTAS should also answers managerial queries: ystatistics of different items sold over any given period of time ycorresponding quantity sold and the price realized. 17 Context Diagram Trading-House - Automation - System 0 Manager CustomerPurchase - Department query statistics order response Generate - indent indent 18 Level 1 DFD Accept - order 0.1 Process - order 0.2 Handle - indent - request 0.4 Handle - query 0.3 pending-order Sales-statistics inventory Vendor-list Customer-file Item-file Customer-history Indent-request Indents Accepted-orders query statistics order Material-issue-slip bill 19 Example: Data Dictionary zresponse: bill material-issue-slip, reject-message zquery: period / query from manager regarding sales statistics/ zperiod: datedate, month, year, day zdate: year month day zyear: integer zmonth: integer zday: integer zorder: customer-id zaccepted-order: order / ordered items available in inventory / zreject-message: order message / rejection message / zpending-orders: customer-id zcustomer-address: namehousestreetcitypin 20 Example: Data Dictionary zitem-name: string zhouse: string zstreet: string zcity: string zpin: integer zcustomer-id: integer zbill: total-amount customer - address zmaterial-issue-slip: message item quantity customer - address zmessage: string zstatistics: zsales-statistics: zquantity: integer 21 Observation zFrom the examples, yobserve that DFDs help create: xdata model xfunction model 22 Observation zAs a DFD is refined into greater levels of detail: ythe analyst performs an implicit functional decomposition. yAt the same time, refinements of data takes place. 23 Guidelines For Constructing DFDs zContext diagram should represent the system as a single bubble: yMany beginners commit the mistake of drawing more than one bubble in the context diagram. 24 Guidelines For Constructing DFDs zAll external entities should be represented in the context diagram: yexternal entities should not appear at any other level of DFD. zOnly 3 to 7 bubbles per diagram should be allowed: yeach bubble should be decomposed to between 3 and 7 bubbles. 25 Guidelines For Constructing DFDs zA common mistake committed by many beginners: yattempting to represent control information in a DFD. ye. g. trying to represent the order in which different functions are executed. 26 Guidelines For Constructing DFDs zA DFD does not represent control information: ywhen or in what order different functions (processes) are invoked ythe conditions under which different functions are invoked are not represented. yFor example, a function might invoke one function or another depending on some condition. yMany beginners try to represent this aspect by drawing an arrow between the corresponding bubbles. 27 Example-1 zCheck the input value: yIf the input value is less than or greater than generate an error message yotherwise search for the number Chec k numb er Gener ate Error Searc h number message number found, not-found 28 Guidelines For Constructing DFDs zIf a bubble A invokes either bubble B or bubble C depending on some conditions: yrepresent the data that flows from bubble A to bubble B and bubbles A to C ynot the conditions depending on which a process is invoked. 29 Example-2 zA function accepts the book name to be searched from the user zIf the entered book name is not a valid book name ygenerates an error message, zIf the book name is valid, ysearches the book name in the database. Get-book - name Print-err - message Search - book Error - message Book-name Good-book - name Book-details 30 Guidelines For Constructing DFDs zAll functions of the system must be captured in the DFD model: yno function specified in the SRS document should be overlooked. zOnly those functions specified in the SRS document should be represented: ydo not assume extra functionality of the system not specified by the SRS document. 31 Commonly made errors zUnbalanced DFDs zForgetting to mention the names of the data flows zUnrepresented functions or data zExternal entities appearing at higher level DFDs zTrying to represent control aspects zContext diagram having more than one bubble zA bubble decomposed into too many bubbles in the next level zTerminating decomposition too early zNouns used in naming bubbles 32 Shortcomings of the DFD Model zDFD models suffer from several shortcomings: zDFDs leave ample scope to be imprecise. yIn a DFD model, we infer about the function performed by a bubble from its label. yA label may not capture all the functionality of a bubble. 33 Shortcomings of the DFD Model zFor example, a bubble named find - book-position has only intuitive meaning: ydoes not specify several things: xwhat happens when some input information is missing or is incorrect. xDoes not convey anything regarding what happens when book is not found xor what happens if there are books by different authors with the same book title. 34 Shortcomings of the DFD Model zControl information is not represented: yFor instance, order in which inputs are consumed and outputs are produced is not specified. Accept - order Process - order Customer-file Item-file Customer-history Accepted-orders order inventory 35 Shortcomings of the DFD Model zA DFD does not specify synchronization aspects: yFor instance, the DFD in TAS example does not specify: xwhether process-order may wait until the accept-order produces data xwhether accept-order and handle-order may proceed simultaneously with some buffering mechanism between them. 36 TAS: Level 1 DFD Accept - order Process - order Handle - indent - request Handle - query pending-order Sales-statistics inventory Vendor-list Customer-file Item-file Customer-history Indent-request Indents Accepted-orders query statistics order 37 Shortcomings of the DFD Model zThe way decomposition is carried out to arrive at the successive levels of a DFD is subjective. zThe ultimate level to which decomposition is carried out is subjective: ydepends on the choice and judgement of the analyst. zEven for the same problem, yseveral alternative DFD representations are possible: ymany times it is not possible to say which DFD representation is superior or preferable. 38 Shortcomings of the DFD Model zDFD technique does not provide: yany clear guidance as to how exactly one should go about decomposing a function: yone has to use subjective judgement to carry out decomposition. zStructured analysis techniques do not specify when to stop a decomposition process: yto what length decomposition needs to be carried out. 39 Extending DFD Technique to Real - Time Systems zFor real-time systems (systems having time bounds on their actions), yessential to model control flow and events. yWidely accepted technique: Ward and Mellor technique. xa type of process (bubbles) that handles only control flows is introduced. xThese processes are represented using dashed circles. 40 Structured Design zThe aim of structured design ytransform the results of structured analysis (i. e. a DFD representation) into a structure chart. zA structure chart represents the software architecture: yvarious modules making up the system, y module dependency (i. e. which module calls which other modules), yparameters passed among different modules. 41 Structure Chart zStructure chart representation yeasily implementable using programming languages. zMain focus of a structure chart: ydefine the module structure of a software, yinteraction among different modules, yprocedural aspects (e. g, how a particular functionality is achieved) are not represented. 42 Basic building blocks of structure chart zRectangular box: yA rectangular box represents a module. yannotated with the name of the module it represents. Process-order 43 Arrows zAn arrow between two modules implies: yduring execution control is passed from one module to the other in the direction of the arrow. Process-orderHandle-indent root Handle-query 44 Data flow Arrows zData flow arrows represent: ydata passing from one module to another in the direction of the arrow. Process-order root order 45 Library modules zLibrary modules represent frequently called modules: y a rectangle with double side edges. ySimplifies drawing when a module is called by several modules. Quick-sort 46 Selection zThe diamond symbol represents: yone module of several modules connected to the diamond symbol is invoked depending on some condition. Process-orderHandle-indent root Handle-query 47 Repetition zA loop around control flow arrows denotes that the concerned modules are invoked repeatedly. Process-orderHandle-indent root Handle-query 48 Structure Chart zThere is only one module at the top: ythe root module. zThere is at most one control relationship between any two modules: yif module A invokes module B, ymodule B cannot invoke module A. zThe main reason behind this restriction: yconsider modules in a structure chart to be arranged in layers or levels. 49 Structure Chart zThe principle of abstraction: ydoes not allow lower-level modules to invoke higher - level modules: yBut, two higher-level modules can invoke the same lower-level module. 50 Example root Get-good-dataCompute-solutionDisplay-solution Get-data Validate-data Valid-numbers rms 52 Shortcomings of Structure Chart zBy looking at a structure chart: ywe can not say whether a module calls another module just once or many times. zAlso, by looking at a structure chart: ywe can not tell the order in which the different modules are invoked. 53 Flow Chart (Aside) zWe are all familiar with the flow chart representations: yFlow chart is a convenient technique to represent the flow of control in a system. zAB zif(c 100) z P20 zelse p 80 zwhile(p20) z print(student mark) AB P20P80 Print yes no dummy yes no 20) z print(student mark) AB P20P80 Print yes no dummy yes no 54 Flow Chart versus Structure Chart zA structure chart differs from a flow chart in three principal ways: yIt is difficult to identify modules of a software from its flow chart representation. yData interchange among the modules is not represented in a flow chart. ySequential ordering of tasks inherent in a flow chart is suppressed in a structure chart. 55 Transformation of a DFD Model into Structure Chart zTwo strategies exist to guide transformation of a DFD into a structure chart: yTransform Analysis yTransaction Analysis 56 Transform Analysis zThe first step in transform analysis: ydivide the DFD into 3 types of parts: xinput, xlogical processing, xoutput. 57 Transform Analysis zInput portion in the DFD: yprocesses which convert input data from physical to logical form. ye. g. read characters from the terminal and store in internal tables or lists. zEach input portion: ycalled an afferent branch. yPossible to have more than one afferent branch in a DFD. 58 Transform Analysis zOutput portion of a DFD: ytransforms output data from logical form to physical form. xe. g. from list or array into output characters. yEach output portion: xcalled an efferent branch. zThe remaining portions of a DFD ycalled central transform 59 Transform Analysis zDerive structure chart by drawing one functional component for: ythe central transform, yeach afferent branch, yeach efferent branch. 60 Transform Analysis zIdentifying the highest level input and output transforms: yrequires experience and skill. zSome guidelines: ytrace the inputs until a bubble is found whose output cannot be deduced from the inputs alone. yProcesses which validate input are not central transforms. yProcesses which sort input or filter data from it are. 61 Transform Analysis zFirst level of structure chart: ydraw a box for each input and output units ya box for the central transform. zNext, refine the structure chart: yadd subfunctions required by each high-level module. yMany levels of modules may required to be added. 62 Factoring zThe process of breaking functional components into subcomponents. zFactoring includes adding: yread and write modules, yerror-handling modules, yinitialization and termination modules, etc. zFinally check: ywhether all bubbles have been mapped to modules. 63 Example 1: RMS Calculating Software Compute - RMS 0 User Data - items result Context Diagram 64 Example 1: RMS Calculating Software zFrom a cursory analysis of the problem description, yeasy to see that the system needs to perform: xaccept the input numbers from the user, xvalidate the numbers, xcalculate the root mean square of the input numbers, xdisplay the result. 65 Example 1: RMS Calculating Software Data - items result Read - numbers 0.1 Validate - numbers 0.2 Compute - rms 0.3 Display 0.4 RMS numbers Valid - numbers error 66 Example 1: RMS Calculating Software zBy observing the level 1 DFD: yidentify read-number and validate-number bubbles as the afferent branch ydisplay as the efferent branch. 67 Example 1: RMS Calculating Software root Get-good-dataCompute-solutionDisplay-solution Get-data Validate-data Valid-numbers rms 68 Example 2: Tic-Tac-Toe Computer Game zAs soon as either of the human player or the computer wins, ya message congratulating the winner should be displayed. zIf neither player manages to get three consecutive marks along a straight line, yand all the squares on the board are filled up, ythen the game is drawn. zThe computer always tries to win a game. 70 Level 1 DFD board Display - board Check - winner Validate - move Play - move move result game 71 Structure Chart root Get-good-moveCompute-gameDisplay Get-move Validate - move play-move Check - winner 72 Transaction Analysis zUseful for designing transaction processing programs. yTransform-centered systems: xcharacterized by similar processing steps for every data item processed by input, process, and output bubbles. yTransaction-driven systems, xone of several possible paths through the DFD is traversed depending upon the input data value. 73 Transaction Analysis zTransaction: yany input data value that triggers an action: yFor example, selected menu options might trigger different functions. yRepresented by a tag identifying its type. zTransaction analysis uses this tag to divide the system into: yseveral transaction modules yone transaction-center module. 74 Transaction analysis Transaction - center trans 1 trans 2 trans 3 type 1type 2type 3 75 Level 1 DFD for TAS Accept - order Process - order Handle - indent - request Handle - query pending-order Sales-statistics inventory Vendor-list Customer-file Item-file Customer-history Indent-request Indents Accepted-orders query order statistics 76 Structure Chart root Handle-orderHandle-indentHandle-query Get-order Accept-orderProcess - order order query indent 77 Summary zWe first discussed structured analysis of a larger problem. zWe defined some general guidelines yfor constructing a satisfactory DFD model. zThe DFD model though simple and useful ydoes have several short comings. zWe then started discussing structured design. 78 Summary zAim of structured design: ytransform a DFD representation into a structure chart. zStructure chart represents: ymodule structure yinteraction among different modules, yprocedural aspects are not represented. 79 Summary zStructured design provides two strategies to transform a DFD into a structure chart: yTransform Analysis yTransaction Analysis 80 Summary zWe Discussed three examples of structured design. zIt takes a lot of practice to become a good software designer: yPlease try to solve all the problems listed in your assignment sheet, y not only the ones you are expected to submit.

No comments:

Post a Comment