TDIU14 Föreläsning 3 - metoder Ola Leifler
Så, vad är ett BRA examensarbete? Examensarbete = projektresultat + skriftlig rapport En fungerande, intressant, välbeskriven tillämpning av teknik med tydligt visat värde utvärderat på ett trovärdigt sätt så andra ämnesexperter övertygas om att du gjort ett bra jobb
Så, vad är ett BRA examensarbete? Examensarbete = projektresultat + skriftlig rapport En trovärdig rapport, med bra fokus (snävt är bra) som besvarar de initiala frågorna och beskriver arbetsmetoden för att dra slutsatserna transparent och på vedertagna sätt
Början av exjobbet Evaluate algorithms to be used for image clustering Varför? Determine whether clustering algorithms can be used to detect activities in sets of images Hur? Find activities in sets of images
Stringens Lös ett riktigt problem En korrekt utförd lösning av ett irrelevant problem En korrekt utförd lösning av ett relevant problem Utvärdera din lösning En slumpmässig lösning till ett relevant problem Relevans
Disposition Varför ska jag ens läsa den här rapporten? Vad har du studerat i arbetet? Hur relaterar det till annat? Kan jag lita på dig? Vad har byggts? Vad är dina resultat? Hur kan vi förklara resultaten? Kan jag använda dina resultat i mitt arbete?
Disposition Sammanfattning Introduktion och frågeställningar Bakgrund och teori Metod Implementation Resultat Diskussion Slutsatser
Exjobbsprocesser Frågeställning Summa 1, min 1/x för varje del beroende på vad som är viktigt Litteratur/teori Domänanalys Design Implementation Utvärdering
Exjobbsprocesser Problem Vi vill säkerställa hög kodkvalitet Frågeställning Hur kan vi veta något om kodkvalitet? Litteratur/teori Domänanalys Design Implementation Hur definierar andra kodkvalitet? Hur har andra mätt det? Vilka problem har man på företaget? Vad går att mäta? Utformning av plattform för att korrelera kodmått med kvalitetsindikatorer Extrahera information om kodmått vs kvalitetsindikatorer Utvärdering Utför dataanalys för att säkerställa nytta
Exjobbsprocesser Problem Frågeställning Litteratur/teori Domänanalys Design Implementation Utvärdering Vi vill att fler ska använda våra webbtjänster Hur bygger man en användbar webbtjänst? Hur definierar andra användbarhet av webbtjänster? Hur mäter man det? Vilka existerande API:er finns, vilka behov av tjänster, vilka API:er? Dagboksstudie av designval och teknik, användbarhetsstudie av API:er Implementera API:er, extrahera information om processen, föreslå design Utför statistisk analys för att säkerställa nytta
Metoder för ingenjörer och forskare Ingenjörskonst Forskning Motivering Lösa ett problem Förstå Aktiviteter Utforma, implementera, verifiera Intervjuer, experiment, bevis,... Mål Nöjda kunder Ny/delad förståelse
Vad är skillnaden?
För att lösa ett problem behöver du förstå problemet För att verifiera din lösning, kan du behöva utföra experiment, intervjustudier eller bevis För att få nöjda kunder måste ni ha en delad uppfattning att problemet lösts på rätt sätt
Mål med olika metoder Kvalitativa metoder: etablera koncept, beskriva ett fenomen, hitta en vokabulär, bygga en modell Kvantitativa metoder: gör statistiska analyser, kvantifiera korrelationer,..
Human-Centered methods Intervjuer Enkäter Fokusgrupper/gruppintervjuer Observationer Talk-aloud sessions...
Metodval Vad vill du ta reda på mer om? Identifiera intressenterna (användare, kunder och beställare) Identifiera deras behov
Intervjuer Strukturerade, semistrukturerade? Gruppintervjuer, fokusgruppereller individuella intervjuer? Telefonintervjuer?
Använd öppna frågor som Vad tycker du om dina arbetsuppgifter? Vad tycker du om systemstödet? Aktivt lyssnande Spela in Planera i förväg och schemalägg!
Intervjuanalys Transkribera? Koda det som sagts?
Observationer Förstå kontexten Skriv vad du hör, ser, upplever Ta bilder Kombinera med intervju Be användarna att använda systemet
System Usability Scale (SUS)
Usability performance Task success measurement Time (time/task) Effectiveness (errors/task) Efficiency (operations/task) Learnability (performance change)
Fallstudie Undersöker fenomen i en verklig kontext, med flera olika informationskällor, använder företrädesvis kvalitativa metoder för att studera ett fenomen
Kvantitativa studier Använder statistiska analyser av empiriska data Randomisering of grupper Grupperas med avseende på förmodat påverkande faktorer
Faktorer Det som kan korrelera med (och möjligen orsaka) en effekt
How does SCRUM affect product quality as measured by the number of bugs?
How is code quality affected by the choice of programming language?
How understandable is a design document when creating procedural and OO design, based on good/bad requirements?
Experimentdesign Anta att vi har två olika decentraliserade algoritmer för att distribuera jobb på i ett kluster av maskiner: KOSO och KOSO*. KOSO tar ett jobb och skickar vidare nästa slumpmässigt till noden till höger eller vänster. KOSO* fungerar som KOSO, men tar hänsyn till kölängden på grannoderna.
Experimentdesign Anta följande utfall efter en initial testomgång då jobb allokerats av respektive algoritm: Medelvärdet för tidsåtgången per jobb: KOSO: 9281 ms KOSO*: 9445 ms Ej statistiskt signifikant skillnad
Experimentdesign Vad har vi för grundläggande hypotes? KOSO* ger bättre prestanda vid jobbdistribution på grund av att den tar hänsyn till kölängden på respektive beräkningsnod. Har vi kölängd > 0 på processorerna i vårt test?
Dataanalys Om kombinerade mått Algoritm A Algoritm B Misslyckade körningar 63/2100 16/800 Algoritm A Algoritm B Misslyckade körningar, problemtyp 1 Misslyckade körningar, problemtyp 2 6/600 8/600 57/1500 8/200
Dataanalys, exempel från Machine Learning Träning jämfört med testning
Dataanalys, exempel från Machine Learning Data av högre dimensionalitet
Dataanalys Fordon med fyra hjul Fordon med fler eller färre än fyra hjul Bilar Nollhypotes (H0): Alla fordon är bilar Observation av antalet hjul av vår testenhet Mängden till höger utgör vår kritiska area
Dataanalys Vi kan avfärda H0 baserat på ett experiment, men H0 är ändå sann (typ I- fel). Vi kan hålla kvar vid H0 baserat på ett experiment, men H0 stämmer ej (typ II-fel).
Exempel: Dataanalys H0: Det är lika vanligt med defekter i vältestade programkomponenter som i otestade programkomponenter Defekter i vältestade programkomponenter: 4 Defekter i otestade programkomponenter: 11 Antalet defekter i respektive programkomponenter är vår testenhet Vad är vår kritiska area?
Dataanalys, forts. P (0 k) = 1 2 15 kx i=0 15 i k = 4, P(0-4) = 0.059 P(0-4 fel i vältestade komponenter H0) = 0.059 Acceptabelt fel - signifikans. Vanligen 5% 0.059 > 0.05, behåll H0.
Kausalitet och korrelationer http://tylervigen.com/spurious-correlations
Typiska exjobb
Upplägg på exjobb Frågeställning Metod Resultat Observationer Beskrivning Mätningar Kvantitativ data
Typiska exjobb Utvärderingar av nya tekniker eller metoder för att förbättra existerande produkter eller processer Utformning av en ny/bättre teknisk lösning
Utvärdering Exempelproblem: Hur utvecklas kodkvalitet över tid? Ansats 1: Relatera Git-aktivitet med kodmått som cyklomatisk komplexitet och rita upp en graf
Varför är det här en dålig idé? Ingen tydlig definition av kodkvalitet Ingen tydlig metod för att utvärdera vårt arbete
Ansats 2 Exempelproblem: Hur utvecklas kodkvalitet över tid? Ansats 2: Baserat på intervjuer definierar vi kodkvalitet som manuellt klassade potentiella fel. Vi undersöker om de har en korrelation med cyklomatisk komplexitet.
Utformning Exempelproblem: Bygg en ny Foo-applikation för företag X Ansats 1: Läs om de senaste Foo-teknikerna på Wikipedia, projekthemsidor och bloggar, implementera och stäm av med projekthandledaren vid företaget när du är klar.
Varför är detta inte ok? Ingen analys av behov, krav på systemet eller uppfattning om komplexitet Om kraven är otydliga, och tidsåtgången uppskattas till mer än 6 veckor Är det ett intressant problem över huvud taget?
Ansats 2 Om projektet beräknas ta mer än 6 veckor Genomför en serie intervjuer eller observationer för att förstå problemet gör en litteraturöversikt för att förstå liknande problem, och ett antal iteration av prototyputveckling för att förstå kraven på en kommande applikationen
Ansats 3 Om den beräknade tiden för att lösa problemet är <= 6 veckor Avgör funktionella & icke-funktionella krav hitta litteratur för att förstå möjliga lösningar och hur man utvärderar dem utveckla applikationen iterativt och utvärdera de icke-funktionella kraven på det sätt andra brukar göra i samma domän
Diskussion
Diskussion Teori Orsak Effekt Extern validitet Observation Påverkan intern validitet Resultat Är alla pilar giltiga?
Exempel Leder agil utveckling till bättre kod? Agile utv Färre defekter Extern validitet SCRUM/ Ej SCRUM Fel rapporterade Intern validitet
Arbetet i en kontext Är författarna medvetna om hur arbetet kommer påverka andra, under studien, efteråt?
Arbetet i en kontext Code quality traceability for improved accountability in agile teams
Arbetet i en kontext Random Indexing to improve article classification on online media outlets
Arbetet i en kontext Bayesian learning can successfully detect driving conditions to control NOx emission profiles
Arbetet i en kontext Visual 3D structure recognition for automatic targeting systems: A feasibility study
Sammanfattning Använd ett urval metoder för att besvara just din frågeställning Betänk möjliga resultat, krav och giltighet för din metod En studie bör vara externt och internt pålitlig (valid) Du måste vara medveten om etiska aspekter, och arbetet i en större kontext.