Att bedöma källkodens begriplighet är fortfarande ett svårfångat men mycket önskvärt mål för programvaruutvecklare och deras chefer. Även om många mått har föreslagits och undersökts empiriskt, McCabe cyklomatic komplexitet metrisk (CC) - som bygger på kontroll flöde komplexitet - verkar hålla bestående fascination inom både industrin och forskarsamhället trots dess kända begränsningar. I detta arbete introducerar vi idéerna om Control Flow Mönster (CFP) och Compressed Control Flow Mönster (CCFP), som eliminerar vissa repetitiva struktur från kontrollflöde grafer för att betona högentropi grafer. Vi undersöker åtta välkända Java-system med öppen källkod genom att gruppera metodernas gemensamma fiskeripolitikar i ekvivalensklasser och undersöka resultaten. Vi har observerat flera överraskande resultat: för det första är antalet unika gemensamma fiskeripolitikar relativt lågt; för det andra återspeglar CC ofta inte exakt skillnaderna i Java kontrollflöde; och för det tredje, metoder med hög CC ofta har mycket låg entropi, vilket tyder på att de kan vara relativt lätt att förstå. Dessa resultat ifrågasätter den utbredda uppfattningen att det finns ett tydligt orsakssamband mellan CC och begriplighet, och tyder på att CC och liknande åtgärder måste ses över som mått för kodförståelse.
Vinju m.fl. REF undersökte förhållandet mellan formen av kontrollflödesmönster som observerats i Java metoder till deras CC metriska värden, föreslår begreppet abstrakta kontrollflödesmönster (CFP) och komprimerade kontrollflödesmönster (CCFP), vilket gör att vi kan producera statistiska bevis för att CC metriska verkligen inte modellerar den sannolika komplexiteten i kontrollflödet i Java metoder.
What Does Control Flow Really Look Like? Eyeballing the Cyclomatic Complexity Metric
{'venue': '2012 IEEE 12th International Working Conference on Source Code Analysis and Manipulation', 'journal': '2012 IEEE 12th International Working Conference on Source Code Analysis and Manipulation', 'mag_field_of_study': ['Computer Science']}