Was ist SPHA?

SPHA – der Software Product Health Assistant – ist ein am Fraunhofer IEM entwickeltes Framework, zur automatischen und systematischen Analyse des Gesundheitszustands von Softwareprodukten. Hierzu werden in der Regel folgende vier Aspekte kombiniert analysiert:

Softwaresicherheit (Security): SPHA nutzt und kombiniert Softwaresicherheitsdaten, bspw. aus SAST- oder DAST-Werkzeugen, um die Gesamtsicherheit eines Softwareprodukts abzuschätzen.

Interne Qualität (internal Quality): Die interne Qualität beschreibt, die von innen wahrgenommene, Qualität des Softwareprodukts – also bspw. aus Sicht von Entwickler:innen oder Tester:innen. Um die interne Qualität eines Softwareprodukts abzuschätzen, nutzt und kombiniert SPHA-Daten mit Bezug zu Wartbarkeit (Maintainability), Verständlichkeit (Comprehensibility), Testbarkeit (Testability) sowie Code-Qualität (Code Quality) des Softwareprodukts.

Externe Qualität (external Quality): Die externe Qualität beschreibt, die von außen wahrgenommene, Qualität des Softwareprodukts – also aus Sicht der Nutzer:innen. Um die externe Qualität eines Softwareprodukts abzuschätzen, nutzt und kombiniert SPHA-Daten mit Bezug zu Gebrauchstauglichkeit (Usability), Zuverlässigkeit (Reliability), Leistungsfähigkeit (Performance) des Softwareprodukts.

Nachhaltigkeit (Sustainability): Im Kontext von Software Product Health legt SPHA den Fokus auf ökonomische Aspekte der Nachhaltigkeit, wie bspw. Wiederverwendung bestehender Komponenten oder Agilität der Softwareentwicklung.

Prozesskonformität (Process Compliance): In diesem Bereich analysiert SPHA-Daten in Bezug auf die Konformität mit unternehmensweiten Vorgaben, aber auch Gesetzen oder Standards.

Warum ist die Betrachtung von Software Product Health wichtig?

Softwareprodukte und Softwareentwicklungsprozesse sind heute ungemein komplex. Viele Stakeholder mit verschiedenen Hintergründen müssen unterschiedliche Aspekte der Produkte verstehen. Dies führt zu komplexer Kommunikation mit Folgen wie Stagnation, steigende Kosten und verschobene Releases.

SPHA betrachtet alle zentralen Aspekte der Softwareprodukte und hilft den verschiedenen Stakeholdern ein gemeinsames, strukturiertes und visuelles Verständnis für den Gesundheitszustand des Softwareprodukts zu bekommen. So werden, komplexe Zusammenhänge sichtbar und fundierte Einschätzung der Stabilität, Qualität und Weiterentwicklungsfähigkeit eines Produkts werden ermöglicht.

Wie wird Software Product Health bestimmt?

SPHA ist kein Analysewerkzeug im klassischen Sinne, das den Quellcode analysiert. Viel mehr bildet SPHA eine Klammer um alle bestehenden Werkzeuge in einem Softwarelebenszyklus. Auf diese Weise führt SPHA die während der Entwicklung und des Betriebs eines Softwareprodukts anfallenden Daten zusammen, um diese zu analysieren und so die Software Product Health zu bestimmen.

SPHA verfügt über Adapter, um Daten von etablierten Werkzeugen entgegenzunehmen und ein klar strukturiertes internes Datenformat zur Bestimmung der Software Product Health.

SPHA nutzt vordefinierte Regeln, die vorgeben, wie Daten zu interpretieren und zu verrechnen sind, um die unterschiedlichen Aspekte der Software Product Health zu bewerten.

Zum Github