Ett antal papper har undersökt sambanden mellan designmått och upptäckt av fel i objektorienterad programvara. Flera av dessa studier har visat att sådana modeller kan vara korrekta när det gäller att förutsäga felaktiga klasser inom en viss programvaruprodukt. I praktiken bygger dock förutsägelsemodeller på vissa produkter som ska användas vid efterföljande programvaruutvecklingsprojekt. Hur exakta kan dessa modeller vara med tanke på de oundvikliga skillnader som kan finnas mellan projekt och system? Organisationer lär sig och förändras. Mer allmänt sett, kan vi få bevis för att sådana modeller är ekonomiskt bärkraftiga verktyg för att fokusera validerings- och kontrollinsatser? Detta dokument försöker besvara dessa frågor med hjälp av fel- och designdata som samlats in på två medelstora Java-system som utvecklats i samma miljö. Ett annat bidrag av papperet är användningen av en ny undersökande analysteknik (MARS) för att bygga sådana felbenägenhet modeller, vars funktionella form är en priori okänd. Resultaten visar att en modell byggd på ett system kan användas korrekt för att rangordna klasser inom ett annat system beroende på deras felbenägenhet. Nackdelen är dock att de förutsagda felsannolikheterna på grund av systemskillnader inte är representativa för det system som förutses. Dessutom visar en kostnads-nyttomodell att MARS-modellen är potentiellt lönsam ur ekonomisk synvinkel. Den linjära modellen är inte det, vilket tyder på en mer komplex modell krävs. INLEDNING Åtgärder för strukturella konstruktionsegenskaper såsom koppling eller komplexitet anses allmänt vara indikatorer för externa systemkvalitetsattribut, t.ex. tillförlitlighet eller underhållbarhet. Många åtgärder som tar hänsyn till objektorienterade systems strukturella egenskaper föreslogs i litteraturen [1] [8] [6]. Ett antal fallstudier har gett empiriska belägg för att med hjälp av regressionsanalysmetoder kan mycket noggranna prediktionsmodeller för klassfelbenägenhet byggas från befintliga OO-utformningsåtgärder [4] [5]. Noggrannheten hos prediktionsmodellerna i dessa studier kvantifieras vanligen genom ett mått på godheten hos modellernas förutsägelser till de faktiska feluppgifterna, eller genom att använda korsvalideringsmetoder inom systemet, såsom V-korsvalidering [13]. Syftet med att bygga sådana modeller är att tillämpa dem på andra system (t.ex. olika system som utvecklats i samma utvecklingsmiljö) för att fokusera verifierings- och valideringsarbetet på felskyddade delar av dessa system. Men man vet inte mycket om exaktheten i förutsägelsemodeller när de faktiskt tillämpas under realistiska förhållanden. I det avseendet kan de befintliga studierna till största delen karakteriseras som genomförbarhetsstudier. I den här artikeln bygger vi en felbenägenhetsförutsägelsemodell baserad på en uppsättning OO-åtgärder med hjälp av data som samlats in från ett mellanstort Java-system, och sedan applicerar vi modellen på ett annat Java-system som utvecklats av samma team. Vi utvärderar sedan exaktheten i modellens förutsägelse i det systemet och modellens ekonomiska bärkraft med hjälp av en kostnads-nyttomodell. Ett andra mål är att använda en ny experimentell, regressionsbaserad teknik som kallas MARS (Multivariat Adaptive Regression Splines [11]). Vi undersöker om denna teknik kan resultera i mer exakta felbenägenhetsmodeller än typiska logistiska regressionsmodeller som antar ett linjärt samband mellan kovariater och logittermen. Modell funktionella former är svåra att fastställa en priori eftersom vi inte har trovärdiga, exakta teorier för att utforma dem. Resultaten visar att en modell byggd på ett system kan användas för att korrekt rangordna klasser inom ett annat system beroende på deras felbenägenhet. Endast MARS-modellen är dock korrekt, medan den linjära logistiska regressionsmodellen inte verkar lämplig. En kostnads-nyttomodell visar att en sådan felbenägenhetsmodell är potentiellt lönsam eftersom den kan ge tydliga fördelar. Sannolikheten för en modell som bygger på ett system som tillämpas på ett annat tyder dock på att skillnader i systemfaktorer gör dessa sannolikheter meningslösa, även om klassrankningen bevaras. Med andra ord, om detta bekräftas, skulle sådana modellers sannolikheter behöva kalibreras för varje system. Konsekvenserna av sådana begränsningar diskuteras nedan. Papperet är uppbyggt på följande sätt: I avsnitt 2 beskrivs studiens utformning. I avsnitt 3 redogör vi kortfattat för vår analysmetod och introducerar modelleringsteknik, logistisk regression och MARS. Analysresultaten beskrivs i avsnitt 4 och vi drar våra slutsatser i avsnitt 5.
Briand m.fl. REF använde logistisk regression och MARS-modeller för att lära sig en felprediktor, som också är det tidigaste arbetet med CCDP.
Assessing the Applicability of Fault-Proneness Models Across Object-Oriented Software Projects
{'venue': 'IEEE Trans. Software Eng.', 'journal': None, 'mag_field_of_study': ['Computer Science']}