In den meisten Fällen wird die Spezifikation in natürlicher Sprache abgefasst, da bislang keine einheitliche Sprache zur Beschreibung von Spezifikationen existiert. Neben der natürlichen Sprache werden für Teile der Spezifikation auch Blockdiagramme, Zustandsübergangsdiagramme oder Task-Flow-Graphen verwendet. Während Blockdiagramme der Beschreibung der Struktur eines Systems dienen, beschreiben Zustandsübergangsdiagramme das Verhalten des Systems. Mit Task-Flow-Graphen wird der Datenfluss eines Systems spezifiziert.
Grundsätzlich kann die Spezifikation auch mit Hilfe einer formalen Sprache erfolgen. Dazu werden häufig Erweiterungen regulärer Programmierspachen (z. B. C) oder aber auch spezielle Systembeschreibungssprachen benutzt.