Bei der Systemanalyse und -gestaltung bezieht sich der Abstraktionsniveau auf den Detail- und Komplexitätsgrad und die Komplexität, die in einem Modell oder einer Darstellung eines Systems enthalten sind. Es geht darum, wie viel Sie beim Betrachten des Systems in "zoomen" oder "zoomen". Verschiedene Ebenen sind für unterschiedliche Zwecke und Zielgruppen geeignet. Höhere Abstraktionsniveaus zeigen das Gesamtbild, während niedrigere Ebenen eine feinere Granularität bieten.
Hier ist eine Aufschlüsselung der gemeinsamen Abstraktionsniveaus:
* Abstraktion auf hoher Ebene (konzeptionelle Ebene): Dies ist die breiteste Sichtweise des Systems. Es konzentriert sich auf den Gesamtzweck, die wichtigsten Komponenten und die Interaktionen zwischen ihnen, ohne in Einzelheiten zu gehen. Betrachten Sie es als eine Vogelperspektive. Beispiele sind:
* Datenflussdiagramme (DFDS): Zeigen Sie den Datenfluss durch das System, jedoch nicht die interne Arbeiten von Prozessen.
* Anwendungsfalldiagramme: Veranschaulichung der Interaktionen zwischen Benutzern und System, ohne die Implementierung zu detailliert.
* Kontextdiagramme: Zeigen Sie die Grenzen des Systems und seine Interaktionen mit der externen Umgebung.
* Abstraktion auf mittlerer Ebene (logische Ebene): Diese Ebene liefert mehr Details als das hohe Niveau, vermeidet aber dennoch Implementierungspezifikationen. Es konzentriert sich auf * was * das System tut, nicht * wie * es tut. Beispiele sind:
* Entitätsbeziehungsdiagramme (ERDS): Modellierung von Datenentitäten und ihre Beziehungen, ohne Datenbanktechnologie anzugeben.
* detaillierte dfds: Das Aufschlüsse hochrangiger Prozesse in kleinere, überschaubarere Unterprozesse.
* Zustandsübergangsdiagramme: Zeigen der verschiedenen Zustände, in denen ein System in und wie es zwischen ihnen wechselt.
* Abstraktion mit niedriger Ebene (physikalischer Ebene): Dies ist das detaillierteste Niveau und konzentriert sich auf das *How *. Es befasst sich mit den konkreten Implementierungsdetails, einschließlich Hardware, Software und spezifischen Algorithmen. Beispiele sind:
* Klassendiagramme (in objektorientiertem Design): Anzeigen von Klassen, Attributen, Methoden und Beziehungen.
* Sequenzdiagramme: Veranschaulichung der Reihenfolge der Nachrichten, die zwischen Objekten ausgetauscht werden.
* Datenbankschemas: Definieren von Tabellen, Spalten und Datentypen.
* Quellcode: Die tatsächliche Implementierung des Systems.
Die Wahl des Abstraktionsniveaus hängt von der Phase des Systementwicklungslebenszyklus und des Publikums ab. Frühe Stadien verwenden im Allgemeinen ein höheres Abstraktionsniveau, um das Gesamtdesign den Stakeholdern zu vermitteln. Spätere Phasen bewegen sich zunehmend auf niedrigere Ebenen und bieten Entwicklern und Implementierern zunehmend Details. Eine effektive Systemanalyse und -gestaltung erfordert einen reibungslosen Übergang zwischen diesen Ebenen, um die Konsistenz sicherzustellen und unnötige Komplexität in jeder Phase zu vermeiden.