Bibtex

@InCollection{,
  Year    = "2019", 
  Title    = "Software-Qualitätsmanagement", 
  Author    = "Herzwurm, Prof. Dr. Georg", 
  Booktitle    = "Gronau, Norbert ; Becker, Jörg ; Kliewer, Natalia ; Leimeister, Jan Marco ; Overhage, Sven (Herausgeber): Enzyklopädie der Wirtschaftsinformatik – Online-Lexikon",
  Publisher    = "Berlin : GITO",
  Url    = "https://wi-lex.de/index.php/lexikon/entwicklung-und-management-von-informationssystemen/systementwicklung/management-der-systementwicklung/software-qualitaetsmanagement/", 
  Note    = "[Online; Stand 18. April 2024]",
}

Software-Qualitätsmanagement

Georg HerzwurmMartin Mikusz


Das Software-Qualitätsmanagement befasst sich mit der Planung, Lenkung und Prüfung der Qualität von Softwareprodukten und -entwicklungsprozessen. Es beinhaltet sowohl Führungsaufgaben zur Festlegung der Qualitätspolitik, der Qualitätsziele und der Verantwortung für Qualität, wie auch Maßnahmen zur Erfüllung vorgegebener Qualitätsanforderungen an Softwareprodukte und -prozesse.

Produkt- und prozessorientiertes Software-Qualitätsmanagement

Die Ausrichtung des Software-Qualitätsmanagements hängt wesentlich von dem Qualitätsverständnis einer software-entwickelnden Organisation ab. Selbst in den einschlägigen Normenwerken wird der Qualitätsbegriff unterschiedlich definiert [Balzert 2008, S. 461]. Eine sehr aufschlussreiche Definition von Qualität findet sich in der DIN 55350:

„Qualität ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Tätigkeit, die sich auf deren Eignung zur Erfüllung gegebener Erfordernisse bezieht“ [DIN 55350, Teil 11:1995, zitiert nach Balzert 2008, S. 460].

Dieser Qualitätsbegriff spiegelt den produkt- und prozessbezogenen Qualitätsansatz wieder. Demnach bezieht sich Qualität als die Gesamtheit von Eigenschaften und Merkmalen zur Erfüllung gegebener Erfordernisse sowohl auf das Produkt, als auch auf den Prozess der Produktentstehung („Tätigkeit“). Entsprechend ist zwischen einem produkt- und prozessorientierten Software-Qualitätsmanagement zu unterscheiden.

Während Maßnahmen des produktorientierten Qualitätsmanagements (vgl. Qualitätsmaßnahmen) direkt an der zu erstellenden Software inklusive deren Zwischenprodukten ansetzen (bspw. Inspektion des Anforderungs- oder Spezifikationsdokuments als direkte Überprüfung auf Einhaltung der vorher festgelegten Qualitätsmerkmale), gehen Maßnahmen des prozessorientierten Qualitätsmanagements einen Schritt weiter.

Prozessorientiertes Qualitätsmanagement bezieht sich auf den Entwicklungsprozess und beinhaltet wiederum die Überprüfung auf Einhaltung der vorher festgelegten Qualitätsmerkmale – nun jedoch der des Prozesses (bspw. in Audits; vgl. Qualitätsmaßnahmen). Des Weiteren sind hierunter Maßnahmen zu verstehen, die a priori sicherstellen, dass der Prozess bestimmte Eigenschaften besitzt (bspw. Anwendung von Checklisten oder Richtlinien zur Testprozessdurchführung).

Ein qualitativ hochwertiger Prozess im Sinne des prozessorientierten Qualitätsmanagements ist ein stabiler und damit wiederholbarer sowie hinsichtlich Kosten, Zeit und Qualität vorhersehbarer, planbarer und steuerbarer Softwareentwicklungsprozess. Nur ein solcher, nicht ausschließlich vom Zufall, der Kreativität und Leistungsbereitschaft einzelner Mitarbeiter abhängiger Prozess, kann zu der Erstellung qualitativ hochwertiger Software führen [Mellis 2004, S. 327ff.].

Um diese Ziele zu erreichen sind zahlreiche Prozessstandards und -normen wie bspw. das CMMI entwickelt worden(zu einer deutschsprachigen Darstellung des CMMI siehe [Kneuper 2007]). Die Annahmen und die Wirksamkeit der Gestaltungsmaßnahmen des prozessorientierten Qualitätsmanagements sind nicht endgültig empirisch nachgewiesen [Mellis 2004, S. 353ff.]. Denn die Beziehung zwischen der Prozess- und der Produktqualität ist in der Softwareentwicklung wesentlich komplexer als in der produzierenden Industrie [Sommerville 2012, S. 713].

Qualitätsplanung

„Aufgabe der Qualitätsplanung ist es, die Qualitätsanforderungen an den Prozess und das Produkt in überprüfbarer Form festzulegen“ [Balzert 2008, S. 479].

Bei der Qualitätsplanung werden nicht an jedes Softwareprodukt und nicht an jeden Softwareentwicklungsprozess dieselben Anforderungen gestellt. So sind zunächst bei der Qualitätszielbestimmung Qualitätsstufen zu definieren und es ist festzulegen, welche Qualitätsstufen erreicht werden sollen [Balzert 2008, S. 471ff.]. Standards in verschiedenen Domänen im Bereich von Embedded Systems können in diesem Punkt als Best Practice aufgefasst werden: Sie sehen durchgängig über den gesamten Entwicklungsprozess abgestufte Regelungen, in Abhängigkeit von der Qualitäts- bzw. Kritikalitätstufe vor (bspw. DIN 50128, DIN 61508, RTCA/DO 178B) [Liggesmeyer 2009, S. 378f. und 388f.].

Der Geltungsbereich von Qualitätsanforderungen kann sich auf eine Software produzierende Einheit, ein Softwareprodukt oder dessen Teile, sowie auch auf den gesamten bzw. auf Teile des Softwareentwicklungsprozesses erstrecken. Abbildung 1 zeigt Aspekte der Qualität, die den verschiedenen Betrachtungseinheiten zugeordnet werden können. Eine absolute Notwendigkeit und zugleich eine große Herausforderung ist dabei die kohärente Ausrichtung der Unterziele (bspw. auf Projektebene) auf die übergeordneten Qualitätsziele bis hin zu den Unternehmenszielen.

abb1

Abb. 1: Betrachtungseinheiten von Qualität [Frühauf, Ludewig, Sandmayr 2002, S. 129]

Mit dem Qualitätsmanagement werden grundsätzlich wirtschaftliche Ziele verfolgt. Es gilt sowohl im Hinblick auf das Produkt wie auch auf den Prozess das wertorientierte Qualitätsverständnis:

 „Qualität ist eine Funktion von Kosten und Nutzen. Ein Qualitätsprodukt ist ein Erzeugnis, das einen bestimmten Nutzen zu einem akzeptablen Preis erbringt“ [Balzert 2008, S. 460].

Das wirtschaftliche Ziel des Qualitätsmanagements liegt im Finden eines Optimums aus den Fehlerkosten (Fehlerfolgekosten und Fehlerbehebungskosten) und den gegenläufigen Fehlerverhütungskosten (Prüfkosten und Kosten von präventiven Maßnahmen). Unter den Begriffen „Good Enough Quality“, Value Based Software Engineering (VBSE) und Ansätzen im Umfeld der risikobasierten Softwareentwicklung (bspw. Risikobasiertes Testen) finden sich zahlreiche Ansätze, die das wertorientierte Qualitätsverständnis konkret umsetzen.

Bedauerlicherweise lassen sich in der Softwareentwicklung weder die Fehlerkosten und Fehlerverhütungskosten exakt angeben, noch lassen sich entsprechende Qualitätsanforderungen an den Prozess und an das Produkt ohne Schwierigkeiten quantifizieren. Doch auch wenn es schwierig ist, Softwarequalität zu messen, besteht Konsens darüber, dass die „ingenieurmäßige Qualitätssicherung undenkbar ohne die Quantifizierung von Soll- und Istwerten“ ist [Rombach 1993, S. 260]. Weiterführende Literatur zu Maßen und Metriken in der Softwareentwicklung findet sich bspw. in [Balzert 2008, S. 377ff.; Ludewig, Lichter 2013, S. 295ff.].

Qualitätsplanung des Softwareproduktes

Die Qualitätsplanung des Softwareproduktes ist ein wesentlicher Bestandteil des Requirements Engineering-Prozesses, bei dem die Anforderungen des Auftraggebers an das zu entwickelnde Produkt aufgenommen, analysiert, spezifiziert und bewertet werden [bspw. Pohl 2008]. Funktionale Anforderungen beschreiben dabei, „was“ das System tun sollte. Hinzu kommen weitere, sog. Qualitätsanforderungen (teilw. auch als nicht funktionale Anforderungen bezeichnet). Sie definieren die gewünschten Qualitätsmerkmale wie bspw. Performanz oder Zuverlässigkeit des geplanten Systems, einer Systemkomponente oder einer Funktion [Pohl 2008, S. 15f.].

Die Ableitung von Qualitätsanforderungen aus einem Produktqualitätsmodell (bspw. ISO 25010 oder ein unternehmenseigenes Qualitätsmodell), die Festlegung der zu erreichenden Qualitätsstufen und die Priorisierung der teilweise konfliktären Qualitätsanforderungen ist mit die Aufgabe des Qualitätsmanagements. Das Ergebnis der Qualitätsplanung des Softwareproduktes findet in Form von Qualitätsanforderungen Eingang in das Lastenheft als das fachliche Ergebnisdokument der Planungsphase einer Softwareentwicklung. Im weiteren Verlauf der Softwareentwicklung werden die funktionalen sowie die Qualitätsanforderungen weiter verfeinert und in formale Produktmodelle und Spezifikationen überführt. Hieraus resultiert das Pflichtenheft, das wiederum Grundlage für die spätere Ableitung der Softwarearchitektur und der Implementierung darstellt [Balzert 2009, S. 443ff.].

Qualitätsplanung des Softwareprozesses

Von einer Softwareentwicklung wird mehr erwartet, als dass das resultierende Produkt die funktionalen und die Qualitätsanforderungen erreicht. Denn geschieht dies zwar, jedoch nur mit erheblichen Termin- und Kostenüberschreitungen, so kann nicht von einem qualitativen Entwicklungsprozess gesprochen werden (vgl. Ausführungen zum “Teufelsquadrat” der Softwareentwicklung bspw. in [Balzert 2008, S. 196f.]). Insofern bestimmen sich die Merkmale des Prozesses nicht nur aus den Qualitätsanforderungen an das Produkt (bspw. erfordern hohe Anforderungen an die Zuverlässigkeit von sicherheitskritischen Systemen den Einsatz spezieller formaler Methoden der Softwareentwicklung).

Neben den Qualitätsanforderungen an das Produkt sind weitere Anforderungen an den Prozess zu beachten. Dies kann bspw. die Vorgabe der Einhaltung bestimmter zeitlicher bzw. finanzieller Restriktionen und die Notwendigkeit der Einhaltung bestimmter Prozessrichtlinien wie bspw. bei der Entwicklung von militärischen oder medizinischen Systemen sein (vgl. [Mellis 2004, S. 39ff.] zu den Rahmenbedingungen eines Softwareentwicklungsprojektes). Demnach müssen auch bei den Anforderungen an den Prozess der Softwareentwicklung eine Aufnahme, (Qualitäts-)Zielbestimmung, Priorisierung etc. erfolgen. Im Extremfall sind bestimmte (Qualitäts-)Anforderungen an den Prozess als Restriktionen aufzufassen. Abbildung 2 stellt die produkt- und prozessbezogene Qualitätszielbestimmung im Zusammenspiel dar.

s-qm abb2

Abb. 2: Produkt- und prozessbezogene Qualitätszielbestimmung [Balzert 2008, S. 473]

Die Qualitätsplanung des Prozesses für ein bestimmtes Softwareentwicklungsvorhaben verläuft nach dem Verständnis des prozessorientierten Qualitätsmanagements in erster Linie über die Auswahl und Anpassung von Standards für den Entwicklungsprozess (und implizit das Entwicklungsprodukt). Prozessstandards definieren Prozesse (bspw. Richtlinien für die Entwicklung oder die Durchführung von Meilensteinen, Verantwortlichkeiten etc.) und beinhalten Beschreibungen von Dokumenten, die im Zuge der Prozesse erstellt werden müssen (bspw. Dokumente für Änderung von Anforderungen, Protokollierung von Testergebnissen etc.). Agile Methoden verfolgen an dieser Stelle jedoch einen weniger formalen Ansatz, der insbesondere bei kleineren Entwicklungsvorhaben zielführend sein kann [Sommerville 2012, S. 710f.]. Das Endergebnis der Qualitätsplanung des Prozesses für ein bestimmtes Entwicklungsvorhaben wird in einem Projektauftrag festgehalten.

Qualitätslenkung und Qualitätsprüfung

Die Qualitätslenkung setzt die Qualitätsplanung um. Sie steuert, überwacht und korrigiert den Entwicklungsprozess mit dem Ziel, die vorgegebenen Anforderungen an das Produkt und an den Prozess zu erfüllen. Werden die vorgegebenen Anforderungen nicht erfüllt, müssen korrektive Maßnahmen ergriffen werden. Hier sind die Aufgaben der Qualitätslenkung eng mit den Aufgaben des Projektmanagements verknüpft [Balzert 2008, S. 480]. Bei den korrektiven Maßnahmen geht es neben der Anpassung der konstruktiven und analytischen Maßnahmen auch um die zeitliche Gestaltung und die Intensität der Qualitätslenkung und -prüfung [Mellis 2004, S. 181ff.].

Die Qualitätsprüfung führt die im Rahmen der Qualitätsplanung festgelegten analytischen Maßnahmen hinsichtlich Produkt und Prozess durch. Die Ist-Werte werden erfasst und es wird überwacht, ob die konstruktiven Maßnahmen durchgeführt worden sind [Balzert 2008, S. 480]. Hierdurch soll auch gewährleistet werden, dass die festgelegten Verfahren und Standards des Qualitätsmanagements eingehalten worden sind. In diesem Sinn sind Verfahren und Standards die Basis des Qualitätsmanagements. Doch das Bestreben von Qualitätsmanagern muss es auch sein, eine Qualitätskultur zu entwickeln, bei der sich jeder Beteiligte am Entwicklungsprozess dem Erreichen einer hohen Qualität verpflichtet fühlt [Sommerville 2012, S. 710f.].

Eine verzögerte Fehlerentdeckung führt zu einem exponentiellen Kostenanstieg. Denn mit zunehmender Verweilzeit eines Fehlers im Produkt steigen seine Behebungskosten aufgrund der Fehlerfortpflanzung exponentiell an. Um das Prinzip der frühzeitigen Fehlerentdeckung und -behebung realisieren zu können und jederzeit Sichtbarkeit über das Qualitätsniveau des Produktes und Prozesses zu haben, ist eine durchgängig entwicklungsbegleitende und in den Softwareentwicklungsprozess sowie das Projekt- und Risikomanagement integrierte Qualitätslenkung notwendig [Balzert 2008, S. 488]. Nach diesem Verständnis sind die traditionell getrennt behandelten Aktivitäten der Qualitätslenkung und -prüfung auch nicht mehr sinnvoll trennbar. Abbildung 3 stellt das Prinzip der entwicklungsbegleitenden und integrierten Qualitätslenkung dar.

abb3

Abb. 3: Prinzip der entwicklungsbegleitenden Qualitätslenkung [Balzert 2008, S. 488]


Literatur

Balzert, Helmut: Lehrbuch der Softwaretechnik: Basiskonzepte und Requirements Engineering, 3. Auflage. Heidelberg : Spektrum Akad. Verl., 2009.

Balzert, Helmut: Lehrbuch der Softwaretechnik, Bd. 2, Softwaremanagement. 2. Auflage. Heidelberg : Spektrum Akad. Verl., 2008.

Frühauf, Karol ; Ludewig, Jochen ; Sandmayr, Helmut: Software-Projektmanagement und –Qualitätssicherung. 4. Auflage. Zürich : vdf, 2002.

Kneuper, Ralf: CMMI – Verbesserung von Softwareprozessen mit Capability Maturity Model Integration. 3. Auflage. Heidelberg : dpunkt, 2007.

Liggesmeyer, Peter: Software-Qualität. 2. Auflage. Heidelberg : Spektrum Akad. Verl., 2009.

Ludewig, Jochen ; Lichter, Horst: Software-Engineering. 3. Auflage. Heidelberg : dpunkt, 2013.

Mellis, Werner: Projektmanagement der SW-Entwicklung. Wiesbaden : Vieweg, 2004.

Pohl, Klaus: Requirements-Engineering. 2. Auflage. Heidelberg : dpunkt, 2008.

Rombach, Dieter: Software-Qualität und -Qualitätssicherung. In: Informatik-Spektrum, 1993, Band 16, Heft 5, S. 267-272.

Sommerville, Ian: Software Engineering. 9. Auflage. München : Pearson, 2012.

 

Hier weiterverbreiten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert