Abstract-Software återanvändning gör det möjligt för utvecklare att dra nytta av tidigare prestationer och underlättar betydande förbättringar av programvarans produktivitet och kvalitet. Programvaran återanvänder katalyserar produktivitetsförbättringar genom att undvika nyutveckling och kvalitetsförbättringar genom att integrera komponenter vars tillförlitlighet redan har fastställts. Denna studie tar upp en central forskningsfråga som ligger till grund för återanvändning av programvara – vilka faktorer kännetecknar framgångsrik återanvändning av programvara i storskaliga system? Forskningsstrategin är att undersöka, analysera och utvärdera programvara som återanvändas empiriskt av gruvprogramarkiv från en NASA-programvaruutvecklingsmiljö som aktivt återanvänder programvara. Denna programvara miljö framgångsrikt följer principer för återanvändning-baserad programvara utveckling för att uppnå en genomsnittlig återanvändning på 32 procent per projekt, vilket är den genomsnittliga mängden programvara antingen återanvändas eller ändras från tidigare system. Vi undersöker arkiven för 25 mjukvarusystem som sträcker sig från 3 000 till 112 000 källlinjer från denna programvarumiljö. Vi analyserar fyra klasser av programvarumoduler: moduler som återanvänds utan revidering, moduler som återanvänds med liten revidering (< 25 procent revidering), moduler som återanvänds med större revidering (25 procent revision), och nyutvecklade moduler. Vi tillämpar icke-parametriska statistiska modeller för att jämföra många utvecklingsvariabler över de 2,954 mjukvarumodulerna i systemen. Vi identifierar två kategorier av faktorer som kännetecknar framgångsrik återanvändningsbaserad mjukvaruutveckling av storskaliga system: moduldesignfaktorer och modulimplementeringsfaktorer. Vi utvärderar också felfrekvensen för de återanvända, modifierade och nyutvecklade modulerna. De moduldesignfaktorer som kännetecknar modulåteranvändning utan revidering var (efter normalisering efter storlek i källlinjer): få samtal till andra systemmoduler, många samtal till allmännyttiga funktioner, få input-output parametrar, få läsningar och skriver, och många kommentarer. Modulens implementationsfaktorer som karakteriserar modulåteranvändning utan revidering var små i källlinjer och (efter normalisering efter storlek i källlinjer): låg utvecklingssatsning och många uppdragsförklaringar. Modulerna som återanvänts utan revidering hade de minsta felen, de minsta felen per källlinje och de lägsta felkorrigeringsinsatserna. Modulerna återanvänds med större revidering hade den högsta felkorrigering ansträngning och högsta felisolering ansträngning samt de flesta förändringar, de flesta förändringar per källlinje, och högsta förändring korrigering ansträngning. Sammanfattningsvis beskriver vi framtida forskningsriktlinjer som bygger på dessa program återanvändning idéer och strategier.
Selbys senaste experimentella studie har identifierat två kategorier av faktorer som kännetecknar framgångsrik återanvändningsbaserad mjukvaruutveckling av storskaliga system: moduldesignfaktorer och modulimplementeringsfaktorer REF.
Enabling reuse-based software development of large-scale systems
{'venue': 'IEEE Transactions on Software Engineering', 'journal': 'IEEE Transactions on Software Engineering', 'mag_field_of_study': ['Computer Science']}