Řazení (programování)
Engagement [1] , coupling , konektivita , konjugace [2] ( anglicky coupling ) - způsob a míra vzájemné závislosti mezi softwarovými moduly [3] ; pevnost propojení mezi moduly [4] ; měřítko toho, jak jsou na sobě různé rutiny nebo moduly závislé [3] .
Silná vazba je považována za vážnou nevýhodu, protože ztěžuje pochopení logiky modulů, jejich modifikaci, nezávislé testování a také opětovné použití samostatně. Slabá soudržnost je na druhé straně známkou dobře strukturovaného a dobře navrženého systému a v kombinaci se silnou soudržností odpovídá obecným ukazatelům dobré čitelnosti a udržovatelnosti.
Metriky propojení a konektivity byly vytvořeny Larrym Constantinem , původním vývojářem konstrukčního designu [5] , který byl také prvním zastáncem takových konceptů (viz také SSADM ).
Slabé propojení je jedním z GRASP vzorů Craiga Larmana [6] .
Typy ozubení
Typy zakázek podle ISO/IEC/IEEE 24765 zahrnují: [3]
- společné propojení prostředí , společné propojení - dva softwarové moduly sdílejí společnou datovou oblast;
- propojení obsahu - některé nebo všechny softwarové moduly jsou součástí některého modulu jako komponenty;
- řídicí vazba - jeden programový modul komunikuje s druhým modulem s výslovným účelem ovlivnit jeho následné provádění;
- datová vazba ( vstupně-výstupní vazba ) - výstupní data jednoho programového modulu slouží jako vstupní data jiného modulu;
- smíšená vazba ( hybridní vazba ) - různé podmnožiny hodnot určitého datového prvku se používají v několika programových modulech pro různé a nesouvisející účely;
- patologická vazba - jeden softwarový modul závisí nebo ovlivňuje interní implementační detaily jiného modulu.
Metody pro snížení ozubení
Existují různé metody oddělení . Obvykle jsou popsány ve formě návrhových vzorů . Jednou z klíčových technik je inverze kontroly a zejména injekce závislosti .
Použití vrstvené aplikační architektury, jako je Model-View-Controller , Model-View-Presenter , Model-View-ViewModel atd.,
také pomáhá snížit nepořádek .
Viz také
Poznámky
- ↑ Kravchenko A. K., Afanasyeva I. V. Vliv změn v ozubení a konektivitě na složitost kódu a jeho rychlost při vývoji softwaru // Radioelektronika a informatika, 2016, č. 3, s. 9-12.
- ↑ McConnell, 2010 .
- ↑ 1 2 3 ISO/IEC/IEEE 24765-2017 Systémové a softwarové inženýrství – slovník . Získáno 1. listopadu 2021. Archivováno z originálu dne 31. března 2022. (neurčitý)
- ↑ ISO/IEC TR 19759:2005, Softwarové inženýrství – Průvodce souborem znalostí softwarového inženýrství (SWEBOK)
- ↑ W. Stevens, G. Myers, L. Constantine, "Structured Design", IBM Systems Journal, 13(2), 115-139, 1974.
- ↑ Philip A. Laplante, Philip A. Laplante. Co by měl každý inženýr vědět o softwarovém inženýrství - CRC Press, 2007. - S. 105-106. - ISBN 978-1-4200-0674-2 .
Literatura
- McConnell, Steve . Perfektní kód = Kód dokončen. — 2. vydání. - M. : ruské vydání, 2010. - S. 139. - 896 s. - (Mistrovská třída). - ISBN 978-5-7502-0064-1 .