ISIS beleuchten, was sich bisher im Dunkeln verbarg verbessern, was bisher im Argen lag

Die Seite wird erstellt Louis-Stefan Graf
 
WEITER LESEN
ISIS beleuchten, was sich bisher im Dunkeln verbarg verbessern, was bisher im Argen lag
ISIS
beleuchten, was sich bisher im Dunkeln verbarg
           verbessern, was bisher im Argen lag
ISIS beleuchten, was sich bisher im Dunkeln verbarg verbessern, was bisher im Argen lag
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
ISIS beleuchten, was sich bisher im Dunkeln verbarg verbessern, was bisher im Argen lag
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
ISIS beleuchten, was sich bisher im Dunkeln verbarg verbessern, was bisher im Argen lag
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