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]
- fælles miljø kobling , fælles kobling - to softwaremoduler deler et fælles dataområde;
- indholdskobling - nogle eller alle softwaremoduler er inkluderet i nogle modul som komponenter;
- kontrolkobling - et programmodul kommunikerer med et andet modul med det udtrykkelige formål at påvirke dets efterfølgende udførelse;
- datakobling ( input-output kobling ) - udgangsdataene for et programmodul tjener som inputdata for et andet modul;
- blandet kobling ( hybridkobling ) - forskellige delmængder af værdierne af et bestemt dataelement bruges i flere programmoduler til forskellige og ikke-relaterede formål;
- patologisk kobling - et softwaremodul afhænger af eller påvirker de interne implementeringsdetaljer for et andet modul.
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
- ↑ 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.
- ↑ McConnell, 2010 .
- ↑ 1 2 3 ISO/IEC/IEEE 24765-2017 Systems and software engineering - Ordforråd . Hentet 1. november 2021. Arkiveret fra originalen 31. marts 2022. (ubestemt)
- ↑ ISO/IEC TR 19759:2005, Software Engineering - Guide to the Software Engineering Body of Knowledge (SWEBOK)
- ↑ W. Stevens, G. Myers, L. Constantine, "Structured Design", IBM Systems Journal, 13(2), 115-139, 1974.
- ↑ 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
- McConnell, Steve . Perfekt kode = Code Complete. — 2. udgave. - M . : Russisk udgave, 2010. - S. 139. - 896 s. - (Master Class). - ISBN 978-5-7502-0064-1 .