Softwarequalität durch Vernetzung der Einflussfaktoren zur Fehlerprävention

Anwendung des vernetzten Denkens zur Fehlerprävention


Wissenschaftlicher Aufsatz, 2012

46 Seiten


Leseprobe


Inhaltsverzeichnis

Kurzfassung

1. Ausgangssituation und Problemstellung

2. Software-Entwicklungsprozess

3. Software-Fehlerprävention
3.1 Software - Qualität, - Fehler und – Fehlerprävention
3.2 Maßnahmen zur Fehlerprävention
3.3 Software - Prozessverbesserungen mit Reifegradmodellen
3.4 Fehlerverschleppung und deren Kosten
3.5 Software - Fehlerprävention als Bestandteil eines vernetzten Systems

4. Methodik zur Lösung der Problemstellung
4.2 Methoden und Modelle zur Problemlösung von komplexen vernetzten Systemen

5. Entwicklung der Einflussfaktoren
5.1 Ermittlung der Einflussfaktoren
5.2 Erläuterungen der Zielgrößen und Einflussfaktoren
5.3 Verbindungen, deren Richtungen und Wirkungsstärke

6. Ergebnisse
6.1 Vernetzung, Wechselwirkungen und Intensitäten der Einflussfaktoren
6.2 Erläuterungen zur Darstellung der Erkenntnismatrix
6.3 Analyse der Einflussfaktoren in der Erkenntnismatrix

7. Erkenntnisse

8. Zusammenfassung

Literaturverzeichnis

Kurzfassung

Die Softwarequalität / Fehlerprävention wurde in den letzten Jahren fortwährend durch Maßnahmen, Methoden und speziell Reifegradmodelle verbessert. Sie reicht aber aufgrund der gestiegenen Anforderungen, steigender Komplexität und steigenden Kosten nicht aus. Die Softfaktoren z. B. Führungsstil, Motivation der Mitarbeiter, Fachwissen und Qualitätskultur als wesentliche Bestandteile im Softwareentwicklungsprozess, werden teilweise zu wenig berücksichtigt. Die heutigen Ansätze sind nicht ausreichend aufeinander abgestimmt bzw. werden nicht vernetzt betrachtet.

In der vorliegenden Arbeit wird ein vernetzter Ansatz entwickelt, um die Softwarefehlerprävention weiter zu optimieren. Die Basis des Ansatzes ist die Integration aller am Softwareentwicklungsprozess beteiligten Disziplinen und Personen. Aus den bisher z.B. verwendeten Methoden, Maßnahmen, Qualitäts-modelle und die Einbeziehung anderer Disziplinen werden die vom Autor ermittelten Einflussfaktoren durch Ihre Wirkungsrichtung, Wirkungsstärke und zeitlichen Bedingungen miteinander vernetzt. Es entsteht dadurch ein Ansatz / Modell zur Prävention von Softwarefehlern.

Der Ansatz konzentriert sich im Schwerpunkt auf die Software-Ent-wicklungsphasen: Anforderungsanalyse, Spezifikation und Entwurf. Der Ansatz wird auf der Basis der Methode des vernetzten Denkens durch ein Modell operationalisiert und von einem Softwaretool für die Vernetzungen der Einflussfaktoren und Analysen unterstützt. Dieses methodische Vorgehen kann auch auf die anderen Software-Entwicklungsphasen angewendet werden, zumal die Softfaktoren z. B. durch die Einflussfaktoren Kultur, Kommunikation und Führung eine bedeutende Rolle in dem gesamten Softwareentwicklungsprozess einnehmen.

Durch die Vernetzung der Einflussfaktoren können die jeweiligen Summen deren direkten und indirekten Wirkungsstärken auf die Zielgröße „Fehlerprävention“ berechnet und in einer „Erkenntnismatrix“ bzw. „Relationen Matrix“ dargestellt werden.

Durch die priorisierte Darstellung der Relationen der Einflussfaktoren in der Erkenntnismatrix auf die Zielgröße „Fehlerprävention“, lässt sich der Handlungsbedarf zur Optimierung der Softwarequalität / Fehlerprävention ableiten. Die höchst positiv priorisierten Einflussfaktoren z. B. „Motivation der Mitarbeiter“ und „Fach- & Erfahrungswissen der Mitarbeiter“ wirken als stärkste Hebel für die Fehlerprävention. Sie sind zur nachhaltigen Software-Fehlerprävention fortwährend im Fokus zu halten. Die negativ priorisierten Einflussfaktoren z. B. „Arbeitsbelastung der Mitarbeiter“ und „Emergente Softwarefehler“ sind abzustellen.

Der entwickelte Ansatz kann relativ einfach zur Anwendung an die jeweiligen Gegebenheiten eines Unternehmens angepasst werden.

Schlüsselwörter: Software, Softwareentwicklung, Softwarequalität, Fehlerprävention, Software-Fehlerprävention, Einflussfaktoren, Komplexe Systeme, Methode des vernetzten Denkens, vernetzter Ansatz / Modell, praktische Anwendung.

1. Ausgangssituation und Problemstellung

Die Erstellung und Anwendung von Software ist in den letzten Jahren immer weiter gewachsen, denn auch komplexe Abläufe werden durch Software in allen Lebensbereichen weiter automatisiert, z.B. in der Industrie, Medizintechnik, Steuerungstechnik und Raumfahrt.

Die Softwarequalität ist durch diese Anforderungen nicht immer im gleichen Umfang gestiegen. Softwarefehler haben in den unterschiedlichen Anwendungen in den letzten Jahren teilweise Mensch und Umwelt gefährdet, immense Kosten verursacht und Kunden verärgert.

Die Verbesserung der Softwarequalität / Fehlerprävention ist somit eine besondere Herausforderung an die Softwareentwicklung. Softwarefehler (SW-Fehler) sind unüberschaubar und schwer zu detektieren. Erschwerend kommt hinzu, dass diese Fehler nicht linear nach dem Ursache-Wirkungs-Prinzip auftreten. Da Software keinen Verschleiß hat, entstehen die Fehler nicht durch Abnutzung, sondern im Entwicklungsprozess. Die Fehlerprävention ist deshalb ein sehr wichtiger Bestandteil der Software-Entwicklung. Es müssen entwicklungsbegleitende Methoden und Verfahren im Software-Entwicklungsprozess angewendet werden, um Softwarefehler zu vermeiden bzw. die Qualität der Software zu verbessern. Zur Steigerung der Softwarequalität ist ein vernetzter Ansatz / (Modell) der bisherigen Einzelaktivitäten bzw. der wichtigsten Einflussfaktoren eine mögliche Alternative, welcher das Ziel der vorliegenden Arbeit ist.

Daraus ergeben sich folgende Problemstellungen:

1. Welche wichtigen Einflussfaktoren sind zur vernetzten Fehlerprävention im Software-Entwicklungsprozess wesentlich?
2. Welche Wechselwirkungen gibt es zwischen diesen Einflussfaktoren?
3. Lassen sich die Wechselwirkungen bewerten?
4. Wie lässt sich dieser vernetzte Ansatz in die tägliche Arbeit integrieren?

2. Software-Entwicklungsprozess

Ziel des Software-Entwicklungsprozesses ist, nach den Anforderungen des Kunden eine Software im gewünschten Leistungsumfang mit hoher Qualität zu erstellen und zu liefern.

Die Softwareentwicklung wird in mehrere Phasen zerlegt (siehe Abbildung 1).

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 1: Software-Entwicklungsphasen [Eigene Darstellung]

Die heute angewendeten Aktivitäten zur Fehlerprävention haben in den letzten Jahren enorme Fortschritte gemacht und somit zur Fehlerprävention beigetragen, trotzdem reichen diese für die Zukunft nicht aus. Der Beitrag soll deshalb durch einen vernetzten Ansatz mit seinen wichtigsten Einflussfaktoren und Wechselwirkungen einen weiteren Beitrag zur Fehlerprävention leisten.

Die Erzeugung von Softwarequalität muss in der Anforderungsanalyse beginnen, da in dieser Phase ca. 50-70 % der Fehler entstehen. Zur Unterstützung des Software-Entwicklungsprozesses werden Methoden, Prozess-/ Vorgehensmodelle, Prozesse und Tools angewendet. Ein Vorgehensmodell ist in nachfolgende Elemente strukturiert (siehe Abbildung 2).

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2: Schema von Vorgehensmodellen; Quelle: [Balzert 1998]

Ein Vorgehensmodell gliedert sich in ein Rollenmodell, Methoden & Werkzeuge, in die Tätigkeitsbereiche Projekt, Konfigurations-, Qualitäts-management und Systementwicklung (siehe Abbildung 2). In der Literatur gibt es umfangreiche Darstellungen über Vorgehensmodelle z. B. [Bunse 2008]. Ein weit verbreitetes Vorgehensmodell ist das „V-Modell“.

3. Software-Fehlerprävention im Entwicklungsprozess

3.1 Software-Qualität, -Fehler und –Fehlerprävention, Software-Qualität

Software-Qualität wird in der Literatur unterschiedlich definiert. Die Definition hängt oft auch von den entsprechenden Anforderungen und den Nutzern ab. Qualität kann sich auf produktbezogene, anwenderbezogene, prozessbezogene oder wertbezogene Eigenschaften beziehen. Eine Definition ist z. B. in der ISO/IEC 9126. Diese Norm ist in der Norm ISO/IEC 25000 aufgegangen.

Unter Software-Qualität versteht man z.B. die Gesamtheit der Merkmale und Merkmalswerte eines Softwareprodukts, die sich auf dessen Eignung beziehen, festgelegte oder vorausgesetzte Erfordernisse zu erfüllen [Masing 2007, S. 824]. Software Qualität muss im Software-Entwicklungsprozess erzeugt und nicht nachträglich in der Prüfung hinein implementiert werden. Software-Qualität zu erzeugen, ist eine wesentliche Führungsaufgabe und ist deshalb zu:

- Planen, z.B. indem Qualitätsziele definiert werden;
- Lenken, z.B. durch Prozesse, konstruktive und analytische Maßnahmen;
- Fördern,z.B. durch einen kontinuierlichen Verbesserungsprozess (KVP);
- Sichern, z.B. durch Risikomanagement und Maßnahmen.

Qualitäts-Eigenschaften bzw. Merkmale von Software sind z.B. Zuverlässigkeit, Verständlichkeit, Portabilität, Wartbarkeit, Effizienz, Wieder-verwendbarkeit, Korrektheit, Sicherheit, Robustheit, Modularität, Testbarkeit, Flexibilität, Brauchbarkeit und weitere [Balzert 1998, S. 257; Hoffmann 2008, S. 7; Wallmüller 2001, S. 59]. Teilweise sind die Qualitätseigenschaften als Baum angeordnet, mit jeweils mehreren Ebenen/Hierarchien zur Verfeinerung der Eigenschaften und bilden so ein Qualitätsmodell. Die ISO/IEC 9126 legt das Begriffssystem fest, innerhalb dessen die Beurteilung der Software-Qualität vorgenommen werden kann. Es sind die in Abbildung 3 folgenden sechs Qualitätsmerkmale definiert:

Abbildung in dieser Leseprobe nicht enthalten

Abbildung. 3: Qualitätsmerkmale für Software nach ISO/IEC 9126

[Quelle: Masing 2007, S. 824]

Software-Fehler

Für Software-Fehler liegen aus der Literatur unterschiedliche Definitionen vor.

Nach IEEE Std 610 ist ein Fehler wie folgt definiert:

„Ein Fehler ist die Abweichung zwischen dem berechneten, beobachteten oder gemessenen Wert oder Zustand der Betrachtungseinheit und dem entsprechenden spezifizierten oder theoretisch richtigen Wert“ [Wallmüller 2001, S. 222]. Software-Fehler entstehen im Schwerpunkt durch Menschen im Entwicklungsprozess. Da der Entwicklungsprozess aus mehreren Phasen besteht, können die Fehler z. B. entstehen durch:

1. fehlerhafte Anforderungen,
2. fehlerhafter Entwurf,
3. fehlerhafte Programmierung,
4. weitere Ursachen.

Fehler, die in den einzelnen Arbeitsschritten nicht erkannt werden, können sich in den weiteren Entwicklungsphasen fortpflanzen / verschleppen und zu neuen Fehlern führen, z.B. fehlerhafte Anforderungen führen zu Spezifikationsfehlern und induzierte Fehler aus den Anforderungen. Daraus ergibt sich der Summationseffekt von Fehlern [Wallmüller 2001, S. 15].

Fehlerprävention

Im Software-Entwicklungsprozess ist die Fehlerprävention eine wesentliche Aktivität.

Eine verzögerte Fehlerentdeckung führt zu einem enormen Kostenanstieg. Analysen ergeben, dass der Faktor der Fehlerbeseitigungskosten pro Software-Entwicklungsphase um etwa den Faktor 5‑10 steigt. Ein Fehler aus der Spezifikationsphase ist um ein n-faches teurer bzgl. Entdeckung und Korrektur, der erst bei der Codierung entdeckt wird. Zwischen Spezifikation und Abnahmetest kann somit ein Faktor 100 bzgl. Kosten liegen [Balzert 1998, S. 288]. Eigene Erfahrungen/Analysen bestätigen diesen Kostenanstieg.

Das Ziel muss deshalb eine sofortige Fehlerentdeckung sein. Dieses Ziel kann durch entwicklungsbegleitende Qualitätsmaßnahmen in jeder Phase weitaus besser erreicht werden, als Qualitätsmaßnahmen am Ende der Entwicklung ermöglichen [Balzert 1998, S. 287ff.). Qualität muss im Prozess entstehen und nicht später „hineinimplementiert“ werden. Da etwa 50% der Fehler von der Anforderungs- bis zur Entwurfsphase entstehen, ist es in diesen Phasen besonders wichtig, Fehlerprävention durchzuführen [Balzert 1998, S. 289].

Zu der Fehlerprävention gibt es im Schwerpunkt die im nachfolgenden Kapitel 3.2 beschriebenen vier wesentlichen Kategorien von Maßnahmen.

3.2 Konstruktive, analytische, organisatorische und psychologische

Präventionsmaßnahmen

Durch einen vernetzten Ansatz unter Berücksichtigung der wichtigsten Einflussfaktoren und deren Wechselwirkungen kann speziell die Fehlerprävention sicher und nachhaltig verbessert werden. Die vier wesentlichen Kategorien von Qualitätsmaßnahmen leisten heute einen sehr positiven Beitrag zur Fehlerprävention und Fehlerentdeckung.

1. Organisatorische,
2. Konstruktive,
3. Analytische und
4. Psychologische Maßnahmen am Mitarbeiter orientiert.

Die Maßnahmen 1, 2 und 3 werden in der Literatur überwiegend herangezogen. Sie sind voneinander abhängig, wobei konstruktive (präventive) Maßnahmen den Einsatz von analytischen Maßnahmen reduzieren [Balzert 1998, S. 281].

Erläuterungen der vier Qualitätsmaßnahmen:

Organisatorische Qualitätsmaßnahmen

Bei den organisatorischen Qualitätsmaßnahmen geht es z. B. um den Aufbau, die Einführung und Pflege eines Qualitäts-Management-Systems im Unternehmen.

Konstruktive Qualitätsmaßnahmen

Zielsetzung der konstruktiven Qualitätsmaßnahmen ist die Erzeugung von Softwarequalität / Fehlerprävention durch präventive Maßnahmen z. B. Einsatz von Vorgehensmodellen, Methoden und Modellen. Die Softfaktoren z. B. motivierte Mitarbeiter, Fach- & Erfahrungswissen der Mitarbeiter und Qualitätskultur im Unternehmen sind sehr wesentliche Einflussfaktoren zur Fehlerprävention.

Analytische Qualitätsmaßnahmen

Der Einsatz von analytischen Qualitätsmaßnahmen wird zur Prüfung des existierenden Qualitätsniveaus vorgenommen z. B. durch Testen. Die Prüfungen geben keine absolute Gewissheit über die Fehlerhaftigkeit / Nichtfehlerhaftigkeit eines Produktes.

Psychologische Präventionsmaßnahmen / People-Maßnahmen

Software-Entwicklung kann nicht als rein technischer Vorgang betrachtet werden. Da SW-Entwicklung durch Menschen im Entwicklungs-Team vorgenommen wird, ist z. B. der Kommunikationsprozess, die Führung, die Q-Kultur und weitere Softfaktoren sehr wesentlich für die Qualität des Ergebnisses.

3.3 Software-Prozessverbesserungen zur Fehlerprävention mit Reifegrad-modellen

Für die Optimierung der Software-Fehlerprävention sind Prozessverbesserungen unabdingbar. Sie können auf unterschiedliche Weise vorgenommen werden, z.B. durch den klassischen PDCA (P lan, D o, C heck, A ct) Zyklus oder durch Reifegradmodelle. Die Verwendung von Reifegradmodellen hat den Vorteil, dass sie erfolgreiche Praktiken in systematischer Form in unterschiedliche Modelle bringen [Hörmann, 2006, S. 5]. Die Anwendung dieser Modelle führt zu Prozessoptimierung und somit zur Fehlerprävention bzw. Fehlerreduktion.

Ein Reifegradmodell beinhaltet z. B. vier Kategorien: Prozessmanagement, Projektmanagement, Ingenieurdisziplinen und Unterstützung. Jede Kategorie hat fünf bis sieben Prozessgebiete z. B. Kategorie Ingenieurdisziplinen hat Requirements Management, Requirements Development und weitere Prozessgebiete. Um Prozessverbesserungen vornehmen zu können, ist zuerst ein Ist-Status aufzunehmen. Dieser Ist-Status wird durch ein Assessment vorgenommen. In diesem Assessment werden die beschriebenen und „gelebten“ Prozesse getrennt untersucht und mit den Soll-Vorgaben des entsprechenden Reifegradmodells abgeglichen. Aus diesem Abgleich folgt eine sogenannte Handlungsmatrix, welche die Problemfelder und Problemprozesse aufzeigt. Dadurch kann eine optimale Prozessverbesserung gestartet und implementiert werden. Die Abbildung 4 zeigt die Zusammenhänge zwischen Prozess, Prozess Assessment, Capability Determination (Reifegrad Level Bestimmung) und Prozess Improvements bei der Anwendung eines Reifegradmodells.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 4: Software-Prozessbewertung mit SPICE nach ISO 15504

[Quelle: Petrasch 1998]

Außerdem wird als Ergebnis ein Reifegrad-Level ermittelt. Die meisten Modelle haben ein Reifegrad-Level in einem Range von 1 bis 5, 1 bis 6, oder 1 bis 7. Je höher das Level innerhalb des Modells, desto besser sind die Prozesse dokumentiert und werden „gelebt.

Die ersten Reifegrad-Modelle kamen in den 90er-Jahren auf den Markt z. B.:

- CMMI -Modell (C apability M aturity M odel I ntegration),
- SPICE -Modell (S W- P rocess I mprovement & C apability D e termination),
- IBM-Reifegrad-Modell,
- ISO-Reifegrad-Modell nach ISO 9000ff.

Die zwei bekanntesten Reifegrad-Modelle für die Software-Entwicklungs-prozesse sind:

- CMMI (C apability M aturity M odel I ntegration),
- SPICE (S oftware Process I mprovement C apability d E termination)

CMMI

Das CMMI (Capability Maturity Model Integration)-Qualitätsmodell wurde vom Software Engineering Institute (SEI) in USA im Auftrag des amerikanischen Verteidigungsministeriums als Nachfolgemodell mit Erweiterungen zum CMM (Capability Maturity Model) entwickelt [Kneuper 2006, S. 2ff.]. CMMI dient schwerpunktmäßig als Vorgehensweise für Software-Entwicklungen und deren Prozessverbesserungen. Aus dem CMM entwickelten sich außerdem weitere diverse Varianten, z.B. mit den Schwerpunkten Systemengineering, Personal Software Process (PSP) und anderen [Wallmüller 2001, S. 97; 2007, S. 92ff.] Mit CMMI wird angestrebt, alle Derivate zu vereinigen. Heute wird CMMI in verschiedenen Anwendungsbereichen eingesetzt, z.B. bei der Systementwicklung, dem Lieferantenmanagement und bei der integrierten Prozess- und Produktentwicklung. Der Schwerpunkt liegt aber weiterhin in der Prozessverbesserung der Software-Entwicklung.

Das CMMI Modell besteht aus fünf Stufen, die den Reifegrad (Maturity Level) der Prozesse innerhalb einer Organisation beschreiben. Die Reifegrade-Level gehen bei CMMI von 1 bis 5, wobei 5 der höchste Reifegrad ist. Das Level des Prozessreifegrades wird durch ein Assessment ermittelt und zeigt in einer Handlungsmatrix die Prozessgebiete auf, in denen Handlungsbedarf zur Prozess-optimierung besteht.

[...]

Ende der Leseprobe aus 46 Seiten

Details

Titel
Softwarequalität durch Vernetzung der Einflussfaktoren zur Fehlerprävention
Untertitel
Anwendung des vernetzten Denkens zur Fehlerprävention
Autor
Jahr
2012
Seiten
46
Katalognummer
V192348
ISBN (eBook)
9783656172796
ISBN (Buch)
9783656176879
Dateigröße
1061 KB
Sprache
Deutsch
Schlagworte
Faktoren, Einflussfaktor, Qualitätsmodelle, Reifegradmodelle, Softwarefehlerprävention, Softwarefehlervermeidung, Fehlervermeidung, Softwareentwicklung, praktische Anwendung, Softwarequalität, vernetztes Denken, Emergenz, Mensch, Technik, Organisation, Prozesse, MTOP, Soziotechnisches System, CMMI, Praktisches Beispiel, Software Prozess Verbesserungen
Arbeit zitieren
Alfons Unmüßig (Autor:in), 2012, Softwarequalität durch Vernetzung der Einflussfaktoren zur Fehlerprävention, München, GRIN Verlag, https://www.grin.com/document/192348

Kommentare

Blick ins Buch
Titel: Softwarequalität durch Vernetzung der Einflussfaktoren zur Fehlerprävention



Ihre Arbeit hochladen

Ihre Hausarbeit / Abschlussarbeit:

- Publikation als eBook und Buch
- Hohes Honorar auf die Verkäufe
- Für Sie komplett kostenlos – mit ISBN
- Es dauert nur 5 Minuten
- Jede Arbeit findet Leser

Kostenlos Autor werden