Die Funktionalität und Kapazität eines Systems werden je nach Komplexität des Systems und dem Zweck der Spezifikation durch eine Vielzahl von Methoden festgelegt. Diese Spezifikationen sind entscheidend für Design, Entwicklung, Test und Bereitstellung. Hier sind einige wichtige Ansätze:
1. Funktionale Anforderungen: Diese beschreiben *, was * das System tun sollte. Sie werden oft ausgedrückt als:
* Anwendungsfälle: Beschreiben Sie die Interaktionen zwischen Benutzern (oder anderen Systemen) und dem System und beschreiben eine bestimmte Folge von Aktionen und erwarteten Ergebnissen.
* Benutzergeschichten: Kürzere, informelle Beschreibungen der Funktionalität aus der Sicht eines Benutzers (z. B. "Als Kunde möchte ich in der Lage sein, meinem Warenkorb Artikel hinzuzufügen, damit ich sie später kaufen kann.").
* Feature -Listen: Eine einfache Aufzählung der Merkmale des Systems. Weniger detailliert als Anwendungsfälle, aber nützlich für die Planung auf hoher Ebene.
* Zustandsdiagramme: Zeigen Sie die verschiedenen Zustände, in denen ein System in und wie es zwischen ihnen wechselt. Nützlich für Systeme mit komplexem Zustandsmanagement.
* Datenflussdiagramme: Veranschaulichen Sie den Datenfluss über das System.
2. Nicht funktionale Anforderungen (oder Qualitätsattribute): Diese beschreiben *, wie das System funktionieren sollte. Sie sind oft verwandt mit:
* Leistung: Antwortzeiten, Durchsatz, Transaktionsraten, Ressourcenauslastung (CPU, Speicher, Netzwerk). Oft quantitativ ausgedrückt (z. B. "das System muss auf Benutzeranfragen innerhalb von 2 Sekunden reagieren").
* Skalierbarkeit: Fähigkeit, eine zunehmende Last zu bewältigen (Benutzer, Daten, Transaktionen). Häufig in Bezug auf das erwartete Wachstum und die Systemleistung unter diesem Wachstum angegeben.
* Sicherheit: Schutz vor nicht autorisierten Zugriffs, Datenverletzungen und anderen Bedrohungen. Definiert durch Sicherheitsrichtlinien und Zugangskontrollmechanismen.
* Zuverlässigkeit: Häufigkeit und Dauer der Ausfälle, mittlere Zeit zwischen Fehlern (MTBF), mittlere Zeit bis zur Wiederherstellung (MTTR).
* Verfügbarkeit: Prozentsatz der Zeit Das System ist betriebsbereit.
* Wartbarkeit: Einfaches Ändern und Aktualisieren des Systems.
* Usability: Benutzerfreundlichkeit für beabsichtigte Benutzer. Häufig durch Benutzertests und Feedback gemessen.
* Portabilität: Fähigkeit, auf verschiedenen Plattformen und Umgebungen zu laufen.
3. Kapazitätsanforderungen: Diese beschreiben die Fähigkeit des Systems, eine bestimmte Arbeitsbelastung zu bewältigen. Dies beinhaltet:
* Datenvolumen: Datenmenge, die das System speichern und verarbeiten muss.
* Benutzerverhältnis: Anzahl der gleichzeitigen Benutzer, die das System unterstützen kann.
* Transaktionsrate: Anzahl der Transaktionen Das System kann pro Zeiteinheit verarbeiten.
* Ressourcengrenzen: Grenzen für CPU, Speicher, Speicher, Netzwerkbandbreite.
Methoden zur Angabe von Funktionalität und Kapazität:
* natürliche Sprache: Oft für hochrangige Beschreibungen verwendet, kann aber mehrdeutig sein.
* formelle Spezifikationssprachen: Verwenden Sie präzise mathematische oder logische Notationen, um Unklarheiten (z. B. Z, VDM) zu vermeiden. Strenger, erfordern aber spezialisiertes Fachwissen.
* Modellierungssprachen: Verwenden Sie visuelle Notationen, um die Systemstruktur und das Verhalten (z. B. UML) darzustellen. Ein gutes Gleichgewicht zwischen Präzision und Verständlichkeit.
* Systemanforderungen Spezifikation (SRS) Dokument: Ein formales Dokument, das alle funktionalen und nicht funktionalen Anforderungen umfassend beschreibt.
Die Auswahl der Methoden hängt von Faktoren wie Projektgröße, Komplexität, Budget und technischem Fachwissen des Teams ab. Oft wird eine Kombination dieser Methoden verwendet, um eine umfassende und klare Spezifikation zu erstellen. Es ist wichtig sicherzustellen, dass die Spezifikationen eindeutig, vollständig, konsistent und überprüfbar sind. Rückverfolgbarkeit zwischen Anforderungen, Design und Implementierung ist auch für die effektive Systementwicklung und -wartung wichtig.