Modulkoppling
I programvaruteknik är kopplingen graden av ömsesidigt beroende mellan programvarumoduler. Två moduler som är tätt kopplade är starkt beroende av varandra. Två moduler som är löst kopplade är däremot inte beroende av varandra. Icke-kopplade moduler har inget ömsesidigt beroende alls inom sig.
De olika typerna av kopplingstekniker visas i fig:
En bra konstruktion är den som har låg koppling. Kopplingen mäts genom antalet relationer mellan modulerna. Det vill säga kopplingen ökar när antalet anrop mellan modulerna ökar eller när mängden delade data är stor. Därför kan man säga att en konstruktion med hög koppling kommer att ha fler fel.
Typer av modulkoppling
1. Ingen direkt koppling: Det finns ingen direktkoppling mellan M1 och M2.
I detta fall är modulerna underordnade olika moduler. Därför finns det ingen direktkoppling.
2. Datakoppling: När data från en modul överförs till en annan modul kallas detta datakoppling.
3. Stämpelkoppling: Två moduler är stämpelkopplade om de kommunicerar med hjälp av sammansatta dataelement som struktur, objekt osv. När modulen överför icke-globala datastrukturer eller hela strukturer till en annan modul sägs de vara stämpelkopplade. Till exempel när en strukturvariabel i C eller ett objekt i C++ överförs till en modul.
4. Kontrollkoppling: Kontrollkoppling: Kontrollkoppling finns mellan två moduler om data från en modul används för att styra strukturen för utförandet av instruktioner i en annan.
5. Extern koppling: Extern koppling: Extern koppling uppstår när två moduler delar ett externt påbjudet dataformat, kommunikationsprotokoll eller enhetsgränssnitt. Detta är relaterat till kommunikation med externa verktyg och enheter.
6. Gemensam koppling: Två moduler är gemensamt kopplade om de delar information genom vissa globala dataelement.
7. Innehållskoppling: Innehållskoppling: Innehållskoppling finns mellan två moduler om de delar kod, t.ex. en förgrening från en modul till en annan modul.
Modulsammanhållning
I dataprogrammering definierar sammanhållning i vilken grad elementen i en modul hör ihop. Sammanhållningen mäter alltså styrkan i relationerna mellan delar av funktionaliteten inom en viss modul. I system med hög sammanhållning är funktionaliteten till exempel starkt sammanlänkad.
Sammanhållning är en ordinal typ av mätning och beskrivs i allmänhet som ”hög sammanhållning” eller ”låg sammanhållning”.
Typer av modulers sammanhållning
- Funktionell sammanhållning: Funktionell sammanhållning: Funktionell sammanhållning anses föreligga om de olika delarna av en modul samarbetar för att uppnå en enda funktion.
- Sekventiell sammanhållning: En modul sägs ha sekventiell sammanhållning om modulens beståndsdelar utgör sekvensens komponenter, där resultatet från en komponent i sekvensen är indata till nästa.
- Kommunikativ sammanhållning: En modul har en sekventiell sammanhållning om de olika beståndsdelarna i en modul utgör sekvensens komponenter, där resultatet från en komponent i sekvensen är indata till nästa: En modul sägs ha kommunikativ sammanhållning om alla uppgifter i modulen hänvisar till eller uppdaterar samma datastruktur, t.ex. en uppsättning funktioner definierade på en array eller en stapel.
- Procedurell sammanhållning: En modul sägs ha procedurell sammanhållning om modulens uppsättning av syften är alla delar av en procedur där en viss sekvens av steg måste utföras för att uppnå ett mål, t.ex. algoritmen för avkodning av ett meddelande.
- Temporell sammanhållning: När en modul innehåller funktioner som är förknippade med det faktum att alla metoder måste utföras samtidigt, sägs modulen uppvisa tidsmässig sammanhållning.
- Logisk sammanhållning: En modul sägs vara logiskt sammanhållen om alla element i modulen utför en liknande operation. Exempelvis felhantering, datainmatning och datautmatning etc.
- Sammanhängande sammanhållning: En modul sägs ha tillfällig sammanhållning om den utför en uppsättning uppgifter som är kopplade till varandra mycket löst, om alls.
Differentiera mellan koppling och sammanhållning
Koppling | Sammanhållning |
---|---|
Koppling kallas också för intermodulbindning. | Sammanhållning kallas också för modulintern bindning. |
Koppling visar relationerna mellan moduler. | Koppling visar relationerna inom modulen. |
Koppling visar det relativa oberoendet mellan modulerna. | Koppling visar modulens relativa funktionella styrka. |
Vid skapandet bör man sträva efter låg koppling, dvs, beroendet mellan modulerna bör vara mindre. | När du skapar bör du sträva efter hög sammanhållning, dvs. en sammanhållen komponent/modul fokuserar på en enda funktion (dvs. enkelspårighet) med liten interaktion med andra moduler i systemet. |
Inför koppling är modulerna kopplade till de andra modulerna. | Inför sammanhållning fokuserar modulen på en enda sak. |