Under livslängden för objektorienterade (OO) programvarusystem läggs nya klasser till för att öka funktionaliteten, vilket också ökar det ömsesidiga beroendet mellan klasser. Logisk koppling avbildar förändringsberoendet mellan klasser, medan strukturell koppling mäter källkodsberoenden som induceras via systemarkitekturen. Förhållandet eller beroendet mellan logisk och strukturell koppling har diskuterats tidigare, men ingen större studie har ännu bekräftat deras samspel. I denna studie har vi analyserat 79 programvaruprojekt med öppen källkod av olika storlekar för att undersöka samspelet mellan de två typerna av koppling. För det första kvantifierade vi överlappningen eller skärningspunkten mellan strukturella och logiska klassberoenden. För det andra beräknade vi statistiskt sambandet mellan de logiska och strukturella beroendenas styrkor. För det tredje föreslår vi en enkel teknik för att bestämma stabiliteten hos programvara för OO, genom att gruppera par av klasser som "stabila" eller "instabila", baserat på deras co-change mönster. Resultaten från vår statistiska analys visar att även om det inte finns några starka bevis för ett linjärt samband mellan styrkorna hos kopplingstyperna, finns det betydande bevis för att strukturellt kopplade klasspar vanligtvis inkluderar logiska beroenden. Alla samförändrade klasspar är dock inte också kopplade till strukturella beroenden. Slutligen konstaterade vi att endast en låg andel av den strukturella kopplingen uppvisar alltför stor instabilitet i de studerade OSS-projekten.
En empirisk studie presenteras i Ref som analyserade kopplingen bland antalet programvaruprojekt med öppen källkod för att identifiera två typer av koppling; logisk koppling och strukturell koppling.
Understanding the interplay between the logical and structural coupling of software classes
{'venue': 'J. Syst. Softw.', 'journal': 'J. Syst. Softw.', 'mag_field_of_study': ['Computer Science']}