Softwaretechnik- Praktikum: 13. Vorlesung Übersicht I II III IV V Einleitung Ergänzungen zur Software-Entwicklung Software Management Software Qualitätssicherung Zusammenfassung Zusatz: Praxisvorträge von dspace Hella (entfällt!) V13-2 Softwaretechnikpraktikum: IV Software-Qualitätssicherung (Fortsetzung) IV Software-Qualitätssicherung IV.1 Grundlagen IV.2 Analytisches Qualitätsmanagement IV.2.1 Analysierende Verfahren IV.2.2 Testende Verfahren IV.3 Konstruktives Qualitätsmanagement IV.5 Prozessqualität IV.6 Diskussion & Zusammenfassung IV.7 Literaturhinweise V13-4 IV.5 Prozessqualität Hintergrund: Produktivität (gemessen rein in LOC) kann kaum gesteigert werden Qualitätssicherungsmaßnahmen können nur in einem geeigneten Umfeld rational eingesetzt werden Die Qualität eines Produktes kann durch Managementmaßnahmen signifikant gesteigert werden Prozessqualität als Ansatzpunkt Eine gute Qualität eines Produktes kann besser über die Qualität des Erstellungsprozesses erreicht werden als allein über Qualitätssicherungsmaßnahmen unmittelbar am Produkt (see [Humphrey1998a]) Ansätze: ISO 9000 Familie CMM / PSP / TSP SPICE project and the ISO/IEC 15504 software process assessment standard TQM (Total Quality Management) V13-5 V13-6 1
QS vs. QM (in Anlehnung an TQM) Ziele Orientierung Organisation Methoden QS Bessere Produkte Geringere Kosten Produkt Starke QS Analyse (Messen, Testen) QM Bessere Unternehmen Kundenzufriedenheit Flexibilität Markt Prozeß Alle Mitarbeiter Festlegung der Prozesse Prozeßüberwachung und optimierung Schulung Arten von Standards Charakteristika Zielgruppe Fokus Zielrichtung des Standards Ziel des Standards Qualitätsmanagement- Standards Management der Softwareentwicklung und/oder Wartung sowie deren SQA Abteilung Organisation, Infrastruktur und Anforderungen an diese Was soll erreicht werden Prozessqualität Prozess-Standards Produktqualität [Galin2004] Teams, die für die Softwareentwicklung und/oder Wartung zuständig sind Methoden zur Durchführung von Softwareentwicklungsund Wartungsprojekten Das Wie der Ausführung V13-7 V13-8 Arten von Qualitätsmanagement Standards [Galin2004] Zertifizierungsstandards: Eine externe Zertifizierungsstelle bescheinigt einer Organisationen die Fähigkeit Produkte oder Dienstleistungen mit akzeptabler Qualität zu liefern. Dient als Basis für eine Evaluierung des Qualitätsmanagementsystems des Anbieters durch den Kunden. Fördert die Bestrebung im Bereich des Qualitätsmanagement in der Organisation mittels Einhaltung von Standards. Assessment-Standards: Dient Organisationen zur Selbstbeurteilung in Bezug auf die Fähigkeit Softwareentwicklungsprojekte durchzuführen. Dient zur Verbesserung von Entwicklungs- und Wartungsprozessen. Hilft die Fähigkeiten möglicher Lieferanten einzuschätzen. (1) ISO 9000-3 / ISO 9001 ISO 9001 beschreibt ganz allgemein Modelle zur Darlegung der Qualitätssicherung in Entwicklung, Produktion, Montage und Kundendienst ISO 9000-3 ist eine Richtlinie für die Anwendung von ISO 9001 auf die Entwicklung und Wartung von Software (mit der hier üblichen Terminologie) V13-9 V13-10 ISO 9001 ISO 9000-1 legt kein Vorgehensmodell (Phasenmodell) fest; sie verlangt aber die Darlegung der Phasen, Ergebnisse und der jeweiligen Qualitätssicherungsmaßnahmen (Verifizierung) und sie legt einmalig oder periodisch im Unternehmen durchzuführende Maßnahmen und pro Projekt durchzuführende Maßnahmen Sie verlangt Maßnahmen zur Dokumentation der Projektabläufe ( Konfigurationsmanagement) Geforderte Qualitätssichernde Maßnahmen Festlegung der Qualitätspolitik Festlegung eines mit der Qualitätspolitik Beauftragten Regelmäßige Überprüfung Einplanung der Ressourcen für die Qualitätssicherung Konfigurationsmanagement Schulung [Balzert1998] V13-11 V13-12 2
Geforderte Dokumente Vertrag Spezifikation Entwicklungsplan Qualitätssicherungsplan Testplan Wartungsplan Konfigurationsmanagementplan [Balzert1998] Zertifizierung nach ISO 9000 Die Erfüllung der Vorgaben wird durch Audits durch einer unabhängigen Zertifizierungstelle festgestellt. Zertifikat Danach werden regelmäßig Überwachungs- bzw. Wiederholungsaudits durchgeführt. Grund: ISO 9000-Zertifizierung ist ein Wettbewerbsvorteil V13-13 V13-14 Vor- und Nachteile Vorteile: Qualitätsbewußtsein (auf Geschäftsführungsebene und Mitarbeiterebene) Dokumentation der Qualitätspolitik und ihrer Umsetzung Anpassungszwang (jährliche Überwachung) Nachteile: Gefahr der Bürokratie (Dokumente um der Dokumente willen) Gefahr der Inflexibilität [Balzert1998] (2) CMM / PSP / TSP Die drei Dimensionen der Prozeßverbesserung: Capability Maturity Model: Richtlinien (Framework) für reife Entwicklungsprozesse in einem Unternehmen [Humphrey1998a] Personal Software Process: Verbesserung des individuellen Reife der einzelnen Software-Entwickler Team Software Process: Verbesserung der Reife des Teams [Humphrey1998b] [Humphrey1998c] V13-15 V13-16 Capability Maturity Model: Historie Motivation: Quantitative Managementmethoden erhöhen die Fähigkeit einer Organisation die Qualität zu kontrollieren und die Produktivität zu steigern. Das CMM wurde von W. S. Humphrey im Auftrag der U.S. Airforce entwickelt, um Software- Entwicklungsunternehmen auf die Reife ihre Entwicklungsprozesse hin zu bewerten. Später kamen dann PSP und TSP hinzu. CMM Assessment: Prinzipien Fünf Reifestufen helfen das Erreichte zu erfassen und notwendige Schritte zur Verbesserung zu bestimmen. Generisch Prozessgebiete legen das Was nicht das Wie fest, so dass CMM auf ein große Bandbreite an Organisationen angewendet werden kann: Unabhängig vom Lebenszyklusmodell Unabhängig vom Entwicklungsmethoden, Werkzeugen oder Programmiersprachen Unabhängig vom Standards für die Dokumentation [Galin2004] V13-17 V13-18 3
CMM: Fünf Reifestufen (1/5) CMM: Fünf Reifestufen (2/5) Stufe 1 (initial): Ad hoc Prozeß Chaotischer Prozeß Unkalkulierbar (Kosten, Zeit, Qualität) Software-Entwickler sind Künstler und Individualisten Stufe 2 (repeatable): Wiederholbarer Prozeß Intuitiver Prozeß (aufgrund von individueller Erfahrung) Termin-Kontrolle möglich Kosten und Qualität schwanken Informelle Vorgehensweise Prozeß von den beteiligten Software- Entwicklern abhängig V13-19 V13-20 CMM: Fünf Reifestufen (3/5) CMM: Fünf Reifestufen (4/5) Stufe 3 (defined): Definierter Prozeß Qualitativer Prozeß Zuverlässige Termin und Kostenplanung Verbesserte aber immer noch nicht vorhersagbare Qualität Prozeß ist unabhängig von den beteiligten Software-Entwicklern Stufe 4 (managed): Gesteuerter Prozeß Quantitativer Prozeß Kontrolle der Produktqualität (durch statistische Kontrolle) Prozeß durch Metriken überwacht V13-21 V13-22 CMM: Fünf Reifestufen (5/5) CMM: Risiko & Produktivität Stufe 5 (optimized) Stufe 5 (optimized): Optimierender Prozeß Rückkopplung der Prozeßdaten zur Optimierung Stufe 4 (managed) Stufe 3 (defined) Stufe 2 (repeatable) Risiko steigt Qualität & Produktivität steigen Stufe 1 (initial) V13-23 V13-24 4
Kriterien für Reifestufe Jeder Reifestufe sind Kriterien zugeordnet, die erfüllt sein müssen, um diese Reifestufe zu erlangen ISO 9000-3 vs. CMM Stufe 3 ISO 9000-3 und CMM sind nicht 100%ig vergleichbar! Sie haben verschiedene Ziele und Schwerpunkte. [Humphrey1998a] V13-25 V13-26 IV.6 Diskussion & Zusammenfassung (1/4) In einem Qualitätsmodell wird der der allgemeine Qualitätsbegriff wird durch Ableiten von Qualitätsmerkmale (factors) die auf mess- und bewertbaren Qualitätsindikatoren bzw. Metriken aufbauen operationalisiert. Qualitätsmanagement (QM): Es umfasst alle Maßnahmen und Tätigkeiten, Qualität zu erzeugen. Dieses sind Qualitätsplanung, die festlegt welches Teilprodukt (Dokument) wann, wie und von wem bezüglich welcher Qualitätsanforderungen überprüft werden muss, Qualitätslenkung, d.h. Arbeitstechniken und Tätigkeiten, die zur Erfüllung der Qualitätsanforderungen angewendet werden (dies sind in erster Linie konstruktive Maßnahmen) sowie Qualitätssicherung (QS), also Maßnahmen und Tätigkeiten, die Vertrauen schaffen, dass das Produkt die Qualitätsanforderungen erfüllt. Diskussion & Zusammenfassung (2/4) Analytische Qualitätsmaßnahmen untersuchen dabei das fertige Produkt, ob es bezüglich bestimmter Qualitätsmerkmale die gewünschte Stufe erreicht hat, während konstruktive Qualitätsmaßnahme dafür sorgen, dass möglichst während des Erstellungsprozesses direkt die benötigten Qualitätsmerkmale erfüllt werden Während produktorientiertes QM Qualität unmittelbar am Produkt gewährleistet ( QS) wird bei prozessorientiertem QM die Qualität des Prozesses betrachtet (Erfahrung zeigt: Rein produktorientiertes QM ist für Softwareprodukte unzweckmäßig.) V13-27 V13-28 Diskussion & Zusammenfassung (3/4) Bei Analytische Qualitätsmaßnahmen unterscheidet man zwischen Analysierende Verfahren, bei denen eine Untersuchung auf konzeptioneller Ebene ohne Ausführung der konkreten Software stattfindet, und Testende Verfahren (Dynamische Analyse), die zur Analyse die konkrete Software oder Teile davon ausführenn, um Abweichung von erwarteten Verhalten zu identifizieren. Sehr effiziente Analysierende Verfahren sind Reviews und Inspections (persönliche Review, Walkthroughs, Inspections, Formale technische Reviews, Audit, ). Bei der systematische Konstruktion von Tests wird zwischen Blackbox- Test, die nur mit Hilfe der Spezifikation entwickelt werden, und (Whitebox) Glassbox-Test, die anhand der Implementierung entwickelt/beurteilt werden, unterschieden. Tests werden auf verschiedenen Stufen durchgeführt: Abnahmetest (vom/mit Auftraggeber), Systemtest, Integrationstest oder Modultest. Diskussion & Zusammenfassung (4/4) Der Einsatz von Notationen, Methoden und Werkzeuge bei der Softwareentwicklung sowie Infrastrukturmaßnahmen wie Prozeduren und Arbeitsanweisungen, Vorlagen und Checklisten oder auch Standards sind wesentliche Mittel des konstruktiven Qualitätsmanagements. Vorteile von Standards sind die Anwendung des State of the Art bzgl. Methoden und Prozeduren und das resultierende bessere Verständnis/ Koordination innerhalb der Organisation, mit externern Projektbeteiligten und Kunden (Aufnahme von Standards in den Vertrag). Eine gute Qualität eines Produktes kann besser über die Qualität des Erstellungsprozesses erreicht werden als allein über Qualitätssicherungsmaßnahmen unmittelbar am Produkt (siehe ISO 9000 Familie, CMM / PSP / TSP, SPICE project and the ISO/IEC 15504) V13-29 V13-30 5
IV.7 Literaturverzeichnis (1/2) [Balzert1996] [Balzert1998] [Galin2004] [Gartner2001] [Humphrey1998a] Helmut Balzert: Lehrbuch der Software-Technik: Software-Entwicklung. Spektrum Akademischer Verlag 1996. Helmut Balzert: Lehrbuch der Software-Technik: Software-Management, Software-Qualitätssicherung, Unternehmensmodellierung. Spektrum Akademischer Verlag 1998. D. Galin, Software Quality Assurance: From theory to implementation. Harlow, England: Pearson Addison Wesley, 2004. Gartner Inc. Describing the Capability Maturity Model, Measure, Special Edition 2001, Gartner Inc. http://www.gartner.com/measurement Watts S. Humphrey. Three Dimensions of Process Improvement Part I: Process Maturity. (See http://www.stsc.hill.af.mil/crosstalk/1998/) Literaturverzeichnis (2/2) [Humphrey1998b] [Humphrey1998c] [SEMA 2003] Watts S. Humphrey. Three Dimensions of Process Improvement Part II: The Personal Process. CrossTalk: The Journal of Defense Software Engineering, March 1998. (See http://www.stsc.hill.af.mil/crosstalk/1998/) Watts S. Humphrey. Three Dimensions of Process Improvement Part III: The Team Process. CrossTalk: The Journal of Defense Software Engineering, April 1998. (See http://www.stsc.hill.af.mil/crosstalk/1998/) Software Engineering Measurement and Analysis, Process Maturity Profile: Software CMM, CBA IPI and SPA Appraisal Results, 2003 Mid-Year Update, Software Engineering Institute, Carnegie Mellon University September 2003, http://www.sei.cmu.edu/sema/pdf/sw- CMM/2003sepSwCMM.pdf. V13-31 V13-32 Softwaretechnikpraktikum: V Zusammenfassung Übersicht (1/2) Teildisziplinen der Softwaretechnik Software-Entwicklung: in TSE/SE + Ergänzungen Entwicklung des geplanten Softwareprodukts nur das nötigste Software-Management: Planung, Steuerung und Kontrolle des Entwicklungsprozesses Software-Qualitätssicherung: Planung und Durchführung von Maßnahmen zur Gewährleistung der geforderten Softwarequalität Softwarewartung und pflege: Beseitigung von Fehlern, die im Betrieb auftreten, Anpassung an geänderte Anforderungen nur das nötigste nur Reverse Engineering V13-34 Übersicht (2/2) I II III IV V Einleitung Ergänzungen zur SE & Vorgriff Machbarkeitsstudie, Konfigurations- und Versionsmanagement, Reviewtechniken, Testen Software Management Planung, Organisation, Personal/Leitung, Kontrolle Software Qualitätssicherung Analytisches Qualitätsmanagement, Konstruktives Qualitätsmanagement, Prozessqualität Zusatz: Praxisvortrag Zusammenfassung von dspace Lessons Learned Software-Entwicklung ist mehr als Programmierung. Es erfordert Kommunikation, Planung, Prüfung, Kontrolle,... Software-Entwicklung erfordert Management. Software-Entwicklung erfordert Qualitätssicherungsmaßnahmen. Langfristiger Software-Entwicklung erfordert Sicherung und stetige Verbesserung der Prozessqualität. V13-35 V13-36 6
Aufgaben/Abgaben: Softwaretechnikpraktikum: Aktuelle Aufgaben und Fragerunde V13-38 Klausur Beispielklausuren gibt es bei der Fachschaft (Aufgebaut, Art der Fragen, ) Es können Fragen gestellt werden zu Vorlesungsinhalten, gelernten Konzepten und Methoden während der Projektarbeit, Details der Dokumentation (Lasten-/Pflichtenheft, Analyse & Entwurf), Versionsmanagement (CVS, SVN), Programmierkonzepten in Java, Aufbau von Eclipse/GEF/EMF,... Softwaretechnik- Praktikum: Vorstellung Turnier V13-39 Turnier Halbfinale und Finale Vorrunde Vorrunde (5.7.2006 18-20 in A3 und A4) Vorstellen der Beispiels aus der Aufgabenstellung in Vierergruppen Paarweise Modellierungswettbewerb der zwei Gruppenbesten Halbfinale und Finale (12.7.2006 nach der Klausur in P7.203) Modellierungswettbewerb der Vorrundensieger Bewertung der Sieger per Abstimmung der Gruppen Die Sieger der Halbfinale modellieren und analysieren ein System (1*(15+2*5)min) Die Gruppensieger modellieren und simulieren ein System (2*(15+2*5)min) Gruppe 1 Gruppe 2 Gruppe 3 Gruppe 4 Der Erst- und Zweitplazierte lösen online und im Vergleich eine Modellierungsaufgabe und präsentieren das Ergebnis (2*(10+2*5) min) Alle vier Gruppen Präsentieren Ihre Umsetzung des Beispiels aus der Aufgabenstellung (8*5min) Softwaretechnik- Praktikum: Vorstellung Wettbewerb V13-41 7
Es wird Preise geben in der Summe 400,- (Aufteilung folgt später) Sponsoren: Kriterien der Bewertung: Fokus Qualität Korrektheit der Simulation Funktionsumfang Benutzbarkeit Zeitpunkt: Nach der Endabgabe Fragen? V13-43 V13-44 8