Kursplan för Empirisk programvaruteknik

Kursplan fastställd 2026-02-18 av programansvarig (eller motsvarande).

Kursöversikt

  • Engelskt namnEmpirical software engineering
  • KurskodDAT246
  • Omfattning7,5 Högskolepoäng
  • ÄgareMPSOF
  • UtbildningsnivåAvancerad nivå
  • HuvudområdeDatateknik, Informationsteknik
  • InstitutionDATA- OCH INFORMATIONSTEKNIK
  • BetygsskalaTH - Mycket väl godkänd (5), Väl godkänd (4), Godkänd (3), Underkänd

Kurstillfälle 1

  • Undervisningsspråk Engelska
  • Anmälningskod 24117
  • Max antal deltagare80 (minst 10% av platserna reserveras för utbytesstudenter)
  • Sökbar för utbytesstudenterJa

Poängfördelning

0114 Inlämningsuppgift 2,5 hp
Betygsskala: UG
2,5 hp
0214 Tentamen 5 hp
Betygsskala: TH
5 hp

I program

Examinator

Behörighet

Grundläggande behörighet för avancerad nivå
Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från kravet

Särskild behörighet

Engelska 6
Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från kraven

Kursspecifika förkunskaper

För behörighet till kursen krävs minst en kandidatexamen inom Software Engineering, programvaruteknik, Datavetenskap eller motsvarande.

Syfte

Mjukvaruföretag måste ständigt förbättra sig för att bli snabbare, bättre och mer effektiv. Kursen syftar till att lära sig  vetenskapliga metoder, särskilt experiment och statistik, för datainsamling, t.ex. som underlag för analys och beslutsstöd i förbättringsinitiativ i mjukvaruorganisationer. Kursen förbereder studenterna för examensarbete och förbättrar elevens förmåga att bedriva forskarstudier.

Lärandemål (efter fullgjord kurs ska studenten kunna)

  • Kunskaper och förståelse:
    • Beskriva, förstå och tillämpa empiri inom programvaruteknik
    • Beskriva, förstå och delvis tillämpa principerna bakom fallstudier/experiment/enkätstudier.
    • Beskriva och förstå de underliggande principerna för meta-analytiska studier
    • Förklara vikten av forskningsetik.
    • Känna till och definiera "code of ethics" gällande forskning inom programvaruteknik.
    • Redogöra för och förklara vikten av validitetshot och hur man kan kontrollera dessa typer av hot.
    • Beskriva och förklara koncepten sannolikhetsrymd, (inkl. betingad sannolikhet), stokastiska variabler, väntvärden, och stokastiska processer, samt känna till flertal konkreta exampel på dessa koncept
    • Beskriva Markov chain Monte Carlo metoder så som Metropolis
    • Beskriva och förklara Hamiltonian Monte Carlo
    • Beskriva och förklara multicollinarity, post-treatment bias, collider bias, confounding
    • Beskriva och förklara sätt att undvika overfitting.
  • Färdigheter och förmågor:
    • Utvärdera lämpligheten av, och använda, analysmetoder på data
    • Analysera deskriptiv statistik och definiera lämpliga analysmetoder.
    • Använda och förklara "code of ethics" för programvaruteknisk forskning. 
    • Designa statistiska modeller matematiskt och implementera dessa i ett programspråk.
    • Använda sig av konceptet stokastiska processer, dvs Bernoulli, Binomial, Gaussian, och Poisson, med spridningsinslag. 
    • Använda sig av ordnade kategoriska utfall (ordered-logit) och prediktorer
    • Utvärdera lämpligheten, från ett ontologiskt och epistemologiskt perspektiv, av olika distributioner
    • Använda sig av och utvärdera directed acyclic graphs för att argumentera för kausalitet
  • Värderingsförmåga och förhållningssätt:
    • Ange och diskutera verktyg för dataanalys och, i synnerhet, bedöma verktygens resultat.
    • Bedöma lämpligheten i olika empiriska metoder och deras tillämpbarhet i att lösa olika och disparata programvarutekniska problemställningar.
    • Ifrågasätta och bedöma vanliga etiska frågeställningar inom programvarutekniskforskning. 
    • Utvärdera diagnostik från Hamiltonian Monte Carlo och kvadratisk approximering genom att använda koncept from informationsteori, dvs informationsentropi, WAIC och PSIS-LOO.
    • Bedöma en posteriori sannolikhetsdistribution för prediktering utanför urval och för posteriori prediktionskontroller.

Innehåll

Kursen är för studenter som är intresserade av att lära sig applicera olika empiriska metoder inom programvaruteknik. Kursen introducerar kvantitativa och kvalitativa metoder inom programvaruteknik. 

Kursen innehåller:
  • Deskriptiv och inferentiell statistik applicerat på programvaruteknik.
  • Kvalitativa och kvantitativa metoder inom programvaruteknik.
  • Metoder för att praktisera evidensbaserad programvaruteknik.
  • Användning av statistiska verktyg.

Organisation

Kursen introducerar kvantitativa och kvalitativa metoder för programvaruteknisk forskning tillsammans med statistiska metoder för att analysera resultat.

Kursen innehåller: Deskriptiva och inferentiella statistiska metoder applicerade inom programvaruteknik. Användning av kvantitativa och kvalitativa metoder. Metoder för att analysera kvantitativ och kvalitativ data inom programvaruteknik. Användandet av statistiska verktyg.

Litteratur

Lärobok (obligatorisk):
  • R. McElreath. Statistical Rethinking: A Bayesian Course with Examples in R and STAN. 2nd edition. ISBN: 9780367139919

Forskningsartiklar:
  • Klaas-Jan Stol and Brian Fitzgerald. 2018. The ABC of Software Engineering Research. ACM Trans. Softw. Eng. Methodol. 27, 3, Article 11 (July 2018), 51 pages. https://doi.org/10.1145/3241743
  • Per Runeson and Martin Höst. 2009. Guidelines for conducting and reporting case study research in software engineering. Empirical Softw. Engg. 14, 2 (April     2009), 131–164. https://doi.org/10.1007/s10664-008-9102-8
  • Cinelli, C., Forney, A., & Pearl, J. (2022). A Crash Course in Good and Bad Controls. Sociological Methods & Research53(3), 1071-1104. https://doi.org/10.1177/00491241221099552 (Original work published 2024)
  • A. N. Ghazi, K. Petersen, S. S. V. R. Reddy and H. Nekkanti, "Survey Research in Software Engineering: Problems and Mitigation Strategies," in IEEE Access, vol. 7, pp. 24703-24718, 2019, doi: 10.1109/ACCESS.2018.2881041
  • Carlo A. Furia, Richard Torkar, and Robert Feldt. 2022. Applying Bayesian Analysis Guidelines to Empirical Software Engineering Data: The Case of Programming Languages and Code Quality. ACM Trans. Softw. Eng. Methodol. 31, 3, Article 40 (July 2022), 38 pages. https://doi.org/10.1145/3490953

Examination inklusive obligatoriska moment

Kursen examineras genom en inlämningsuppgift som genomförs individuellt. Inlämningsuppgiften är teoretisk och praktisk till sin natur.
Kursen examineras slutligen också med en skriftlig salstentamen.

Kursens examinator får examinera enstaka studenter på annat sätt än vad som anges ovan om särskilda skäl föreligger, till exempel om en student har ett beslut från Chalmers om riktat pedagogiskt stöd på grund av funktionsnedsättning.

Empirisk programvaruteknik | Chalmers