Was ist Qualität von Software überhaupt? Die Lehrbuchdefinitionen verstehen Softwarequalität als die Gesamtheit der Merkmale und Merkmalswerte eines Softwareprodukts, die sich auf dessen Eignung beziehen, festgelegte oder vorausgesetzte Erfordernisse zu erfüllen. Zentraler Begriff sind hier die »festgelegten oder vorausgesetzten Erfordernisse«, also Kriterien, die zum einen für jedes Projekt definiert sind, zum anderen auch ungenannt vorausgesetzt werden. Diese Kriterien könnten zum Beispiel sein: Korrektheit in Funktion, Effizienz und Bedienbarkeit, Zuverlässigkeit und Reproduzierbarkeit, Robustheit, Sicherheit sowie Wartbarkeit.
Um das etwas genauer zu betrachten, kann man ein anderes Vorgehensmodell, ein vereinfachtes Wasserfallmodell (Spezifikation, Design, Implementierung, Test), heranziehen und betrachtet die einzelnen Phasen im Detail. Die Spezifikation soll dabei Antwort auf die Frage geben »Was soll die Software tun?«. Sie hat die Aufgabe, das zu entwickelnde System gegenüber seiner Umwelt abzugrenzen und so eine Sicht von außen auf das System zu gestatten, aber auch Schnittstellen darzustellen. Anhand unterschiedlicher Szenarien wird das Verhalten des Systems exakt beschrieben. Gerade bei Embedded-Systemen wird hier auch eine vorgegebene Hardwarestruktur zu finden sein.