Spårbarhetsåterhämtning

Spårbarhetsåterhämtning (eng. traceability recovery eller trace recovery) är aktiviteten att identifiera spårbarhetslänkar mellan programvaruartefakter inom programvaruutveckling. Metoder för att göra detta inkluderar informationssökning, informationsutvinning och regelbaserade angreppssätt genom ontologier.

De huvudsakliga användningsområdena för spårbarhetsåterhämtning är:
 Etablera en inledande mängd spårbarhetslänkar.
 Föreslå spårbarhetslänkar vid behov (eng. on-demand tracing eller reactive tracing), vid till exempel påverkansanalys.
 Verifiera befintliga spårbarhetslänkar, till exempel en spårbarhetsmatris.

Motivering

Storskalig programvaruutveckling består av en mängd processer som behöver fungera tillsammans. En bidragande orsak till svårigheter vid samordningen är de enorma informationsmängder som skapas i storskaliga dokumentdrivna projekt. Ofta bidrar tusentals utvecklare i olika världsdelar dagligen med stora mängder ny information. Typiska dokument som skapas och underhålls under utvecklingen är kravdokument, designdokument, källkodsfiler, testspecifikationer, testrapporter, defektrapporter och användarmanualer. Även informella dokument som mejl, webbsidor, byggloggar, lathundar och skärmdumpar genereras och leder till en informationsrymd som är svår att överblicka.

Det traditionella sättet att skapa struktur i programvaruutvecklingens dokumentrymd är att etablera och underhålla spårbarhetslänkar. Exempelvis kan det vara önskvärt att kunna spåra en metod i en källkodsfil till en specifik designmodul, ett funktionellt krav som beskriver beteendet, ett övergripande marknadskrav, en testsvit som verifierar funktionen och ett kapitel i användarmanualen. Vid säkerhetskritisk utveckling finns det dessutom ofta strikta krav på spårbarhet för att uppnå certifiering. Spårbarhetsinformation ändras kontinuerligt under utvecklingsprocessen och är dyr att underhålla.

IR-baserad spårbarhetsåterhämtning

Ett tillvägagångssätt för att skapa spårbarhetslänkar kommer från forskning inom datorbaserad informationssökning. Idén bygger på antagandet att utvecklare i någon utsträckning är konsekventa i sina formuleringar när de skriver dokument och källkod. Genom att tillämpa sökmotortekniker kan man analysera textuella likheter mellan olika dokument, exempelvis krav- och testspecifikationer. Vid stora likheter föreslås skapandet av spårbarhetslänkar, i extremfall kan även varningar för duplikat visas.

Pionjären inom området brukar anses vara Giuliano Antoniol, genom en välciterad tidskriftspublicering från 2002. Tekniken har därefter implementerats i flera forskningsprototyper runt om i världen under det senaste decenniet, i viss utsträckning har den även inkluderats i kommersiella utvecklingsverktyg. Utvärderingar av tekniken har dock än så länge huvudsakligen gjorts småskaligt, i laborativ universitetsmiljö eller i projekt bestående av öppen källkod.

De IR-modeller som främst har utvärderats inom området är:
 Vektorrymdsmodellen
 Latent semantisk indexering
 Sannolikhetsmodeller

Empirisk evidens
Ett systematiskt översiktsarbete från 2013 rapporterade att det fram till 2011 publicerats 79 vetenskapliga artiklar om IR-baserad spårbarhetsåterhämtning. Översikten visade att flertalet studier gjorts med orealistiskt få dokument, samt att resultaten uppvisar ett stort databeroende. Dock pekar översikten på att det även finns ett antal studier som visat att verktygsstöd för IR-baserad spårbarhetsåterhämtning gynnar vissa kravspårningsaktiviteter. Experiment med studenter i Italien, USA och Sverige har utförts där man gjort jämförelser med manuellt arbetande kontrollgrupper. Även ett fåtal fallstudier har visat att verktygen är gynnsamma. En fallstudie i ett kinesiskt utvecklingsteam studerade hur arbetet underlättades av verktyg. I Italien har fallstudier dokumenterat hur verktygen förbättrat spårbarhetsarbete i studentprojekt.

Referenser

Programutveckling