Prozessqualität und Produktqualität

Slides:



Advertisements
Ähnliche Präsentationen
Links Normen und Standards zum Qualitätsmanagement
Advertisements

Links Normen und Standards zum Qualitätsmanagement
Lexikon der Qualität Begriffe in Verbindung mit Qualität und ISO9000 finden sie auch im Lexikon der Qualität erläutert (
Risiko-Management im Projekt
Qualität „Qualität ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Tätigkeit, die sich auf deren Eignung zur Erfüllung gegebener.
Integrations- und Funktionstests im Rahmen des V-Modelles
Submodell Softwareentwicklung (SE)
Das V - Modell - Überblick
V - Modell Anwendung auf große Projekte
Phasen und ihre Workflows
IT-Projektmanagement
Das „Vorgehensmodell“
V-Modell XT - Ein Überblick
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
Prozess-Qualität in der Softwareentwicklung
LE LM 8 - LO 3 Prozessnormen und Normen zu QM-Systemen
Universität Stuttgart Institut für Kernenergetik und Energiesysteme MuSofT LE Capability Maturity Model Tailoring Tailoring bedeutet ungefähr: Maßschneidern.
LE LM 10 - LO3 Verfahren zur Qualitätssicherung
Prozessqualität: Ansätze und Ziele
Software „Unter Software versteht man die Gesamtheit oder auch einen Teil der Programme für Rechensysteme. Diese Programme ermöglichen zusammen mit den.
Prozessqualität: Ansätze und Ziele
Was ist und wie prüft man Qualität
Fehler und ihre Kosten Inhalt Software und ihre Fehler
Prozessqualität und Produktqualität
Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.2- LM 8 - LO 9 Definitionen zu LM 8.
Erfahrungen aus Tests komplexer Systeme
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Einzeltests im Rahmen des V-Modelles Aufgaben Überprüfung des Programmcodes mit Hilfe.
Prüfung von SW-Komponenten – Überblick
Schulung der Mitarbeiter
Was ist Qualität ? Qualität von Produkten oder Dienstleistungen ist das Gesamtergebnis aller Aktivitäten in jeder Phase des gesamten Leistungsprozesses.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Beispiel 2: Iterative-Inkrementelle Vorgehensmodelle Annahmen: Anforderungen sind unvollständig.
Prozessmodelle als Teil des Management-Prozesses
ISO - Normen Inhalt Qualität im SE Der ISO 9000-Ansatz
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Links Links sind im Text angegeben. Weitere Links werden kontinuierlich eingefügt.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Testing Frameworks im Internet Testing Framework (xUnit, unit testing)
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Regeln für Tester - best practice 1 Prüfe das eigene Programm nie als Einziger Testen.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Folie 1LE 3.1 Prozessqualität LM 2 Prozessqualität und Produktqualität Links Normen.
Beispiel: Wasserfallmodell als einfaches Phasenmodell
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Attribute guter Software Software sollte dem Benutzer die geforderte Funktionalität.
Was ist ein Softwareentwicklungsprozess?
Universität Stuttgart Institut für Kernenergetik und Energiesysteme System- und Abnahmetests Inhalt Testen des Systems unter Mitwirkung des Auftraggebers.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Agile Software Entwicklung mit dem RUP Agile Softwareentwicklung Best Practice bei.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Links Links sind im Text angegeben. Weitere Links werden kontinuierlich eingefügt.
Prozessmodelle Inhalt Prozessmodell im Management Prozess
Zertifizierung von Software: CMM oder ISO 9000
Capability Maturity Model
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Links V-Modell –Glossar mit Zuordnung zu Modellen
Qualität von Software Qualität ist nicht messbar, sondern nur über die Erfüllung von Anforderungen zu definieren Die Erfüllung von Anforderungen ist oft.
Das V - Modell - Überblick
Universität Stuttgart Institut für Kernenergetik und Energiesysteme MuSofT LE 3.1-4V - Modell Überblick V-Modell Regelungen, die die Gesamtheit aller Aktivitäten,
Universität Stuttgart Institut für Kernenergetik und Energiesysteme MuSofT LE 3.1-4V - Modell Überblick Links zum Kapital V- Modell Glossar mit Zuordnung.
Dokumentationsanforderungen
Rational Unified Process (RUP) - Definitionen
Prozeßstruktur des ISO 9001/9004 Prozeßmodells
eXtreme Programming (XP)
Gesundes Führen lohnt sich !
Simulation komplexer technischer Anlagen
Vorgehensmodelle: Schwergewichtige Modelle
Spezifikation von Anforderungen
IT-Projektmanagement SS 2013 Prof. Dr. Herrad Schmidt
Wasserfallmodell und Einzelbegriffe
5 Software-Qualität 5.1 Qualität 5.2 Taxonomie der Software-Qualitäten.
Aufgaben und Ziele des Faches Qualitätsmanagement:
Qualität ? ? was ist das??? ? Kai - Uwe Güteklasse A
Was ist Qualitätsmanagement?
Unified Process Historisch-Kulturwissenschaftliche Informationsverarbeitung Übung: Planung von Softwareprojekten Dozent: Christoph Stollwerk WS 2014/2015.
Qualitätsmanagement nach ISO 9001:2000 in der Zahnarztpraxis
 Präsentation transkript:

Prozessqualität und Produktqualität Inhalt Was ist Qualität bei der Software Entwicklung Prozessqualität und Produktqualität Durch Testen zur Produktqualität Durch Qualitätsmanagement zur Prozessqualität Verbesserung der Prozessqualität ISO 9000 (2000): Continuous Improvement of the Quality Management System Produktqualität im Rational Unified Process Capability Maturity Model: 5 Reifegradsstufen der Softwareentwicklung Auditierung oder wie baut man ein QM System auf Annäherung an Objekte von a. Erfahrung aus Technik b. Ansätze aus SE c. Ansätze aus Common Sense oder Philosophie Daraus ableiten: Basiseigenschaften von Objekten und Beschreibung durch UML

Vorbemerkung Software ist wie jedes Ingenieurprodukt fehlerbehaftet. Fehler verursachen Kosten und müssen daher auf ein Minimum beschränkt werden. Dies erreicht man durch Qualitätssicherung beim Prozess der Softwareerstellung (Prozessqualität) und durch Prüfung der Software (Produktqualität). Bei der Prüfung großer Softwaresysteme ist nur das Auftreten von Fehlern festzustellen. Ein Nachweis der Fehlerfreiheit ist nicht möglich (Parnas).

Das sollten Sie heute lernen Was bedeutet Qualität im Softwareengineering Kosten schlechter Softwarequalität Nachweis der Produktqualität durch Prüfen Erzeugung von Qualität durch Software Engineering Prozesse Prozessqualität und Produktqualität - wann muss man auf was achten

Was ist Qualität ? Qualität von Produkten oder Dienstleistungen ist das Gesamtergebnis aller Aktivitäten in jeder Phase des gesamten Leistungsprozesses. ( Weitere Informationen zur Def. des Begriffs „Qualität“) Qualität von Software bedeutet: Es wird ein Produkt geliefert, das den Vorstellungen des Kunden entspricht, das die von ihm geforderten Eingeschaften zeigt und auf sich ändernde Anforderungen angepasst werden kann. Formal durch Akzeptanztest nachgewiesen.

Wie erreicht man Qualität ? Zur Erzielung von Qualität benötigt man eine systematische Steuerung aller Aktivitäten der Qualitätsverbesserung und –sicherung: Ein Qualitätsmanagement (QM) ( Weitere Informationen: Def. „Qualitätsmanagement“ ) Wirksames Qualitätsmanagement (QM) bedeutet Vorrang für planende und vorbeugende Aktivitäten zum Erkennen von Fehlern sowie für entsprechende Maßnahmen zur Fehlerverhütung. Ein gut funktionierendes QM-System, beschrieben im QM-Handbuch, ist für jedes Unternehmen eine Grundvoraussetzung,um zielsicher und wirtschaftlich die Qualitätsforderungen an Lieferungen und Leistungen zu erfüllen. Nur ein gut geplantes und zweckmäßig gewähltes QM-System vermittelt das notwendige Maß an Vertrauen zur Erfüllung der Qualitätsforderungen. Auszüge aus VDA 6 Teil 1 QM-Systemaudit

Leitsätze der Qualitätssicherung QUALITÄT kann man nicht in ein Produkt hineinprüfen; sie muss hineinkonzipiert, -konstruiert und -produziert werden. Die QUALITÄT der Produkte eines Unternehmens bestimmt dessen Image und den für Kaufentschlüsse notwendigen Vertrauensvorschuss der Interessenten. Am QUALITÄTSGESCHEHEN sind alle Abteilungen beteiligt. Systematische QUALITÄTSPLANUNG ist die Voraussetzung erfolgreicher und wirtschaftlicher Verwirklichung der Qualitätsziele. Guter Informationsfluss zwischen allen am QUALITÄTSKREIS Beteiligten verhütet Fehlentscheidungen. Produktprüfung ist gut, Prozessüberwachung besser, BEHERRSCHTEFERTIGUNG am besten. Richtig verstandene SELBSTPRÜFUNG am Arbeitsplatz vermeidet Ausschuss und Fehlerfolgekosten. Um die Wirksamkeit qualitätsrelevanter Maßnahmen zu quantifizieren, müssen QUALITÄTSKOSTEN definiert, erfasst und analysiert werden.

Phasen der Entwicklung des Qualitätsgedankens PHASE 1: KUNDE muss nehmen was er bekommt PHASE 2: KUNDE muss nehmen was vereinbart ist PHASE 3: KUNDE muss nichts,sondern der LIEFERANT muss fehlerfrei liefern PHASE 4: LIEFERANT muss die Erwartungen des Kunden erfüllen PHASE 5: LIEFERANT muss die Erwartungen des Kunden übertreffen.

Qualitätsentwicklung

Qualität von Software Qualität von Software ist nicht messbar, sondern nur über die Erfüllung von Anforderungen zu definieren. Die Erfüllung von Anforderungen ist oft nicht messbar. Deswegen müssen Metriken entwickelt werden und schon bei der Formulierung der Anforderungen Aussagen darüber gemacht werden, unter welchen Bedingungen die Anforderungen erfüllt sind. Beispiel Prozessmetrik Balkenplan Balkenplan gibt Anteil einer Aufgabe am Gesamtzeitbedarf eines Projektes an Projektfortschritt gleich Summe der bereits erledigten Anteile Vergleich geplanter und tatsächlicher Fortschritt erlaubt Aussagen zum Stand eines Projektes Bei groben Abweichungen Anpassung der geplanten Aufgaben und der dafür geplanten Ressourcen unter Berücksichtigung der Randbedingungen des Projektes

Ursachen schlechter Software-Qualität – Organisation und Management · unklare Zielvorstellung · unklare Verantwortlichkeit · nicht adäquate Projektplanung und -steuerung · unzulängliche Projektkostenschätzung · Qualitätssicherung wird nicht unabhängig von der SW-Entwicklung und SW-Produktion durchgeführt – Methodik · fehlende/ ungenügende Anforderungserfassung · keine Nutzung von Entwicklungsmethoden · unvollständige Dokumentation · keine Standards oder keine Nutzung von Standards · keine Qualitätssicherung, unklare Verantwortlichkeit – Technologie · keine Entwicklungsmodelle · keine Strategie für Prozessverbesserungen · geringe Nutzung von CASE-Tools · keine Metrikanalysen, fehlende/ ungenügende Anforderungserfassung

Attribute guter Software Software sollte dem Benutzer die geforderte Funktionalität (Korrektheit) effizient liefern, sowie wartbar, zuverlässig und benutzbar sein. Wartbarkeit Software muss gewartet werden können, um den Änderungsbedarf zu erfüllen. Zuverlässigkeit Software muss vertrauenswürdig sein, d.h. auch im Fehlerfall sinnvoll reagieren. Effizienz Software sollte keine Systemressourcen verschwenden. Benutzbarkeit Software sollte für den Benutzer, für den sie entworfen wurde, leicht einsetzbar sein. Das erfordert eine anwendungsspezifische Oberfläche, die ein Benutzer erlernen, bedienen und verstehen kann.

Korrektheit von Software Ein Softwaresystem ist (funktional) korrekt, wenn es sich genauso verhält, wie es in der Anforderungsdefinition festgelegt wurde. Problem Anforderungsdefiniton erfüllt Softwaresystem „korrekt“ Großes Problem: Anforderungsdefinitionen sind häufig informal und eigentlich nie ganz widerspruchsfrei und vollständig.Dann kann nur ein iteratives Vorgehen auf Basis agiler Programmierung zum Erfolg führen.

Wartbarkeit von Software Softwarewartung = Änderungen an der Software aufgrund von Fehlern oder geänderten Anforderungen. Gut wartbare Software ist leicht korrigierbar, modifizierbar und erweiterbar. Wartbarkeit wird unterstützt durch: gute Systemstruktur (Modularisierung der Software) gute Dokumentation kontrollierte Änderungsprozeduren Achtung: Jede Wartung reduziert die Wartbarkeit, solange bis die Software nicht mehr änderbar ist (Gesetz der zunehmenden Entropie).

Zuverlässigkeit von Software Zuverlässige Software funktioniert meistens. Zuverlässigkeit ist also ein Maß für die Wahrscheinlichkeit, dass ein Softwaresystem sich in einem bestimmten Zeitraum so verhält, wie es von ihm erwartet wird. Korrekte Software = 100 % zuverlässige Software: Vertrauenswürdige Software = nahezu zuverlässige Software robuste Software funktioniert auch bei unvorhergesehener Eingabe Eingaben, die einen Fehler bewirken Eingabe Programm Ausgaben, die einen Fehler bewirken Eingabe

Metriken für Bewertung der Zuverlässigkeit 1. „rate of failure occurrence“ (ROFOC): Häufigkeit von nicht erwartetem Verhalten, z.B. 2 Fehler pro 100 operationellen Zeiteinheiten 2. „mean time to failure“ (MTTF): mittlerer Zeitabstand zwischen zwei Fehlern 3. „availability“: mittlere Verfügbarkeit der Software, z.B. 998 von 1000 Zeiteinheiten war das System benutzbar. Beispiele für (un-)zuverlässige Software: Zuverlässige Software: Ein Textverarbeitungssystem, das manchmal Schmierzeichen auf den Bildschirm schreibt (beim Erstellen der vorigen Folie passiert). Unzuverlässige Software: Textverarbeitung oder Email-System, das dateisystemzerstörenden Viren Tür und Tor öffnet.

Vertrauenswürdige Software Vertrauenswürdige Software verursacht (auch) im Fehlerfall keine Katastrophen:  inkorrekte Software kann vertrauenswürdig sein (z.B. wenn die Software per se keinen wirklichen Schaden anrichten kann)  korrekte Software muss nicht vertrauenswürdig sein (Fehler in Anforderungsdefinition) Beispiele (nicht) vertrauenswürdiger Software: Joystick-Steuerung in Spielconsole: Von Natur aus vertrauenswürdig Joystick-Steuerung im Los Alamos National Laboratory: Am 26. Februar 1998 führte die Fehlfunktion einer Joystick-Steuerung dazu, dass sich zwei Uranstücke nicht langsam, sondern mit maximaler Geschwindigkeit aufeinander zubewegten. Der Operator drückte rechtzeitig einen Notausknopf (angeblich war die Summe der Massen unterkritisch). [ACM SIGSOFT Software Engineering Notes, vol. 23, no. 4 (1998), S. 21]

Robuste Software Programm Ein Softwaresystem ist robust, wenn es auch unter unvorhergesehenen Umständen funktioniert bzw. vernünftig reagiert. Nicht erwartete Daten So wenige wie möglich Erwartete Eingabedaten Programm Anmerkung: Auch der Softwareentwicklungsprozess sollte robust sein, z.B. gegen Ausfall von Mitarbeitern unvermeidlicher Hardware-/Betriebssystemwechsel

Beispiele für unvorhergesehene Umstände Falsche Benutzereingaben das Dateisystem ist voll die Platte gibt ihren Geist auf Stromausfall Maßnahmen zur Software-“Härtung“: Sicherheitsabfragen und Plausibilitätsprüfungen vernünftiges Exception-Handling-Konzept (für range checks etc.) Ansteuern sicherer Systemzustände bei entdeckten Fehlerfällen Backups von Daten, Undo-Möglichkeiten für Anwender Softwareredundanzen (verschiedene Realisierungen eines Teilsystems)

Effiziente Software Effiziente Software nutzt Hardware-Ressourcen (hinreichend) ökonomisch. Benötigte Ressourcen: Rechenzeit Speicherbedarf trade-off Wie ermittelt man Effizienz: theoretische Komplexitätsanalyse (0-von-Rechnungen) Simulationsmodelle Messungen am realen System (profiling, ...)

Effizienz des Software-Erstellungsprozesses Effiziente Softwareherstellung = produktive Softwareherstellung, also mit möglichst wenig Mitarbeitern in möglichst kurzer Zeit möglichst gute Software herstellen. Problem: Produktionszeit Softwarequalität trade-off (Softwareeffizienz) Lösung:  Wiederverwendung von Softwarekomponenten, Vorgehensweise, ...  Einsatz von sehr hohen Programmiersprachen, Generatoren, ... Wie misst man Produktivität: in keinem Fall durch LOC = „Lines of Code“

Benutzerfreundlichkeit von Software Benutzerfreundliche Software kann von Menschen leicht erlernt und leicht benutzt werden. Benutzerkategorien: Anfänger: Menüs, Tutorial, Online-Hilfe, ... Gelegenheitsbenutzer: Online-Hilfe, Control-Keys für häufige Kommandos, ... Experte: Control-Keys für alle Kommandos, Konfigurationsmöglichkeiten, ... Wichtige Aspekte: Standardisierung von Benutzeroberflächen (look-and-feel) Forschungsgebiet Softwareergonomie (Menü mit nicht mehr als 7 Einträgen) Software muss robust und effizient sein

Wiederverwendbarkeit Wiederverwendbare Software kann leicht für neue Anwendungen verwendet werden: Man träumt vom „Zusammenstecken“ von Software aus vorgefertigten Komponenten. Klassische Beispiele: Softwarebibliotheken (für numerische Routinen, Fenstersysteme, ...) Standardsoftware (für Finanzbuchhaltung, Datenbanksysteme, ...) Software-Architekturrahmenwerke (für grafische Editoren, ...) Programmiersprachenkonzepte für Wiederverwendung: Funktionale Abstraktion, Modularisierung, ... Generik (Instantiierung von Paketen für verschiedene Zwecke) Vererbung (Wiederverwendung geerbten Codes) Polymorphie (Operation ist auf Daten unterschiedlicher Typen anwendbar)

Verbesserung der Softwarequalität Grundannahmen Qualitätsziele werden während der Konzeptfindung vorgegeben. Der Entwicklungsprozess bestimmt Eigenschaften und Qualität des Produktes. Die Qualität des Entwicklungsprozesses kann definiert gemessen und verbessert werden. Produktqualität Nachweis durch Prüfung Anforderungen und/oder Erwartungen an das Produkt Merkmale und Eigenschaften des Produktes PROZESS Anweisungen Ausführung Prozessqualität Nachweis durch Zertifizierung Produktqualität wird durch gute Prozessqualität leichter erreicht

Prozess-Qualität in der Softwareentwicklung Niedrige Prozessqualität Improvisierter, ad hoc-Prozess Reaktion bei Problemen Kosten- und Terminpläne werden im allgemeinen nicht eingehalten Qualitäts- und Funktionsreduktion bei Terminproblemen QS-Aktivitäten werden bei Terminproblemen nicht durchgeführt Hohe Prozessqualität Professionell durchgeführter Prozess Vermeiden von Problemen Bessere Planung durch geeignete Prozessverfahren Probleme werden frühzeitig erkannt und behoben Der Prozess wird kontinuierlich verbessert Die Verbesserung der Prozessqualität erfordert Bestimmung des Zieles und dazu die Wahl des Prozessmodelles, die Erhebung des Ist Zustandes (Audit oder Assessment) und die Auswahl von Schritten zur Annäherung des Ist Zustandes an das Ziel.

Software-Entwicklungsprozess - Ziele Alle Elemente eines Systementwurfs sind in einem Repository erfasst und damit quantitativ definiert. Sie bilden die Grundlage für die Aufwandskalkulation, stehen über festgelegte Strukturen in Beziehung zueinander und können in mehreren Projekten verwendet werden. Alle Systementwürfe und -dokumente beziehen sich begrifflich auf diese Elemente mit einheitlichen Schreibweisen und konsistenten Begriffen - inklusive der an der Benutzeroberfläche (Masken, Listen, Belege) verwendeten Bezeichnungen. Es besteht jederzeit Transparenz darüber, wo welche Elemente auftreten beziehungsweise benutzt werden. Die Beschreibung referenzierter Objekte ist direkt abrufbar. Die Entwürfe werden automatisch formalen Plausibilitätsregeln unterworfen. Die Definitionen sind eins zu eins die Basis für Texte in Benutzerdokumenten und Online-Help-Systemen.

Software Entwicklungsprozess - häufige Fehler Auf ein Datenmodell wird im fachlichen Entwurf verzichtet Systeme und ihre Funktionen werden nicht über ein Repository sondern direkt als Dokument beschrieben. Für Funktions- und Maskenabläufe werden, wenn überhaupt vorhanden, bunte Folien etwa über Powerpoint erstellt. Die zum System gehörenden Teile werden erst in der technischen Umsetzung eindeutig beschrieben und vielleicht bei Projektende nachdokumentiert. Dokumente werden in uneinheitlichen Formaten, Ablagemedien und -strukturen verwaltet. Es gibt kaum qualitätssichernde Prüfungen.

Prozessqualität: Ansätze und Ziele Statische Ansätze zur Verbesserung der Prozessqualität QM-Systeme Assessment TQM Business Engineering Audit SPICE CMM ISO 9000-3 Erreichung der nächsten Reifegradstufe Prinzipien Forderungen an Prozesse Quelle: Banford, R.C., Deibler II W.J., Comparing, contrasting ISO 9001 and the SEI capability maturity model, in: Computer, Oct. 1993, pp. 68-70.

Die 4 ISO-Hauptnormen zum Qualitätsmanagement Die Sicherstellung von Qualität bei technischen Produkten folgt allgemeinen Regeln, die in den ISO 9000 Normen festgeschrieben sind. In 2000 wurde eine neue Fassung veröffentlicht: ISO 9000 Grundlagen und Begriffe (in Englisch 8/00, in Deutsch 10/00) ISO 9001 Qualitätsmanagement-Systeme: Forderungen (in Englisch 8/00, in Deutsch 10/00) ISO 9004 Qualitätsmanagement-Systeme: Leitfaden zur Leistungsverbesserung (in Englisch 8/00, in Deutsch 10/00) ISO 19 011 Leitfaden zum Auditieren von QM- Systemen (ISO-Norm 09/01, DIS 10/00, als CD 01/00 in Englisch)

ISO 9000 Im ISO 9000-Normenwerk werden allgemeingültige, branchenneutrale Minimal- anforderungen an ein Qualitätsmanagementsystem (QM-System) aufgestellt. Ein QM-System soll vollständig, dokumentiert, bekannt, überprüfbar, evolutionär und eingehalten sein. Dies wird in der Regel nur in mehreren Schritten (Reifestufen) erreicht Beim Aufbau eines QM-Systems sind die betriebsinternen Prozesse zu erfassen und zu dokumentieren. Qualitätsrelevante Dokumente werden gesichert. Die Zuständigkeiten und Verantwortlichkeiten in der Aufbauorganisation werden erfasst. Anschließend erfolgt eine kritische Wertung des Istzustandes bezogen auf die Anforderungen der Qualitätssicherung. Meistens ist eine Anpassung der Ablauforganisation und eindeutige Festlegung von Zuständigkeiten und Befugnissen nötig. Die Qualitätsphilosophie des Unternehmens, die Dokumente und die Aktivitäten werden in einem Qualitätssicherungs-Handbuch dokumentiert. Nach der Einführung des QM-Systems erfolgt eine Funktions- und Wirksamkeits- kontrolle zunächst durch ein internes Audit, dann durch ein externes Audit.

8 Prinzipien des Qualitätsmanagements der ISO9000 Kundenorientiertes Handeln der Organisation Führungswille des Managements Vollständige Beteiligung der Mitarbeiter Prozessorientierung aller Abläufe Ganzheitliche Betrachtung der Abläufe Wille zur ständigen Verbesserung Entscheidungen nur auf der Basis von Daten und Fakten Lieferantenbeziehungen zum gegenseitigen Nutzen

Prozessstruktur des ISO 9001/9004 Prozessmodells Die neuen Normen sind vor allem Kunden- und Prozess-orientiert Produkt Verantwortung Ressourcen Verwaltung QM zur Produkt Verbesserung Produktrealisierung Anforderung Aktivitäten Erfüllung

Ansätze zur Verbesserung des SE Prozesses Total Quality Management - TQM Ganzheitliche, umfassende aber nicht klar abgegrenzte Unternehmensphilosophie, die das Ziel hat, die Prinzipien Primat der Qualität, Zuständigkeit aller Mitarbeiter, ständige Verbesserung, Kundenorientierung, internes Kunden-Lieferanten-Verhältnis und Prozessorientierung umzusetzen. Software Process Improvement and Capability Determination - SPICE Zweidimensionales Referenzmodell zur Bewertung und Verbesserung von Software-Prozessen, als ISO-Norm 15504 vorgesehen. Business Engineering Unternehmen und ihre Geschäftsprozesse werden in Abhängigkeit von ihren Zielen und Aufgaben ingenieurmäßig gestaltet, wobei alle Möglichkeiten der Informations- und Kommunikationstechnik genutzt werden.

Maßnahmen zur Qualitätssteigerung Das Capability Maturity Modell (CMM) vorsucht dies in ein Schema zu bringen

Auditierung, Zertifizierung und Akkreditierung

Das Capability Maturity Modell (CMM) 1987 entwickelte das Software Engineering Institute (SEI) der Carnegie Mellon University im Auftrag des amerikanischen Verteidigungsministerium einen Fragebogen, mit dessen Hilfe die Leistungsfähigkeit von Software-Lieferanten bewertet werden sollte (Assessment). Der Fragebogen wurde zu einem Referenzmodell ausgebaut. Dieses Referenzmodell erhielt den Namen Capability Maturity Model (CMM). Den aktuellen Stand der Entwicklung findet man auf den Web-Seiten des SEI unter Publikationen. Das CMM gibt Hinweise, wie die Qualität der Software-Entwicklungsprozesse verbessert werden kann. Es werden fünf unterschiedliche Qualitätsstufen von Software-Entwicklungsprozessen unterschieden. Jede Qualitätsstufe beschreibt einen bestimmten Reifegrad (maturity) eines Entwicklungsprozesses. Die Stufen bauen aufeinander auf. Eine Stufe setzt voraus, dass die Anforderungen an die Prozesse, die die anderen Stufen erfordern, erfüllt sind.

Das Capacity Maturity (CMM) Grundkonzept

Zertifizierung Ablauf des Zertifizierungs- prozesses (nach Göhner)

Erhalt der Gültigkeit der Zertifizierung der der

Zertifizierte Software an der Materialprüfungsanstalt Stuttgart

Durch Softwareprüfung zu Produktqualität statische dynamische ohne Hilfe des Rechners mit Hilfe Test Leistungsmessung : Prüfung gegen Regeln Konsistenzprüfung Quantitative Untersuchung Review :

Basis von Prüfungen: Vergleich Soll/Ist VERIFICATION Customer needs Specs Draft standards Drafting process For the purpose of this presentation Verification: Comparison of revised standards with approved specification Validation: Comparison of revised standards with user needs (results of survey) Commit audience to participation in validation process through national standards bodies VALIDATION Anforderung Aktivitäten Erfüllung Soll auf Basis von Modellen Ist

Produktqualität – Prüfverfahren (Beispiele) Komponenten Testende Verfahren Dynamisch (Kontrollfluss, Datenfluss, Funktional) Statisch (Inspektion, Review, Walk through) Verifizierende Verfahren Verifikation (Konsistenz Entwurf + Implementierung) Symbolisches Testen (statische Strukturtests) Systeme Integrationstest White Box-Test der Komponenten und ihrer Beziehungen Systemtest Black Box-Test des Systems als Ganzes Abnahmetest Black Box-Test des Systems als Ganzes nutzen Mitwirkung des Auftraggebers

Softwareprüfung und Fehlerbehebung meint Erkennen von unerwartetem Verhalten stößt Prozess der Ursachenfindung an resultiert in Fehlerbehebung Fehlerbehebung führt zur Veränderung des Produktes kann unerwartetes Verhalten erzeugen Vergleich:

Qualität „Qualität ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Tätigkeit, die sich auf deren Eignung zur Erfüllung gegebener Erfodernisse bezieht.“ (Balzert S.257) zurück

Qualitätskreis Qualitätskreis : „Begriffsmodell, das die zusammenwirkenden Tätigkeiten enthält, welche die Qualität beeinflussen, und zwar von der Feststellung der Erfordernisse bis zur Feststellung, ob diese Erfordernisse erfüllt worden sind.“ aus: Schneider, Hans-Jochen (Hrsg.): Lexikon der Informatik und Datenverarbeitung, Version 4.0, R.Oldenbourg Verlag München Wien 1997 – S.692 zurück

Beherrschte Fertigung siehe Timischl, Wolfgang; Qualitätssicherung Statistische Methoden, Hanser Verlag, München, Wien, 2002 S.178ff siehe Dutschke, Wolfgang: Fertigungsmeßtechnik; Teubner Stuttgart 1993 S.179f Beherrschte Fertigung wird durch die Firmenkultur getrieben. Ihre Stufen sind Total Quality Control (produktorientiert) und Total - Quality Management (prozesskundenorientiert). zurück

Qualitätsmanagement Qualitätsmanagement : „Alle Tätigkeiten des Gesamtmanagements, die im Rahmen des QM‑Systems die Qualitätspolitik die Ziele und Verantwortungen festlegen sowie diese durch Mittel wie Qualitätsplanung, Qualitätslenkung, Qualitätssicherung und Qualitätsverbesserung verwirklichen.“ Anmerkungen: 1 . Qualitätsmanagement ist die Verantwortung aller Ausführungs-ebenen, muss jedoch von der obersten Leitung angeführt werden. Ihre Verwirklichung bezieht alle Mitglieder der Organisation ein. 2. Beim Qualitätsmanagement werden Wirtschaftlichkeits-gesichtspunkte beachtet. aus: Schneider, Hans-Jochen (Hrsg.): Lexikon der Informatik und Datenverarbeitung, Version 4.0, R.Oldenbourg Verlag München Wien 1997 – S.692 zurück

Metrik-Analysen „Eine Software-Metrik definiert, wie eine Kenngröße eines Software-Produkts oder eines Software-Prozesses gemessen wird.“ (Balzert, S.225) „Eine Messung zu Kenngrössen der Software oder deren Entwicklung, die in der statistischen Auswertung eine quantitative Aussage erlaubt.“ (Thaller, S.350) zurück

Total Quality Management „ Total Quality Management ist ein systematischer Ansatz zum Management eines Unternehmens, der darauf ausgerichtet ist, den Kunden immer bessere Produkte anzubieten und die Prozesse des Betriebs kontinuierlich zu optimieren.TQM schließt alle Angestellten und Arbeiter der Firma ein und bezieht sich auf Lieferanten und Kunden. TQM ist ein umfassender Ansatz, der nicht nur einzelne Abteilungen oder Subsysteme umfasst, sondern auf das Unternehmen als Ganzes zielt“ (Thaller, S.269) zurück

Qualitätssicherung „ Die geplanten und notwendigen Maßnahmen und Tätigkeiten, um sicherzustellen, dass ein Produkt oder eine Dienstleistung vorgegebene und dokumentierte Produktanforderungen einhalten wird.“ „ Die Erfüllung der dokumentierten Wünsche und Forderungen des Kunden“ (Thaller, S.351) zurück

Agile Programmierung Agile Prozesse sollen helfen, klassische Fehler bei der Softwareentwicklung wie überschrittene Termine und nichterfüllte Erwartungen zu vermeiden. Sie benutzen Methoden des Extreme Programming und tägliche Kurztreffen, um den Projektfortschritt zu kontrollieren. Der Einsatz agiler Prozesse verlangt Umstellungen bei Entwicklern und Auftraggeben. www.xprogramming.com www.agile.com zurück

Akzeptanztest „ Der formelle Test im Beisein des Kunden oder Endbenutzers. Dabei muss die Software die in der Spezifikation dokumentierten Anforderungen erfüllen.“ (Thaller, S.348) zurück

Verifikation eines Softwareprodukten „ Die Überprüfung eines Teilprodukts der Software - Entwicklung, also des Produkts, das am Ende der Phase vorliegt.“ „ Der formelle Beweis der Richtigkeit eines Programms im mathematischen Sinne.“ „ Die Bewertung und Überprüfung von Software Produkten oder des Erstellungsprozesses.“ (Thaller, S.352) zurück

Validierung von Software „ Die Überprüfung der Software gegen vorgegebene Anforderungen, zum Beispiel beim Akzeptanztest.“ „ Man spricht von Independant Verification & Validation. Wenn die Qualitätsprüfung der Software durch eine Gruppe oder Firma erfolgt, die mit der mit der Erstellung der Software betrauten Firma wirtschaftlich und organisatorisch nicht verbunden ist.“ (Thaller, S.350) zurück

Links Normen und Standards zum Qualitätsmanagement International Standard Organization (ISO) - www.iso.ch DIN - www2.din.de Britisch Standard Institute (BSI) - www.bsi.org.uk USA - Normen - www.usa.org

Literatur Schneider, Hans-Jochen (Hrsg.): Lexikon der Informatik und Datenverarbeitung, Version 4.0, R.Oldenbourg Verlag München Wien 1997) Balzert, Helmut: Lehrbuch der Software-Technik; Software-Management, Software-Qualitätssicherung, Unternehmensmodellierung. Spektrum Akademischer Verlag Heidelberg, Berlin. 1998 Meyer, Bertrand: Objektorientierte Software-Entwicklung Hanser Verlag; München, Wien. 1990 Thaller, Georg Erwin: Software- und Systementwicklung Heise Verlag, Hannover, 2002

Danksagung Aus folgenden Vorlesungen und Foliensammlungen aus dem Bereich Softwaretechnik konnten wir Anregungen zur Gestaltung dieses Lernmoduls gewinnen: P.Göhner IAS Vorgehensmodell IAS Universität Stuttgart