I programvareutvikling er kravet om sporbarhet definert som "evnen til å følge levetiden til et krav, siden dets opprinnelse, gjennom utvikling, spesifikasjon, distribusjon og bruk" . Sporbarhetsforbindelsene mellom kravene til et system og dets kildekode er nyttige for å redusere innsatsen for forståelse og vedlikehold. De er også viktige for å sikre samsvar og implementering av spesifiserte krav.
Svært ofte under vedlikehold og utvikling av programvare, fokuserer utviklere bare på å fikse feil eller feil. Kildekoden utvikler seg, men arkitektur, design og dokumentasjon er ikke oppdatert. Sporbarhetskoblingene blir foreldet fordi utviklerne ikke har tid eller ikke kan bruke den på å oppdatere disse koblingene. Å hente sporbarhetskoblingene blir da en vanskelig og kostbar oppgave.
For å kompensere for forverring av sporbarhetslenker, har mange forskere brukt informasjonsteknologi for å hente eksisterende koblinger mellom "høyt nivå" -dokumenter (programvarekrav, dokumentasjon eller designdokumenter) og designdokumenter. Mer "lavt nivå" (kildekode UML-diagram ).
Disse teknikkene konverterer alle dokumenter til tekstform og sammenligner likheten mellom gjenstander (f.eks. Kildekode for en klasse og krav) på forskjellige nivåer. En høy likhetsgrad betyr at disse to gjenstandene deler de samme konseptene og er mest sannsynlig relatert til hverandre.
Flere beregninger brukes til å måle effektiviteten til de forskjellige teknikkene for å hente sporbarhetskoblinger. De vanligste er tilbakekalling og presisjon . Det er også en formel kalt F-måling som ligner på et gjennomsnitt og som kombinerer de to foregående beregningene.
MinnesTilbakeringingen tilsvarer forholdet mellom antall relevante lenker som finnes på alle eksisterende relevante lenker. Den brukes til å måle om algoritmen henter eksisterende lenker godt.
PresisjonPresisjonen tilsvarer forholdet mellom antall relevante koblinger som er funnet over settet med koblinger som er funnet. Den måler nøyaktigheten til koblingene som er funnet.
F-målF-measure kombinerer presisjon og tilbakekalling. Det er definert som:
Metodene som historisk er brukt for gjenoppretting av sporbarhetslenker er basert på teknikker for henting av informasjon . Blant disse teknikkene er det spesielle løsninger basert på vektormodeller eller andre modeller som bruker Jensen-Shannon (en) .
Imidlertid produserer disse metodene omtrentlige resultater som ofte krever manuell inngrep for å evaluere og filtrere dataene som er hentet. De består ofte av korrespondansematriser mellom de forskjellige typene gjenstander. Imidlertid må disse matrisene korrigeres manuelt under opprettelsen og gjennom hele programvareutviklingsprosessen.
ForbedringerLøsninger er foreslått for å forbedre kvaliteten på resultatene produsert ved hjelp av informasjonsinnhentingsmetoder. Disse inkluderer bruk av setninger eller uttrykk i stedet for korrespondanse fra ord til ord. I samme ånd kan man også bruke en ordliste for å trekke ut begrepene eller de betydningsfulle setningene i prosjektet for å gi dem en viktigere vekt når man identifiserer sporbarhetskoblingene.
Noen løsninger er utviklet for å hjelpe utvikleren til å opprettholde disse sporbarhetskoblingene.
KOKOSNØTTCOCONUT (for “COde Comprehension Nurturant Using Traceability”) kommer som en plugin-modul for Eclipse- utviklingsmiljøet . Det hjelper utviklere å bruke identifikatorer (f.eks. Variabelnavn) og / eller å skrive kommentarer som har sterk samsvar med systemkravene.
Gjenkjenne endringer som er brukt på modellenNår det gjelder utviklingen drevet av UML-modellen, er det mulig å analysere endringene som er gjort i strukturdiagrammet for automatisk å oppdatere sporbarhetskoblingene.
Den foreslåtte løsningen er delt inn i tre trinn:
TraceM er et sporbarhetsstyringssystem som bruker hypermedia-systemkonsepter og informasjonsintegrasjon (in) . Den kommer i form av et rammeverk som lar deg oppdage de implisitte sporbarhetskoblingene takket være de eksplisitt kjente koblingene.
TraceM er basert på følgende konsepter:
TraceM støtter automatisk opprettelse av sporbarhetslenker og tillater også relasjoner mellom flere eksisterende relasjoner.
Andre tilnærminger fokuserer i stedet på hvordan man finner informasjon blant de hentede dataene. For eksempel er det et språk dedikert til forskning i et sett med sporbarhetslenker. TQL (for “Traceability Query Language ”) lar deg utføre spørsmål av typen:
Spørsmål: Er alle kravene dekket av et testsett?
set:difference(Requirement(), traceFrom(Requirement(), TestCase()))Enkelte heuristiske baserte tilnærminger gjør det mulig å hente / opprette sporbarhetslinker mellom forskjellige elementer i en programvare. Dette gjøres ved å undersøke versjonssjef (er) som ble brukt under utviklingen. Denne tilnærmingen implementerer metoder for utvinning av sekvensielle mønstre (in) . Utpakking av disse mønstrene utføres på forpliktelser fra versjonsbehandling for å oppdage samtidige endringer mellom forskjellige filer (for eksempel mellom kildekoden og dokumentasjonen). Hvis flere filer endres veldig regelmessig i løpet av de samme forpliktelsene, er sannsynligheten for å ha en sporbarhetslink mellom dem veldig høy.
Visse teknikker for gjenoppretting av sporbarhetslink kan gi flere resultater. For eksempel er løsninger basert på vektormodeller i stand til å gjenopprette et større antall lenker enn empiriske teknikker, men har mye lavere presisjon. Basert på denne observasjonen, kombinerer visse metoder de såkalte “ortogonale” resultatene av forskjellige teknikker for å forbedre det endelige resultatet.
EnhetsplasseringFor ikke å nevne gjenoppretting av sporbarhetslenker, det er teknikker kjent som informasjonsgjenoppretting . Denne praksisen kan sees på som et beslutningsproblem i nærvær av usikkerhet.
En av løsningene på denne typen problemer er bruken av flere ekspertsystemer . Når det gjelder kildekodeanalyse, er det for eksempel mulig å kombinere to typer analyser: statisk og dynamisk . Mens statisk analyse direkte studerer kildekoden til applikasjonen, tar dynamisk analyse på sin side avlesninger (også kalt spor ) under gjennomføringen av programmet og analyserer disse dataene.
TrustraceTrustace er en løsning for å gjenopprette sporbarhetsforbindelser mellom kildekode og programvarekrav. Det er en teknikk som bruker flere heterogene informasjonskilder for dynamisk å vurdere sporbarhetskoblingene som skyldes standard informasjonsteknikk.
For det første bruker Trustrace Histrace til å bore data på kildekodelager. Da skaper den nye sporbare koblinger mellom programvarekravene og tilleggsdataene til depotet (f.eks. Commits, Bugs osv.), Takket være de utvinnede dataene. Disse settene med lenker kalles eksperter .
Når ekspertsettene er bygget. Trustrace bruker Trumo og DynWing for å revurdere sporbarhetskoblingene fra tradisjonelle systemer. Vekter tildeles dynamisk til hver av lenkene. Disse vektene bestemmes ved å sammenligne likhetene mellom de opprinnelige koblingene med koblingene som er gitt av ekspertene, og i henhold til hyppigheten av disse koblingene i hvert av ekspertsettene.
HistraceHistrace lar deg lage koblinger mellom et sett med krav og kildekoden ved hjelp av informasjon fra et programvarelager ( CVS / SVN ). For dette anser Histrace tekstbeskrivelsene av kravene, meldinger om forpliktelser, rapporter om feil og klassene som forskjellige dokumenter som den bruker til å produsere to ekspertsett. Den ene bruker kommisjonsmeldinger for å etablere sporbarhetskoblinger, og den andre bruker feilrapporter.
TrumoTrumo ligner på en brukertillitsmodell: Jo flere brukere kjøper fra et nettsted, jo flere brukere stoler på det.
I denne ånden vil Trumo tildele en vekt til hver sporbarhetslenke basert på likhetene mellom koblingene som følger av ekspertsettene og resultatene av de grunnleggende teknikkene. For å gjøre dette utfører Trumo en første sortering ved å forkaste alle koblingene som ikke er i databaseresultatene og i et av ekspertsettene. Deretter tildeles en vekt til hver lenke basert på disse likhetene i de forskjellige settene. Til slutt tildeler Trumo en vekt til hver ekspert som bestemmes av DynWing.
DynWingFor å bestemme vekten som skal tildeles hver ekspert, bestemmer DynWing seg for å løse dette i form av et maksimeringsproblem .
Vanligvis har hver ekspert litt tillit til hver av lenkene han produserer. Trumo bestemmer vekten til hver lenke basert på denne likheten og vekten til hver ekspert. Å beregne vekten til hver DynWing-ekspert vil maksimere den endelige vekten til hver lenke (bestemt av Trumo).
Dermed er Trumo og DynWing i virkeligheten to nært sammenkoblede moduler som gjør det mulig å vurdere tilliten til hver første sporbarhetslenke takket være de nye koblingene som kommer fra Histrace.
I dagens situasjon mangler alle teknikkene som er foreslått for gjenoppretting av sporbarhetskoblinger, nøyaktighet. Det virker foreløpig vanskelig å oppnå en veldig god tilbakekallingsfrekvens med riktig presisjonsrate og omvendt proporsjonal. Noen nyere teknikker, som Trustrace, som bruker nye informasjonskilder, forbedrer nøyaktigheten og tilbakekallingsgraden. Dermed kan vi for øyeblikket oppnå resultater fra 60% til 80% presisjon for 40% til 60% tilbakekalling.
(no) N. Ali , Y.-G. Gueheneuc og G. Antoniol , “ Trustrace: Mining Software Repositories for å forbedre nøyaktigheten av krav til sporbarhetskoblinger ” , IEEE Trans. Programvare Eng. ,mai 2013, s. 725-741 ( DOI 10.1109 / TSE.2012.71 , les online )
(no) N. Ali , Y.-G. Gueheneuc og G. Antoniol , “ Sporbarhet basert på tillitskrav ” , Proc. 19. IEEE Int'l Conf. Programforståelse ,juni 2011, s. 111-120 ( DOI 10.1109 / ICPC.2011.42 , les online )
(no) G. Antoniol , G. Canfora , G. Casazza , AD Lucia og E. Merlo , “ Gjenopprette sporbarhet mellom kode og dokumentasjon ” , IEEE Trans. Programvare Eng. , vol. 28, n o 10Oktober 2002, s. 970-983 ( DOI 10.1109 / TSE.2002.1041053 , les online )
(en) A. De Lucia , M. Di Penta og R. Oliveto , “ Hjelp til å forbedre kildekodeleksikon via sporbarhet og informasjonsinnhenting ” , IEEE Trans. Programvare Eng. ,Mars-april 2011, s. 205-227 ( DOI 10.1109 / TSE.2010.89 , les online )
(en) M. Gethers , R. Oliveto , D. Poshyvanyk og AD Lucia , " Om integrering av ortogonale informasjonsinnhentingsmetoder for å forbedre sporbarhetsgjenoppretting " , Proc. 27. IEEE Int'l Conf. Programvare vedlikehold ,september 2011, s. 133-142 ( DOI 10.1109 / ICSM.2011.6080780 , les online )
(en) OCZ Gotel og CW Finkelstein , “ En analyse av kravene til sporbarhetsproblem ” , Proc. First Int'l Conf. Krav Eng. ,April 1994, s. 94-101 ( DOI 10.1109 / ICRE.1994.292398 , les online )
(en) JH Hayes , A. Dekhtyar , SK Sundaram og S. Howard , “ Helping Analysts Trace Requirements: An Objective Look ” , Proc. 12. IEEE Int'l Requirements Eng. Konf. ,2004, s. 249-259 ( DOI 10.1109 / RE.2004.26 , les online )
(en) JH Hayes , G. Antoniol og Y.-G. Gueheneuc , “ PREREQIR: Recovering Pre-Requirements via Cluster Analysis ” , Proc. 15. Working Conf. Omvendt Eng. ,oktober 2008, s. 165-174 ( DOI 10.1109 / WCRE.2008.36 , les online )
(en) H. Kagdi , J. Maletic og B. Sharif , “ Mining Software Repositories for Traceability Links ” , Proc. 15. IEEE Int'l Conf. Programforståelse ,juni 2007, s. 145-154 ( DOI 10.1109 / ICPC.2007.28 , les online )
(no) A. Marcus og JI Maletic , “ Gjenopprette sporbarhetskoblinger for dokumentasjon til kildekode ved hjelp av latent semantisk indeksering ” , Proc. 25. internasjonale konf. Programvare Eng. ,2003, s. 125-135 ( ISBN 0-7695-1877-X , leses online )
(no) JI Maletic og ML Collard , “ TQL: A Query Language to Support Traceability ” , Proc. ICSE Workshop Sporbarhet i nye former for programvare Eng. ,2009, s. 16-20 ( DOI 10.1109 / TEFSE.2009.5069577 , les online )
(en) P. Mader , O. Gotel og I. Philippow , " Aktivering av automatisert sporbarhetsvedlikehold ved å gjenkjenne utviklingsaktiviteter anvendt på modeller " , Proc. 23. IEEE / ACM Int'l Conf. Automated Software Eng. ,september 2008, s. 49-58 ( DOI 10.1109 / ASE.2008.15 , les online )
(en) K. Østerbye og UK Wiil , “ The Flag Taxonomy of Open Hypermedia Systems ” , Proceedings of the seventh ACM conf. på Hypertext ,1996, s. 129-139 ( DOI 10.1145 / 234828.234841 , les online )
(no) D. Poshyvanyk , Y.-G. Gueheneuc , A. Marcus , G. Antoniol og V. Rajlich , “ Feature Location Using Probabilistic Ranking of Methods Based on Execution Scenarios and Information Retrieval ” , IEEE Trans. Programvare Eng. , vol. 33, n o 6,juni 2007, s. 420-432 ( DOI 10.1109 / TSE.2007.1016 , les online )
(en) SA Sherba , KM Anderson og M. Faisal , “ A Framework for Mapping Traceability Relationships ” , 2. Int'l Workshop on Traceability in Emerging Forms of Software Eng. 18. IEEE Int'l Conf. på automatisert programvareteknikk ,2003, s. 32-39 ( DOI 10.1.1.128.1273 , les online )
(no) X. Zou , R. Settimi og J. Cleland-Huang , “ Frasing in Dynamic Requirements Trace Retrieval ” , Proceedings of the 30th Annual Int'l Computer Software and Application Conf. (COMPSAC06) ,September 2006, s. 265-272 ( DOI 10.1109 / COMPSAC.2006.66 , les online )
(en) X. Zou , R. Settimi og J. Cleland-Huang , " Term-based Enhancement Factors in Automated Requirements Traceability Retrieval " , Forløp fra 2. Int'l Symposium on Grand Challenge in Traceability ,2007, s. 40-45
(no) X. Zou , R. Settimi og J. Cleland-Huang , “ Evaluering av bruken av prosjektordlister i automatisert sporingsgjenfinning ” , Proceedings of the 2008 Int'l Conf. på programvare Eng. Forskning og praksis (SERP'08) ,2008, s. 157-163
(no) X. Zou , R. Settimi og J. Cleland-Huang , “ Forbedring av automatiserte kravsporingsinnhenting : en studie av termbaserte forbedringsmetoder ” , Empirical Software Eng. ,april 2010, s. 119-146 ( DOI 10.1007 / s10664-009-9114-z , les online )