Definition und Bedeutung:
Softwarequalität ist der Grad, in dem ein Softwaresystem (z.B. ein SPS-Programm, eine HMI-Anwendung, ein MES-System) die expliziten und impliziten Anforderungen erfüllt. Sie umfasst eine Vielzahl von Eigenschaften, die bestimmen, wie gut die Software funktioniert, wie zuverlässig sie ist, wie einfach sie zu bedienen ist und wie gut sie gewartet werden kann.
Das Hauptziel der Sicherstellung der Softwarequalität ist es, die Zuverlässigkeit, Sicherheit und Effizienz von Automatisierungssystemen zu gewährleisten und die Kosten über den gesamten Lebenszyklus zu minimieren.
Wichtige Qualitätskriterien (nach ISO 25010):
Die internationale Norm ISO 25010 definiert acht Hauptqualitätskriterien für Softwareprodukte und Systeme:
- Funktionalität: Erfüllt die Software die Anforderungen und funktioniert sie korrekt?
- Zuverlässigkeit: Arbeitet die Software ohne Fehler und Ausfälle über einen bestimmten Zeitraum? (Fehlertoleranz, Wiederherstellbarkeit).
- Benutzbarkeit (Usability): Wie einfach ist die Software zu bedienen und zu erlernen? (Effektivität, Effizienz, Zufriedenheit).
- Leistungseffizienz (Performance Efficiency): Wie gut werden Ressourcen (CPU, Speicher, Zeit) genutzt?
- Wartbarkeit (Maintainability): Wie einfach ist die Software zu ändern, zu erweitern und Fehler zu beheben? (Modularität, Analysierbarkeit, Änderbarkeit).
- Sicherheit (Security): Schutz vor unbefugtem Zugriff und Manipulation.
- Kompatibilität: Interagiert die Software gut mit anderen Systemen?
- Portabilität: Wie einfach kann die Software in eine andere Umgebung übertragen werden?
Relevanz in der Automatisierungstechnik:
Eine hohe Softwarequalität ist in der industriellen Automatisierung von entscheidender Bedeutung, da Fehler in der Software schwerwiegende Folgen haben können (Produktionsausfälle, Sicherheitsprobleme, Datenverlust). Maßnahmen zur Qualitätssicherung umfassen:
- Strukturierte Programmierung: Nutzung von Bausteinen, Funktionen und standardisierten Sprachkonzepten (IEC 61131-3).
- Automatisierte Tests: Kontinuierliche Integration (CI), Unit-Tests, Systemtests, virtuelle Inbetriebnahme.
- Dokumentation: Kommentare, Lastenhefte, Pflichtenhefte.
- Versionsverwaltung: Nachvollziehbarkeit von Änderungen.
- Fehlermanagement: Systematische Erfassung und Behebung von Fehlern.
- Code Reviews.
Die Investition in Softwarequalität zahlt sich durch höhere Anlagenverfügbarkeit, geringere Wartungskosten und verbesserte Sicherheit aus.
→ Siehe auch: ISO 25010, Programmierung, Wartbarkeit, Sicherheitsfunktionen, IEC 61131-3, Continuous Integration, Debugging

