Softwarequalität

Softwarequalität ist ein wichtiger Aspekt der Qualitätssicherung (QS) in der Anwendungsentwicklung. Eine hohe Qualität erhöht den Wert einer Software. Zum Bestimmen der Softwarequalitätsmerkmale gibt es verschiedene Modelle. Häufig wird zwischen funktionalen und nicht-funktionalen Kriterien entscheiden. Wir stellen hier die Merkmale der Softwarequalität laut ISO 9126 vor.
Softwarequalität
© andreaskrone
Teilen

Softwarequalität: Definition

Softwarequalität ist die Summe aller Merkmale eines Softwareprodukts. Festgestellt wird die Qualität oder auch Güte einer Software anhand von Kennzahlen. Grundlage ist die Bewertung der Eignung der Software, an sie gestellte Erfordernisse zu erfüllen. Die Qualitätsmerkmale ergeben sich zum einen aus der individuellen Zweckerfüllung. Zum anderen handelt es sich um generelle softwaretyp-spezifische Erfordernisse wie z. B. die Wartbarkeit, die Modifizierbarkeit oder das Verbrauchsverhalten.

Softwarequalität ist keine operable Maßnahme an sich. Sie beschreibt einen Istzustand, die einem Sollzustand entsprechen soll. Erreicht wird das durch eine Vielzahl an Methoden aus den Bereichen Qualitätsmanagement, Development, Software-Optimierung und Softwaretest.

Warum ist Softwarequalität so wichtig?

Softwarequalität wirkt sich direkt auf die Wirtschaftlichkeit von Softwareprodukten aus. Je ansprechender das Design, je intuitiver die Navigation und je umfangreicher die Funktionen, desto mehr Anwender sind bereit, eine Software zu nutzen und ggf. dafür zu bezahlen. Je besser die Kompatibilität zu verschiedenen Betriebssystemen und Geräten ist, desto größer ist der Kreis der potenziellen Kunden.

Auch Aspekte der Sicherheit sind entscheidend, genauso wie innere Kriterien. Je besser Wartbarkeit und Modifizierbarkeit ausfallen, desto besser lässt sich eine Software an die Marktentwicklung oder neue Produktionsbedingungen anpassen. Ressourcenschonende Performance kann sich auch positiv auf die Usability auswirken.

In der Softwareentwicklung ist es empfehlenswert, von vornherein auf hochwertige Lösungen zu setzen. Die investierte Zeit für akribische Software-Qualitätssicherung (Management in puncto Anforderung und Umsetzung, erstklassiger Clean Code, umfangreiches Software Testing etc.) kann die Kosten für die Entwicklung in die Höhe schrauben. Im Endeffekt rentiert sich das allerdings dadurch, dass Individualsoftware eine bessere Usability vorweist, sich Standardsoftware besser verkaufen lässt und sich Softwareprodukte im Allgemeinen kostengünstiger modifizieren lassen.

Softwarequalität nach ISO-Standard

Der Begriff ISO (International Standard Organisation) bezeichnet einen internationalen Zusammenschluss von über 160 nationalen Normierungsorganisationen. Die Deutsche Normierungsorganisation ist zum Beispiel das Deutsche Institut für Normung (DIN). Die ISO legt in ihren Statuten internationale Normen fest, die als Grundlage verschiedenster Kriterien dienen. Für Unternehmen, Dienstleister oder IT-Agenturen stellt u.a. die ISO Norm 9001 eine wesentliche Grundlage für die Qualitätssicherung dar. Anhand einer ISO-Zertifizierung kann ein Unternehmen nachweisen, dass es sich an bestimmte Qualitätskriterien hält.

Für eine Firma im Bereich Softwareentwicklung sind u.a. die Normen ISO 25010 (Qualitätskriterien von Software, IT-Systemen und Software-Engineering) und ISO/IEC 9126 (Produktqualität von Software) interessant. Während die ISO 2510 vor allem auch die Qualitätssicherung der Softwareentwicklung umfasst, dient die ISO/IEC allein der Beurteilung der Softwarequalität. Dabei wird im Groben zwischen zwei Gruppen von Qualitätskriterien unterschieden:

  1. Funktionale Kriterien der Qualität
  2. Nicht-funtionale Merkmale der Qualität

In Bezug auf die Softwareentwicklung definieren funktionale softwaretyp-spezifische Qualitätskriterien alle Eigenschaften, die mit der Zweckbestimmung der Software einhergehen. Auch die allgemeine Bedienbarkeit einer Anwendung fällt in diesen Bereich.

Nicht-funktionale Anforderungen sind sogenannte innere Kriterien, welche die Qualität einer Software unabhängig von ihrer Funktion bewerten. Die inneren Inhalte sind zum Beispiel Modifizierbarkeit oder das Verbrauchsverhalten. Das sind Punkte, die zur Nutzung der Software nur peripherer beitragen. Allerdings können auch sie die Usability verbessern. Ist der Code einer Software zum Beispiel modifizierbar, kann die Anwendung leichter optimiert werden.

Funktionale Qualitätsmerkmale
Funktionalität: Zuverlässigkeit: Benutzbarkeit:
Interoperabilität Fehlertoleranz Verständlichkeit
Angemessenheit Wiederherstellbarkeit Erlernbarkeit
Richtigkeit Reife Bedienbarkeit
Ordnungsmäßigkeit
Sicherheit
Nicht-funktionale Qualitätsmerkmale
Änderbarkeit: Übertragbarkeit: Effizienz:
Analysierbarkeit Anpassbarkeit Zeitverhalten
Stabilität Installierbarkeit Vebrauchsverhalten
Prüfbarkeit Austauschbarkeit
Modifizierbarkeit Konformität
Evolvierbarkeit

Software Quality und Funktionalität

Funktionalität ist ein wichtiges Qualitätskriterium für jede Art von Software. Die Merkmale Angemessenheit und Richtigkeit definieren, dass die Software den Zweck erfüllt, für den sie laut Konzept entwickelt wurde. Im Vordergrund steht weniger der allgemeine Funktionsumfang als die Frage, ob alle wichtigen Funktionen zur Zweckerfüllung enthalten sind und diese fehlerfrei anwendbar sind.

Wichtig ist die Erfüllung dieser Qualitätsmerkmale im Bereich Individualsoftware, damit sichergestellt ist, dass die Stakeholder den in ihren Anforderungen definierten Nutzen aus der Software ziehen können. Im Bereich Standardsoftware wird durch Angemessenheit und Richtigkeit garantiert, dass der Gebrauch der Software für die Anwender einen praktikablen Nutzen hat. Zum Beispiel, dass Inhalte erstellt, abgerufen und anderen zugänglich gemacht werden können. Nur so ist davon auszugehen, dass Anwender Lizenzen für die Anwendung erwerben oder Bezahlfunktionen nutzen. Es handelt sich also um einen wichtigen wirtschaftlichen Faktor.

Wirtschaftlich wichtig ist auch die Sicherheit. Können Unbefugte durch Sicherheitslücken in der Software Zugang zu sensiblen Daten in Datenbanken erhalten, kann das zu finanziellen Schäden führen. Das gilt auch für Sicherheitslücken, die einen Zugang zu Daten im oder auf das System im Endgerät ermöglichen. In Zeiten von Mobile First haben fast alle Anwendungen Zugang zum Internet. Wurde während der Software-Entwicklung die Sicherheit vernachlässigt, haben Hacker leichtes Spiel. Das wird eventuelle Kunden sicher vom Kauf einer Software abhalten.

Der Begriff Interoperabilität beschreibt die Interaktion zwischen verschiedenen Techniken und Systemen. Auch das ist ein erheblich wichtiger Faktor für die Softwarequalität von Standardsoftware. Eine Anwendung sollte in der Praxis möglichst auf jeder zeitgemäßen Hardware und jedem Betriebssystem lauffähig sein. Das gilt vor allem auch für mobile Geräte und die dazugehörigen Softwareplattformen.

Zuverlässigkeit

Die Zuverlässigkeit sollte bei keinem Softwaretyp außer Acht gelassen werden. In diesen Bereich gehören zum Beispiel Funktionen, die eine Zwischenspeicherung sicherstellen. Gehen nach einem Absturz eines Programms oder einer Systemsoftware wichtige Daten verloren und können nicht mehr abgerufen werden, kann das für eine Privatperson und insbesondere für ein Unternehmen schwere Konsequenzen nach sich ziehen. Wiederherstellbarkeit ist somit ein wichtiges Thema für die Software-Qualität. Dasselbe gilt für die Fehlertoleranz. Im Bereich Development und Software-Engineering beschreibt dieser Begriff die Möglichkeit eines Programms, seine Funktionen in guter Form auszuführen, auch wenn einige Komponenten der Software fehlerhaft oder beschädigt sind.

Benutzbarkeit

Egal wie gut die Funktionalität einer Software ist: Wenn Sie durch den Anwender nicht gut bedient werden kann, wirkt sich das laut ISO negativ auf die Softwarequalität aus. Ausgenommen sind in der Regel Firmware oder spezielle Systemsoftware oder Individualsoftware, die ausschließlich von einem versierten Personenkreis genutzt wird.

Gerade eine Software mit großem Funktionsumfang stellt spezielle Anforderungen an die Entwickler. Das Design muss so gestaltet sein, dass zum Beispiel zusammengehörige Funktionen auf kurzen Klickwegen zu erreichen sind. Wichtige Informationen müssen einfach abgerufen werden können. Eigenschaften wie Verständlichkeit und Bedienbarkeit bewegen sich im Spektrum der Usability und haben nichts mit dem eigentlichen Code einer Anwendung zu tun. Hier sind sachkundige Frontend-Entwickler bzw. UI/UX Designer gefragt. Diese Experten verstehen es nicht nur, Funktionalität und Design der Software perfekt aufeinander abzustimmen. Sie können sich auch in den Anwender hineinversetzen.

Auf diese Weise gelingt es ihnen, die spezifischen Anforderungen zu erkennen, die ein Nutzer an die Navigation stellt. Bei der Entwicklung von Standardsoftware stehen darüber hinaus auch optische Anforderungen an die Grafik im Vordergrund. Ein ästhetisch ansprechendes Design, das gut beim Anwender ankommt, vermittelt Wertigkeit und hebt die äußere Erscheinung eines Programms von anderen Softwareprodukten ab.

Softwarequalität durch Änderbarkeit und Modifizierbarkeit

Aspekte wie Änderbarkeit und Modifizierbarkeit betreffen den Anwender einer Software nur mittelbar. Sie stellen jedoch wichtige Kriterien für den Vertreiber der Software dar. Beim Engineering ist Prüfbarkeit eine wichtige Eigenschaft in puncto Software Quality. In der Regel lässt sich der Code eines Programms so schreiben, dass er sich im Nachhinein gut testen lässt. Automatisierte und manuelle Softwaretests tragen zur Erkennung und Behebung von Fehlern bei. Das hat für die Softwarequalität im Rahmen der ISO Normen eine große Relevanz.

Der Begriff Modifizierbarkeit definiert, wie flexibel sich der Code eines Programms an Änderungen anpassen lässt. Wichtig ist das für die Integration neuer Funktionen und Features. Auch für die Wartbarkeit spielt das eine nicht unwesentliche Rolle. Diese Leistungen werten Softwareprodukte auf und machen sie wettbewerbsfähig. Neben der Modifizierbarkeit bestimmter Implementierungen gibt es vorrangig zwei Methoden:

  1. Modifizierbarkeit der Softwarearchitektur
  2. Modifizierbarkeit des Designs

Eine gut modifizierbare Softwarearchitektur ist vor allem dann wichtig, wenn die Software nach präzisen Spezifikationen in einer multiplexen Umgebung funktionieren soll. Dazu müssen beim Engineering vor allem parallel ablaufende Prozesse und die logische Trennung von Plattformen und Modulen bedacht werden.

Die Modifizierbarkeit vom Design bekommt umso mehr Gewicht, je weniger sich die Architektur modifizieren lässt. Ist von vornherein davon auszugehen, dass eine Software später durch viele Erweiterungen ergänzt werden soll, ist bei der Entwicklung auf ein besonders gut modifizierbares Design zu achten.

Übertragbarkeit

Heutzutage wird vor allem von Standardsoftware generell erwartet, dass Inhalte auf allen Devices abgerufen werden können. Das betrifft nicht nur die Visualisierung der Grafik auf verschiedenen Bildschirmgrößen von PC und Notebook.

Auch an mobile Geräte sollte sich die Kompatibilität von Design und Navigation nahtlos anpassen lassen. Das gilt auch für die Eingabe, die sich zum Beispiel via Touchpad anders gestaltet als mit Maus und Tastatur. Responsives Softwaredesign stellt eine große Herausforderung für das Development und das UI Design dar, ist aber in Hinblick auf eine gute Software-Qualität unverzichtbar.

Software Quality und Effizienz

Der QS-Schwerpunkt Effizienz beinhaltet die Faktoren Zeitverhalten und Verbrauchsverhalten. Beides wirkt sich qualitativ auf die Nutzung von Softwareprodukten aus. Je effizienter die Performance einer Software ist, desto weniger Arbeitsspeicher, Prozessorleistung oder Online-Datenvolumen werden verbraucht. Wenn also beim Engineering bereits bedacht wird, die Software effizient zu entwickeln, wird sie später umso schneller und ressourcenschonender arbeiten. Besonders im Hinblick auf mobile Geräte sind ressourcenschonende Lösungen eminent. Das gilt vor allem für Systemsoftware und Spielesoftware, da diese Anwendungen oft besonders viel Arbeits- und Grafikspeicher benötigen.

Softwarequalität und Qualitätsmodelle

Zum Überprüfen der Software-Qualität haben sich in der Softwareentwicklung Qualitätsmodelle etabliert. Einige davon orientieren sich stark am Konzept der Prozessqualität. Andere sind sogenannte organisatorische Qualitätsmodelle. Dazu gehören:

  • Capability Maturity Model (CMM)
  • Mit diesem Modell wird der Reifegrad der Software im jeweiligen Produktionsprozess (Entwicklung, Implementierung, Wartung etc.) geprüft, um Verbesserungsmaßnahmen abzuleiten.

  • Automotive SPICE
  • Dabei handelt es sich um ein Modell aus dem Bereich der produktspezifischen Qualitätsmodelle. Wie viele andere Modelle der Qualitätssicherung auch wird es in der Automobilindustrie eingesetzt. Es dient vornehmlich der Bewertung verschiedener Aspekte der Leistungsfähigkeit von Entwicklungsprozessen von Steuergerätelieferanten.

Prozessgesteuerte Modelle sind unter anderem:

  • Capability Maturity Model Integration (CMMI)
  • CMMI ist eines der umfassendsten Qualitätsmodelle. Es handelt sich um eine Ergänzung des Modells CMM. Über die Software Quality hinaus werden auch andere Arbeitsprozesse innerhalb eines Unternehmens überprüft. Dabei soll u.a. bestimmt werden, welche Arbeitsprozesse sich am besten bewähren und wo es Schwächen innerhalb von Anforderungs- Produktions- oder Vertriebsprozessen gibt.

  • Wasserfallmodell
  • Hierbei handelt es sich um eins der am meisten angewandten Modelle in Bezug auf die Sicherung der Software Quality. Im Grunde basiert es darauf, dass den einzelnen Entwicklungsphasen eines Produkts individuelle Testphasen gegenübergestellt werden. Die Softwaretests sind dabei eng mit den Entwicklungsphasen verknüpft.

In der Regel lassen sich Qualitätsmodelle ganz oder teilweise miteinander kombinieren. Vor allem in der agilen Softwareentwicklung kommen oft verschiedene Modelle teilweise auch parallel zum Einsatz.

Preise für Software Quality

Im digitalen Zeitalter genießt die Qualität von Softwarelösungen einen hohen Stellenwert. Die Softwarequalität wird weltweit von verschiedenen Organisationen bewertet. Der Deutsche Preis für Software-Qualität wird jährlich durch den Arbeitskreis Software-Qualität und -Fortbildung, durch die Gesellschaft für Informatik und durch das German Testing Board vergeben.

In den USA gibt es neben anderen Auszeichnungen den renommierten Watts S. Humphrey Software Quality Award. Vergeben wird diese Auszeichnung vom Software Engineering Institute und der IEEE Computer Society. IEEE steht für Institute of Electrical and Electronics Engineers. Es handelt sich um einen weltweit organisierten Berufsverband von Ingenieuren, Naturwissenschaftlern und Technikern. Auch IT-Berufe sind im IEEE integriert. Die IEEE Computer Society ist ein Zweig des IEEE, der sich hauptsächlich mit Computerhardware und Software beschäftigt.

TenMedia: Softwarequalität aus Berlin

Die TenMedia GmbH ist eine dynamische IT-Agentur. Aus dem Herzen Berlins heraus entwickeln wir vornehmlich Individualsoftware, Datenbanken, Onlineshops oder Applikationen. Außerdem bieten wir eine Vielzahl an Leistungen aus den Bereichen Support, Hosting und Monitoring an.

Hochwertige Software-Qualität garantieren wir durch vielschichtige Methoden der Software-Qualitätssicherung. Unsere Mitarbeiter werden fortlaufend fachlich geschult. Sowohl die Prozesse im Bereich Development und Management als auch sämtliche anderen firmeninternen Vorgänge werden von uns kontinuierlich anhand spezifischer Modelle überprüft und verbessert.

Seit Dezember 2022 sind wir offiziell durch den TÜV ISO-9001-zertifiziert. Unser Management in puncto Qualität und Compliance entspricht also internationalen Normen. Wir arbeiten weiter unermüdlich daran, unseren Kunden besten Service und hochwertige Softwarequalität zu bieten. Wer fähige Softwareentwickler für eine digitale Lösung sucht, kann unkompliziert mit uns in Kontakt treten. In einem unverbindlichen Beratungsgespräch besprechen wir alle Anforderungen und Möglichkeiten. Gern erstellen wir ein umfassendes Angebot, in dem wir unsere Modelle der Anwendungsentwicklung detailliert erläutern.

Bleibe auf dem Laufenden in Sachen Software, IT und Start-ups mit unserem Newsletter.
Jetzt abonnieren!
Bleibe auf dem Laufenden in Sachen Software, IT und Start-ups mit unserem Newsletter.
Jetzt abonnieren!
Gefällt dir was du siehst? Teile es!
Kontaktperson
Anica Piontek
+49 (0) 30 5 490 650-0
anica.piontek@tenmedia.de
Du hast auch ein spannendes Projekt?
Gerne bespreche ich ganz unverbindlich alle Projektdetails in einem persönlichen Gespräch.

Neueste Beiträge

Eine Softwareagentur. Eine Frau und eine Frau sehen erfreut auf einen Bildschirm. Sie arbeiten an einer Website-Optimierung. Glossar > Begriffe

Zufällige Beiträge

Eine Webagentur bei der Datenbankentwicklung in einer Besprechung an ihrem Arbeitsplatz. Glossar > Services
Skyline Frankfurt mit Hochhäusern und dem Main Glossar > Städte
Zwei Legomännchen in Bauarbeiter-Montur. Sie haben kleine Werkzeuge in den Händen und stehen einem riesigen Wust aus Kabel gegenüber. Sie bereiten sich auf eine IT-Dienstleistung vor. Glossar > Services

Zufällige Glossareinträge

Freundlicher Roboter winkt mit Computer-Platine. Symbolbild für Hosting Berlin. Glossar > Städte
Eine Mitarbeiterin einer Agentur verwendet im Homeoffice TYPO3 zur Erstellung einer Website. Glossar > Technologien
Zwei Legomännchen in Bauarbeiter-Montur. Sie haben kleine Werkzeuge in den Händen und stehen einem riesigen Wust aus Kabel gegenüber. Sie bereiten sich auf eine IT-Dienstleistung vor. Glossar > Services