Systematische Analysen
Softwarequalität ist dynamisch und das Resultat aktiver Steuerung.
Um Leistungsfähigkeit, Stabilität und Qualität systematisch zu erhöhen,
werden Steuerungsinstrumente entwickelt und eingesetzt,
mit denen Entwicklungsprozesse und Softwaresysteme evaluiert werden.
Während die organisationale Steuerung von Softwarequalität auf strategischer Ebene ansetzt
und organisatorische Maßnahmen adressiert,
orientiert sich die Systemevaluation an den funktionalen Mechanismen,
und damit an drei elementaren Eigenschaften:
Prävention, Reaktion (Anpassung und Aufrechterhaltung) sowie Wiederherstellung (Restoration und Evolution).
Aus funktionalen Perspektive ergeben sich daraus die Aktivitäten
(1) Vermeidung von Fehlerzuständen,
(2) Reaktion auf Fehlerzustände und der Erhalt elementarer Systemfunktionen sowie
(3) Wiederherstellung des Zielzustands, einschliesslich notwendiger Lessons-Learned-Aktivitäten.
Dieser Ansatz geht über eine Verbesserung der Zuverlässigkeit (Reliability, ISO/IEC 25010)
durch Fehlervermeidung und -behebung hinaus und schließt organisationale Aspekte ein (siehe, ).
Steigerung der Leistungsfähigkeit durch qualitative Maßnahmen
Softwaresysteme und Entwicklungsprozesse:
Die Evaluation (Audit-Prozess) bietet die Möglichkeit
auch kleinere, ressourcenschwache Organisationen
beim besseren Schutz von Information zu unterstützen,
indem Architektur- und Entwicklungspraktiken systematisch bewertet werden.
Der Audit-Prozess umfasst Softwaresystemen und Prozesse und
basiert auf objektiven Standards (beispielsweise NIST SP 800-160).
Die Ergebnisse liefern eine objektive Grundlage für Investitionen,
sie adressieren den wirtschaftlichen Nutzen sowie Risiken.
Analyse organisationaler Elemente:
Software entsteht nicht im luftleeren Raum; es braucht organisatorische Strukturen und menschliche Interaktion.
Erhöhte Komplexität, häufige Fehler und Fehlerzustände zur Laufzeit, eine langsamer werdende Entwicklung
sind Symptome für eine sinkenden Leistungsfähigkeit der Organisation.
Team, Arbeitskultur, Management sowie individuelle Erwartungshaltung und das situative Umfeld
sind die wesentlichen Herausforderungen moderner Organisationen.
Das dynamisches und multidimensionale Konstrukt Situation rückt damit in den Blickpunkt.
Durch die Ergebnisse der Analyse sozio-technischer Faktoren
lassen sich Maßnahmen zur Stärkung der organisatorischen Leistungsfähigkeit und
zur Steigerung der Qualität identifizieren, priorisieren und etablieren sowie Risiken reduzieren.
Nicht nur im allgemeinen Sprachgebrauch erscheint es nachvollziehbar Qualität als wirkungsrelevant in Bezug auf die zu bezeichnen;
im Detail lässt sich dieses Wirkphänomen auf das Software-Engineering übertragen und durch das Resilience-Engineering konkretisieren.
Wie unterscheidet sich das Resilience-Engineering von anderen Qualitätskonzepten?
Wie sich das Resilience-Engineering von anderen Qualitätskonzepten unterscheidet,
wird im Vergleich mit einem Qualitätsmerkmal wie Zuverlässigkeit (Reliability) deutlich.
Zuverlässigkeit (Reliability) wird entsprechend der Norm ISO/IEC 25010:2023
als eine Qualitätseigenschaft verstanden, durch die beschrieben werden kann
wie lange und unter welchen Bedingungen eine spezifizierte Leistung erbracht wird oder erbracht werden kann.
Dabei wird diese Eigenschaft auf eine oder mehrere Systemfunktion(en) und spezifizierte Anforderungen bezogen.
Resilience-Engineering hingegen lässt sich als interdisziplinäres Paradigma verstehen, das die Gestaltung resilienter Systeme fokussiert.
Resiliente Systeme sind so gestaltet, dass sie adaptiv reagieren können.
Das bedeutet, dass sie Störungen antizipieren, absorbieren und gestörte Funktionen wieder herstellen können.