1 © r. plösch, 2009 die bedeutung von qualität in softwareprodukten softnet konferenz, hagenberg...
TRANSCRIPT
1© R. Plösch, 2009
Die Bedeutung von Qualität in Softwareprodukten
Softnet Konferenz, Hagenberg
1
Kooperationsprojekt mit Siemens CT SE 1
2© R. Plösch, 2009
“Quality is a complex and multifaceted concept. It is also the source of great confusion …”
David A. Garvin, 1984
3© 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
4© 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ätKooperationsprojekt mit Siemens CT SE 1, München
5© 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)
6© 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)
Modelle verfügbar aber nicht international standardisiert
7© 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
8© 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
9
Expertenzentrierte Evaluierung
10© R. Plösch, 2009
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
11© 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)
12
Kontinuierliches Qualitätsmonitoring
13© R. Plösch, 2009
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 ComplexityLOC: lines of code perCM: Comment Ratio
14© R. Plösch, 2009
CQMM ist leichtgewichtig und iterativ
Define quality model
Define quality goals
Define and tailor monitoring
approach
Tailor quality model and
scope
MeasurePlan quality
actionsAnalyse results
Adjust and Control Measure and EnhanceAdjust quality
monitoring
Audit quality monitoring
Setup and Tailor
AnalyzeDevelopmentenvironment
Integrate into the development
process
• Leichtgewichtiger setup• Anpassung nach jeder Iteration möglich• Externe Audits stellen korrekte Anwendung der
Methode sicher
Monitoring Ansatz flexibel• Trendbasiertes Monitoring• Benchmarking• …
15© 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!
1 2 3 4 5 6 7 8 9 10 11 12
0
10
20
30
40
50
60
• Bei 19 Metriken gleich gut oder besser als die besten Projekte
• Bei 6 Metriken schlechter als die schlechtesten Projekte
16© 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)
17© 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
18© 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
19© R. Plösch, 2009
Contact information
a.Univ.-Prof. Dr. Reinhold PlöschAltenbergerstraße 69A-4040 LinzAustria
Fon: +43 676 7850826E-mail: [email protected]
20© 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