Cuplarea modulelor
În ingineria software, cuplarea este gradul de interdependență dintre modulele software. Două module care sunt strâns cuplate sunt puternic dependente unul de celălalt. Cu toate acestea, două module care sunt slab cuplate nu sunt dependente unul de celălalt. Modulele necuplate nu au nici un fel de interdependență în interiorul lor.
Diferitele tipuri de tehnici de cuplare sunt prezentate în fig:
Un proiect bun este cel care are o cuplare redusă. Cuplajul se măsoară prin numărul de relații dintre module. Adică, cuplarea crește pe măsură ce numărul de apeluri între module crește sau cantitatea de date partajate este mare. Astfel, se poate spune că un proiect cu cuplaj ridicat va avea mai multe erori.
Tipuri de cuplare a modulelor
1. Fără cuplare directă: Nu există o cuplare directă între M1 și M2.
În acest caz, modulele sunt subordonate unor module diferite. Prin urmare, nu există cuplaj direct.
2. Cuplaj de date: Atunci când datele unui modul sunt transmise unui alt modul, acest lucru se numește cuplaj de date.
3. Cuplaj de ștampilă: Două module sunt cuplate prin ștampilare dacă comunică folosind elemente de date compozite, cum ar fi structuri, obiecte etc. Atunci când modulul transmite structura de date non-globale sau întreaga structură unui alt modul, se spune că acestea sunt cuplate cu ștampilă. De exemplu, transmiterea unei variabile de structură în limbajul C sau a unui obiect în limbajul C++ către un modul.
4. Cuplarea de control: Există cuplaj de control între două module dacă datele dintr-un modul sunt folosite pentru a direcționa structura de execuție a instrucțiunilor în alt modul.
5. Cuplare externă: Cuplarea externă apare atunci când două module împart un format de date, protocoale de comunicare sau o interfață de dispozitiv impusă din exterior. Aceasta este legată de comunicarea cu instrumente și dispozitive externe.
6. Cuplaj comun: Două module sunt cuplate în comun dacă împărtășesc informații prin intermediul unor elemente de date globale.
7. Cuplarea conținutului: Cuplajul de conținut există între două module dacă acestea împart cod, de exemplu, o ramificare dintr-un modul în alt modul.
Coerența modulului
În programarea calculatoarelor, coeziunea definește gradul de apartenență a elementelor unui modul. Astfel, coeziunea măsoară puterea relațiilor dintre elementele de funcționalitate dintr-un anumit modul. De exemplu, în sistemele foarte coezive, funcționalitatea este puternic legată.
Coeziunea este un tip ordinal de măsurare și este în general descrisă ca fiind „coeziune ridicată” sau „coeziune scăzută.”
Tipuri de coeziune a modulelor
- Coeziune funcțională: Se spune că există coeziune funcțională dacă diferitele elemente ale unui modul, cooperează pentru a realiza o singură funcție.
- Coeziune secvențială: Se spune că un modul posedă coeziune secvențială dacă elementele unui modul formează componentele secvenței, în cazul în care ieșirea de la o componentă a secvenței este o intrare pentru următoarea.
- Coeziune comunicațională: Se spune că un modul are coeziune comunicațională în cazul în care toate sarcinile modulului se referă la sau actualizează aceeași structură de date, de exemplu, setul de funcții definite pe o matrice sau o stivă.
- Coeziune procedurală: Se spune că un modul are coeziune procedurală dacă setul de scopuri ale modulului sunt toate părți ale unei proceduri în care trebuie efectuată o anumită secvență de pași pentru atingerea unui scop, de exemplu, algoritmul de decodare a unui mesaj.
- Coeziune temporală: Atunci când un modul include funcții care sunt asociate prin faptul că toate metodele trebuie să fie executate în același timp, se spune că modulul prezintă coeziune temporală.
- Coeziune logică: Se spune că un modul este coerent din punct de vedere logic dacă toate elementele modulului efectuează o operație similară. De exemplu, tratarea erorilor, intrarea și ieșirea datelor etc.
- Coeziune coincidentă: Se spune că un modul are coeziune întâmplătoare dacă îndeplinește un set de sarcini care sunt asociate unele cu altele foarte vag, sau deloc.
Diferențiere între cuplare și coeziune
Cuplare | Coeziune |
---|---|
Cuplarea se mai numește și legare intermodulară. | Coeziunea se mai numește și legare intramodulară. |
Cuplul arată relațiile dintre module. | Coeziunea arată relația în interiorul modulului. |
Cuplul arată independența relativă dintre module. | Coeziunea arată puterea funcțională relativă a modulului. |
În timpul creării, ar trebui să urmăriți un cuplaj scăzut, adică: | |
, dependența dintre module ar trebui să fie mai mică. | În timpul creării, ar trebui să urmăriți o coeziune ridicată, adică o componentă/un modul coerent se concentrează pe o singură funcție (de exemplu, unicitate de spirit) cu o interacțiune redusă cu alte module ale sistemului. |
În cuplaj, modulele sunt legate de celelalte module. | În coeziune, modulul se concentrează pe un singur lucru. |