Analysverktyg för Code smells och Test coverage. Djupstudie för Coaching av programvaruteam 2015

Storlek: px
Starta visningen från sidan:

Download "Analysverktyg för Code smells och Test coverage. Djupstudie för Coaching av programvaruteam 2015"

Transkript

1 Analysverktyg för Code smells och Test coverage Djupstudie för Coaching av programvaruteam 2015 Lund, 6/ Christian Kuijer Andersen Rickard Johansson

2 Innehållsförteckning 1 Abstrakt 2 Nyckelord 3 Förord 4 Problemformulering 4.1 Bakgrund 4.2 Code smells 4.3 Beskrivning av valda verktyg för code smells JDeodorant Eclipse PMD CodePro Analytix Vi valde JDeodorant med följande motiveringar 4.4 Test coverage 4.5 Beskrivning av valda verktyg för test coverage JaCoCo (EclEmma) Atlassian Clover for Eclipse CodePro Analytix Vi valde JaCoCo med följande motiveringar 5 Resultat 6 Diskussion 6.1 Felkällor 7 Slutsats 8 Källförteckning 8.1 Referenser 8.2 Källor 9 Appendix A

3 1 Abstrakt När man utvecklar programvara i grupp och speciellt när man följer utvecklingmetodiken XP (extreme Programming) så är det viktigt att skriva mycket test och ha hög test coverage på koden. Det uppstår ofta bristfälliga delar i koden under projektets gång då utvecklarana gör små fixar för att tillfredsställa kundens ständiga förändringar. Dessa brister i koden brukar benämnas som bad smells och kan vara väldigt svåra och omständiga att granska visuellt, då kan ett analysverktyg för detta vara till stor hjälp. Även test coverage är svårt att granska visuellt eftersom koden kontinuerligt ändras under projektets gång. Ett sådant verktyg underlättar även undersökningen om man testat alla möjliga nästlade vägar i en metod. Vi satte ett mål att ha minst 90% test coverage, som vi inte lyckades nå upp till under projekters gång. Vårt mål var att utvecklarna skulle använda JDeodorant och JaCoCo efter varje story, dock var de dålig användning av JDeodorant, det var bättre men inte fullständig användning av JaCoCo. Vårt resultat var en mjukvara som var stabil och snabbast i tävlingen som ägde rum efter projektets gång. 2 Nyckelord Analysverktyg, Code smells, Test coverage, Kodkvalité, XP,eXtreme Programming, Coaching av programvaruteam 3 Förord Detta är en rapport på en djupstudie där vi har undersökt två olika slags analysverktyg närmare, ur ett urval av fem verktyg. Det ena verktyget är till för att hitta code smells och det andra för att undersöka hur stor test coverage ett projekt har. De två verktygen har använts av ett team bestående av tolv studenter som läste kursen Programvaruutveckling i Grupp (PVG, EDA260) vid LTH (Lunds Tekniska Högskola). Teamet har även två coacher vilka är vi som utfört denna djupstudie som en del av kursen Coachning av Programvaruteam (EDA270) vid LTH. Under sex iterationer utvecklar de studerande, enligt XP, ett system för tidtagning av en enduro tävling. Eftersom parprogrammering används benämns ofta utvecklarna som ett par senare i rapporten. Hela kursen består av 8 team med liknande förutsättningar, men deras coacher bedriver andra typer av djupstudier. Eftersom endast vårt team använde analysverktyg på detta sättet kunde de andra 7 teamen användas som kontrollgrupper då vårt resultat skulle tas fram. En iteration består av åtta timmars arbete som utförs varje måndag i sex veckor och ett planeringsmöte á två timmar mellan varje iteration. Utvecklarna hade också varje vecka en fyra timmars spike uppgift som gick ut på att fördjupa sig i något som kan bidra till att förbättra nästa iterations arbete. Utvecklingen försöker efterlika ett riktigt mjukvaruprojekt och teamet

4 hade därför en person från instutitionen på Datavetenskap som hade rollen som kund. Kunden gav teamet lappar där det var angett önskad funktionalitet på varje iteration, så kallade stories. Under utvecklingen använde sig teamet av en så kallad Kanban board innehållande fyra olika stadier som en story kan befinna sig i. Stadierna är Todo, Implementing, Done och Done done (en story är inte Done done förrän ett annat par har granskat Done koden, kört testerna och undersökt att funktionaliteten som storyn anger verkligen är implementerad). Efter de sex iterationerna så fick teamen tävla med sina programvara mot varandra, där man testar vems programvara som är snabbast och ger korrekt utskrift i en treben tävling runt Sjön Sjön. Rapporten kommer innehålla engelska termer för att inte förvirra läsarna eftersom det ofta inte finns någon bra svensk översättning. 4 Problemformulering Det finns många verktyg som analyserar kod, vi har tagit ut 5 program (2 som endast testar test coverage, 2 som endast testar bad smells och ett verktyg som undersöker både test coverage och bad smells) och sedan analyserat dem noggrannare. De verktyg som vi valt att analysera skulle kunna användas i utvecklingsmiljön Eclipse och vi hade därav kravet att de ska finnas som plugin till Eclipse. När vi hade gjort en djupare analys på samtliga program och själva testat dem valde vi ut ett verktyg för bad smells och ett för test coverage som vårt PVG team skulle använda hela utvecklingstiden. Vår förhoppning var att teamet innan de flyttade över en story till Done skulle köra de två valda verktygen för att hålla sin kod utan bad smells och med hög test coverage. Det vi hoppades uppnå genom att använda analysverktyg var följande: Hög test coverage av all kod Bra skriven kod utan bad smells, så som stora klasser, långa metoder, duplicerad kod och feature envy (funktionaliteten ligger där den behövs). Inte för många grenar i metoderna (undvika nästlade if satser och många villkorssatser) 4.1 Bakgrund Då det är många utvecklare i ett XP projekt så är det viktigt med hög test coverage av koden. Om en utvecklare ska ändra i kod som den inte själv till en början skrivit, kan den använda testerna som en försäkring att koden fortfarande fungerar som den var tänkt till en början. Det kan annars vara svårt att veta vilka andra delar av koden som påverkas av en ändring [2]. Test coverage är även ett bra verktyg för att låta utvecklarna vara säkra på att koden gör vad den verkligen ska göra, och vad utvecklarna har tänkt att den ska göra. Vi satt ett mål till utvecklarna att ha minst 90% test coverage av all källkod under hela projektets gång.

5 Det är viktigt att undvika och minimera bad smells i ett stort mjukvaruprojekt, främst på grund av att det finns många som är delaktiga i koden och att alla i projektet lätt ska kunna sätta sig in i alla delar av koden. Det finns studier på att software maintainers lägger ungefär 60% av sin tid på att bara förstå koden [3]. En kod utan bad smells blir lättläst, självförklarande och det blir lättare för vem som helst att sätta sig in i koden och jobba vidare med den. När man programmerar och vill vara säker på att man får in rätt värde, så kan man kolla det med if satser/if else satser. Dock krävs det flera test fall för att kunna täcka alla möjliga utfall i metoden. Det kan vara svårt att täcka in alla möjliga utfall, utan att behöva skriva en stor mängd testfall. Antalet testfall som krävs för varje nästlad if sats växer med 2 n (n = en if else sats). För att undvika att de studerande skulle tycka att det var omständigt och jobbigt att använda analysverktygen valde vi endast två stycken verktyg som vi dessutom ansåg vara lättanvända. Om vi skulle ha valt ut för många analysverktyg tror vi att risken funnits att studenterna inte använder sig av programmen alls. Efter den sista iterationen fick de tolv studerande fylla i en enkät som bestod av frågor om hur de upplevde analysverktygen och hur mycket det hjälpte dem i projektet. Vårt resultat i rapporten grundar sig även på detta. 4.2 Code smells Det finns flera olika sorters code smells [1], vi har valt att fokusera på nedanstående i vårt projekt: Duplicerad kod Långa metoder Stora klasser Feature envy (funktionaliteten ligger där den behövs) Vi har valt ovanstående code smells eftersom vi själva hade problem med dessa när vi var utvecklare i kursen PVG för två år sedan. Det är även viktigt att undvika dessa brister eftersom de är en del av de grundläggande good pratices som många lär sig när man börjar programmera. Dessutom tror vi att dessa problem uppstår lättare i ett team där utvecklarna har ingen/lite tidigare erfarenhet av XP.

6 4.3 Beskrivning av valda verktyg för code smells JDeodorant 5.0 JDeodorant kan installeras via Eclipse marketplace och visas sedan i menyraden i Eclipse med namn Code smells. När man trycker knappen får man fyra alternativ; God classes, Long metod, Feature envy och Type Checking. När man vill analysera sin kod trycker man på den typ av analys man vill göra, sedan dyker den upp i vyn. Man kan sedan markera önskat projekt/paket/klass och trycka man på det lilla i :et i vyn vilket göra att programmet börjar analysera koden och ger varningar på vad verktyget anser är bristfälliga delar av koden. Programmet kan även föreslå en lösning på de felen som hittas, förslaget ser man genom att klicka på ett problem som JDeodorant har hittat och sedan klicka på knappen bredvid i i vyn som heter Apply refactoring. Man kan då förhandsgranska förslaget och om man accepterar lösningen gör programmet alla ändringar som krävs automatiskt. I JDeodorant kan man inte göra några inställningar av programmet eller ställa in hur det ska bete sig vid analysering av koden. Skulle programmet inte hitta några fel så säger inte programmet till om det utan vyn förblir tom, vilket är vilseledande då man inte vet om programmet har körts och/eller om det har analyserat klart koden. Verktyget testar följande: Långa metoder Duplicerad kod Stora klasser Feature envy Eclipse PMD 1.4 PMD kan installeras via Eclipse marketplace och startas sedan genom att högerklicka på en klass/ett paket/ett projekt och välja PMD i listan som visas. Under den menyn får man olika förslag beroende på om man tittar på en klass, ett paket eller ett projekt. Programmet har 347 regler som den analyserar koden enligt. I huvudsak finns det tre funktioner, check code, clear violations och clear violations review där check code är själva analysen av koden. När man kör check code så dyker det upp en vy med namn violations overview och även vyn violations outline. I violations overview ser man felen kategoriserade i olika kategorier (med olika färgade flaggor framför, för de fem olika kategorierna) och antal fel. I violation outline är varje fel specificerat och har en flagga framför som avspeglar vilken kategori felet tillhör och vilken regel koden bryter mot.

7 Felen delas in i fem olika kategorier och i violation overview så kan man enkelt filtrera ut vilka av de fem kategorierna man vill visa, detta genom att klicka på de fem olikafärgade pilarna (dock stämmer det inte överens med färgerna i violation overview, men färgerna stämmer med färgerna man ser i violation outline ). I violation overview finns det en uträkning på hur många fel det finns i varje kategori, fel per KLOC (per tusen rader kod) i procent och fel per metod i procent. För att få bort dessa flaggor i klassen och i projektet så måste man antingen åtgärda felet, eller så får man högerklicka på den klassen/paket/projektet som man vill ta bort felmeddelande för och klicka PMD och sedan på clear violations. För att göra inställningar i programmet och för att ställa in hur den ska analysera måste man kan gå in Window preference och göra inställningar för vilka regler programmet ska analysera efter. Där kan man klicka på varje regel och få en beskrivning och exempel på hur regeln fungerar. Man kan även importera regler för att utöka de befintliga 347 reglerna. Verktyget testar följande: Buggar (tomma try/catch/finally/switch uttryck) Död kod (oanvända lokala variabler, parametrar och privata metoder) Suboptimal code (onödiga användning av String/Stringbuffer) För komplexa uttryck (onödiga if satser, for loopar som bör bytas ut mot while satser o.s.v.) Duplicerad kod (samma kod skrivet på flera ställen) CodePro Analytix CodePro Analytix är ett analysverktyg utvecklat av Google. Verktyget finns inte i Eclipse marketplace men kan installeras genom att man anger en URL till Eclipse som finns på CodePros hemsida, vilket gör att det laddas ner och installeras. När vektyget är installerad visas en ny knapp i menyn vid namn CodePro. Trycker man på knappen visas flera alternativ. Där kan man få fram diverse guider och knapparna Views, Perspective och Preferences. De vyer som är intressanta för att undersöka code smells är Audit, Metrics, Dependencies och Similar Code. I vyn Audit kan man välja vilket projekt som ska analyseras och det visas då varningar på kodstycken som programmet anser vara bristfälliga. CodePro kategoriserar även varningarna i high, medium och low beroende på hur allvarliga de är. För varje varning visas en beskrivning, förklaring och rekommendation på felet.

8 I Metrics visas mängder med data om projektet, bland annat hur stor del av koden som är abstrakt, medelstorlek på metoder, medelantal parametrar, rader kod, antalet metoder, antalet semikolon och så vidare. De metrics som anses vara för stora eller för små markeras med rött. Under Dependencies kan man få en grafisk vy på beroenden mellan paket och klasser i projektet. Till en början visas beroenden mellan projektet och externa jar filer men man kan klicka sig inåt i projektet för att visa beroenden mellan paket och till sist klasser. I vyn Similar Code visas klasser i projektet som innehåller liknande kod på ett överskådligt sätt med färgformatering för det som är lika och det som skiljer sig åt. Trycker man på knappen Perspective visas en helt tom tunn remsa vid sidan av knappen. Det är oklart hur det är tänkt att det ska funka och utifrån våra tester så fungerar inte knappen alls. Under Preferences kan man ställa in inställningar för de olika vyerna. Man kan där själv bestämma vilka av de 714 olika reglerna vektyget ska följa och hur allvarliga de är. Man kan bocka av varningar och metrics som man inte är intresserad av och bestämma hur beroenden ska skrivas ut och vilken färgformatering som ska användas i den grafiska bilden. Vektyget testar följande: Duplicerad kod Långa metoder För många beroenden mellan klasser (spaghettikod) Vi valde JDeodorant med följande motiveringar JDeodorant var det verktyg som uppfyllde flest av de krav vi hade på ett analysverktyg för code smells. Det var enkelt att använda, lätt att installerat som plugin till Eclipse och krävde ingen konfiguration. Det gav även utvecklarna förslag och kunde automatiskt implementera förslagen om utvecklaren önskade det. Nackdelarna är att det inte går att konfigurera. Den notifierar dessutom inte användaren om verktyget inte hittar några fel och det går inte att ignorera varningar som egentligen inte är fel och som utvecklaren inte vill ska dyka upp varje gång de testar koden. JDeodorant ger förslag på hur man kan skriva om koden så att den inte ska klaga på det nästa gång. Dock skulle vi gärna sett en funktion som gjorde att den inte behövde (kunde ignorera) klaga på en del av koden som inte gick att förbättra eller att verktyget gav ett felaktigt utslag på. Vi skulle gärna sett några inställningsmöjligheter, men i detta projektet klarar vi oss väldigt bra utan inställningsmöjligheter.

9 CodePro har väldigt många bra vyer som illustrerar källkodens uppbyggnad, dock är det ganska komplext och blir väldigt rörigt om man inte har tid för någon typ av utbildning eller hjälp med att få det att fungera för sitt projekt. Det har även väldigt många regler som man kan ändra och välja hur känsliga varje regel ska vara, det är en väldigt bra funktion men blir onödig komplext i vårt lilla projekt. En annan faktor som gjorde att vi inte valde CodePro var att enligt D Jönsson [ 6 ], så har Code Pro väldigt få analyser av konkreta code smells. PMD är väldigt omfattande verktyg och det är just därför det inte lämpar sig för detta projeket. Det är viktigt att det är enkelt att använda och konfigurera men PMD blir som sagt för komplext på grund av dess mängd funktioner som vi inte har användning för i vårt projekt. Verktyget skulle säkert vara väldigt bra vid ett större och längre projekt, där utvecklarna har mer tid att sätta sig in i programmet. 4.4 Test coverage Det finns mycket man kan få ut av att analysera tester [4], vi tycker följande är viktigt: Att kunna se hur stor del av koden som är testad Att kunna se vilka delar av koden som är testad och inte testad Att testfallen täcker in alla möjliga grenar i en metod Många av utvecklarna i projektet arbetar enligt XP för första gången, och har därav ingen tidigare erfarenhet att skriva testfall till källkoden. Analysverktyg för test coverage underlättar för utvecklarna att se om koden testas och att alla möjliga utfall är testade. Det finns tre olika sätt att analysera koden på [5] : Byte code instrumentation (lägger in testinstruktioner i byte koden under exekvering) Offline byte code instrumentation (lägger in testinstruktioner i byte koden efter kompileringen) Source code instrumentation (lägger in testinstruktioner i källkoden innan kompilering) I denna rapport har vi valt att inte lägga vidare fokus på dessa sätt att analysera kod på. Vi har istället valt att undersöka följande verktyg eftersom de är välkända och har stor marknadsandel. 4.5 Beskrivning av valda verktyg för test coverage JaCoCo (EclEmma) Verktyget är mer känt under namnet EclEmma men det är i själva verket namnet på utvecklingsteamet. Den senaste versionen använder Java Code Coverage Library och har gett EclEmma ett nytt namn JaCoCo. JaCoCo använder sig av byte code instrumentation.

10 Verktyget kan hittas och installeras genom Eclipse marketplace genom att man söker på antingen EclEmma eller JaCoCo. Verktyget är kostnadsfritt att använda. I menyraden dyker det upp en ny knapp med en röd grön rektangel och med en run pil i bakgrunden. För att köra JaCoCo markerar man en test fil eller ett projekt som innehåller en eller flera test filer och trycker på knappen. När testen är körda dyker det upp en ny tab i vyn med namn Coverage. I denna vyn ser man till en början test coverage för hela projektet men man kan klicka sig inåt i projektet för att visa en analys för paket, klasser och till sist metoder. I vyn Coverage kan man även utläsa hur många instruktioner som har exekverats, hur många som inte har exekverats och hur många instruktioner projektet har totalt. Det visar även för varje klass/paket/projekt ett procenttal på hur hur stor del av instruktionerna som har kört av de totala antalet. Verktyget är väldigt bra på att testa if else satser, det mäter nämligen hur många möjliga vägar det finns i en metod. Verktyget markerar koden röd om en del inte körs, gul om koden körs delvis (körs men inte genom alla möjliga grenar) och grön om alla möjlig fall testas. Har en metod ett värde större än 0% och mindre än 100%, så betyder det att metoden är delvis testad, ofta beror det på att alla möjliga fall i t.ex. en if sats inte är testade. Färgkodningen stannar kvar tills man börjar göra ändringar i filen. För att få tillbaks färgkodningen så får man köra programmet igen. Vektyget testar följande: Hur stor del av koden som är testad Att alla möjliga fall i en metod är testat Färgkodar källkoden om den är testad (grön), delvis testad (gul) och inte testad (röd) Atlassian Clover for Eclipse Clover finns inte i Eclipse marketplace men kan installeras genom att ange en viss URL till Eclipse som kan hittas på Clovers hemsida. Clover distribueras av ett företag och kräver licens, men kan kan prova det fritt i 30 dagar. Clover lägger sig som en ikon brevid den normala run pilen i Eclipse och denna trycker man på för att utvärdera koden. Clover använder sig av Source code instrumentation. När man startar Clover så dyker det upp i vyn, det första man ser är hur mycket av koden som körs i procent och även lika stor del är färgat grön på rektangeln (resten är rött) brevid procentsatsen. Man får även upp en liten ruta som visar hur många test som har körts, hur många som har lyckats, hur många paket/klasser som testats och mycket mer information. Den visar även komplexitet av koden brevid procentsatsen som är testat. Förutom denna vy kan man få upp många fler vyer och funktioner genom att klicka på den lilla panelen med massa konstigt utformade knappar som man ser uppe till höger i vyn. Vi undersökte inte alla dessa, då det var svårt att förstå vad knapparna visade och sedan var

11 programmet väldigt komplex och vi ville inte riskera stänga av någon regel. Vi hittade ett filter som kunde filtrera ut olika typer av fel och det var väldigt användbart då man fick stora mängder av fel i Clover. En funktion som gjorde oss förvirrade var funktionen Test contributions, där det plötsligt försvann saker och sedan poppade de upp igen utan att man gjorde något med datorn/verktyget. Man skulle behöva mycket tid för att sätt in sig och förstå alla funktioner och kunna använda programmet fullt ut. Programmet visar hur många av testfallen som har gått igenom, likt det man får ut från JUnit. Men en bättre funktion som Clover hade var ett Dashboard där man kunde få en väldig bra översikt av projeket. Clover kollar också så att testerna har gått igenom alla möjliga grenar, skulle det inte ha skett så rapporterar programmet detta, men färgar även källkoden gul istället för grön som betyder delvis testad respektive fullt testad och skulle koden inte alls testas så färgas den röd. När vi provade programmet så orsakade det oss stora problem. Efter att vi hade kört programmet med JaCoCO så provade vi med Clover och den visade ca 1000 fler instruktioner än JaCoCo (som då hade 4000 instruktioner). Vi provade sedan JaCoCo igen och då hade det plötsligt instruktioner och efter en omstart av Eclipse hade det sjunkit till instruktioner. Först efter vi kastat vårt repo och avinstallerat Clover och hämtat ut repot igen så hade JaCoCo 4000 instruktioner igen. Troligtvis uppstår problemet när Clover lägger in sina testinstruktioner innan kompilering ( source code instrumentation ) vilket generarar felaktiga analyser för JaCoCo som använder sig av On the fly byte code instrumentation. Vektyget testar följande: Hur stor del av koden som är testad Att alla möjliga fall i en metod är testat Färgkodar källkoden om den är testad (grön), delvis testad (gul) och inte testad (röd) Optimerar tester CodePro Analytix CodePro har även stöd för analys av test coverage som använder sig av byte code instrumentation. Som förklarats ovan (under rubriken Code smells) så visas en ny knapp i menyn vid namn CodePro efter installation. Under knappen View som då visas kan man välja Code Coverage. Denna vyn är till för att man ska kunna visa projektets code coverage, dock finns ingen knapp där man kan lägga till vilket projekt som ska analyseras. För att undersöka code coverage ska man istället kunna högerklicka på en main klass för att sedan där välja CodePro tools Run Code Coverage. När vi gör detta misslyckas analysen och flera exceptions visas i vyn. Utifrån våra undersökningar fungerar därför inte code coverage i CodePro Analytix i den utvecklingsmiljö vi hade tillgång till.

12 CodePro kan även automatiskt generera test. Detta är dock inget vi är intresserade av i detta projekt och vi har därför valt att inte undersöka detta djupare. En stor del av projektet är att de studerande ska bli bättre på att programmera och skriva test. En annan funktion som CodePro även har är att man automatiskt kan generera rapporter på hur projektets code coverage ser ut. Rapporterna kan genereras som HTML, text eller XML. Vektyget testar (ska testa) följande: Hur stor del av koden som är testad Historik för gammal test coverage Färgkodar källkoden om den är testad (grön), delvis testad (gul) och inte testad (röd) Vi valde JaCoCo med följande motiveringar JaCoCo är enkelt att installera, verktygets fyra olika analysmetoder är uppdelade i fyra olika flikar och blir således enkelt att överskåda. Förutom att Clover gjorde så att JaCoCo betedde sig konstig även när de inte kördes parallellt blev snabbt en avgörande faktor att inte välja det verktyget. Men Clover kräver även licens och det kostar, vilket vi inte hade någon budget för i detta projektet. Vi hade problem med att få Code Pro att fungera ordentligt och det gjorde att vi själva inte kunde analysera programmet tillräckligt egentligen. Dock måste verktyget fungera på de datorer vi ska använda och när de inte gjorde det så uteslöt vi det verktyget. D et är dock fullt möjligt att verktyget fungerar bättre på någon annan version eller operativsystem. 5 Resultat Test coverage under projektets gång (analyserat med JaCoCo) : Resultat efter första labben 64% (1139 av 1781 instruktioner var testade) Då vi inte hade GUI tester fick vi relativt låg test coverage. Vi lät därför två personer göra en spike på GUI testning till iteration 2. Resultat efter andra labben 85,6% (3421 av 3984 instruktioner var testade) GUI testning höjde resultatet ordentligt och det skrevs även mer testfall under denna iteration. Vi provade att köra Test Driven Development (TDD) denna gången, vilket vi uppmanade att följa i kommande iterationer.

13 Resultat efter tredje labben 86,9% (4980 av 5731 instruktioner var testade) I slutet av iterationen gav vi de utvecklare som var klara med sina stories i uppgift att skriva testfall och öka projektets test coverage. Resultat efter fjärde labben 89,6% (6264 av 6989 instruktioner var testade) Till denna iteration hade vi en spike som gick ut på att skriva testfall som även testade grenar i try catch satser vilket inte kördes tidigare. Detta höjde projektets test coverage ett par procent. Teamet hade stora problem med beroende på varvlopp som inte blev klart. Resultat efter femte labben 84,8% (6733 av 7944 instruktioner var testade) En i teamet var sjuk och teamet lyckades bara producera 3 av 7 estimerade story points. Teamet gjorde även en stor refaktorisering denna iteration som de tyckte underlättade den framtida utvecklingen. Resultat efter sjätte labben 74,8 % (6507 av 8694 instruktioner var testade) Eftersom detta var den sista iterationen fokuserade de på att bli klara med stories och hade inte lika stort fokus på att skriva test. Hur utvecklarna upplevde de två valda verktygen: Svar enligt den utskickade enkäten efter sista iterationen finns i Appendix A. 6 Diskussion Vi valde det två analysverktygen JaCoCo och JDeodorant främst eftersom då de är enkla att installera, snabba att köra och lätta att använda. Dessa faktorer ansåg vi vara mycket viktiga i vårt projekt då det har relativt kort livlängd och utvecklarna har ingen tidigare erfarenhet från liknande utveckling. I ett större projekt där man kan lägga mer tid på konfiguration och inlärning av verktyg skulle nog andra av de undersökta verktygen kunna vara användbara. Särskilt i början under projektet hade vi lite koll på teamets kanban board. Innan de flyttade över en story från implementing till done frågade vi alltid om de verkligen hade kört JDeodorant och JaCoCo. Flera gånger fick de då låta storyn stå kvar under implementing och gå tillbaks till sina datorer. Innan de var tillbaks igen och på riktigt kunde flytta över storien till done tog ofta bara fem till tio minuter men någon gång tog det upp till över en timme. Vi vet inte exakt vad det paret då åtgärdade men de hittade förmodligen mycket otestad kod och en del bad smells som skulle kunnat komma ut till den färdiga programvaran om vi inte använt oss av de två analysverktygen som vårt team använde oss av.

14 När vi såg det låga test coverage resultatet på 64% efter långlabb 1, så analyserade vi vilken del av koden som var testad och vilken del som var mindre testad. De klasser som var sämst testat procentuellt var GUI klasserna, därav planerade vi in en GUI test spike för två personer till långlabb 2 och då blev resultatet 85.9%, vi tryckte även denna gången mer på tester och när gruppen som utvecklade i samma rum berättade att de hade 95% test coverage så blev vår grupp mer sporrade att skriva fler testfall. På slutet av iteration 3 hade ett par inget att göra då det inte fanns fler stories som kunde påbörjas. Vi lät dem då skriva testfall för att kunna öka vår test coverage ytterligare. Med hjälp av JaCoCo kunde utvecklarna se vilka klasser som hade lägst test coverage och fokuserade på att öka test coverage för den koden. Fjärde långlabben märkte vi att utvecklarna inte hade riktigt samma ambition som tidigare och fick inte riktigt lika mycket gjort som de föregående iterationerna. Vi tog upp detta på följande planeringsmöte och det visade sig bero på att systemets design var väldigt stel vilket gjorde det svårt att lägga till annan funktionalitet. En orsak var även att många stories som skulle implementeras berodde på en annan specifik story som tog mycket längre tid än estimerat. Under femte långlabben gjorde teamet en stor refaktorisering i en sido branch som sedan integrerades till huvud branchen, för att underlätta framtid utveckling. Refaktoriseringen gjordes inte som en story, utan var tänkt att fixas snabbt då fyra utvecklare hade det som refaktoriserings spike till långlabben. Sjätte långlabben var sista iterationen och team fokuserade på att skriva klart så många stories som möjligt och hade mindre fokus på att skriva tester. De visste dessutom att de inte skulle arbeta vidare på projektet efter denna iterationen, så de prioriterade inte att skriva tester. När teamet var tvungna att utföra dessa större refaktoriseringar visade sig vår relativt höga test coverage vara hjälpsam. Om någon råkade ändra i koden som gjorde att den uppförde sig annorlunda visades sig detta direkt i testerna. Under projektets gång har vi hela tiden försökt hålla så hög test coverage som möjligt på systemet. Något vi också förklarat för teamet är dock att det även ska vara hög kvalité på testerna. Kämpar man endast för att få så hög test coverage som möjligt finns risken att man skriver dåliga tester som i själva verket inte testar något utan bara låter koden köras. Så i slutändan är det inte vilken procentsats test coverage man har som är viktig, utan testerna ska fungera som ett hjälpmedel för att kunna utveckla en så bra och stabil programvara som möjligt.

15 Vår förhoppning var att systemet inte skulle innehålla för många olika grenar. Det är bra att man kollar att man får in rätt värde, men det blir till en dyr kostnad. Det är viktigare att man skriver bra kod och man bör försöka undvika if satser som endast kollar att värdet är rätt i t.ex. input till GUI. Utvecklarna var ombedda att köra JDeodorant och JaCoCo efter de hade implementerat klart en story för att undvika bad smells och ha högt test coverage. Dock ser vi i vår enkät att långt ifrån alla använde verktygen efter varje story, det är främst JDeodorant som utvecklarna tycker fungerar dåligt och ger dåliga förslag. JaCoCo var utvecklarna mer nöjda med och den hjälper bara till att visa vilken kod som är testad och vad som har missats och har använts i större utsträckning. Man får ett konkret resultat av JaCoCo som är lättare att mäta jämfört med JDeodorants förslag och kvalitén den anmärker på. Vi hade som sagt målsättning att ha minst 90% i test coverage. Av enkätresultaten tyckte utvecklarna att det var en rätt rimligt målsättning. Dock så ser vi att vi aldrig nådde upp till 90% i slutet av några långlabbar, men dock stundtals under långlabbarna. Under felkällor diskuterar vi det resultatet närmare. Om man kollar på resultatet från enkäterna om hur utvecklarna upplevde att använda JDeodorant och JaCoCo (se Appendix A) så var de neutralt inställda till JDeodorant och överlag positiva till JaCoCo. Så verktyget JDeodorant fungerade tillfredsställande, men var inte till någon större hjälp. JaCoCo var mer lättanvänt och utvecklarna kände också att det bidrog mer till deras arbete. När vi diskuterade med utvecklarna om JDeodorant så uttryckte de att JDeodorant var kryptiskt, utskrifterna hade ingen relevant information, klagar på skumma saker, klagade på lite för mycket som som inte behövde användas och någon trodde att det skulle vara mer användabart om man hade större ambitioner. Utvecklarna tyckte att JaCoCo var intuitivt med färgning av koden i den utsträckning den testas, skönt att den kollade vad som testades så att man slapp hålla koll på det själv, bra med GUI som visar hur stor del av klasser och metoder som testades och dåligt att den inte tog hänsyn till catch i exceptions. Från resultaten från vår enkätundersökning så ser vi att nästan alla utvecklare tror att de kommer använda sig utav JaCoCo i framtida projekt, medans nästan ingen utvecklare tror att de kommer använda sig av JDeodorant i framtida projekt.

16 6.1 Felkällor Eftersom inte alla i teamet följer TDD till fullo så är en story inte helt testar förrän den verkligen är done done. Våra mätningar av test coverage som utfördes efter varje iteration kan därför vara lite missvisande eftersom att en del stories i forfarande låg under implementing. Dessutom beräknas test coverage även av testfilerna vilket kanske egentligen är ointressant och missvisande. 7 Slutsats JaCoCo fungerade bra för våra utvecklare och utvecklarna kände att de hade stor nytta av den höga test coverage när de refaktoriserade koden. Så valet av JaCoCo för våra utvecklare verkar har varit ett bra val och de uttryckte att de var tillräckligt och inte för komplext för detta projektet. JDeodorant fungerade okej, dock uttryckte utvecklarna att de klagade lite för mycket på onödiga delar av koden och att den inte gav någon bra förklaring. De andra programmen vi valde mellan gav många fler utslag och var mer komplexa och det hade nog passat utvecklarna sämre i detta projekt. Vi tror inte att man ska utesluta ett verktyg för bad smells som JDeodorant på liknande projekt, men vi tror att man skulle kunna köra verktyget mindre ofta och det hade varit fördelaktigt om man kunde ignorera fel som verktyget anmärkte på som inte var fel enligt utvecklarna. Det är svårt att dra större slutsatser hur väl verktygen har påverkat teamets framgångar, vi skulle behöva flera kontrollgrupper som utvecklar utan verktygen och med samma förutsättningar som vårt team. De andra team vi jämförde vårt resultat mot (inte presenterat i denna rapporten), bedrev egna djupstudier och de påverkade troligtvis deras resultat och därför kan vi inte jämföra resultaten mot varandra.

17 8 Källförteckning 8.1 Referenser [1] Francesca Arcelli, Fontanaa Pietro, Braionea Marco, ZanoniaAutomatic Detection of bad smells in code: An experimental assessment [2] Olivier Gaudin Bridging Internal and External Software Quality with Sonar and JaCoCo sonar jacoco [3] Usman Mansoor, Marouane Kessentini, Slim Bechikh, Kalyanmoy Deb Code Smells Detection using Good and Bad Software Design Examples [ 4] Sneha Shelke, Sangeeta Nagpure The Study of Various Code Coverage Tools 1/IJCTT V13P110.pdf [5] Qian Yang, J. Jenny Li, David M. Weissa A Survey of Coverage Based Testing Tools [6] David Jönsson Detecting code smells in educational software Källor JDeodorant PMD CodePro dev tools/codepro/doc/ JaCoCo Stephen H. Edwards and Zalia Shams Comparing Test Quality Measures for Assessing Student Written Tests

18 A. M. R. Vincenzi, W. E. Wong, M. E. Delamaro, J. C. Maldonado JaBUTi: A Coverage Analysis Tool for Java Programs et al 2003.pdf Brittany Johnson Novice Understanding of Program Analysis Tool Notifications Emil Einarsson Analysverktyg för kod och test Peter Seimar Verktyg för statisk kodanalys

19 9 Appendix A

20

21

22

Verktyget FindBugs. Djupstudie i kursen EDA 270 Coachning av programvaruteam. Christofer Bach dt05cb6 Daniel Nilsson dt05dn4. Lunds Tekniska Högskola

Verktyget FindBugs. Djupstudie i kursen EDA 270 Coachning av programvaruteam. Christofer Bach dt05cb6 Daniel Nilsson dt05dn4. Lunds Tekniska Högskola Verktyget FindBugs Djupstudie i kursen EDA 270 Coachning av programvaruteam Christofer Bach dt05cb6 Daniel Nilsson dt05dn4 Lunds Tekniska Högskola 15 feb 08 1. Sammanfattning Denna djupstudie kommer att

Läs mer

Verktyg och Utvecklingsmiljö. Jochim von Hacht

Verktyg och Utvecklingsmiljö. Jochim von Hacht Verktyg och Utvecklingsmiljö Jochim von Hacht Verktyg Modern programutveckling innebär att man måste behärska ett antal verktyg Editorer Kompilatorer Avlusare (debugger) Versionhantering (kommer i projektkurs)

Läs mer

F9 del B Organisatoriskt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson Datavetenskap, LTH

F9 del B Organisatoriskt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson Datavetenskap, LTH F9 del B Organisatoriskt EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson Datavetenskap, LTH 1 Projektet - moment Projektstartsmöte 6 Iterationer (en per vecka) - 10-12 team - 12-14 personer

Läs mer

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse Verktyg och Utvecklingsmiljö Föreläsning 2 Eclipse Verktyg Modern programutveckling innebär att man måste behärska ett antal verktyg. Editorer Kompilatorer Avlusare(debugger) Versionshantering(kommer i

Läs mer

SLUTRAPPORT: TEXAS HOLDEM 4 FRIENDS

SLUTRAPPORT: TEXAS HOLDEM 4 FRIENDS SLUTRAPPORT: TEXAS HOLDEM 4 FRIENDS Individuellt Mjukvaruutvecklingsprojekt (Utvecklare av digitala tjänster) Den 1 juni 2011 ABSTRAKT Rapporten tar upp positiva och negativa erfarenheter som jag erhållit

Läs mer

Djupstudie Verktyg för att förebygga problem i källkod. Anders Forslund Anders Lund

Djupstudie Verktyg för att förebygga problem i källkod. Anders Forslund Anders Lund Djupstudie Verktyg för att förebygga problem i källkod Anders Forslund (d04afr@student.lth.se) Anders Lund (et05al1@student.lth.se) 2 mars 2010 Sammanfattning Då kodningsstandard ej hålls så blir ofta

Läs mer

Eclipse. Kort genomgång

Eclipse. Kort genomgång Eclipse Kort genomgång Installation för den som vill ha Eclipse på sin egen maskin Du behöver först och främst ett Java Development Kit (JDK). Om du inte har något, installera JDK 7.0 från http://www.oracle.com/technetwork/java/javase/downloads/

Läs mer

Verktyg för statisk kodanalys

Verktyg för statisk kodanalys Verktyg för statisk kodanalys Av: Peter Seimar, adi09pse 4 mars 2013 Att hitta fel, bad smells och brister i en stor kodbas kan vara både svårt och tidsödande. För att hjälpa till med det arbetet nns en

Läs mer

Filhanterare med AngularJS

Filhanterare med AngularJS Filhanterare med AngularJS Författare: Filip Johansson Peter Emilsson Oskar Georgsson Christian Nilsson Datum: 2014-03-26 1 Sammanfattning Filhanterare med AngularJS är en filhanterare skapad för Sigma

Läs mer

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDI02 Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Verifikation, Validering och Testning XP Extreme Programming Vad är ett fel? I engelskan

Läs mer

NetBeans 5.5. Avsikt. Projektfönster

NetBeans 5.5. Avsikt. Projektfönster NetBeans 5.5 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till

Läs mer

Så här byter du från Unifaun WebOrder (UWO) till Unifaun OnlineConnect (UOCT)

Så här byter du från Unifaun WebOrder (UWO) till Unifaun OnlineConnect (UOCT) Så här byter du från Unifaun WebOrder (UWO) till Unifaun OnlineConnect (UOCT) För att genomföra migrationen till UOCT bör ditt konto ha det nya utskriftssystemet Unifaun OnlinePrinter (UOP) aktiverat.

Läs mer

Petter Berglund. Sammanfattning

Petter Berglund. Sammanfattning EDA270 - Coaching av programvaruteam Verktyg för kodanalys Petter Berglund D05, Lunds Tekniska Högskola dt05pb2@student.lth.se 2008-02-10 Sammanfattning Verktyg för kodanalys blir allt vanligare i programvaruutvecklingsprojekt

Läs mer

Kritik av Extrem Programmering

Kritik av Extrem Programmering Kritik av Extrem Programmering Markus Borggren d01mbo@efd.lth.se Martin Persson d01mp@efd.lth.se D01, Lunds Tekniska Högskola 15 februari, 2004 Abstract I denna djupstudie kommer vi att försöka, på ett

Läs mer

Proj-Iteration 5B. Plan för återstående iterationer

Proj-Iteration 5B. Plan för återstående iterationer Proj-Iteration 5B PVG/Coaching Boris Magnusson Datavetenskap LTH PVG/Coach 2009. Proj-Iter5B : 1 Plan för återstående iterationer Förutom att arbeta vidare på stories skall release göras både under iteration

Läs mer

Versionshantering. Jan Erik Moström

Versionshantering. Jan Erik Moström Versionshantering Jan Erik Moström Johan Eliasson Versionssystem Gjorda för att användas av en eller flera personer på en eller flera platser, exempelvis: För en ensam användare som jobbar med ett projekt

Läs mer

Instruktion till. PigWin PocketPigs. Del 1 - Installation 2008-07-10

Instruktion till. PigWin PocketPigs. Del 1 - Installation 2008-07-10 Instruktion till PigWin PocketPigs Del 1 - Installation 2008-07-10 INNEHÅLL Installation...3 Förberedelser - pocket...3 Förberedelser - PC...3 PocketPigs...4 Pocket PC nr. 2...5 Installation av AgroSync...6

Läs mer

NetBeans 7. Avsikt. Projektfönster

NetBeans 7. Avsikt. Projektfönster NetBeans 7 Avsikt Att bekanta dig med NetBeans programmeringsmiljö, dvs att med hjälp av NetBeans 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till

Läs mer

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället

Läs mer

1

1 www.itpedagogeek.se 1 Innehåll INNAN DU KÖR IGÅNG... 3 DET HÄR ÄR KLASSANTECKNINGSBOKEN... 3 ATT SPARA I ONENOTE... 3 MENYERNA... 3 ANTECKNINGSBOK FÖR KLASSEN... 4 STRUKTUR... 4 BYGG UPP DIN KLASSANTECKNINGSBOK...

Läs mer

Manuell installation av SQL Server 2008 R2 Express för SSF Timing

Manuell installation av SQL Server 2008 R2 Express för SSF Timing Manuell installation av SQL Server 2008 R2 Express för SSF Timing Innehåll 1. Metoder att installera...1 2. Förutsättningar...2 DotNet Framework 3.5...2 MSI Installer 4.5...2 3. Hämta SQL Server 2008 R2

Läs mer

A ToolGuide for Eclipse: En fördjupning i några av verktygen i Eclipse och hur de underlättar XP s practices

A ToolGuide for Eclipse: En fördjupning i några av verktygen i Eclipse och hur de underlättar XP s practices A ToolGuide for Eclipse: En fördjupning i några av verktygen i Eclipse och hur de underlättar XP s practices Mattias Jarheden och Thomas Forsström Sammanfattning Denna djupstudie försöker ge en inblick

Läs mer

TES Mobil. Användarmanual. Användarmanual TES Mobil Dok.nr. 32-019-03-02 v8

TES Mobil. Användarmanual. Användarmanual TES Mobil Dok.nr. 32-019-03-02 v8 1 TES Mobil Användarmanual 2 Innehållsförteckning 1 Introduktion... 3 1.1 Vad kan man göra med TES Mobil?... 3 1.2 Vad är en RFID-tag?... 3 1.3 Olika hantering på olika mobiltelefoner... 3 1.4 Rekommendationer

Läs mer

Configuration testing Why? Vad det är tänkt att koden ska göra. Performance testing Kommentarer Skriva om koden som kommentar

Configuration testing Why? Vad det är tänkt att koden ska göra. Performance testing Kommentarer Skriva om koden som kommentar Skapa testfall Testing Köra testen Hitta fel Inspections and reviews Verifiera resultatet Formal methods Static analysis Completeness Verifiering Kvalitet Maintainability Validering Traceability Fault

Läs mer

Proj-Iteration1. Arkitektur alt. 1

Proj-Iteration1. Arkitektur alt. 1 Proj-Iteration1 PVG/Coaching Boris Magnusson Datavetenskap LTH Proj-Iter1-1 Registrering Registrering Arkitektur alt. 1 Personuppgifter Starttid Sorterare Måltid Efterbehandling Resultat Tre program som

Läs mer

Automatisk generering av enhetstester

Automatisk generering av enhetstester Automatisk generering av enhetstester Av Christoffer Stengren 05/03-2013 Innehållsförteckning Abstrakt...3 1. Introduktion...3 2. PVG projekt:...4 3. Vad finns det för verktyg?...4 4.Hur fungerar verktygen?...4

Läs mer

Väl installerat får du en ikon som du förhoppningsvis också hittar Så du klickar på den och startar upp programmet:

Väl installerat får du en ikon som du förhoppningsvis också hittar Så du klickar på den och startar upp programmet: Privat dator Ruter rapportering. För att kunna rapportera en tävling till Svensk Bridge behövs en s.k. FTP-klient. I de flesta fall kan en sådan sättas upp med Utforskaren som medföljer alla varianter

Läs mer

Gränssnitt för FakeGranska. Lars Mattsson

Gränssnitt för FakeGranska. Lars Mattsson Gränssnitt för FakeGranska av Lars Mattsson (larsmatt@kth.se) Innehållsförteckning 1 Introduktion...3 2 Genomförande:...3 3 Användning...5 4 Kända buggar:...6 5 Källförteckning...6 2 1 Introduktion Taken

Läs mer

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas. Eclipse Avsikt Att bekanta dig med Eclipse programmeringsmiljö, dvs att med hjälp av Eclipse 1. skapa ett nytt projekt 2. skriva in källkod (sparas som.java-fil) 3. kompilera (översätta) koden till byte-kod

Läs mer

PM 2007-12-05 Dokumentation

PM 2007-12-05 Dokumentation Installation av Cadcorp SIS Installerat program innehåller dessa moduler: Map Browser Map Reader Map Viewer Map Manager (ingår i Aveny Karta Manager) Map Editor (ingår i Aveny Karta Editor) Map Modeller

Läs mer

Editering, Kompilering och Exekvering av Javaprogram

Editering, Kompilering och Exekvering av Javaprogram UMEÅ UNIVERSITET Institutionen för informatik B.1, Programmeringens grunder, 5 poäng Editering, Kompilering och Exekvering av Javaprogram Introduktion Syftet med kursmomentet Programmeringens grunder (B.1)

Läs mer

Elevernas uppfattningar om alltmer digitaliserad undervisning

Elevernas uppfattningar om alltmer digitaliserad undervisning Resultat Elevernas uppfattningar om alltmer digitaliserad undervisning Fråga 1 Mycket inspirerande (6) till mycket tråkigt (1) att arbeta med etologisidan Uppfattas som mycket inspirerande eller inspirerande

Läs mer

Djupstudie Code smells / Refaktorisering. Martin Larsson dt08ml5 Stefan Johansson, dt08sj7

Djupstudie Code smells / Refaktorisering. Martin Larsson dt08ml5 Stefan Johansson, dt08sj7 Djupstudie Code smells / Refaktorisering Martin Larsson dt08ml5 Stefan Johansson, dt08sj7 27 februari 2012 Innehåll 1 Inledning 1 2 Bakgrund 1 2.1 extreme programming....................... 1 2.2 Programvaruutveckling

Läs mer

Introduktion till programmering med hjälp av Lego Mindstorm

Introduktion till programmering med hjälp av Lego Mindstorm Kungliga Tekniska Högskolan Introduktion till programmering med hjälp av Lego Mindstorm Laborationsrapport gällande programmering inom NXC Simon Jansson 31 08 2014 simonjan@kth.se Introduktionskurs i datateknik

Läs mer

Användarmanual Onepix MDX Installer 1.1 SVENSK

Användarmanual Onepix MDX Installer 1.1 SVENSK Användarmanual Onepix MDX Installer 1.1 SVENSK 2 Onepix1 1_IFU_MDX Installer 1 0_SE_003 Viktig information... 3 Systemkrav... 3 Om Onepix MDX Installer... 3 Installation av MDX-3 sensordrivrutin... 3 Installation

Läs mer

Coaching av programvaruteam EDA270, djupstudie: Praktisk SCM användning i XP-projekt

Coaching av programvaruteam EDA270, djupstudie: Praktisk SCM användning i XP-projekt Coaching av programvaruteam EDA270, djupstudie: Praktisk SCM användning i XP-projekt Martin Malek Anders Hellström Lunds Tekniska Högskola 22 februari 2005 Version 1.0 Sammanfattning Som utgångspunkt för

Läs mer

Malmö högskola 2007/2008 Teknik och samhälle

Malmö högskola 2007/2008 Teknik och samhälle Laboration 12 Avsikten med denna laboration är att du ska göra några grafiska program. Börja med att skapa paketet laboration 12. Grundläggande uppgift Uppgift 12a Uppgiften går ut på att göra en enkel

Läs mer

Scrum + XP samt konsekvensanalys

Scrum + XP samt konsekvensanalys Scrum + XP samt konsekvensanalys Daniel Nimren dt05dn8 Douglas Frisk dt05df1 Dept. of Computer Science, Lunds Tekniska Högskola, Sweden {dt05dn8 dt05df1}@student.lth.se 1 mars 2010 Sammanfattning Denna

Läs mer

Agil programutveckling

Agil programutveckling Agil programutveckling Pontus Evertsson D00, Lunds Tekniska Högskola d00pe@efd.lth.se Anna Jennerheim D00, Lunds Tekniska Högskola d00aj@efd.lth.se 2003-05-15 1 1. Inledning 3 2. Extreme Programming (XP)

Läs mer

Mina listor. En Android-applikation. Rickard Karlsson 2013-06-09. Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.

Mina listor. En Android-applikation. Rickard Karlsson 2013-06-09. Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu. Mina listor En Android-applikation Rickard Karlsson 2013-06-09 Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.se Innehållsförteckning 2. Innehållsförteckning 3. Abstrakt 4. Inledning/bakgrund

Läs mer

Kodanalys med hjälp utav SemmleCode

Kodanalys med hjälp utav SemmleCode Kodanalys med hjälp utav SemmleCode Henrik Andersson, D05 (dt05ha1@student.lth.se) Erik Mossberg, D01 (d01em@student.lth.se) 18 Februari 2008 Sammanfattning Avsikten med denna rapport är att läsaren ska

Läs mer

Quick start manual. Smart-House 2015-04-20. Rev 1.1

Quick start manual. Smart-House 2015-04-20. Rev 1.1 Quick start manual Smart-House 2015-04-20 Rev 1.1 Innehåll Förord... 3 Programvara... 4 Hämta programvara... 4 PC krav... 4 Dokumentation... 5 Manualer... 5 Projektdokumentation... 5 Smart-Dupline... 5

Läs mer

Djupstudie - Datorbaserade system för tracking

Djupstudie - Datorbaserade system för tracking Djupstudie - Datorbaserade system för tracking Torbjörn Lundberg, dt05tl3 Joakim Svensson, dt05js8 18 februari 2008 Sammanfattning Tracking är ett hjälpmedel inom projekt för att hålla reda på information

Läs mer

Användarmanual för Pagero Kryptering

Användarmanual för Pagero Kryptering för Pagero Kryptering Version 1.1-1 - Allmänt... 3 Kryptering av filer... 3 Dekryptering av filer... 3 Installation... 4 Inställningar... 5 Skapa nycklar... 6 Lägg till kataloger för övervakning... 6 Lägg

Läs mer

Kodkomplexitet i agil utveckling. Axel Nilsson Svegard, Patrick Fogwall EDA270 - Djupstudie 2 mars 2010

Kodkomplexitet i agil utveckling. Axel Nilsson Svegard, Patrick Fogwall EDA270 - Djupstudie 2 mars 2010 Kodkomplexitet i agil utveckling Axel Nilsson Svegard, Patrick Fogwall EDA270 - Djupstudie 2 mars 2010 Sammanfattning Denna studie avser att undersöka hur uppmätning av kodkomplexitet kan användas för

Läs mer

Manual Mjukvara Allvis Software (SV )

Manual Mjukvara Allvis Software (SV ) ALLVIS Manual Mjukvara 1 Allvis Manual Mjukvara Inledning Denna manual innehåller instruktioner som hjälper dig komma igång med Allvis mjukvara. Fler dokument och videos finns tillgängligt på hemsidan

Läs mer

TIPS & TRIX I ADOBE BRIDGE

TIPS & TRIX I ADOBE BRIDGE 2014-02 TIPS & TRIX I ADOBE BRIDGE SKAPA OCH ANVÄND METADATAMALLAR För att skapa en metadatamall, markera en bild (1) och fyll i den information du vill spara in din mall. I exemplet sparas kontaktuppgifter

Läs mer

INSTÄLLNINGAR FÖR IRONCADS 2D-RITNING

INSTÄLLNINGAR FÖR IRONCADS 2D-RITNING INSTÄLLNINGAR FÖR IRONCADS 2D-RITNING Innehållsförteckning Justera storlek och antalet decimaler för måttsättning...2 Ändra färg på ritningselement...4 Justera färg för ett enskilt element genom att byta

Läs mer

BaraTrav Prenumeration och Installation Version 1.3.4

BaraTrav Prenumeration och Installation Version 1.3.4 BaraTrav Prenumeration och Installation Version 1.3.4 Prenumeration För att kunna använda BaraTrav behöver du en prenumeration. Den skapar du på BaraTrav.se. Du behöver registrera namn och adressuppgifter.

Läs mer

Resultat och bedömning tips för lärare

Resultat och bedömning tips för lärare Resultat och bedömning tips för lärare Denna manual gör nedslag i olika delar av Kursadministration och resultat i Learn och ger exempel på inställningar och förändringar som kan förenkla arbetet för läraren

Läs mer

Datorlaboration 0, Programmering i C++ (EDA623)

Datorlaboration 0, Programmering i C++ (EDA623) LUNDS TEKNISKA HÖGSKOLA Programmering i C++ Institutionen för datavetenskap HT 2013 Datorlaboration 0, Programmering i C++ (EDA623) Under den inledande datorlaborationen får du träna på de grundläggande

Läs mer

www.pts.se/archive/documents/ SE/Rapport_tillganglig_webb_2004_14.pdf 2 webzone.k3.mah.se/k99ac3hl/helenalackmagisterkogniton2003.

www.pts.se/archive/documents/ SE/Rapport_tillganglig_webb_2004_14.pdf 2 webzone.k3.mah.se/k99ac3hl/helenalackmagisterkogniton2003. 2 3 1 Är samhällsviktiga tjänster på Internet tillgängliga för personer med funktionshinder? PTS-ER-2004:14, ISSN 1650-9862. www.pts.se/archive/documents/ SE/Rapport_tillganglig_webb_2004_14.pdf 2 webzone.k3.mah.se/k99ac3hl/helenalackmagisterkogniton2003.pdf

Läs mer

Programmering med NXC Lego Mindstorm

Programmering med NXC Lego Mindstorm KUNGLIGA TEKNISKA HÖGSKOLAN Programmering med NXC Lego Mindstorm INTRODUKTIONSKURS I DATATEKNIK (II1310), LABB Klawi@Kth.se Kasper Wikman 2013-08-27 Sammanfattning: Många har sedan lång tid tillbaka varit

Läs mer

Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2

Paneler - VCPXX.2. Programmeringsmanual för VCP-paneler. Revision 2 Paneler - VCPXX.2 Programmeringsmanual för VCP-paneler Revision 2 Innehållsförteckning Innehållsförteckning... 2 1 Symbolfiler för kommunikation via IndraLogic... 3 2 Uppsättning i IndraWorks... 6 3 Programmering

Läs mer

PP7Mobile User s Guide

PP7Mobile User s Guide PP7Mobile User s Guide PP7 Mobile är en del i PP7s produktserie och är beroende av PP7 Pro Desktop för att fungera. Modulen är optimerad för användning på mobiltelefon och/eller tablet. För användning

Läs mer

Länkade listor och automatisk testning

Länkade listor och automatisk testning 1 (6) Länkade listor och automatisk testning Algoritmer och datastrukturer Obligatorisk nr 3 Syfte Att ge träning i programmering av länkade listor på låg abstraktionsnivå med primitiv pekarmanipulering.

Läs mer

Skapa listor i Statuslistan

Skapa listor i Statuslistan Skapa listor i Statuslistan Innehåll Listor... 2 Skapa ny lista (exempel)... 4 Filter... 10 Klientuppgifter... 10 Moment på klienter... 11 Moment- och kontrollpunktstatus... 11 Momentansvar... 12 Kontrollpunktsansvar...

Läs mer

SNABBGUIDE för studenter windows. Utskriftshantering, Kopiering och Scanning

SNABBGUIDE för studenter windows. Utskriftshantering, Kopiering och Scanning SNABBGUIDE för studenter windows Utskriftshantering, Kopiering och Scanning Installation av klient på din privata dator Installation av klient För att kommunicera med utskriftssystemet behöver varje dator

Läs mer

MANUAL. FÖR ADMINISTRATION AV e TRUCK

MANUAL. FÖR ADMINISTRATION AV e TRUCK MANUAL FÖR ADMINISTRATION AV e TRUCK Innehåll Logga in... 3 Översikt... 4 Kurs...4 Register...4 Kurstillfällen... 5 Skapa kurstillfälle...5 Redigera kurstillfälle...5 Ta bort ett kurstillfälle...6 Bokningar...

Läs mer

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions Testdriven utveckling Magnus Jonsson Siemens Medical Solutions 2 Soarian Stort projekt, ca 400 personer i projektet Distribuerad utveckling i USA, Indien och Sverige Web baserat lösning med admin client

Läs mer

Cult of Code Quality

Cult of Code Quality Jakob Schyberg (d00jsc) 2005-02-13 Coaching av Programvaruteam Josef Granqvist (d00jgr) LTH Institutionen för Datavetenskap Cult of Code Quality Vad kan en coach göra? Denna djupstudie handlar om kodkvalitet.

Läs mer

med Office 365 i Dynamics NAV 2015

med Office 365 i Dynamics NAV 2015 Arbeta Arbeta med med Office 365 i Dynamics NAV 2015 Office 365 i Dynamics NAV 2015. - En guide för att enkelt komma igång Innehåll Kom igång med Office 365 i Dynamics NAV 2015... 1 Använd Word i Dynamics

Läs mer

Manual för banläggning i OCAD8 170706 IF ÅLAND

Manual för banläggning i OCAD8 170706 IF ÅLAND Manual för banläggning i OCAD8 170706 IF ÅLAND Alla filer och program vi behöver finns under katalogen c:/ocad8/. Kartorna vi använder som bakgrundsfiler finns under c:/ocad8/kartor/. De är sedan indelade

Läs mer

SCRUM. Marcus Bendtsen Institutionen för datavetenskap

SCRUM. Marcus Bendtsen Institutionen för datavetenskap SCRUM Marcus Bendtsen Institutionen för datavetenskap 2 Metodik Systematiskt tillvägagångssätt för att garantera utfallet Metodiken behöver passa kontexten och tillgängliga resurser Verifiering av metodiken

Läs mer

Installationsanvisningar. till IST Analys

Installationsanvisningar. till IST Analys Installationsanvisningar för IEklient till IST Analys 2 Med rätt säkerhetsinställningar i din webbläsare ska det vara enkelt att komma igång med IST analys. Allt ska då laddas hem och starta automatiskt

Läs mer

Handledning för Installation av etikettskrivare

Handledning för Installation av etikettskrivare Handledning för Installation av etikettskrivare Windows 7 Expert Systems 2011 Expert Systems kundtjänst: Senast Uppdaterad: 15-02-23 Exder Etikettskrivare Windows 7 Sida 2 av 23 Innehållsförteckning 1.

Läs mer

Design Collaboration Suite

Design Collaboration Suite Design Collaboration Suite 2012 IRONCAD IRONCAD DRAFT INOVATE NLM- Network License Manager LICENSAKTIVERINGSGUIDE Innehållsförteckning Viktig information innan installation 1 Installation av NLM- Network

Läs mer

Windows 10 systemverktyg

Windows 10 systemverktyg Windows 10 systemverktyg Version 2017 / www.utb.marber.se Sida 1 1 Systemverktyg 1.1 Energialternativ Ett energischema är systeminställningar som styr datorns energiförbrukning. Energischeman kan spara

Läs mer

Laboration: Whitebox- och blackboxtesting

Laboration: Whitebox- och blackboxtesting Tilda11 höstterminen 2011 Laboration: Whitebox- och blackboxtesting Mål med laborationen Du ska lära dig begreppen white-box testing och black-box testing Du ska öva dig på att konstruera testfall Du ska

Läs mer

Windows 10 systemverktyg

Windows 10 systemverktyg Windows 10 systemverktyg Version 2017 / www.utb.marber.se Sida 1 Innehållsförteckning 1 Systemverktyg... 3 1.1 Energialternativ... 3 1.2 Avinstallera program... 3 1.3 Skapa en återställningspunkt... 5

Läs mer

LabelLogic. Bruksanvisning. www.planglow.com info@planglow.com. Innehåll. Label Choices. Data Library. Print Centre. Design Centre

LabelLogic. Bruksanvisning. www.planglow.com info@planglow.com. Innehåll. Label Choices. Data Library. Print Centre. Design Centre www.planglow.com info@planglow.com Innehåll Label Choices Så här lägger du till en etikett Data Library Så här lägger du till smörgåsinformation Print Centre Så här skriver du ut etiketter Design Centre

Läs mer

Hemsida. Lathund för medlemsföreningar. Funktioner för medlemsföreningar på hemsidan. Syfte med medlemsföreningens sidor

Hemsida. Lathund för medlemsföreningar. Funktioner för medlemsföreningar på hemsidan. Syfte med medlemsföreningens sidor Hemsida Lathund för medlemsföreningar 2015 10 13 Funktioner för medlemsföreningar på hemsidan Varje medlemsförening har en egen sektion på scuf.se Styrelsen kan redigera sin medlemsförenings sidor, skriva

Läs mer

Snabbstartsguide. Verktygsfältet Snabbåtkomst Kommandona här är alltid synliga. Högerklicka på ett kommando om du vill lägga till det här.

Snabbstartsguide. Verktygsfältet Snabbåtkomst Kommandona här är alltid synliga. Högerklicka på ett kommando om du vill lägga till det här. Snabbstartsguide Microsoft Word 2013 ser annorlunda ut jämfört med tidigare versioner, så vi har skapat den här guiden så att du så snabbt som möjligt ska komma igång. Verktygsfältet Snabbåtkomst Kommandona

Läs mer

Ladda upp filer fra n PLC till PC

Ladda upp filer fra n PLC till PC Supportdokument Ladda upp filer fra n PLC till PC Synpunkter, felaktigheter, önskemål etc. för dokumentet meddelas Fil: Malthe_Suppo_Ladda upp filer från.docx Innehållsförteckning 1. Allmänt... 2 2. Installation

Läs mer

Installationsguide för FAR Komplett Offline 2.1.2

Installationsguide för FAR Komplett Offline 2.1.2 Installationsguide för FAR Komplett Offline 2.1.2 Denna guide gäller för installation av FAR Komplett Offline 2.1.2 på Windows XP, Windows Vista respektive Windows 7. Dialogrutorna kan skilja sig åt beroende

Läs mer

Hemsida. Lathund för medlemsföreningar. Funktioner för medlemsföreningar på hemsidan. Syfte med medlemsföreningens sidor

Hemsida. Lathund för medlemsföreningar. Funktioner för medlemsföreningar på hemsidan. Syfte med medlemsföreningens sidor Hemsida Lathund för medlemsföreningar 2016-12-07 Funktioner för medlemsföreningar på hemsidan Varje medlemsförening har en egen sektion på scuf.se Styrelsen kan redigera sin medlemsförenings sidor, skriva

Läs mer

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer. Informationsinfrastruktur 7.5 hp Mattias Nordlindh Inledning Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer. Dokumentet består av

Läs mer

Snabbguide till GC160203. Dessa delar ska finnas med i kartongen när du får din Craft Robo skärplotter. Kontrollera att så är fallet.

Snabbguide till GC160203. Dessa delar ska finnas med i kartongen när du får din Craft Robo skärplotter. Kontrollera att så är fallet. Snabbguide till GC160203 Dessa delar ska finnas med i kartongen när du får din Craft Robo skärplotter. Kontrollera att så är fallet. Delar som ska finnas i kartongen tillsammans med Craft ROBO skärplotter.

Läs mer

Administratörsrättigheter i Windows krävs för att genomföra installationen.

Administratörsrättigheter i Windows krävs för att genomföra installationen. CADCAM-it Toolbox 2011 Installationsanvisning - Installation - Licensregistrerting - Avinstallation 1. Installation Administratörsrättigheter i Windows krävs för att genomföra installationen. Avinstallera

Läs mer

Juni 2012. Manual. Mina anläggningar

Juni 2012. Manual. Mina anläggningar Juni 2012 Manual Mina anläggningar Ägare Leif Jougda Ansvariga personer Per Sandström Bengt Näsholm Leif Jougda Åke Sjöström Stefan Sandström Förslag och synpunkter skickas till Leif Jougda leif.jougda@skogsstyrelsen.se

Läs mer

Bli ett proffs på arkitekt.se

Bli ett proffs på arkitekt.se Bli ett proffs på arkitekt.se Innehåll 1 Välkommen 2 Logga in 3 Gränssnittet 4 Skapa ett inlägg 5 Publicera ett inlägg 6 Inlägg på din sida 7 Händelser (event och arrangemang) 8 Infoga bilder 9 Sammanfattning

Läs mer

Piff och Puffs Chatsystem

Piff och Puffs Chatsystem Lunds Tekniska Högskola Piff och Puffs Chatsystem EDA095, Nätverksprogrammering - Projektrapport Gruppnummer: 1 Gruppmedlemmar: Alves-Martins, Rebecka adi10ral@student.lu.se Bredberg, Frida adifbr@student.lu.se

Läs mer

Photo Story. Sara Eriksson IKT A, HT 2007

Photo Story. Sara Eriksson IKT A, HT 2007 Photo Story Mitt tips: Om du inte ser bilderna i manualen backa ett steg och spar filen. Öppna sedan den sparade filen. Då ser du bilderna. Med Photo Story kan du skapa bildberättelser, genom att sätta

Läs mer

Felsökning av mjukvara

Felsökning av mjukvara KUNGLIGA TEKNISKA HÖGSKOLAN Felsökning av mjukvara Programmering av en NXT-robot Max Kufa [03/08-13] mkufa@kth.se Introduktionskurs i datateknik (II1310) Sammanfattning Syftet med laborationen var att

Läs mer

Instruktioner för uppkoppling mot NyA Open

Instruktioner för uppkoppling mot NyA Open Magnus Björklund 2014-10-09 Sida 1 (16) Instruktioner för uppkoppling mot NyA Open ... 3... 4 Dokumentnummer Version Företag Magnus Björklund 2014-10-09 Sida 2 (16) Innehållsförteckning 1 Inledning...

Läs mer

13/02/2008. Handledning RoofCon Viewer

13/02/2008. Handledning RoofCon Viewer Handledning RoofCon Viewer Innehållsförteckning Handledning RoofCon Viewer... 1 Innehållsförteckning... 2 Installation... 3 Markera objekt... 3 Zoom... 3 Mät avstånd... 3 Verktygsfält och Ritalternativ...

Läs mer

Labrapport över Rumbokningssytemet Grupp:1

Labrapport över Rumbokningssytemet Grupp:1 Fakulteten för ekonomi, kommunikation, IT & data Labrapport över Rumbokningssytemet Grupp:1 Kurskod: DVGC18 Kursnamn: Software Engineering Inlämningsdatum: 2009 10 28 Scrummaster: Martin Blom Projektmedlemmar:

Läs mer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Designmönster Adapter, Factory, Iterator,

Läs mer

Installationsbeskrivning för CAB Service Platform med CABInstall

Installationsbeskrivning för CAB Service Platform med CABInstall Installationsbeskrivning för CAB Service Platform med CABInstall INLEDNING... 2 INSTALLATION... 3 AVANCERAD INSTALLATION... 10 YTTERLIGARE INFORMATION... 11 Proxy... 11 Sida 1 av 12 Inledning Denna beskrivning

Läs mer

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack 725G61 - Laboration 7 Implementation av ett API Johan Falkenjack December 13, 2013 1 Inledning Hittills i kursen har vi tittat på grundläggande programmering och grundläggande objektorientering. I den

Läs mer

Komma igång med Qlikview

Komma igång med Qlikview Denna instruktion är till dig som är ny i Qlikview och snabbt vill komma igång med grundläggande funktioner. Innehåll 1 Introduktion... 2 1.1 Behörighet... 2 1.2 Webbläsare... 2 2 Installation av Qlikview

Läs mer

LATHUND INSTALLATIONSANVISNINGAR PROJEKTSTRUKTUR 1 SAMMANFATTNING... 2 1.1 FUNKTIONER I INSTALLATIONSPAKET... 2 2 TEKNISK PLATTFORM...

LATHUND INSTALLATIONSANVISNINGAR PROJEKTSTRUKTUR 1 SAMMANFATTNING... 2 1.1 FUNKTIONER I INSTALLATIONSPAKET... 2 2 TEKNISK PLATTFORM... 2013-12-05 Version 1.3 INNEHÅLLSFÖRTECKNING 1 SAMMANFATTNING... 2 1.1 FUNKTIONER I INSTALLATIONSPAKET... 2 2 TEKNISK PLATTFORM... 3 3 INSTÄLLNINGAR OCH... 4 3.1 INSTÄLLNINGAR I INTERNET EXPLORER... 4 3.1.1

Läs mer

Innehåll. Inledning. Inställningar. Inledning Inställningar Kortkommandon Övriga inställningar Kommandofönstret Övrigt

Innehåll. Inledning. Inställningar. Inledning Inställningar Kortkommandon Övriga inställningar Kommandofönstret Övrigt Innehåll Inledning Inställningar Kortkommandon Övriga inställningar Kommandofönstret Övrigt Inledning Sammanfattning Kortkommando är en ersättning, eller iallafall ett komplement, till Windows inbyggda

Läs mer

TDDD26 Individuell projektrapport

TDDD26 Individuell projektrapport TDDD26 Individuell projektrapport Kort beskrivning av projektet Vi hade som projekt att utveckla en digital media servicer som skulle hjälpa filmentusiasten att organisera sitt filmbibliotek. Programmet

Läs mer

Användarmanual Pagero Connect 2.0

Användarmanual Pagero Connect 2.0 Användarmanual Pagero Connect 2.0 Innehåll 1. Grundläggande information... 3 1.1 Aktivera ditt Pagero Onlinekonto... 3 1.2 Ladda ner Pagero Connect 2.0... 3 1.3 Startsida... 4 1.4 Minimerad vy... 5 1.5

Läs mer

Nyttomaximering av spikes

Nyttomaximering av spikes Nyttomaximering av spikes Johan Hedin Sånemyr D11, LTH dat11jh1@student.lu.se Victor Shu-Ming Lam D11, LTH dat11vla@student.lu.se 2016-03-07 Sammanfattning Som projektledare av ett team programmerare så

Läs mer

D J U P S T U D I E I E D A S I M P L E C O D E A N D D E S I G N

D J U P S T U D I E I E D A S I M P L E C O D E A N D D E S I G N D J U P S T U D I E I E D A 2 7 0 S I M P L E C O D E A N D D E S I G N S. Marcus Jacobsson D03, Lunds Tekniska Högskola d03mj@efd.lth.se S. Magnus Weinberg D03, Lunds Tekniska Högskola d03mw@efd.lth.se

Läs mer

OBS! FÖRSÖK INTE INSTALLERA PROGRAMVARAN INNAN DU HAR LÄST DET HÄR DOKUMENTET.

OBS! FÖRSÖK INTE INSTALLERA PROGRAMVARAN INNAN DU HAR LÄST DET HÄR DOKUMENTET. INSITE INSTALLATIONSBULLETIN Sid 2: Installera INSITE Sid 7: Ta bort INSITE OBS! FÖRSÖK INTE INSTALLERA PROGRAMVARAN INNAN DU HAR LÄST DET HÄR DOKUMENTET. OM PROGRAMVARAN INSTALLERAS ELLER ANVÄNDS PÅ FELAKTIGT

Läs mer

Smartbudget handbok Sida 1 av 16

Smartbudget handbok Sida 1 av 16 Smartbudget handbok Sida 1 av 16 Introduktion Målet med Smartbudget är att det ska vara enkelt för alla att få koll på sin ekonomi oavsett kunskapsnivå och behov. Allt eftersom Smartbudget växer med funktioner

Läs mer

Innehåll. Förändringar i v5.3

Innehåll. Förändringar i v5.3 Innehåll Innehåll... 2 Allmän information... 3 DuoSTATION Manager... 3 Allmänt... 3 Ärenden... 3 Information... 3 Organisationer... 3 Debitering... 3 Utrustningar... 4 Inventering... 4 Metering... 4 IT

Läs mer