Die Bedeutung von Qualität in Softwareprodukten Kooperationsprojekt mit Siemens CT SE 1 Softnet Konferenz, Hagenberg © R. Plösch, 2009 1
“Quality is a complex and multifaceted concept “Quality is a complex and multifaceted concept. It is also the source of great confusion …” David A. Garvin, 1984 © R. Plösch, 2009
Softwarequalität Unterschiedliche Sichten auf Qualität (transzendent, benutzer-bezogen, prozessorientiert, produktorientiert, Kosten-/Nutzen-bezogen) Eine Definition für Softwarequalität (nach ISO 1061): Die Gesamtheit und Ausprägung von Eigenschaften und Merkmalen eines Softwareproduktes bezüglich seiner Eignung, festgelegte und vorausgesetzte Erfordernisse zu erfüllen. Systematische Strukturierung von Eigenschaften und Merkmalen Überprüfung, inwieweit diese Eigenschaften und Merkmale erfüllt werden © R. Plösch, 2009
Unterschiedliche Sichten auf Softwarequalität ISO 9126 (ISO 25000) unterscheiden internal quality, external quality, quality in use Fokus auf interner Qualität Kooperationsprojekt mit Siemens CT SE 1, München © R. Plösch, 2009
Qualitätsmodelle (1) Strukturierung von Qualitätseingschaften mit Hilfe von Qualitätsmodellen Ziel: Qualität transparent und meßbar machen Beispiel eines Qualitätsmodelles (ISO 9126 / ISO 25000) © R. Plösch, 2009
Qualitätsmodelle (2) Probleme bei der Anwendung von Qualitätsmodellen in der Praxis Dekompositionsprinzipien nicht eindeutig Für das Qualitätsmonitoring sind unterschiedliche Sichten auf Qualität erforderlich Modelle nicht ausreichend operational (Metriken!) Unzureichende methodische Unterstützung Fehlende oder unzureichende Werkzeugunterstützung Operationale ISO-basierte Modelle zwingend notwendig Modelle verfügbar aber nicht international standardisiert Technische Sicht auf Qualität wünschenswert (vor allem für Architekten) © R. Plösch, 2009
Qualitätsmodelle sind nicht genug … Operationale Qualitätsmodelle definieren einen Standard Definierte Sicht auf Qualität “Standardisierung” des Messverfahrens durch Integration der Metriken von konkreten Werkzeugen … trotzdem – es besteht Bedarf an Methode Handbuch Werkzeugunterstützung © R. Plösch, 2009
Szenarien für Qualitätsbeurteilung Expertenzentierte Evaluierung von Software Kaufentscheidung für Software Einsatzentscheidungen für (Open-Source) Software Entscheidung über Weiterentwicklung von Software … Kontinuierliches Qualitätsmonitoring Evaluation Method for Internal Software Quality (EMISQ) Weiterentwicklung des Standards ISO 14598 mit dem Fokus auf bessere Operationalisierung Continuous Quality Monitoring Method (CQMM) Software-Blood Count (CapGemine sd&m) Quality Index der SAP AG © R. Plösch, 2009
Expertenzentrierte Evaluierung
EMISQ Überblick Vorgaben durch Standards nicht operational genug ISO 9126, ISO 14598, ISO 25000 Eigenentwicklung von Methoden und Werkzeugen EMISQ (Evaluation Method for Internal Software Quality) SPQR (Software Product Quality Reporter) Erfahrungen Anwendung in mehr als 20 Industrieprojekten (Indien, Europa) Werkzeugunterstützung erforderlich Kosten relativ hoch ~ 10 PT für eine Analyse © R. Plösch, 2009
Prinzipielle Vorgehensweise und Ergebnisse Idee Herunterbrechen von Qualitätszielen auf ein Qualitätsmodell Statische Codeanalysatoren liefern Indikatoren für Qualitätsbeurteilung Manuelle Inspektion durch Experten Dokumentation der Ergebnisse Ergebnis Detailbeurteilung von Metriken und Regeln Übergeordnete qualitative Beurteilung (Qualitätsattribute) © R. Plösch, 2009
Kontinuierliches Qualitätsmonitoring
Continuous Quality Monitoring Method (CQMM) Ziel Effizienter Einsatz statischer Codeanalysewerkzeuge, um qualitätsbezogene Maßnahmen automatisiert, systematisch und kontinuierlich während eines Projektes planen, steuern und überwachen zu können CQMM (Continuous Quality Monitoring Method) Nicht-Ziel Reduktion von Qualität auf eine Zahl / Formel 171 - 5.2 * ln(avgHV) - 0.23 * avgCC(g‘) – 16.2 * ln (avgLOC) + 50 * sin (sqrt(2.4 * perCM)) HV: Halstead Volume CC: Cyclomatic Complexity LOC: lines of code perCM: Comment Ratio © R. Plösch, 2009
CQMM ist leichtgewichtig und iterativ Leichtgewichtiger setup Anpassung nach jeder Iteration möglich Externe Audits stellen korrekte Anwendung der Methode sicher Monitoring Ansatz flexibel Trendbasiertes Monitoring Benchmarking … © R. Plösch, 2009
Qualitätssteuerung mit CQMM Trendbasiertes Monitoring Monitoring auf Basis von Verbesserungen bzw. Verschlechterungen über die Zeit Benchmarking basiertes Monitoring Qualitätssteuerung auf Basis von Referenzprojekten Vergleich mit den Besten! Bei 19 Metriken gleich gut oder besser als die besten Projekte Bei 6 Metriken schlechter als die schlechtesten Projekte © R. Plösch, 2009
Software Blood Count (Capgemini sd&m) Visualisiert eine Sammlung praktischer, objektiver Metriken, um die Qualität von Software beurteilen zu können Für unterschiedliche Zielgruppen geeignet (Architekten, Projektleitung, Qualitätsverantwortliche) Analogie zum Blutbild: Die Qualitätsdiagnose wird durch einen menschlichen Experten durchgeführt, nicht durch eine Maschine (siehe auch EMISQ) © R. Plösch, 2009
Quality Index (SAP AG) Definition von KPIs für unterschiedliche Aspekte Bewertungsvorschrift für jeden Aspekt – liefert einen Qualitätsindex für jeden Aspekt Aggregation der Qualitätsindizes zu Gesamtbewertungen Pro Applikation Pro Applikationsgruppe SAP-weit Trenddarstellung © R. Plösch, 2009
Zusammenfassung und Ausblick Gutes Instrumentarium für die Modellierung und Bewertung von Qualität verfügbar Standardisierungsbestrebungen im Gange aber noch nicht abgeschlossen ISO 25000 QuaMoCo Konsortium Erfahrungen in der Industrie zeigen, dass sich systematisches Qualitätsmonitoring auszahlt Verbreitungsgrad (gerade bei KMUs) noch nicht ausreichend © R. Plösch, 2009
Contact information a.Univ.-Prof. Dr. Reinhold Plösch Altenbergerstraße 69 A-4040 Linz Austria Fon: +43 676 7850826 E-mail: reinhold.ploesch@jku.at © R. Plösch, 2009
Selected International Publications R. Plösch, H. Gruber, A. Hentschel, G. Pomberger, S. Schiffer: On The Relation between External Software Quality and Static Code Analysis, Proceedings of the SEW-32 conference, October 2008, Greece R. Plösch, H. Gruber, G. Pomberger, S. Schiffer, C. Körner: Tool Support for a Method to Evaluate Internal Software Product Quality by Static Code Analysis, Software Quality Professional Journal, American Society for Quality, Volume 10, Issue 4, September 2008, Milwaukee, USA, 2008 R. Plösch, H. Gruber, G. Pomberger, M. Saft, S. Schiffer: Tool Support for Expert-Centred Code Assessments, Proceedings of the IEEE International Conference on Software Testing, Verification, and Validation (ICST 2008), April 9-11, 2008, Lillehammer, Norwegen, IEEE Computer Society Press, 2008 R. Plösch, H. Gruber, A. Hentschel, Ch. Körner, G. Pomberger, S. Schiffer, M. Saft, S. Storck: The EMISQ Method and its Tool Support - Expert Based Evaluation of Internal Software Quality, Journal of Innovations in Systems and Software Engineering, Springer London, Volume 4(1), March 2008 H. Gruber, Ch. Körner, R. Plösch, G. Pomberger, S. Schiffer: Benchmarking-oriented Analysis of Source Code Quality - Experiences with the QBench Approach, Proceedings of the International Conference on Software Engineering (IASTED SE 2008), February 12-14, Innsbruck, Austria, IASTED, 2008 H. Gruber, Ch. Körner, R. Plösch, S. Schiffer: Tool Support for ISO 14598 based Code Quality Assessments, Proceedings of the 6th International Conference on the Quality of Information and Communications Technology, QUATIC 2007, September 12-14, Lisbon, Portugal, IEEE Computer Society, 2007 R. Plösch, H. Gruber, A. Hentschel, Ch. Körner, G. Pomberger, S. Schiffer, M. Saft, S. Storck: The EMISQ Method - Expert Based Evaluation of Internal Software Quality, Proceedings of 3rd IEEE Systems and Software Week, March 3-8, 2007, Baltimore, USA, IEEE Computer Society Press, 2007 © R. Plösch, 2009