Gesponserde Links: |
Tool:iPlasmaUit VingerhogleiPlasma is een geïntegreerde omgeving voor het uitvoeren van kwaliteitsanalyses van objectgeoriënteerde softwaresystemen. iPlasma biedt ondersteuning voor onder meer model extraction, detectie van codeduplicatie en hoog niveau metriekanalyses. De tool is terug te vinden op http://loose.upt.ro/iplasma/index.html en is ook besproken tijdens de les. [bewerken] The Overview PyramidEén van de analyses die we gebruikt hebben van iPlasma is de Overview Pyramid. Deze voorstelling is bedoeld om op een snelle en compacte manier een eerste indruk te krijgen van het systeem, een globaal beeld zeg maar. Deze visualisatie heeft de vorm van een piramide waar 3 grote blokken te onderscheiden zijn. Links bevinden zich de metrieken die te maken hebben met groottes, rechts zijn de waarden die communicatie meten en op de top van de piramide zijn de metrieken over overerving geplaatst. Op de trappen van de piramide worden de verhoudingen tussen deze metrieken geplaatst. Voor ModSL ziet de piramide er als volgt uit: De gebruikte metrieken die iets zeggen over de grootte zijn cyclomatische complexiteit (CYCLO), het aantal lijnen code(LOC), het aantal methodes (NOM), het aantal klassen (NOC) en het aantal packages (NOP). De metrieken voor communicatie zijn de fanout (FOUT), het aantal methode oproepen (CALL) en wederom NOM. Voor overerving worden de gemiddelde diepte van de overervinghiërarchie (HIT) en het gemiddeld aantal afgeleide klassen (NDD). Nadat alle waarden ingevuld zijn in de piramide, worden deze vergeleken met de referentiewaarden (die afhankelijk zijn van de programmeertaal) en krijgt elke verhouding een kleurcode toegekend. Er zijn in totaal 3 kleurcodes zijnde groen, blauw en rood die respectievelijk laag, gemiddeld en hoog betekenen. Uit de piramide kunnen we nu een aantal algemene conclusies trekken: 1. De klassenhiërarchieën zijn enerzijds groot en hebben anderzijds een gemiddelde breedte. Of nog: de overervingbomen hebben veel diepteniveaus en basisklassen met verschillende rechtstreeks afgeleide subklassen 2. Klassen hebben een gemiddeld aantal methodes 3. Klassen zijn georganiseerd in kleine packages 4. Methodes zijn kort en hebben een gemiddelde complexiteit 5. Methodes hebben de neiging veel methodes van een beperkte groep klassen op te roepen (veel koppeling).
[bewerken] System Complexity OverviewZoals de naam doet vermoeden, geeft deze visualisatie een idee over de complexiteit van het systeem en waar die complexiteit zich bevindt. De verschillende klassen worden afgebeeld als rechthoeken en zijn met elkaar verbonden indien de ene klasse overerft van de andere. Daarnaast worden aan de kleur, de hoogte en breedte van de klasse een betekenis toegekend. De kleur (tinten grijs)van de rechthoek zegt iets over weighted method count (WMC). De WMC telt de complexiteit van een methode uit een klasse op. Als metriek voor de complexiteit werd CYCLO gebruikt. Een lichte tint grijs betekent een lage WMC, een donkere tint grijs betekent een hoge WMC. De breedte van de rechthoek vertelt iets over het aantal attributen(NOA). Een smalle rechthoek betekent een lage NOA, een brede rechthoek het tegenovergestelde. De hoogte van de rechthoek wordt bepaald door NOM. Een hoge rechthoek betekent een groot aantal methodes, een kleine rechthoek betekent weinig methodes. De system complexity overview van ModSL is: Na een algemeen beeld gekregen te hebben met de overview pyramid, kan je met het system complexity overview verder in de detail gaan op de cijfers verkregen uit de piramide. Zo zie je bijvoorbeeld dat: • vooral de overervinghiërarchie van Visitor (rechts bovenaan) veel niveaus telt • de klassen Graph, Edge, Node, Style en Pt (donkere klassen linksonder) een hoge complexiteit hebben en veel methodes bevatten. |

