Funktionale Spezifikation - Functional specification
Software-Entwicklung |
---|
Eine funktionale Spezifikation (auch Functional Spec , Specs , Functional Specification Document (FSD) , Functional Requirements Specification ) in der Systemtechnik und Softwareentwicklung ist ein Dokument, das die Funktionen festlegt, die ein System oder eine Komponente erfüllen muss (oft Teil einer Anforderungsspezifikation) (ISO / IEC / IEEE 24765-2010).
Die Dokumentation beschreibt typischerweise, was der Systembenutzer benötigt sowie gewünschte Eigenschaften von Ein- und Ausgängen (zB des Softwaresystems ). Eine funktionale Spezifikation ist die eher technische Antwort auf ein passendes Anforderungsdokument, zB das Product Requirements Document "PRD". Damit greift es die Ergebnisse der Anforderungsanalyse auf . Bei komplexeren Systemen verschachteln sich typischerweise mehrere Ebenen von Funktionsspezifikationen, zB auf Systemebene, auf Modulebene und auf Ebene der technischen Details.
Überblick
Eine funktionale Spezifikation definiert nicht das Innenleben des vorgeschlagenen Systems; es beinhaltet nicht die Spezifikation, wie die Systemfunktion implementiert wird. Stattdessen konzentriert es sich darauf, was verschiedene externe Agenten (z. B. Personen, die das Programm verwenden, Computerperipheriegeräte oder andere Computer) "beobachten", wenn sie mit dem System interagieren.
Eine funktionale Anforderung in einer funktionalen Spezifikation könnte wie folgt lauten:
- Wenn der Benutzer auf die Schaltfläche OK klickt, wird der Dialog geschlossen und der Fokus wird auf das Hauptfenster in dem Zustand zurückgesetzt, in dem er sich vor der Anzeige dieses Dialogs befand.
Eine solche Anforderung beschreibt eine Interaktion zwischen einem externen Agenten (dem Benutzer ) und dem Softwaresystem. Wenn der Benutzer durch Klicken auf die Schaltfläche OK Eingaben in das System eingibt, antwortet das Programm (oder sollte darauf reagieren), indem es das Dialogfenster mit der Schaltfläche OK schließt.
Themen zur funktionalen Spezifikation
Zweck
Es gibt viele Zwecke für funktionale Spezifikationen. Einer der Hauptzwecke bei Teamprojekten besteht darin, eine Art Teamkonsens darüber zu erzielen, was das Programm erreichen soll, bevor die zeitaufwändigere Anstrengung unternommen wird, Quellcode und Testfälle zu schreiben , gefolgt von einer Phase des Debuggens . In der Regel wird ein solcher Konsens nach einer oder mehreren Überprüfungen durch die Beteiligten des vorliegenden Projekts erzielt, nachdem ein kosteneffizienter Weg ausgehandelt wurde, um die Anforderungen zu erfüllen, die die Software erfüllen muss.
- Damit die Entwickler wissen, was sie bauen sollen.
- Damit die Tester wissen, welche Tests ausgeführt werden sollen.
- Damit die Beteiligten wissen, was sie bekommen.
Prozess
Im geordneten industriellen Software-Engineering-Lebenszyklus ( Wasserfallmodell ) beschreibt die funktionale Spezifikation, was umgesetzt werden muss. Das nächste Systemarchitekturdokument beschreibt, wie die Funktionen unter Verwendung einer ausgewählten Softwareumgebung realisiert werden. In der nicht-industriellen, prototypischen Systementwicklung werden Funktionsspezifikationen typischerweise nach oder als Teil der Anforderungsanalyse geschrieben .
Wenn das Team zustimmt, dass ein Konsens über die funktionale Spezifikation erreicht wird, wird die funktionale Spezifikation normalerweise als "abgeschlossen" oder "abgemeldet" erklärt. Danach schreibt das Softwareentwicklungs- und Testteam in der Regel Quellcode und Testfälle unter Verwendung der funktionalen Spezifikation als Referenz. Während des Tests wird das Verhalten des Programms mit dem erwarteten Verhalten verglichen, das in der funktionalen Spezifikation definiert ist.
Methoden
Eine beliebte Methode zum Schreiben eines Dokuments mit funktionalen Spezifikationen umfasst das Zeichnen oder Rendern von einfachen Drahtmodellen oder genauen, grafisch gestalteten UI-Screenshots. Nachdem dies abgeschlossen ist und die Bildschirmbeispiele von allen Beteiligten genehmigt wurden, können grafische Elemente nummeriert und für jede Nummer auf dem Bildschirmbeispiel schriftliche Anweisungen hinzugefügt werden. Zum Beispiel kann ein Anmeldebildschirm das Benutzernamenfeld mit der Beschriftung „1“ und das Passwortfeld mit der Beschriftung „2“ aufweisen, und dann kann jede Nummer schriftlich zur Verwendung durch Softwareingenieure und später für Beta-Testzwecke angegeben werden, um sicherzustellen, dass die Funktionalität unverändert ist beabsichtigt. Der Vorteil dieser Methode besteht darin, dass an die Bildschirmbeispiele unzählige zusätzliche Details angehängt werden können.
Beispiele für Funktionsspezifikationen
- Fortschrittliche Mikrocontroller-Busarchitektur
- Erweiterbare Firmware-Schnittstelle
- Multiboot-Spezifikation
- Echtzeitspezifikation für Java
- Einzel-UNIX-Spezifikation
Arten von Softwareentwicklungsspezifikationen
- Bitspezifikation (Begriffsklärung)
- Gestaltungsspezifikation
- Spezifikation des Diagnosedesigns
- Produktdesignspezifikation
- Softwareanforderungen
Siehe auch
- Benchmarking
- Softwareentwicklungsprozess
- Spezifikation (technischer Standard)
- Verifizierung und Validierung (Software)