Utväxling (programmering)

Engagemang [1] , koppling , anslutning , konjugation [2] ( engelsk  koppling ) - metoden och graden av ömsesidigt beroende mellan mjukvarumoduler [3] ; styrkan hos sammankopplingar mellan moduler [4] ; ett mått på hur beroende av varandra olika rutiner eller moduler är [3] .

Stark koppling anses vara en allvarlig nackdel, eftersom det gör det svårt att förstå logiken i moduler, modifiera dem, testa dem oberoende och även återanvända dem separat. Svag sammanhållning är å andra sidan ett tecken på ett välstrukturerat och väldesignat system, och i kombination med stark sammanhållning motsvarar det generella indikatorer på god läsbarhet och underhållbarhet.

Länk- och anslutningsmått myntades av Larry Constantine , den ursprungliga utvecklaren av strukturell design [5] , som också var en tidig förespråkare för sådana koncept (se även SSADM ).

Svag länkning är ett av Craig Larmans GRASP- mönster [6] .

Typer av utväxling

Engagemangstyper, enligt ISO/IEC/IEEE 24765, inkluderar: [3]

Metoder för att minska utväxlingen

Det finns olika metoder för frikoppling .  Vanligtvis beskrivs de i form av designmönster . En nyckelteknik är inversion av kontroll , och i synnerhet beroendeinjektion .

Användningen av en applikationsarkitektur i lager, som Model-View-Controller , Model-View-Presenter , Model-View-ViewModel , etc., hjälper också till att minska röran .

Se även

Anteckningar

  1. Kravchenko A. K., Afanasyeva I. V. Inflytande av förändringar i utväxling och anslutning på kodens komplexitet och dess hastighet i mjukvaruutveckling // Radioelectronics and Informatics, 2016, nr 3, sid. 9-12.
  2. McConnell, 2010 .
  3. 1 2 3 ISO/IEC/IEEE 24765-2017 System- och mjukvaruteknik - Ordförråd . Hämtad 1 november 2021. Arkiverad från originalet 31 mars 2022.
  4. ISO/IEC TR 19759:2005, Software Engineering - Guide to the Software Engineering Body of Knowledge (SWEBOK)
  5. W. Stevens, G. Myers, L. Constantine, "Structured Design", IBM Systems Journal, 13(2), 115-139, 1974.
  6. Philip A. Laplante, Philip A. Laplante. Vad alla ingenjörer bör veta om mjukvaruteknik. - CRC Press, 2007. - S. 105-106. - ISBN 978-1-4200-0674-2 .

Litteratur