Verktyg fr statisk kodanalys Statisk kodanalys Inledning Verktyg

























- Slides: 25

Verktyg för statisk kodanalys

Statisk kodanalys �Inledning �Verktyg och utvärdering �Metriker �Resultatanalys �Avslutning

Statisk kodanalys �Inledning � Vad är statisk kodanalys? � Exempel på statisk kodanalys � Mål � Avgränsningar � CRM �Verktyg och utvärdering �Metriker �Resultatanalys �Avslutning

Vad är statisk kodanalys? Syfte: Att förbättra källkod. Utvecklat som en lösning på: �Inkonsekvent dokumentation och namngivning �Krångliga relationer och designval �Hög komplexitet

Exempel på Statisk Kodanalys �Minnesluckor �Relationer mellan klasser �Duplicerad kod �Stil �Metriker �Med mera

Mål �Identifiera och utvärdera relevanta verktyg som finns för statisk kodanalys. �Analysera verktygens resultat för en applikation och spekulera över den konkreta nyttan av statisk kodanalys.

Avgränsningar �Kod som analyseras skall vara skriven i Java. �Endast verktyg som är gratis företag betraktas. �Endast verktyg som stödjer operativsystemen Windows, OS X och/eller Linux skall utvärderas.

CRM �CRM, Customer Relationship Management �En applikation skapad av Java Solutions �Skriven i Java �Bas för all statisk kodanalys i detta projekt

Statisk kodanalys �Inledning �Verktyg och utvärdering � Arbetsmetod för val av verktyg � Utvärderingskriterier � Lista över verktyg som analyserats �Metriker �Resultatanalys �Avslutning

Arbetsmetod för val av verktyg �Vilka resurser finns? �Vilka metoder finns? �Varför valdes metoden? �Hur utfördes urvalet?

Utvärderingskriterier �Dokumentation �Installation �Konfiguration �Användarvänlighet �Funktionalitet

Lista över verktyg som analyserats Övrigt Statistik Design Checkstyle Source. Monitor Sonar. J Hammurapi Eclipse Metrics ispace Find. Bugs CAP Lint 4 J JDepend JNorm PMD

Statisk kodanalys �Inledning �Verktyg och utvärdering �Metriker �Cyclomatic complexity �Resultatanalys �Avslutning

Metriker �Statistik/data över en viss egenskap hos källkod �Kräver korrekt tolkning Klass Metrikvärde Class 3 17 Klass Metrikvärde Class 1 3 Class 2 1 Class 3 17 Class 4 5 Class 5 4 ? ? Värde över normen!

Cyclomatic complexity �Utvecklad av Thomas J. Mc. Cabe 1976 �Mått på komplexitet hos kod �Räknas ut genom ett flödesschema M = E – N + 2 P M = cyclomatic complexity E = antalet bågar i grafen N = antalet noder i grafen P = antalet komponenter

Cyclomatic complexity Statement while(condition x) statement If(condition y) statement

Statisk kodanalys �Inledning �Verktyg och utvärdering �Metriker �Resultatanalys �Utvärdering: metriker �Utvärdering: övrigt �Avslutning

Resultatanalys Utvärdering av: �Metriker i verktyg �Övrigt funktionalitet i verktyg

Utvärdering: metriker Utvärderade metriker: �Distance from main sequence �Cyclomatic complexity �Lack of cohesion �Feature envy �Branches �Depth

Utvärdering: Övrigt Genrer klassificerade av verktygs funktionalitet: �Kodstil och benämning �Dokumentation �Optimering �Buggfixning �Kod-design

Statisk kodanalys �Inledning �Verktyg och utvärdering �Metriker �Resultatanalys �Avslutning �Sammanfattning �Mål �Vidare undersökningar

Sammanfattning �Insamling av verktyg �Utvärdering av verktyg �Statisk kodanalys �Analys av resultat

Mål �Utvärdera verktyg som finns för statisk analys och deras resultat. �Visa om statisk analys är meningsfullt och relevant i dagsläget, och för vem. �Identifiera och utvärdera relevanta verktyg som finns för statisk kodanalys. �Analysera verktygens resultat för en applikation och spekulera över den konkreta nyttan av statisk kodanalys.

Vidare undersökningar �Empiriska undersökningar �Följa ett företag över tid? �Två problem: �Behöver isolera effekterna av statisk kodanalys. �Behöver jämföra kod med kod och avgöra vilken som är överlägsen. �Lösning: �Undersöka bieffekter av statisk kodanalys �Undersöka ett stort antal företag för att få ett genomsnitt.

Opposition
Statisk likevekt
Spirometritolkning
Social media verktyg
Bygg och anläggnings verktyg
Porters värdekedja
Verktyg för automatisering av utbetalningar
System processmodellering
Vad är syftet med en utredande text
Stavelsestruktur
Debattartikel struktur
Pm inledning
Formellt brev till rektor
Kort inledning
Inledning berättande text
Tal inledning exempel
Inledning argumenterande tal