Programvare analyse - Software analytics

Programvare analytics er analytics spesifikk for domenet til programvaresystemer som tar hensyn til kildekoden , statiske og dynamiske egenskaper (f.eks Software Metrics ) samt relaterte prosesser i deres utvikling og evolusjon . Det tar sikte på å beskrive, overvåke, forutsi og forbedre effektiviteten og effektiviteten til programvareteknikk gjennom programvarens livssyklus , spesielt under programvareutvikling og programvarevedlikehold . Datainnsamlingen gjøres vanligvis av programvarelager for gruvedrift , men kan også oppnås ved å samle inn brukerhandlinger eller produksjonsdata. En måte å bruke de innsamlede dataene på er å utvide de integrerte utviklingsmiljøene (IDE) med datadrevne funksjoner.

Definisjoner

  • "Programvareanalyse har som mål å skaffe innsiktsfull og handlingsbar informasjon fra programvareartefakter som hjelper utøvere til å utføre oppgaver knyttet til programvareutvikling, systemer og brukere." --- sentrerer seg om analyser som brukes på gjenstander et programvaresystem består av.
  • "Programvareanalyse er analyse på programvaredata for ledere og programvareingeniører med det formål å styrke programvareutvikling enkeltpersoner og team til å få og dele innsikt fra deres data for å ta bedre beslutninger." --- styrker kjernemålene for metoder og teknikker for programvareanalyse, med fokus på både programvareartefakter og aktiviteter fra involverte utviklere og team.
  • "Software analytics (SA) representerer en gren av big data analytics. SA er opptatt av analysen av alle programvareartefakter, ikke bare kildekoden. [...] Disse nivåene varierer fra høyere nivå i styret og innstilling av virksomheten. visjon og porteføljestyring, gjennom prosjektledelsesplanlegging og implementering av programvareutviklere. " --- gjenspeiler det brede omfanget, inkludert ulike interessenter.

Mål

Programvareanalyse har som mål å støtte beslutninger og generere innsikt, dvs. funn, konklusjoner og evalueringer om programvaresystemer og implementering, sammensetning, atferd, kvalitet, evolusjon, samt om aktivitetene til ulike interessenter i disse prosessene.

  • Insiktsfull informasjon innhentet av programvareanalyse formidler meningsfull og nyttig forståelse eller kunnskap for å utføre måloppgaver. Vanligvis kan det ikke lett oppnås ved direkte undersøkelse av rå big data uten hjelp av analysemetoder og teknikker.
  • Handlingsbar informasjon innhentet av programvareanalyse styrer eller foreskriver løsninger som interessenter i programvaretekniske prosesser kan ta (for eksempel programvareutøvere, utviklingsledere eller administrasjon på C-nivå).

Nærme seg

Metoder, teknikker og verktøy for programvareanalyse er vanligvis avhengig av å samle inn, måle, analysere og visualisere informasjon som finnes i mangfoldige datakilder som er lagret i programvareutviklingsmiljøer og økosystemer. Programvaresystemer er godt egnet for å bruke analyser fordi det på den ene siden for det meste er formaliserte og presise data tilgjengelig, og på den annen side er programvaresystemet ekstremt vanskelig å administrere --- i et nøtteskall: "programvareprosjekter er svært målbare men ofte uforutsigbar. "

Kjernedatakilder inkluderer kildekode , "innsjekkinger, arbeidselementer, feilrapporter og testutførelser [...] registrert i programvarelager som CVS, Subversion, GIT og Bugzilla." Telemetridata samt kjøringsspor eller logger kan også tas i betraktning.

Automatisert analyse, omfattende data og systematisk resonnement støtter beslutningstaking på nesten alle nivåer. Generelt inkluderer nøkkelteknologier som brukes av programvareanalyser, analytiske teknologier som maskinlæring , datautvinning , statistikk , mønstergjenkjenning , informasjonsvisualisering samt databehandling og prosessering i stor skala. For eksempel tillater verktøy for programvareanalyse brukere å kartlegge avledede analyseresultater ved hjelp av programvarekart , som støtter interaktiv utforsking av systemgjenstander og korrelert programvareberegning. Det finnes også verktøy for programvareanalyse som bruker analytiske teknologier på toppen av programvarekvalitetsmodeller i agile programvareutviklingsselskaper , som støtter vurdering av programvarekvaliteter (f.eks. Pålitelighet), og utleder tiltak for å forbedre dem.

Historie

I mai 2009 ble programvareanalyse først laget og foreslått da Dongmei Zhang grunnla Software Analytics Group (SA) ved Microsoft Research Asia (MSRA). Begrepet har blitt godt kjent i programvareteknisk forskningsmiljø etter at en serie opplæringsprogrammer og foredrag om programvareanalyse ble holdt av Zhang og hennes kolleger, i samarbeid med Tao Xie fra North Carolina State University, på programvaretekniske konferanser, inkludert en veiledning på IEEE / ACM International Conference on Automated Software Engineering (ASE 2011), en foredrag på International Workshop on Machine Learning Technologies in Software Engineering (MALETS 2011), en veiledning og en hovedtale holdt av Zhang på IEEE-CS Conference on Software Engineering Utdanning og opplæring, en veiledning på den internasjonale konferansen om programvareteknikk - programvareteknikk i praksis, og en hovedtale holdt av Zhang på arbeidskonferansen om gruvedrift.

I november 2010 ble Software Development Analytics (Software Analytics with focus on Software Development) foreslått av Thomas Zimmermann og hans kolleger i Empirical Software Engineering Group (ESE) ved Microsoft Research Redmond i deres FoSER 2010-papir. Et gullfiskskålpanel om programvareutviklingsanalyse ble organisert av Zimmermann og Tim Menzies fra West Virginia University på den internasjonale konferansen om programvareingeniør, programvareutvikling i praksis.

Se også

Referanser

Eksterne linker