nach oben
Meine Merkliste
Ihre Merklisteneinträge speichern
Wenn Sie weitere Inhalte zu Ihrer Merkliste hinzufügen möchten, melden Sie sich bitte an. Wenn Sie noch kein Benutzerkonto haben, registrieren Sie sich bitte im Hanser Kundencenter.

» Sie haben schon ein Benutzerkonto? Melden Sie sich bitte hier an.
» Noch kein Benutzerkonto? Registrieren Sie sich bitte hier.
Ihre Merklisten
Wenn Sie Ihre Merklisten bei Ihrem nächsten Besuch wieder verwenden möchten, melden Sie sich bitte an oder registrieren Sie sich im Hanser Kundencenter.
» Sie haben schon ein Benutzerkonto? Melden Sie sich bitte hier an.
» Noch kein Benutzerkonto? Registrieren Sie sich bitte hier.

« Zurück

Ihre Vorteile im Überblick

  • Ein Login für alle Hanser Fachportale
  • Individuelle Startseite und damit schneller Zugriff auf bevorzugte Inhalte
  • Exklusiver Zugriff auf ausgewählte Inhalte
  • Persönliche Merklisten über alle Hanser Fachportale
  • Zentrale Verwaltung Ihrer persönlichen Daten und Newsletter-Abonnements

Jetzt registrieren
Merken Gemerkt
Software-Qualität - Software-Qualität

Der übliche Software-Qualitätsbegriff greift zu kurz

Funktionalität allein bringt keinen dauerhaften Erfolg

Ein zu eng gefasster Qualitätsbegriff führt langfristig zum Tod jeder Software. Software muss nicht nur funktionieren, sie muss auch verstanden, gewartet und getestet werden können. Daher fordert Software-Entwicklung ein ganzheitliches Qualitätsmanagement. Dieses lässt sich mit überschaubarem Aufwand einrichten. Best Practices zeigen, worauf es ankommt.

Die Bedeutung von Software in Embedded Systems

In den 1960er-Jahren wurde Software erstmals in eingebetteten Systemen der Raumfahrt und der Telekommunikation eingesetzt. Seither hat sich Software in eingebetteten Systemen in jedem erdenklichen Bereich des modernen Lebens durchgesetzt. Gleichzeitig ist der Umfang der Software in eingebetteten Systemen dem technologischen Fortschritt entsprechend exponentiell gewachsen. Im Vergleich zur Hardware kann Software schnell und scheinbar leicht sowie jederzeit verändert werden. Das macht die Entwicklung kurzfristig enorm flexibel. Langfristig macht sich jedoch der Fluch der Software-Wartung bemerkbar, der nun auch die Welt der elektrischen und elektronischen Systeme heimgesucht hat. Die sogenannten „Laws of Software Evolution“ gelten uneingeschränkt auch für Embedded Software. Laut diesen Software-Evolutionsgesetzen zieht die Erweiterung der Software-Funktionalität ein exponentielles Wachstum der Komplexität der Software nach sich (Bild 1).

Bild 1: Die „Laws of Software Evolution“ im Hinblick auf den Produktlebenszyklus im Umfeld eingebetteter Systeme; Copyright: Axivion, Quelle: Lehman, Meir M., Programs, Life Cycles, and Laws of Software Evolution, Proceedings of the IEEE, Vol. 68 No. 9, Seiten 1060–1076, 1980

Ohne gezieltes Beobachten und Gegensteuern werden die Systeme so komplex, dass sie nicht mehr verständlich sind, bevor das Gesamtprodukt am Ende seines Lebenszyklus angekommen ist. Unverständliche Software verhindert dann jede Produktinnovation oder gar Produktanpassung. Da Software ein integraler Bestandteil eines Embedded Systems ist, bestimmt die Software-Wartbarkeit die Überlebensfähigkeit des Gesamtsystems.

Schuld für die Überkomplexität der Software kann ein zu eng gefasster Qualitätsbegriff sein. Wird ausschließlich die äußere Qualität (Funktionalität, Sicherheit, Zuverlässigkeit usw.) einer Software in den Mittelpunkt gestellt, bleibt kein Raum für nachhaltige Verbesserungen. Denn die Systeme im Projektgeschäft müssen auch gewartet, angepasst und übertragen werden, um langfristig erfolgreich zu sein. Diese Qualitätsattribute nennt auch die ISO 25010 neben den funktionalen Aspekten als wesentliche innere Qualitätseigenschaften von Software.

Das ist ganzheitliche Qualität

Eine gängige Definition von Qualität stammt von der American Society for Quality und lautet „[…] quality: the characteristics of a product or service that bear on its ability to satisfy stated or implied needs […]“. Um also eine professionelle und tragfähige Aussage zur Qualität eines Produkts machen zu können, muss das Produkt vollständig bekannt sein und darf keine „hidden features“ haben. Auf der anderen Seite müssen die Anforderungen von allen Produktbeteiligten klar sein. Das gilt für die expliziten als auch die viel schwerer erfassbaren impliziten und selbstverständlichen Erwartungen. Die Qualität ergibt sich dann aus der Gegenüberstellung der Anforderungen und Eigenschaften (Bild 2).

In der Praxis ändern sich die Anforderungen ständig. Daher wird die Qualität eines Produkts, das sich nicht verändert, im Laufe der Zeit anders beurteilt. Beispielsweise können explizite Anforderungen wie die Bedienbarkeit über Touchscreen zu impliziten Anforderungen werden. Technische Innovationen von heute werden morgen als selbstverständlich betrachtet. Die Qualität eines zehn Jahre alten Mobiltelefons wird heute sicherlich anders bewertet als damals.

Bild 2: Anforderungen und Eigenschaften als Gegenüberstellung eines professionellen Qualitätsbegriffs Copyright: Axivion Quelle: American Society for Quality (ISO 8402:1994)

Ganzheitliches Qualitätsmanagement effektiv und effizient umsetzen

Schritt 1

Soll eine Software langfristig erfolgreich sein, lautet das erste Gebot der Stunde Transparenz. Im Klartext: Vorhandene oder geplante Produkte müssen samt ihrer Komponenten nachvollziehbar und durchschaubar sein. Zudem müssen die passenden ganzheitlichen Qualitätsanforderungen bekannt sein. Im Fall von Embedded Software betrifft dieses Gebot alle für die Entwicklung relevanten Artefakte (z.B. Compiler, Dokumentation, Tests, Codierregeln uvm. – nicht nur den Source Code). Über die Zeit und mit Erfahrung entsteht ein umfassender Katalog.

Als Grundlage für die ganzheitlichen Qualitätsanforderungen eignet sich die ISO 25000. Auf deren Basis können dann produkt- oder firmenspezifische Verfeinerungen eines Qualitätsmodells ausgearbeitet werden. Und zwar vom nicht-technischen Management in enger Zusammenarbeit mit der Entwicklung. Durch dieses Feintuning des Qualitätsmodells sollen „unbekannte Unbekannte“, wie sie aus Bild 2 hervorgehen, beseitigt werden. Des Weiteren schafft die Zusammenarbeit eine gemeinsame Qualitätsdefinition.

Schritt 2

Nun folgt die Festlegung der konkreten Qualitätsziele und -eigenschaften für alle Produktbestandteile. Diese sollten mit Prioritäten versehen werden. Funktionieren muss Software selbstverständlich auch weiterhin, aber durch die ganzheitliche Sicht werden Attribute wie „verstehbar“, „wartbar“ und „testbar“ einbezogen. In der Projektabwicklung kann diese Zielsetzung als Steuergröße für den optimalen Ressourceneinsatz genutzt werden.

Schritt 3

Schritt 3 dient der Operationalisierung der Qualitätsziele. Hierfür müssen die Qualitätsziele messbar sein. Denn nur dann können Qualitätsrisiken und Abweichungen von Vorgaben möglichst automatisiert erkannt werden. In der Praxis haben sich für die Messbarkeit der Qualitätszeile bewusst einfache Indikatoren bewährt. Bereits mit wenigen zwischen den Beteiligten abgestimmten Qualitätsindikatoren lässt sich ein effektiv nutzbares System etablieren, um die Gesamtqualität zu beurteilen. Durch die gestiegene Transparenz, steigt die Qualität quasi alleine durchs Hinsehen.

Schritt 4

Als abschließender, aber auch stetiger Schritt müssen die Qualitätsziele regelmäßig ausgewertet und gezielte Maßnahmen abgeleitet werden.

Erfolgsfaktoren für die Umsetzung

  • Einfache Qualitätsindikatoren: In der Praxis ist es nicht sinnvoll, Software-Qualität mit komplexen „Metriken“ zu messen. Erfolgsträchtiger ist, die „Abwesenheit von Qualität“ durch einfache Indikatoren zu identifizieren und diese als „Sicherheitsnetz“ zum Abfangen von Qualitätsmängeln zu nutzen.
  • Automatisiertes und kontinuierliches Feedback: Ein hoher Automatisierungsgrad der Datenerhebung und -auswertung ermöglicht die einfache Integration ins Tagesgeschäft. Kein Projektmanager oder Entwickler möchte sich mit separaten Reporting-Systemen herumschlagen. Wichtig ist es, eine Entlastung zu bieten, statt eine zusätzliche Belastung entstehen zu lassen. Zur Integration gehört die solide Anbindung an den bestehenden Entwicklungsprozess und die in den Projekten verwendeten Werkzeuge (z.B. Continuous Integration, Versionskontrolle, Issue-Tracker, E-Mail, ...).
  • Aktualität der Daten: Je früher Abweichungen der Qualitätsziele erkannt werden, desto einfacher ist es gegenzusteuern. Auch deswegen ist eine durchgängige Automation mit möglichst wenig manuellen Eingriffen wichtig. Gerade im Bereich der Software-Entwicklung lassen sich mit Entwicklungs- und Qualitätssicherungswerkzeugen Daten schnell und automatisch erheben und verdichten.
  • Vorhandene Daten integrieren: Häufig werden bereits Daten im Rahmen der Entwicklung erhoben (Testabdeckung, Anforderungen, ...). Diese Datenquellen sollten in das Qualitätsmanagement integriert werden, um eine ganzheitliche Sicht zu bekommen.
  • Menschen mitnehmen: Die Festlegung von Qualitätszielen und deren Operationalisierung darf nicht über die Köpfe der beteiligten Entwickler hinweg erfolgen. Es hilft, den Einführungsprozess transparent zu gestalten und die Zielsetzung klar zu kommunizieren.
  • Lieber klein starten als groß scheitern: Die Einführung eines Qualitätsmanagement-Systems sollte schrittweise erfolgen und die Mitarbeiter im Unternehmen nicht überrollen. Zu Beginn genügt es, sich auf wenige Indikatoren zu beschränken, um sich dann von einer etablierten Basis aus weiter zu entwickeln.
  • Lieber klein starten als gar nichts tun: Die Einführung eines Qualitätsmanagement-Systems wie hier umrissen, ist keine Mammutaufgabe und hat keine Einstiegshürden. Mit wenigen Tagen Aufwand lässt sich bereits viel bewegen.

Zusammenfassung

Software in Embedded Systems muss mehr als nur funktionieren. Um das Gesamtprodukt langfristig erfolgreich zu machen, wird ein ganzheitlicher, von allen Produkt-Stakeholdern anerkannter Qualitätsbegriff benötigt. Die Voraussetzungen für erste Schritte sind gering und mit begrenztem Aufwand lässt sich bereits viel erreichen.

Dipl.-Kfm. Sebastian Rummler ist kaufmännischer Geschäftsführer der Axivion GmbH und verantwortlich für die strategische Ausrichtung der Toolentwicklung bei Axivion. Er kennt die Herausforderungen des Managements einer Software-Entwicklung im Hinblick auf die Ausbalancierung der Zielgrößen Qualität, Zeit und Kosten nicht nur aus zahlreichen Kundenprojekten, sondern auch aus langjähriger eigener Erfahrung.

Dr. Daniel Simon ist bei der Axivion GmbH für Professional Services zuständig. Er unterstützt Kunden bei der Einführung, dem Aufbau und der Etablierung von Qualitäts- und Risikomanagement Maßnahmen. Er hat umfangreiche Erfahrungen im Qualitätsmanagement von IT und Software-Systemen und dem Einsatz von Kennzahlensystemen als Lenkungsinstrument zur Unterstützung im Projekt- und Produktmanagement.

Literaturhinweis

Jochen Ludewig, Horst Lichter: „Software Engineering – Grundlagen, Menschen, Prozesse, Techniken”; dpunkt.verlag, 3. Korrigierte Auflage, April 2013

Frank Simon, Olaf Seng, Thomas Mohaupt: „Code Quality Management: Technische Qualität industrieller Softwaresysteme transparent und vergleichbar gemacht“, d.punkt.verlag, Mai 2006

Harry M. Sneed, Richard Seidl: „Softwareevolution: Erhaltung und Fortschreibung bestehender Softwaresysteme“, dpunkt.verlag, September 2013

Ernest Wallmüller: „Software Quality Engineering — Leitfaden für eine bessere Software-Qualität, Hanser, 3. Auflage 08/2011

Harry M. Sneed, Manfred Baumgartner, Richard Seidl: „Der Systemtest — Von den Anforderungen zum Qualitätsnachweis, Hanser, 3. aktualisierte und erweiterte Auflage. 11/2011

Harry M. Sneed, Richard Seidl, Manfred Baumgartner: „Software in Zahlen — Die Vermessung von Applikationen, Hanser, 09/2010

BITKOM e.V., Eingebettete Systeme – Ein strategisches Wachstumsfeld für Deutschland, 2010

Lehman, Meir M., Programs, Life Cycles, and Laws of Software Evolution, Proceedings of the IEEE, Vol. 68 No. 9, Seiten 1060–1076, 1980

American Society for Quality (ISO 8402:1994)

Ralf Buschermöhle, Heike Eekhoff, Bernhard Josko: „Success: Erfolgs- und Misserfolgsfaktoren bei der Durchführung von Hard- und Softwareentwicklungsprojekten in Deutschland“, Report VSEK/55/D

Sebastian Rummler, rummler <AT> axivion.com , Tel. 0711/6204378-24

Dr. Daniel Simon, simon <AT> axivion.com , Tel. 0711/6204378-24,

www.axivion.com

Weiterführende Information
  • Messen und Prüfen - Software

    Den Aufwand von Softwareprojekten schätzen

    Drei Methoden im Überblick und Vergleich

    Vor jeder neuen Software-Entwicklung muss der Aufwand des Projektes geplant und geschätzt werden. In diesem Beitrag werden drei verschiedene Schätzmethoden vorgestellt. Ihre dargelegten Stärken und Schwächen sollen bei der Wahl der passenden Schätzmethode helfen.   mehr

  • Software-Qualität - Software-Testnormen

    Software Standards, Normen und Modelle

    Management und Engineering von Software-Qualität

    Ein Standard ist eine einheitliche, weithin anerkannte und meist auch angewandte Art und Weise, etwas herzustellen oder durchzuführen, die...   mehr

  • Software-Qualität - Softwareentwicklungsprozess

    Der Softwareentwicklungsprozess

    Organisation und Management von Projekten sind ein zentrales Anliegen der Softwaretechnik. Die produktorientierten Tätigkeiten sind in...   mehr

DIN EN ISO 9001:2015

Zum ISO 9001:2015 Special

Prozesswelt

Serie zum Thema Prozesse, veröffentlicht von QM-Experten deutscher Unternehmen gemeinsam mit der N5 GmbH und der Fachzeitschrift QZ

Zur Prozesswelt