Softwareanalyse- und Designtools
Die Softwareanalyse und das Design umfassen alle Aktivitäten, die bei der Umwandlung der Anforderungsspezifikation in die Implementierung helfen. Die Anforderungsspezifikationen spezifizieren alle funktionalen und nicht funktionalen Erwartungen an die Software. Diese Anforderungsspezifikationen bestehen aus lesbaren und verständlichen Dokumenten, mit denen ein Computer nichts zu tun hat.
Softwareanalyse und -design sind die Zwischenstufe, mit deren Hilfe lesbare Anforderungen in tatsächlichen Code umgewandelt werden können.
Sehen wir uns einige Analyse- und Designtools an, die von Software-Designern verwendet werden:
Datenflussdiagramm
Das Datenflussdiagramm ist eine grafische Darstellung des Datenflusses in einem Informationssystem. Es ist in der Lage, eingehenden Datenfluss, ausgehenden Datenfluss und gespeicherte Daten darzustellen. Der DFD erwähnt nichts darüber, wie Daten durch das System fließen.
Es gibt einen deutlichen Unterschied zwischen DFD und Flussdiagramm. Das Flussdiagramm zeigt den Steuerungsfluss in Programmmodulen. DFDs zeigen den Datenfluss im System auf verschiedenen Ebenen. DFD enthält keine Steuerungs- oder Verzweigungselemente.
Arten von DFD
Datenflussdiagramme sind entweder logisch oder physisch.
- Logical DFD - Diese Art von DFD konzentriert sich auf den Systemprozess und den Datenfluss im System. Beispiel: In einem Banking-Softwaresystem, wie Daten zwischen verschiedenen Entitäten verschoben werden.
- Physical DFD- Diese Art von DFD zeigt, wie der Datenfluss tatsächlich im System implementiert ist. Es ist spezifischer und nah an der Implementierung.
DFD-Komponenten
DFD kann Quelle, Ziel, Speicherung und Datenfluss mithilfe der folgenden Komponenten darstellen:
- Entities- Entitäten sind Quelle und Ziel von Informationsdaten. Entitäten werden durch ein Rechteck mit ihren jeweiligen Namen dargestellt.
- Process - Aktivitäten und Aktionen, die an den Daten ausgeführt werden, werden durch kreisförmige oder rundkantige Rechtecke dargestellt.
- Data Storage - Es gibt zwei Varianten der Datenspeicherung: Sie kann entweder als Rechteck ohne beide kleineren Seiten oder als offenes Rechteck mit nur einer fehlenden Seite dargestellt werden.
- Data Flow- Die Bewegung der Daten wird durch spitze Pfeile angezeigt. Die Datenbewegung wird von der Pfeilbasis als Quelle zur Pfeilspitze als Ziel angezeigt.
DFD-Stufen
- Level 0- DFD mit der höchsten Abstraktionsebene ist als DFD der Ebene 0 bekannt. Dabei wird das gesamte Informationssystem als ein Diagramm dargestellt, in dem alle zugrunde liegenden Details verborgen sind. DFDs der Ebene 0 werden auch als DFDs der Kontextebene bezeichnet.
- Level 1- Das DFD der Stufe 0 ist in spezifischere DFD der Stufe 1 unterteilt. Level 1 DFD zeigt grundlegende Module im System und den Datenfluss zwischen verschiedenen Modulen. Level 1 DFD erwähnt auch grundlegende Prozesse und Informationsquellen.
Level 2 - Auf dieser Ebene zeigt DFD, wie Daten innerhalb der in Ebene 1 genannten Module fließen.
DFDs auf höherer Ebene können in spezifischere DFDs auf niedrigerer Ebene mit tieferem Verständnis umgewandelt werden, sofern nicht das gewünschte Spezifikationsniveau erreicht wird.
Strukturdiagramme
Das Strukturdiagramm ist ein Diagramm, das aus dem Datenflussdiagramm abgeleitet wurde. Es stellt das System detaillierter dar als DFD. Es unterteilt das gesamte System in niedrigste Funktionsmodule, beschreibt Funktionen und Unterfunktionen jedes Moduls des Systems detaillierter als DFD.
Das Strukturdiagramm repräsentiert die hierarchische Struktur der Module. Auf jeder Ebene wird eine bestimmte Aufgabe ausgeführt.
Hier sind die Symbole, die bei der Erstellung von Strukturdiagrammen verwendet werden -
- Module- Es repräsentiert einen Prozess oder ein Unterprogramm oder eine Aufgabe. Ein Steuermodul verzweigt in mehr als ein Untermodul. Bibliotheksmodule können von jedem Modul aus wiederverwendet und aufgerufen werden.
- Condition- Es wird durch einen kleinen Diamanten an der Basis des Moduls dargestellt. Es zeigt, dass das Steuermodul basierend auf einer bestimmten Bedingung eine beliebige Unterroutine auswählen kann.
- Jump - Ein Pfeil zeigt in das Modul, um anzuzeigen, dass die Steuerung in die Mitte des Untermoduls springt.
- Loop- Ein gekrümmter Pfeil repräsentiert die Schleife im Modul. Alle von der Schleife abgedeckten Untermodule wiederholen die Ausführung des Moduls.
- Data flow - Ein gerichteter Pfeil mit einem leeren Kreis am Ende repräsentiert den Datenfluss.
- Control flow - Ein gerichteter Pfeil mit einem ausgefüllten Kreis am Ende repräsentiert den Kontrollfluss.
HIPO-Diagramm
Das HIPO-Diagramm (Hierarchical Input Process Output) ist eine Kombination aus zwei organisierten Methoden zur Analyse des Systems und zur Bereitstellung der Dokumentationsmittel. Das HIPO-Modell wurde 1970 von IBM entwickelt.
Das HIPO-Diagramm repräsentiert die Hierarchie der Module im Softwaresystem. Analyst verwendet das HIPO-Diagramm, um eine allgemeine Ansicht der Systemfunktionen zu erhalten. Es zerlegt Funktionen hierarchisch in Unterfunktionen. Es zeigt die vom System ausgeführten Funktionen.
HIPO-Diagramme eignen sich gut für Dokumentationszwecke. Ihre grafische Darstellung erleichtert es Designern und Managern, sich ein Bild von der Systemstruktur zu machen.
Im Gegensatz zum IPO-Diagramm (Input Process Output), das den Steuerungs- und Datenfluss in einem Modul darstellt, liefert die HIPO keine Informationen zum Datenfluss oder Kontrollfluss.
Beispiel
Beide Teile des HIPO-Diagramms, der hierarchischen Darstellung und des IPO-Diagramms werden für das Strukturdesign eines Softwareprogramms sowie für dessen Dokumentation verwendet.
Strukturiertes Englisch
Die meisten Programmierer kennen das Gesamtbild der Software nicht und verlassen sich daher nur auf die Anweisungen ihrer Manager. Es liegt in der Verantwortung eines höheren Software-Managements, den Programmierern genaue Informationen zur Verfügung zu stellen, um genauen und dennoch schnellen Code zu entwickeln.
Andere Arten von Methoden, die Grafiken oder Diagramme verwenden, können manchmal von verschiedenen Personen unterschiedlich interpretiert werden.
Daher entwickeln Analysten und Designer der Software Tools wie Structured English. Es ist nichts anderes als die Beschreibung dessen, was zum Codieren erforderlich ist und wie es codiert wird. Strukturiertes Englisch hilft dem Programmierer, fehlerfreien Code zu schreiben.
Andere Formen von Methoden, die Grafiken oder Diagramme verwenden, können manchmal von verschiedenen Personen unterschiedlich interpretiert werden. Hier versuchen sowohl Structured English als auch Pseudo-Code, diese Verständnislücke zu schließen.
Strukturiertes Englisch ist das Es verwendet einfache englische Wörter im strukturierten Programmierparadigma. Es ist nicht der ultimative Code, sondern eine Art Beschreibung, was zum Codieren erforderlich ist und wie es codiert wird. Das Folgende sind einige Token für strukturierte Programmierung.
IF-THEN-ELSE,
DO-WHILE-UNTIL
Analyst verwendet dieselbe Variable und denselben Datennamen, die im Datenwörterbuch gespeichert sind, was das Schreiben und Verstehen des Codes erheblich vereinfacht.
Beispiel
Wir nehmen das gleiche Beispiel der Kundenauthentifizierung in der Online-Einkaufsumgebung. Dieses Verfahren zur Authentifizierung des Kunden kann in strukturiertem Englisch wie folgt geschrieben werden:
Enter Customer_Name
SEEK Customer_Name in Customer_Name_DB file
IF Customer_Name found THEN
Call procedure USER_PASSWORD_AUTHENTICATE()
ELSE
PRINT error message
Call procedure NEW_CUSTOMER_REQUEST()
ENDIF
Der in strukturiertem Englisch geschriebene Code ähnelt eher dem alltäglichen gesprochenen Englisch. Es kann nicht direkt als Software-Code implementiert werden. Strukturiertes Englisch ist unabhängig von der Programmiersprache.
Pseudo-Code
Pseudocode wird näher an der Programmiersprache geschrieben. Es kann als erweiterte Programmiersprache mit vielen Kommentaren und Beschreibungen betrachtet werden.
Pseudocode vermeidet die Deklaration von Variablen, sie werden jedoch mit Konstrukten einiger tatsächlicher Programmiersprachen wie C, Fortran, Pascal usw. geschrieben.
Pseudocode enthält mehr Programmierdetails als strukturiertes Englisch. Es bietet eine Methode zum Ausführen der Aufgabe, als würde ein Computer den Code ausführen.
Beispiel
Programm zum Drucken von Fibonacci mit bis zu n Zahlen.
void function Fibonacci
Get value of n;
Set value of a to 1;
Set value of b to 1;
Initialize I to 0
for (i=0; i< n; i++)
{
if a greater than b
{
Increase b by a;
Print b;
}
else if b greater than a
{
increase a by b;
print a;
}
}
Entscheidungstabellen
Eine Entscheidungstabelle enthält die Bedingungen und die entsprechenden Maßnahmen, die zu ihrer Behebung ergriffen werden müssen, in einem strukturierten Tabellenformat.
Es ist ein leistungsstarkes Tool zum Debuggen und Verhindern von Fehlern. Es hilft dabei, ähnliche Informationen in einer einzigen Tabelle zu gruppieren, und bietet dann durch Kombinieren von Tabellen eine einfache und bequeme Entscheidungsfindung.
Entscheidungstabelle erstellen
Um die Entscheidungstabelle zu erstellen, muss der Entwickler die folgenden vier grundlegenden Schritte ausführen:
- Identifizieren Sie alle möglichen Bedingungen, die angegangen werden müssen
- Bestimmen Sie Aktionen für alle identifizierten Bedingungen
- Erstellen Sie maximal mögliche Regeln
- Definieren Sie die Aktion für jede Regel
Entscheidungstabellen sollten von Endbenutzern überprüft werden und können in letzter Zeit vereinfacht werden, indem doppelte Regeln und Aktionen beseitigt werden.
Beispiel
Nehmen wir ein einfaches Beispiel für alltägliche Probleme mit unserer Internetverbindung. Wir identifizieren zunächst alle Probleme, die beim Starten des Internets auftreten können, und ihre jeweiligen möglichen Lösungen.
Wir listen alle möglichen Probleme unter Spaltenbedingungen und die möglichen Aktionen unter Spaltenaktionen auf.
Bedingungen / Aktionen | Regeln | ||||||||
---|---|---|---|---|---|---|---|---|---|
Bedingungen | Zeigt Verbunden an | N. | N. | N. | N. | Y. | Y. | Y. | Y. |
Ping funktioniert | N. | N. | Y. | Y. | N. | N. | Y. | Y. | |
Öffnet die Website | Y. | N. | Y. | N. | Y. | N. | Y. | N. | |
Aktionen | Überprüfen Sie das Netzwerkkabel | X. | |||||||
Überprüfen Sie den Internet-Router | X. | X. | X. | X. | |||||
Starten Sie den Webbrowser neu | X. | ||||||||
Wenden Sie sich an den Dienstanbieter | X. | X. | X. | X. | X. | X. | |||
Mach keine Aktion |
Entity-Relationship-Modell
Das Entity-Relationship-Modell ist eine Art Datenbankmodell, das auf dem Begriff der realen Entitäten und der Beziehung zwischen ihnen basiert. Wir können ein reales Szenario auf ein ER-Datenbankmodell abbilden. Das ER-Modell erstellt eine Reihe von Entitäten mit ihren Attributen, einer Reihe von Einschränkungen und Beziehungen zwischen ihnen.
Das ER-Modell eignet sich am besten für die Konzeption von Datenbanken. Das ER-Modell kann wie folgt dargestellt werden:
Entity - Eine Entität im ER-Modell ist ein Wesen der realen Welt, das einige Eigenschaften hat, die als bezeichnet werden attributes. Jedes Attribut wird durch den entsprechenden Wertesatz definiert, der aufgerufen wirddomain.
Betrachten Sie beispielsweise eine Schuldatenbank. Hier ist ein Student eine Einheit. Der Schüler hat verschiedene Attribute wie Name, ID, Alter und Klasse usw.
Relationship - Die logische Zuordnung zwischen Entitäten wird aufgerufen relationship. Beziehungen zu Entitäten werden auf verschiedene Arten zugeordnet. Mapping-Kardinalitäten definieren die Anzahl der Assoziationen zwischen zwei Entitäten.
Kardinalitäten abbilden:
- eins zu eins
- eins zu viele
- viele zu eins
- viel zu viel
Datenwörterbuch
Das Datenwörterbuch ist die zentralisierte Sammlung von Informationen über Daten. Es speichert die Bedeutung und Herkunft von Daten, ihre Beziehung zu anderen Daten, das Datenformat für die Verwendung usw. Das Datenwörterbuch enthält strenge Definitionen aller Namen, um Benutzer- und Softwareentwicklern die Arbeit zu erleichtern.
Das Datenwörterbuch wird häufig als Metadaten-Repository (Daten über Daten) bezeichnet. Es wird zusammen mit dem DFD-Modell (Data Flow Diagram) des Softwareprogramms erstellt und wird voraussichtlich aktualisiert, wenn DFD geändert oder aktualisiert wird.
Anforderung des Datenwörterbuchs
Die Daten werden beim Entwerfen und Implementieren von Software über ein Datenwörterbuch referenziert. Das Datenwörterbuch beseitigt alle Unklarheiten. Es hilft dabei, die Arbeit von Programmierern und Designern synchron zu halten, während überall im Programm dieselbe Objektreferenz verwendet wird.
Das Datenwörterbuch bietet eine Möglichkeit zur Dokumentation des gesamten Datenbanksystems an einem Ort. Die Validierung von DFD erfolgt mit dem Datenwörterbuch.
Inhalt
Das Datenwörterbuch sollte Informationen zu folgenden Themen enthalten
- Datenfluss
- Datenstruktur
- Datenelemente
- Datenspeicher
- Datenverarbeitung
Der Datenfluss wird mittels DFDs beschrieben, wie zuvor untersucht, und wie beschrieben in algebraischer Form dargestellt.
= | Zusammengesetzt aus |
---|---|
{} | Wiederholung |
() | Optional |
+ | Und |
[/] | Oder |
Beispiel
Adresse = Hausnummer + (Straße / Gebiet) + Stadt + Bundesland
Kurs-ID = Kursnummer + Kursname + Kursstufe + Kursnoten
Datenelemente
Datenelemente bestehen aus Namen und Beschreibungen von Daten und Steuerelementen, internen oder externen Datenspeichern usw. mit folgenden Details:
- Primärname
- Sekundärer Name (Alias)
- Anwendungsfall (wie und wo zu verwenden)
- Inhaltsbeschreibung (Notation etc.)
- Ergänzende Informationen (voreingestellte Werte, Einschränkungen usw.)
Datenspeicher
Es speichert die Informationen, von denen aus die Daten in das System gelangen und außerhalb des Systems existieren. Der Datenspeicher kann Folgendes enthalten:
- Files
- Intern in der Software.
- Extern zur Software, aber auf demselben Computer.
- Extern zu Software und System, auf verschiedenen Maschinen.
- Tables
- Namenskonvention
- Indizierungseigenschaft
Datenverarbeitung
Es gibt zwei Arten der Datenverarbeitung:
- Logical: Wie der Benutzer es sieht
- Physical: Wie die Software es sieht