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