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.
Eine ĂŒberdreht wirkende Frau stutzt einen Buxbaum mit einer Heckenschere. Symbolbild fĂŒr die Arbeit an guter SoftwarequalitĂ€t.
© andreaskrone

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.

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.