<BILD EINFÜGEN>
virtual7 – The Oracle Middleware Experts
Qualität, Software, Software-Qualität
Qualität und Qualitäts-Management in der
Softwareentwicklung und Tools zu deren Unterstützung.
21.11.2014 1
virtual7 – The Oracle Middleware Experts21.11.2014
Agenda
• Vorstellung
• Was ist Qualität und was ist
Qualitätsmanagement?
• Softwareentwicklungsprozess
Qualitäts-Management
Quality-Gates
• Fallbeispiele
2
virtual7 – The Oracle Middleware Experts21.11.2014 3
Timo Hahn
Referent
Winner of the ADF
Partner Community
Award 2014
Bild
virtual7 GmbH
Timo Hahn
Principal Consultant
Zeppelinstraße 2
76185 Karlsruhe
Tel.: 0721 - 619 017 0
Fax: 0721 - 619 017 29
E-Mail: [email protected]
virtual7 – The Oracle Middleware Experts
virtual7 GmbH
• Beratungs- und Softwarepartner
• gegründet 1996
• Sitz in Karlsruhe, München, Timisoara
• 65 Mitarbeiter
•
Geschäftsbereiche
• ORACLE Middleware Services
• ORACLE-/Java-Anwendungsentwicklung
• ORACLE Lizenzberatung und -vertrieb
virtual7 GmbH
Firmendarstellung
ORACLE Middleware Partner
des Jahres 2011
21.11.2014 4
virtual7 – The Oracle Middleware Experts21.11.2014 5
virtual7 GmbH
Firmendarstellung
The Oracle Middleware Experts
virtual7 – The Oracle Middleware Experts21.11.2014
Agenda
• Was ist Qualität und was ist
Qualitätsmanagement?
• Softwareentwicklungsprozess
Qualitäts-Management
Quality-Gates
• Fallbeispiele
6
virtual7 – The Oracle Middleware Experts21.11.2014
Was ist Qualität und was ist Qualitäts-Management?
• Definition Qualität
Qualität ist der Grad, den ein Produkt, ein Dienst, eine
Produktkomponente oder ein Prozess einen
festgesetzten inhärenten Satz von Anforderungen eines
Kunden erfüllt.
inhärenten Merkmale („einer Einheit innewohnend“)
z.B. Durchmesser einer Schraube
nicht inhärenten Merkmale („zugeordnet“ )
z.B. Kosten oder Preis
Dienen nicht der Definition der Qualität
7
virtual7 – The Oracle Middleware Experts21.11.2014
Was ist Qualität und was ist Qualitäts-Management?
Qualitätsmerkmale nach ISO 9126
8
virtual7 – The Oracle Middleware Experts21.11.2014
Was ist Qualität und was ist Qualitäts-Management?
• Definition Qualitäts-Management
Qualitätsmanagement (QM) bezeichnet alle
organisatorischen Maßnahmen, die der Verbesserung
der Prozessqualität, der Leistungen und damit den
Produkten jeglicher Art dienen
Qualitäts-Management beschreibt organisatorische
Maßnahmen
Wichtig:
Qualitätsmanagement liefert nicht zwangsläufig ein
höherwertiges Ergebnis, sondern sichert nur die
vorgegebene Qualität
9
virtual7 – The Oracle Middleware Experts21.11.2014
Qualitätsmanagementmodelle
Qualitätsmanagementtechniken
• Zwei Gruppen von Qualitätsmanagementtechniken
Kontinuierliche Techniken
Betrachtet zyklisch individuelle Probleme im Entwicklungsprozess
einer Organisation
Organisatorische Qualitätsmodelle
Benchmarking zwischen Wettbewerbern um einen
Qualitätspreis (European Foundation for Quality
Management (EFQM))
Modellbasierte Techniken
Vergleich eines Referenzmodells
bewährte Prozesse, Praktiken oder Produkte
Zertifizierbare Normen mit definierten Mindestanforderungen
EN ISO 9001, 9126
Capability Maturity Model Integration (CMMI)
SPICE
10
virtual7 – The Oracle Middleware Experts
Qualitätsmanagementmodelle (2)
• spezielle Modelle für die Softwareentwicklung
Capability Maturity Model Integration Development (CMMI-DEV)
Erweiterung des CMMI
spezialisiertes Prozessmodell für Softwareentwicklung
21.11.2014 11
virtual7 – The Oracle Middleware Experts21.11.2014
Qualitätsmanagementmodelle (3)
• Bereiche des Qualitätsmanagement
Qualitätsverbesserung
Verbesserung der Qualitätsziele
Qualitätskontrolle
Einhaltung der Qualitätsziele
Qualitätssicherung
Anforderungserfüllung
12
virtual7 – The Oracle Middleware Experts21.11.2014
Agenda
• Was ist Qualität und was ist
Qualitätsmanagement?
• Softwareentwicklungsprozess
Qualitätsmanagement
Quality-Gates
• Fallbeispiele
13
virtual7 – The Oracle Middleware Experts21.11.2014
Softwareentwicklungsprozess
Qualitätsmanagement
14
Qualitätskontrolle
Qualitätsverbesserung
Benutzer-
anforderungen
Anforderung
sanalyse
System &
Software
DesignValidierung
System
analyse
Implemen
tierungVerifikation Produktion
Wartung
Passen zur
Unternehmens-
strategie?
Prozessver-
besserung?
Arbeitet die
Anwendung
?
Zusammen-
arbeit?
Arbeitet wie
gewollt?
Qualitätssicherung
Standards
einge-
halten?
Anforderungen
erfüllt?
virtual7 – The Oracle Middleware Experts21.11.2014
Softwareentwicklungsprozess
Qualitätsmanagementtools
15
Benutzer-
anforderungen
Anforderung
sanalyse
System &
Software
DesignValidierung
System
analyse
Implemen
tierungVerifikation Produktion
Wartung
Review
(Spezifikations
dokumente)
• Review (Dokumente),
• Usability Tests,
• Barrierefreiheit
• Prüfungen auf Compiler Ebene
• Statische Code-Analyse mit autom. Tools
• Manuelle Code Reviews und Code Inspektionen von
z.B. kritischen Codeteilen
• Erweiterte Reviews auf Basis voriger Fehler,
Komplexität, Änderungshistorie, Risikoanalysen usw.
• Unit Tests
• Systematische Tests durch Code Abdeckung
• Operationale Tests
• Regressionstests
Systemtests mittels
unterschiedlicher Profile
u.a. Lasttests
virtual7 – The Oracle Middleware Experts
Qualitätsmanagement
• Zusammenfassung
Qualität
Konzeption
Strategiephase
Qualität Kontinuierlich
Messen
Verifizieren
21.11.2014 16
virtual7 – The Oracle Middleware Experts
Softwareentwicklungsprozess
Quality-Gates
• Zitat:
Die einzige Maßnahme, die die Qualität einer Software sicherstellen
kann ist die Einführung von Quality Gates. Alle anderen
"Qualitätssicherungsmaßnehmen" wie Pair Programming, Tests,
Metriken etc. können die Qualität aufzeigen oder auch verbessern, aber
niemals sicherstellen.
- Jochen Peter Sondermann: Interne Qualitätsanforderungen und
Anforderungsbewertung
• Quality Gates
Definierte Punkte im Ablauf eines Entwicklungsprojekts
Fortschritt nur bei Erfüllung von im Voraus eindeutig bestimmten
Qualitätskriterien
21.11.2014 17
virtual7 – The Oracle Middleware Experts
Softwareentwicklungsprozess
Quality-Gates
• Quality Gates für Architektur:
Qualität einer Architektur?
a) eine Architektur muss Zyklen frei sein
Build-System stellt sicher, dass es
• keine Komponenten übergreifende Zyklen existieren
• keine unerlaubte statische Abhängigkeit zwischen zwei
Architekturkomponenten
b) Umsetzung muss korrekt sein
Tools
Macker
Jdepend
Sonargraph
21.11.2014 19
virtual7 – The Oracle Middleware Experts
Softwareentwicklungsprozess
Quality-Gates
• Quality Gates für Softwaredesign:
allgemeingültiger Vorgaben
Prinzipien objektorientierten Designs
SOLID-Prinzipien
Single-Responsibility, Open-Closed-Prinzip, Liskovsches
Substitutionsprinzip, Interface-Segregation-Prinzip und
Dependency-Inversion-Prinzip
Andere Prinzipien:
Gesetz von Demeter, Design by Contract, Datenkapselung, Self-
Documentation Prinzip, …
Metriken zur Messung der Vorgaben existieren nur wenige
Erkennung von Codewiederholungen sinnvoll
Tools
Copy-Paste-Detector (CPD)
Checkstyle
21.11.2014 20
virtual7 – The Oracle Middleware Experts
Softwareentwicklungsprozess
Quality-Gates
• Quality Gates für Implementierung:
Wartbarkeit- und Implementierungsmetriken
Größen- und Komplexitätsmetriken
beispielsweise Anweisungen oder LOCs / Methode, sowie
Komplexitätsmetriken wie die McCabe Metrik.
Tools
PMD (Programming Mistake Detector??)
NCSS (Non Commenting Source Statements)
21.11.2014 21
virtual7 – The Oracle Middleware Experts
Softwareentwicklungsprozess
Quality-Gates
• Quality Gates für Unit-Tests:
Mertiken
Code-Coverage
Line- und Branch-Coverage sind die aussagekräftigsten
Was sagt diese Kennzahl tatsächlich über die Qualität der Unit Tests
aus?
Wahrscheinlichkeit, dass ein UnitTest einen zukünftigen Fehler
entdeckt
Tools
Coverage
Cobertura
EMMA
Clover
Sicherstellung das alles Tests durchlaufen wurden
Surefire
21.11.2014 22
virtual7 – The Oracle Middleware Experts
Quality-Gates
SonarCube Image
• State-of-the-art bei Quality Gates ist die Verwendung von SonarQube
21.11.2014 23
virtual7 – The Oracle Middleware Experts
Quality-Gates
SonarCube Image 2
21.11.2014 24
• SonarCube Ergebnis eines ADF Gui Projekt:
virtual7 – The Oracle Middleware Experts21.11.2014
Weiter Informationen
• Referenzen
Jochen Peter Sondermann aus Masing Handbuch Qualitätsmanagement
Prinzipien objektorientierten Design:
http://de.wikipedia.org/wiki/Prinzipien_objektorientierten_Designs
Quality Management: Ebert, C. and R. Dumke: Software Measurement.
Springer, Heidelberg, New York, 2007
EFQM: http://de.wikipedia.org/wiki/EFQM-Modell
ISO 9001: 2000. Quality management systems – Requirements. ISO,
http://www.iso.org (2000)
SonarQube: http://de.wikipedia.org/wiki/SonarQube
CMMI-Dev:
http://cmmiinstitute.com/wp-content/uploads/2013/01/10tr033de_v11.pdf
Quality Gates:http://www.berner-
mattner.com/cms/upload/pdf/presse/BernerMattner_Sonderdruck_ETR_QualityGates.pdf
27
virtual7 – The Oracle Middleware Experts
AF& virtual7 GmbH
Timo Hahn
Zeppelinstraße 2
76185 Karlsruhe
0721 - 619 017 0
http://www.virtual7.de
Bild
21.11.2014 28
Copyright © 2012, Oracle and/or its affiliates. All rights reserved.29
Deutsche Oracle ADF Community
• Oracle ADF Community auf XING
• Twitter: ADFCommunityDE
• ADF Spotlight: 30-minütige Web Seminare an jedem 2. Freitag
• ADF Project Sessions: Serie von eintägigen Workshops
• Regelmäßige Treffen mit Fachvorträgen und Diskussionen
• Zusammenarbeit mit der DOAG (Jahreskonferenz, SIG)
• ADF Fitness Center (geplant Januar 2015)
Werden Sie Teil unserer Community !