Szoftvermetrikák és minőségmenedzsment Péter Előd 2016.12.08. CheckStyle Szoftvermetrikák és minőségmenedzsment Péter Előd 2016.12.08.
Általános jellemzők Nyílt forráskódú statikus kódelemző eszköz Java forráskódhoz 2001 – ben Oliver Burn fejlesztette ki Integrálható ant-tal és az ismert IDE környezetekkel (Eclipse, NetBeans)
A kód elemzése A kód minőségének ellenőrzése annak futtatása nélkül Szabálysémákat (checks) definiál, amik testre szabhatóak XML alapú leírás A szabályokat gyűjteménybe lehet rendezni (configuration file) Van saját szabályszerkesztője testreszabható
Checkstyle Számos fejlesztői eszköz támogatja: Eclipse, Netbeans, IntelliJ, Maven, Bitbucket Server, Gradle, SonarQube A standard checks gyűjtemény (rootmodule) tartalmazza az alapfunkciókat, de bővihető új funkcionalításokkal (submodules) A submodulok öröklik a rootmodul tulajdonságait Bármely szabály súlyossági szintje módosítható: error, warning, info, ignore.
Modulok Több modult biztosít. Mindegyik külön szabályt határoz meg (check) szabályozható szigorúsággal (mandatory, optional..) A Checkstyle vizsgálja: Javadoc kommentek osztályokhoz, metódusokhoz, attribútumokhoz Névkonvenciók metódusok és attribútumok esetében Csomagok, importok, osztályok, típusmódosítók, blokkok helyes kezelése Kötelező fejlécfájlok jelenléte Osztályok helyes kezelése Fehérkarakterek szűrése Duplikátumok szűrése Méretbeli jogsértések Redundancia
Checks, Filters, Listeners Megírhatók a saját: Checkek: Definiálnak tulajdonságokat, melyeket más modulok is örökölnek. Osztályokat vizsgálnak. Szűrők: modulok, melyek eseményeket szűrnek. Egy szűrő elfogadhat, vagy elutasíthat egy vizsgált eseményt. Ha a szűrő elfogadja az eseményt, akkor a checker jelez, ha nem fogadja el, tehát kiszűri, akkor nincs jelentve az esemény. Figyelők: melyek jelentik a kiszűrt eseményeket
Demo
Források http://checkstyle.sourceforge.net/ http://www.javatips.net/blog/eclipse-checkstyle-tutorial http://www.javaworld.com/article/2077945/open-source- tools/automated-code-reviews-with-checkstyle--part- 1.html?page=4 https://prezi.com/jcuv4bngibd4/checkstyle/
Köszönöm a figyelmet!