ISIS beleuchten, was sich bisher im Dunkeln verbarg verbessern, was bisher im Argen lag
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Inhalt Was ist Softwarequalität Was ist ISIS Die Philosophie dahinter Die Innovation Werkzeuge Projektlogbuch Sotograph BugCollector Clover Maßnahmen zur Prozessoptimierung Voraussetzungen für den sinnvollen Einsatz Die Wirkung Seite 2
Was ist Softwarequalität Die Qualität eines Softwaresystems besteht aus der Äußeren Qualität: der Funktionalität, der Korrektheit, der Bedienbarkeit, der Performanz (Sicht des Benutzers) Inneren Qualität: Verständlichkeit, Wartungs-, Erweiterungs- und Änderungsfreundlichkeit (Sicht des Entwicklers) Üblicherweise liegt der Fokus auf der äußeren Qualität, die innere Qualität wird sträflich vernachlässigt Wesentliche Ursache für die Softwarekrise Hohe Kosten bei Änderungen/Erweiterungen Die Qualität eines Softwaresystems resultiert aus der Qualität des Entwicklungsprozesses Seite 3
Was ist ISIS – eine Erfolgsgeschichte ISIS ist eine agile Methode zur Steuerung und Optimierung der Prozess- und Softwarequalität Wurde von andrena auf Basis langjähriger Prozesserfahrungen 2006 konzipiert Wurde Anfang 2007 in einem Pilotprojekt eingesetzt, optimiert und evaluiert Aufgrund des großen Erfolges hat andrena mittlerweile ISIS in allen internen Projekte eingeführt Seite 4
ISIS: Die Philosophie dahinter Unser Ziel: Software von angemessener Qualität bei gleichzeitig hoher Produktivität erzeugen Softwarequalität ist eine Ganzheit: innere und äußere Aspekte bedingen einander Die Messung der Softwarequalität muss daher auf Indikatoren für beide Teile beruhen Seite 5
ISIS: Die Innovation ISIS ist ein Vorgehensmodell aus der Verfahrenstechnik (Betrieb von Durchflussreaktoren) übertragen auf die Softwareproduktion: Definition von Indikatoren für die Prozess- und Produktqualität Definition einer angemessenen Produktqualität als Zielgröße Regelmäßige Messung der Qualität, Feedback in den Prozess Optimierung des Prozesses bis die Zielgröße stabil erreicht ist Primärer Fokus auf qualitätsverbessernden Maßnahmen Optimierung des Prozesses unter Halten der Zielgröße Primärer Fokus auf produktivitätsverbessernden Maßnahmen Stabiler Betrieb des Prozesses, Detailoptimierung Primärer Fokus auf Stabilität Seite 6
ISIS: Werkzeuge ProjektLogbuch (andrena Eigenentwicklung) Zentrales Instrument Integration, Verdichtung, Visualisierung, Historisierung Integration von Sotograph: Bei Erfassung eines Messpunkts werden die Softwaremetriken automatisch aus der Sotograph-DB geladen Sotograph (Lizenz) Automatisierte statische Analyse, Historisierung, Deltafunktion Manuelle Identifizierung und Behebung von Schwachstellen BugCollector (andrena Eigenentwicklung) Erfassung und Historisierung der Programmierfehler Clover (Lizenz) Messung der mittleren Testabdeckung Identifizierung von lokalen Defiziten (Klassen- und Methodenebene) Seite 7
ProjektLogbuch: Indikatormetriken Kundenzufriedenheit 17 % Anzahl der Programmierfehler 15 % Schätzabweichung 11 % Testabdeckung 13 % PackageCycles 11 % Cyclomatic Complexity (Anzahl Methoden >5) 10 % Average Component Dependency 9% Klassen größer 20 Methoden 6% Methoden größer 15 LOC 6% Compiler Warnungen 2% Seite 8
ProjektLogbuch: SQI und PQI Softwaremetriken werden verdichtet zum Softwarequalitätsindex (SQI) als zentrales Maß für die Qualität des Softwaresystems Prozessmetriken und Softwaremetriken werden verdichtet zum Prozessqualitätsindex (PQI) als zentrales Maß für die Qualität des Prozesses Publikation des Projektlogbuchs gegenüber Auftraggeber Management bedeutet transparente Produktion Wichtig: Metriken sind nur eine beschränkte Sicht auf das Ganze Seite 9
Projektlogbuch: Beispiel aus der Produktion Seite 10
Sotograph Steht für Software Tomographie Professionelles Werkzeug zur statischen Codeanalyse Nach unserer Erfahrung das mächtigste und stabilste Tool auf dem Markt Wertvoll für die manuelle Sichtung des Codes und zur Kontrolle von Änderungen über Delta-Analyse Einsatz Review-Situation Kontinuierliches Messen von Qualität Seite 11
Vergleich Tools zur statischen Codeanalyse Historisierung Architektur Code- Usability Reporting Duplikation Axivion - + + - + Lattix - + - + + SonarJ - + - - + Sotograph Datenbank/ + + + Web- Delta (!) Interface Seite 12
Sotograph: Komponenten Sotoarc Developer Eclipse- Eclipse-Plugin für Java Architekturprüfung, kein Repository-Zugriff Statische Analyse Metriken in Qualitäts- Sotograph Modellen, Visualisierung Architekturanalysen von Abhängigkeiten Module, private Module (!) Sotoarc Virtuelle Refactorings Zyklenanalyse Plattform mit Repository Qualitä Qualitätsmonitoring Datenverwaltung, Batch- Web-Zugriff auf Metriken Sotoplatform Sotoweb Trendanzeige bis auf betrieb/ Automatisierung Java, C#, C++ Detailebene Qualitä Qualitäts- ts-Reports Sotoreport Übersicht, Trend für relevante Qualitätsaspekte, konfigurierbar Seite 13
Sotograph: Funktionsweise Projekt- logbuch Sotograph Quellcode/ Artefakte Metrikwerte Kompilat Extraktion DB per SQL Seite 14
Sotograph: Werkzeuge Definition von Architektur-/ Metrikanalyse Subsystemmodell ModelScope MetricScope Analyse Beziehungen Visualisierung zwischen Artefakten XrefScope Sotograph GraphScope TrendMetricScope QueryScope Metrikvergleich verschiedener Anwendung definierter Versionen des Systems Metriken auf Artefakte Seite 15
Sotograph: Funktionalität Statische Codeanalyse Metriken Zyklenanalyse Code-Duplikation Trendanalyse mit Delta-Funktion Architektur: Analyse, Definition, Prüfung Automatisierung: Einbindung in Build-Prozesse Visualisierung Reporting via Web, konfigurierbar Seite 16
BugCollector Zweck: Sammeln und Analysieren von Programmierfehlern (Bugs), um aus ihnen zu lernen. Vermeidung von Verdrängung Definition Bug: von der Spezifikation abweichendes Verhalten in Code, der vom Entwicklungsteam als fertiggestellt und qualitätsgesichert freigegeben wurde Keine individuelle Zuordnung von Fehlern Erkenntnisse aus unserem Projekt: häufig Fehler bei alleiniger Programmierung und/oder fehlenden automatisierten Tests Unabdingbare Voraussetzung für sinnvollen Einsatz: lernorientierte Fehlerkultur Seite 17
BugCollector: Beispiel aus der Produktion Seite 18
ISIS: Maßnahmen zur Prozessoptimierung Verbesserung der Anforderungsanalyse Verbesserung der Planung Verbesserung der Schätzmethode Konsequente pragmatische Anwendung von XP-Techniken Pair Programming, falls nicht möglich Code Review Automatisierte Tests Refactoring Manuelle Entwicklertests als Ergänzung zu automatisierten Tests Konsequente Automatisierung Strukturierung der Produktionskette Seite 19
ISIS: Voraussetzungen Die Prozessoptimierung setzt in Teilen des Teams Erfahrungen zu sauberer objektorientierter Programmierung XP-Techniken Automatisierung voraus Es muss ein Mechanismus existieren, der die Zirkulation und Verbreitung von Wissen im Team gewährleistet (z. B. Pairprogramming) Für die Beherrschung der Werkzeuge Sotograph und Clover ist Spezialwissen erforderlich Unabdingbare Voraussetzung ist eine lernorientierte Fehlerkultur Seite 20
ISIS: die Wirkung Die Einführung von ISIS initiiert im Entwicklungsteam eine intensive Diskussion über Softwarequalität, Metriken, Produktionsprozesse und schafft Qualitätsbewusstsein Falls sich Werte verschlechtern, werden sofort Konsequenzen gezogen Transparente Produktion Schafft Vertrauen bei Auftraggeber und Management Führt zu einer Verstetigung der Produktion In allen Projekten hat sich nach Einführung von ISIS die Codequalität deutlich verbessert ISIS macht Spaß, erzeugt hohes Selbstvertrauen, Motivation, Kreativität Seite 21
Sie können auch lesen