Gearing (programmering)

Engagement [1] , kobling , forbindelse , konjugation [2] ( engelsk  kobling ) - metoden og graden af ​​indbyrdes afhængighed mellem softwaremoduler [3] ; styrken af ​​sammenkoblinger mellem moduler [4] ; et mål for, hvor indbyrdes afhængige forskellige rutiner eller moduler er [3] .

Stærk kobling betragtes som en alvorlig ulempe, da det gør det vanskeligt at forstå logikken i moduler, ændre dem, teste dem uafhængigt og også genbruge dem separat. Svag sammenhængskraft er derimod et tegn på et velstruktureret og veldesignet system, og når det kombineres med stærk sammenhængskraft , svarer det til generelle indikatorer for god læsbarhed og vedligeholdelighed.

Forbindelses- og forbindelsesmetrikker blev opfundet af Larry Constantine , den oprindelige udvikler af strukturelt design [5] , som også var en tidlig fortaler for sådanne koncepter (se også SSADM ) .

Svag kobling er et af Craig Larmans GRASP - mønstre [6] .

Typer af gearing

Engagementtyper i henhold til ISO/IEC/IEEE 24765 omfatter: [3]

Metoder til at reducere gearing

Der er forskellige metoder til afkobling .  Typisk er de beskrevet i form af designmønstre . En nøgleteknik er inversion af kontrol , og især afhængighedsinjektion .

Brugen af ​​en lagdelt applikationsarkitektur, såsom Model-View-Controller , Model-View-Presenter , Model-View-ViewModel osv., hjælper også med at reducere rod .

Se også

Noter

  1. Kravchenko A. K., Afanasyeva I. V. Indflydelse af ændringer i gearing og forbindelse på kompleksiteten af ​​koden og dens hastighed i softwareudvikling // Radioelectronics and Informatics, 2016, nr. 3, s. 9-12.
  2. McConnell, 2010 .
  3. 1 2 3 ISO/IEC/IEEE 24765-2017 Systems and software engineering - Ordforråd . Hentet 1. november 2021. Arkiveret fra originalen 31. marts 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. Hvad enhver ingeniør bør vide om Software Engineering. - CRC Press, 2007. - S. 105-106. - ISBN 978-1-4200-0674-2 .

Litteratur