10
Statische Analyse von PHP Projekten

Statische Analyse von PHP Projekten

Embed Size (px)

DESCRIPTION

Mit einer statischen Code-Analyse versucht man Stellen in der Anwendung zu entdecken, die ein großes Risiko für zukünftige Änderungen darstellen können.

Citation preview

Page 1: Statische Analyse von PHP Projekten

Statische Analyse

von PHP Projekten

Page 2: Statische Analyse von PHP Projekten

Übersicht Themen

Was wird analysiert?Vorteile von AnalysewerkzeugeVorstellung AnalysewerkzeugeAnalyseergebnisse auswerten

Gjero Krsteski26.11.2010 2

Page 3: Statische Analyse von PHP Projekten

Was wird analysiert?

Zusammensetzung verschiedener Softwarebestandteile Code Duplikate Zyklometrische KomplexitätPotentielle Fehler

Gjero Krsteski26.11.2010 3

Page 4: Statische Analyse von PHP Projekten

Vorteile von Analysewerkzeuge

verarbeiten große Menge an Quelltext innerhalb kürzester Zeitkostengünstig, da beliebige Wiederholung möglichverbrauchen wenig Ressourcen

WichtigBewertung ist immer objektiv!Subjektive oder persönliche Faktoren spielen keine Rolle!

Gjero Krsteski26.11.2010 4

Page 5: Statische Analyse von PHP Projekten

PEAR - phploc

Anzahl an Zeilen PHP Code Unterscheidet Kommentaren von richtigem CodeAnzahl InterfacesAnzahl KlassenAnzahl nichtstatische- und statische Methoden Anzahl FunktionenZyklometrische Komplexität

Gjero Krsteski26.11.2010 5

Page 6: Statische Analyse von PHP Projekten

PEAR - phpcpd

Copy & Paste Detector für PHP Codeduplizierter Code

ist schwer zu wartenverletzt das OOP Paradigma

Gjero Krsteski26.11.2010 6

Page 7: Statische Analyse von PHP Projekten

Custom line-counter

angepasstes UNIX-Kommando Anzahl Zeilen einer PHP-Datei

Was haben wir davon?Klassen aufzuspüren die sich deutlich von den anderen Klassen unterscheidenVerdacht =

weiß zu viel oder beschäftigt sich mit zu vielen Dingendoppelten Codeschlecht testbar

Gjero Krsteski26.11.2010 7

Page 8: Statische Analyse von PHP Projekten

PEAR - pdepend

Analysiert die OOP Architektur

Ausgewogenheit = Instabilität + Abstraktion

Instabil = Wert bei 1, eingehende Abhängigkeit.Stabil = Wert bei 0, ausgehende Abhängigkeit.Abstraktion > 0 = konkrete Methoden und Klassen.Abstraktion > 1 = abstrakte Methoden und Klassen.

Gjero Krsteski26.11.2010 8

Page 9: Statische Analyse von PHP Projekten

Danke für die Aufmerksamkeit!

Page 10: Statische Analyse von PHP Projekten

Gjero Krsteski Web-Programmierer, Berater, Trainer

Datum: 26.11.2010Homepage: krsteski.de

E-Mail: [email protected]