Lade Inhalt...

Softwarequalität. Richtlinien und Normen

Seminararbeit 2013 26 Seiten

Informatik - Software

Leseprobe

Inhaltsverzeichnis

Abkürzungsverzeichnis

Tabellenverzeichnis

Abbildungsverzeichnis

1 Einleitung
1.1 Motivation
1.2 Ziel und Abgrenzung
1.3 Begriffsklärung
1.3.1 Qualität
1.3.2 Softwarequalität
1.3.3 Qualitätsmodelle

2 Normen und Richtlinien
2.1 Standards des produktorientierten Ansatzes
2.1.1 ISO/IEC 9126 und ISO/IEC 25000
2.1.2 DIN EN ISO 9241 Serie
2.2 Prozessorientierte Normen und Richtlinien
2.2.1 DIN EN ISO 900x Normenreihe
2.2.2 CMMI (Capability Maturity Model Integration)
2.2.3 SPICE (Software Process Improvement & Capability determination)
2.3 Mischformen aus produkt- und prozessorientiertem Ansatz

3 Fazit

Literaturverzeichnis

Abkürzungsverzeichnis

Abbildung in dieser eseprobe nicht enthalten

Tabellenverzeichnis

Tabelle 1: Fünf Qualitätsansätze nach Garvin

Tabelle 2: Standards des produktorientierten Ansatzes

Tabelle 3: Standards des prozessorientierten Ansatzes

Tabelle 4: CMMI-Reifegrade

Tabelle 5: SPICE-Reifegrade

Tabelle 6: IEEE-Normen

Abbildungsverzeichnis

Abbildung 1: Qualitätsmerkmale von Software nach DIN ISO 9126

1 Einleitung

Diese Ausarbeitung befasst sich mit den für die Softwarequalität geltenden Richtlinien und Normen. Hierzu werden im Verlauf dieser Ausarbeitungen die relevantesten Normen und Richtlinien, die bei der Entwicklung von hochqualitativer Software angewandt oder zur Vergleichbarkeit von Software hinsichtlich Ihrer Qualität herangezogen werden können, dargestellt.

1.1 Motivation

Qualitativ hochwertige Software rückt immer weiter in den Fokus der Wirtschaftsobjekte. So ist Software heute meist ein zentraler Bestandteil in den Wertschöpfungsketten von Produkten und Dienstleistungen vieler Branchen und oftmals die Basis für Wettbewerbsvorteile gegenüber Wettbewerbern, wodurch der Qualitätsanspruch an Software weiter gestiegen ist.

Für Softwareentwickler wird es gleichzeitig immer aufwändiger, eine Software wirtschaftlich und wettbewerbsfähig zu entwickeln und die Balance zwischen hochqualitativer Software und möglichst geringen Entwicklungs- und Wartungskosten zu halten. Die Softwareentwicklung gleicht heute aber häufig noch dem ursprünglichen kreativen Erstellungsprozess, dessen Fokus auf der reinen Machbarkeit und einer anschließender Fehlerkorrektur liegt[1].

Aufgrund der zentralen Bedeutung von Software für heutige Unternehmen steigt jedoch der Bedarf nach einem möglichst standardisierten, industriellen Entwicklungsansatz, wodurch Softwarequalität einheitlich messbar und vergleichbar gemacht wird. Die industrielle Entwicklung von Software verfolgt dabei den gleichen Ansatz wie die Fertigung anderer weit industrialisierter Branchen, die eine gleichbleibende hohe Qualität bei möglichst geringen Kosten als Ziel hat.[2]

Die industrielle Entwicklung von Software kann dabei, ähnlich wie in der Automobilbranche, durch einen hohen Grad an Standardisierung erreicht werden. Zu diesem Zweck wurden verschiedene Richtlinien und Normen vereinbart, die für die Softwareentwicklung standardisierte Vorgehensweisen beinhalten.

1.2 Ziel und Abgrenzung

Das Ziel dieser Ausarbeitung ist es, dem Leser die verschiedenen relevanten Normen und Richtlinien, wie Best-Practices und Qualitätsmodelle der Softwarequalität, aufzuzeigen und die Zielsetzung dieser darzustellen. Dabei werden nach der Begriffsklärung die unterschiedlichen Herangehensweisen des prozessorientierten und produktorientierten Ansatzes für Softwarequalität vorgestellt.

Zum inhaltlichen Verständnis des produkt- und prozessorientierten Ansatzes werden dazu notwendige Voraussetzungen aufgelöst. Projektmanagement im Allgemeinen ist jedoch nicht Gegenstand dieser Ausarbeit.

1.3 Begriffsklärung

1.3.1 Qualität

Der Qualitätsbegriff an sich ist nicht eindeutig definiert. Hierzu finden sich in der Literatur zahlreiche Meinungen und Sichtweisen wie Qualität zu beschreiben ist, die sich oftmals sehr ähneln aber doch unterschiedlich sind.

Eine Definition, die viele dieser Aspekte aufgreift ist in der DIN ISO Norm 55350 (Deutsches Institut für Normung, International Organization for Standardization) beschrieben. Darin heißt es: "Qualität ist die Gesamtheit von Eigenschaften und Merkmalen eines Produktes oder einer Tätigkeit, die sich auf deren Eignung zur Erfüllung gegebener Erfordernisse bezieht. Die Erfordernisse ergeben sich aus dem Verwendungszweck des Produktes oder dem Ziel der Tätigkeit unter Berücksichtigung der Realisierungsmöglichkeiten."[3]

Ein weiterer Ansatz, der verschiedene Meinungen und Sichtweisen aufgreift wurde durch Garvin beschrieben, der den Qualitätsbegriff aus fünf unterschiedlichen betrieblichen Blickwinkeln betrachtet:

Abbildung in dieser eseprobe nicht enthalten

Tabelle 1: Fünf Qualitätsansätze nach Garvin[4]

Aus den Qualitätsansätzen nach Garvin ist abzuleiten, dass Qualität nicht absolut bestimmt werden kann. Vielmehr stellt Qualität die Summe der Verhältnismäßigkeit aus den gegebenen Anforderungen an ein Produkt und den erreichten Ausprägungen der Eigenschaften für eine jeweilige Sichtweise dar.

1.3.2 Softwarequalität

Analog zum Qualitätsbegriff ist auch Softwarequalität nicht eindeutig definiert, da auch hier unterschiedliche Betrachtungsweisen existieren. Bei Betrachtung der Literatur kristallisiert sich jedoch heraus, dass Softwarequalität vor allem an den produkt- und prozessbezogenen Qualitätsansätzen festgemacht werden kann. So kann in Anlehnung an die Qualitätsansätze von Garvin, Softwarequalität als „die Summe aller relevanten Eigenschaften eines Software-Produktes, mit denen seine Kunden zufriedengestellt werden, und die Summe der dazu notwendigen Eigenschaften von Software Prozessen wie z.B. erreichte Reifegrade, die zur Erstellung, zum Betrieb und zur Pflege gefordert werden“[5] definiert werden. Diese Definition beinhaltet sowohl Aspekte an die Software als Produkt, an die Qualität des Erstellungsprozesses, sowie an die Erfüllung von Kundenanforderungen.

1.3.3 Qualitätsmodelle

Für die praktischen Anwendungen ist die allgemeine Definition von Softwarequalität aus Absatz 1.3.2 aufgrund der hohen Abstraktion jedoch nicht anwendbar. In der Praxis haben sich daher verschiedene Qualitätsmodelle, wie FCM-Modelle (Factor-Criteria-Metrics-Modell) etabliert. Qualitätsmodelle, wie FCM-Modelle, konkretisieren Softwarequalität von allgemeinen Merkmalen hin zu detaillierten Untermerkmalen und ermöglichen verschiedene Sichtweisen auf die Softwarequalität. Beim FCM-Modell beispielsweise werden nach Top-Down-Verfahren auf der obersten Ebene Merkmale für Softwarequalität definiert, die durch Teilmerkmale der nächsten Ebenen konkretisiert werden. Die unterste Ebene bilden die Indikatoren, anhand derer die Qualitätsmessung erfolgt.[6] Ein Beispiel für ein solches FCM-Modell ist das FURPS-Modell (Functionality, Usability, Reliability, Performance and Supportability) von Hewlett-Packard, das vor allem die Wünsche der Kunden durch Konkretisierung einzelner Merkmale bis hin zu Indikatoren vorsieht.

Unterschiedliche Softwareprodukte weisen in der Regel viele gleiche Kernmerkmale auf, wie beispielsweise funktionale Anforderungen. Diese Kernmerkmale sind in der DIN ISO 9126 standardisiert. Auf dieser basierend, präsentiert Abbildung 1 die Kernmerkmale und dazugehörigen Teilmerkmalen für produktorientierte Qualitätsmodelle.

Abbildung in dieser Leseprobe nicht enthalten In Anlehnung an: Balzert (1998), Lehrbuch der Softwaretechnik: Software Management, Software-Qualitätssicherung, Unternehmensmodellierung, Seiten 258-260

Abbildung 1: Qualitätsmerkmale von Software nach DIN ISO 9126

Grundsätzlich lassen sich die verschiedenen Qualitätsmodelle in drei Betrachtungsansätzen differenzieren. Ähnlich zum Qualitätsbegriff werden hierbei produktorientierte und prozessorientiere Modelle unterschieden. Der dritte Ansatz klassifiziert Modelle des projektorientierten Ansatzes.[7]

2 Normen und Richtlinien

Der traditionelle produktorientierte Ansatz für Softwarequalität basiert auf der Prüfung des fertigen Softwareprodukts hinsichtlich der Erfüllung von Anforderungen und sieht Korrekturen von Abweichungen vor. Der prozessorientierte Ansatz hingegen hat die Zielsetzung, die Qualität eines Produktes bereits im Entwicklungsprozess zu verbessern. Dieser Ansatz stützt sich auf die Annahme, dass qualitativ hochwertige Prozesse hochqualitative Produkte zum Ergebnis haben, die weniger Qualitätsschwankungen unterliegen als beim produktorientierten Ansatz. Aufgrund der sehr zeitintensiven Tests und Korrekturen sowie den damit einhergehenden hohen Kosten, hat sich der produktorientierte Ansatz in der Praxis jedoch als ineffizient erwiesen. Darüber hinaus haben sich Mischformen entwickelt, die Inhalt der IEEE (Institute of Electrical and Electronics Engineers) sind.[8]

Die in den folgenden Abschnitten vorgestellten Standards umfassen bei weitem nicht alle Normen und Richtlinien. Vielmehr handelt es sich hierbei um die wichtigsten und am meisten genutzten Standards. Darüber hinaus existieren viele Normen und Modelle, die unternehmens- oder branchenspezifisch sind und daher eine weniger weite Verbreitung haben, wie z.B. Standards für Software in der Luft- und Raumfahrt. In der Praxis ist es vielmehr so, dass ein jeder Standard oder ein jenes Modell seine eigenen Anwendungsbereiche abdeckt, manche universellere, andere speziellere Gebiete. Viele, vor allem ältere Standards, sind darüber hinaus durch neue Standards abgelöst worden oder als Bestandteil in neue Modelle und Normen eingeflossen.[9]

2.1 Standards des produktorientierten Ansatzes

Unter die Produktnormen fallen in erster Linie Standards zur Beurteilung von Produktqualität wie die ISO/IEC 9126 (International Electrotechnical Commission). Diese beziehen sich auf die analytische Bewertung einheitlicher Kriterien und Merkmale von Softwareprodukten. Die Standards des produktorientierten Ansatzes betrachten hierbei meist Teilgebiete wie die Ergonomie eines Produktes. So werden die Produktnormen und Richtlinien in Normen für Programme und Daten, Ergonomie, Sicherheit und Dokumentation unterschieden. Tabelle 2 gibt einen Überblick über die wichtigsten Normen und Richtlinien dieses Ansatzes.

Abbildung in dieser eseprobe nicht enthalten

Tabelle 2: Standards des produktorientierten Ansatzes[10]

2.1.1 ISO/IEC 9126 und ISO/IEC 25000

Die ISO/IEC 9126 ist in der ISO/IEC 25000 aufgegangen und wurde durch diese neue Norm ersetzt. Die ISO 9126 präzisierte Softwarequalitätsmerkmale hinsichtlich unterschiedlicher Anforderungen mit dem Ziel, die Qualität eines Softwareproduktes mit einheitlichen Kriterien bewertbar und messbar zu machen.

Für Softwareentwickler kann die Norm als eine Leitlinie gesehen werden, damit qualitativ wichtige Merkmale und deren Ausgestaltung, von Entwicklungsbeginn an in der Planung und Entwicklung berücksichtigt werden. Für den Kunden eines Produktes liefern die Merkmale wichtige Anhaltspunkte, welche Kriterien ein Softwareprodukt zu betrachten ist.

Die ISO/IEC 25000 Serie erweist sich als gültiger Leitfaden für die Bewertung von Softwarequalität und den dafür nötigen Kriterien. Die Norm vereint darüber hinaus die ISO/IEC 9126 und die ISO/IEC 14598 (Information Technology – Software Product Evaluation) Norm und definiert das sogenannte ISO SQuaRE-Model (Software product Quality Requirements and Evaluation), welches die Serie der ISO/IEC 25000-25099 Normen umfasst. Die ISO/IEC 25000 Serie enthält die wichtigsten Normen zur Bewertung von Softwareprodukten.[11]

Einen Überblick über die Qualitätsmerkmale der ISO 9126 liefert Abbildung 1: Qualitätsmerkmale von Software nach DIN ISO 9126 (siehe Absatz 1.3.3).

2.1.2 DIN EN ISO 9241 Serie

Die DIN EN ISO 9241 Serie dient der Beschreibung von Anforderungen an die Ergonomie der Schnittstelle zur Interaktion zwischen Mensch und Computersystem/Anwendung. Dabei liegt der Fokus für Qualität in der Softwareentwicklung des Teil 10 der Norm auf der Gebrauchstauglichkeit (Usability) von Softwareprodukten.

Die Gebrauchstauglichkeit wird in der Norm als „Das Ausmaß, in dem ein Produkt durch bestimmte Benutzer in einem bestimmten Nutzungskontext genutzt werden kann, um bestimmte Ziele effektiv, effizient und zufriedenstellend zu erreichen.“[12] definiert. Die abstrakten Qualitätsziele dieser Norm an ein Softwareprodukt bzw. deren Benutzungsschnittstelle sind somit die drei Kernanforderungen Effektivität, Effizienz und Zufriedenheit.

- Effektivität: Erfüllt das Produkt die funktionalen Anforderungen des Benutzers?
- Effizienz: Ist die Benutzbarkeit für einen Benutzer schnell erlernbar? Ist die Bedienung unkompliziert, intuitiv und vermeidet Benutzungsfehler?
- Zufriedenheit: Ist eine Aufgabe für den Benutzer zufriedenstellend mit der Software zu erfüllen?

In der Praxis besteht jedoch aufgrund des hohen Abstraktionslevels die Schwierigkeit, ein Softwareprodukt hinsichtlich dieser Kriterien zu entwickeln oder objektiv zu bewerten. Dieses Problem steigt mit Zunahme der Komplexität einer Software. Indikatoren zur Messung und Bewertung sind nur schwer zu bestimmen. Die objektive Vergleichbarkeit von Software hinsichtlich ihrer Ergonomie ist daher nahezu unmöglich.[13]

Eine in der Praxis einfacher als die abstrakte Beschreibung der Gebrauchstauglichkeit anwendbare Norm für Usability ist die DIN EN ISO 9241-110. Sie beschreibt sieben relevante Prinzipien für die Ausformung der Dialoggestaltung zwischen Benutzer und einem Softwaresystem oder einer Webseite. Die Anforderungen an eine Benutzungsschnittstelle werden weitreichender konkretisiert, als die der Gebrauchstauglichkeit. Dies macht die Anwendung dieser Norm in der Praxis einfacher, auch wenn die Interpretation, wie auch die Implementierung, jeder dieser Grundsätze eine große Herausforderung an die Entwickler darstellt.[14]

Die sieben Prinzipien der Gestaltung einer Benutzungsschnittelle sind:[15]

- Aufgabenangemessenheit
- Selbstbeschreibungsfähigkeit
- Erwartungskonformität
- Fehlertoleranz
- Steuerbarkeit
- Individualisierbarkeit
- Lernförderlichkeit

2.2 Prozessorientierte Normen und Richtlinien

Normen und Richtlinien des prozessorientierten Ansatzes streben nach hoch qualitativer Software, die durch Bewertung und Verbesserung der Entwicklungsprozesse, auf Basis systematischen Vorgehens in der Entwicklungsphase erreicht werden soll. Prozessorientierte Standards zeichnen sich unter anderem durch Richtlinien zur Prozesserfassung und –bewertung aus, sowie Maßnahmen zur Prozessverbesserung[16]. Die Betrachtung von Prozessen hat bei diesen Modellen in der Regel einen ganzheitlichen Anspruch. Alle Bereiche die mit der Erstellung der Software in Berührung kommen, werden über den gesamten Softwarelebenszyklus betrachtet.

Seit den 1980er Jahren entstanden verschiedenste Standards und Modelle zur Bewertung, Messung und Verbesserung von Entwicklungsprozessen. Die Bekanntesten und gebräuchlichsten Standards und Modelle sind in Tabelle 3 aufgeführt.

Abbildung in dieser eseprobe nicht enthalten

Tabelle 3: Standards des prozessorientierten Ansatzes[17]

Es ist zu beachten, dass gute Entwicklungsprozesse allein kein Garant für qualitativ hochwertige Software sind. Vielmehr sind die Prozesse ein Qualitätsfaktor in einem Softwareentwicklungsprojekt. Neben den Prozessen sind die eingesetzten Techniken, wie Methoden, Werkzeuge und die Programmiersprache, sowie die Mitarbeiter weitere Erfolgs- und Qualitätsfaktoren.[18]

2.2.1 DIN EN ISO 900x Normenreihe

Die DIN EN ISO 9000 Serie umfasst Standards für Qualitätsmanagementsysteme (QMS) und findet aufgrund ihrer Prozessorientierung und des hohen Adaptionsvermögens in unterschiedlichen Bereichen, unter anderem auch in der Softwareentwicklung, Anwendung. Ein Qualitätsmanagementsystem ist laut ISO 9000 ein Managementsystem zum Leiten und Steuern einer Organisation hinsichtlich der Qualität.

Die Normen der ISO 9000 verfolgen das Ziel, produzierenden und entwickelnden Unternehmen, sowie deren Kunden objektive Kriterien zur Bewertung der Qualitätsfähigkeit eines Unternehmens bereit zu stellen, welche wiederum Anhaltspunkte für die Qualität deren Produkte geben. Dabei betrachtet die ISO 9000 Normenreihe nicht das Endprodukt selbst, sondern die Prozesse und Abläufe in einem Unternehmen, die zu einem Produkt führen bzw. an dessen Erstellung beteiligt sind.[19]

Die ISO 9000 Norm gibt hierzu Anforderungen vor, dass die qualitätsrelevanten Prozesse und Abläufe in einer Organisation erfasst und dokumentiert werden sollen, sowie dass diese eingehalten und die Kontrollergebnisse festgehalten werden. Die ISO 9000 stellt einen Leitfaden dar, welche Bereiche in einem QMS zu regeln sind. Wie die Regelung der einzelnen zu betrachtenden Bereiche vorgenommen wird lässt die Norm aufgrund ihrer Allgemeingültigkeit jedoch offen.

Zum Nachweis des Einhaltens der Anforderung der ISO 9000 gegenüber Geschäftspartnern, kann eine Organisation die nach ISO 9000 agiert, durch eine unabhängige Stelle wie beispielsweise dem TÜV per Audit geprüft und zertifiziert werden. Dies kann vor allem dann wichtig sein, wenn ein Kunde die Zertifizierung nach ISO 9000 für seine Lieferanten vorschreibt.

[...]


[1] Vgl. BITKOM (Hrsg.)(2010), Industrielle Softwareentwicklung, www.bitkom.de, (Abruf: 29.04.2013), Seite 4

[2] Vgl. Balzert (1998), Lehrbuch der Softwaretechnik: Software Management, Software- Qualitätssicherung, Unternehmensmodellierung, S. 285f

[3] DIN 55350-11:2008-05

[4] Vgl. Garvin (1984), What does Product Quality Really Mean?, Sloan Management Review, Fall 1984, S. 25-45; Vgl. Balzert (1998), Lehrbuch der Softwaretechnik: Software Management, Software- Qualitätssicherung, Unternehmensmodellierung, S. 256

[5] Wallmüller (2011), Software Quality Engineering, 3. Auflage (2011), S. 10

[6] Vgl. Balzert (1998), Lehrbuch der Softwaretechnik: Software Management, Software- Qualitätssicherung, Unternehmensmodellierung, S. 257-261

[7] Vgl. Wallmüller (2011), Software Quality Engineering, 3. Auflage (2011). S.11-26

[8] Vgl. Kneuper, Sollmann (1995), Normen zum Qualitätsmanagement bei der Softwareentwick- lung, www.kneuper.de, (Abruf: 30.05.2013), S. 3f; Vgl. Wallmüller (2011), Software Quality Engineering, 3. Auflage (2011), S. 26f

[9] Vgl. Wallmüller (2011), Software Quality Engineering, 3. Auflage (2011). S.30

[10] Vgl. Wallmüller (2011), Software Quality Engineering, 3. Auflage (2011), S. 28

[11] Vgl. ISO/IEC 25000:2005, S. v-vi

[12] DIN EN ISO 9241-11

[13] Vgl. Wallmüller (2011), Software Quality Engineering, 3. Auflage (2011), S. 355-360

[14] Vgl. Edb., S.360; Vgl. Hofmann (13.02.2008), Einführung in die ISO 9241-110,www.fit-fuer-usability.de, (Abruf: 05.06.2013)

[15] Vgl. DIN EN ISO 6241-110

[16] Vgl. Lichter, Ludwig (2007), Software Engineering, 1. Auflage (2007), S. 219

[17] Vgl. Wallmüller (2011), Software Quality Engineering, 3. Auflage (2011), S. 27f

[18] Vgl. Lichter, Ludwig (2007), Software Engineering, 1. Auflage (2007), S. 219f

[19] Vgl. Wallmüller (2011), Software Quality Engineering, 3. Auflage (2011), S. 92ff

Details

Seiten
26
Jahr
2013
ISBN (eBook)
9783668764705
ISBN (Buch)
9783668764712
Dateigröße
551 KB
Sprache
Deutsch
Katalognummer
v434918
Institution / Hochschule
FOM Hochschule für Oekonomie & Management gemeinnützige GmbH, Bonn früher Fachhochschule
Note
1,7
Schlagworte
ISO/IEC 9126 ISO/IEC 25000 ISO/IEC 25051:2006 ISO 9241 DaTech Prüfhandbuch Common Criteria for In-formation Technology Security Evaluation ITSEC DIN 66230 DIN 66270 Software Qualität Software Quality Standards Software Engineering DIN ISO 9000:2005 DIN ISO 9001:2008 DIN ISO 9004:2009 ISO/IEC 90003:2004 V-Modell XT SPICE CMMI for Development CMMI BOOTSTRAP IEEE Normen

Autor

Zurück

Titel: Softwarequalität. Richtlinien und Normen