Sprzężenie modułów
W inżynierii oprogramowania, sprzężenie jest stopniem współzależności pomiędzy modułami oprogramowania. Dwa moduły, które są ściśle sprzężone są silnie zależne od siebie. Jednak dwa moduły, które są luźno sprzężone, nie są od siebie zależne. Uncoupled moduły nie mają współzależności w ogóle w nich.
Różne rodzaje technik sprzęgania są pokazane na rysunku:
Dobry projekt jest ten, który ma niskie sprzężenie. Sprzężenie jest mierzone przez liczbę relacji między modułami. Oznacza to, że sprzężenie wzrasta wraz ze wzrostem liczby połączeń między modułami lub ilość współdzielonych danych jest duża. Można więc powiedzieć, że projekt z wysokim sprzężeniem będzie miał więcej błędów.
Typy sprzężenia modułów
1. Brak bezpośredniego sprzężenia: Nie ma bezpośredniego sprzężenia między M1 i M2.
W tym przypadku moduły są podległe różnym modułom. Dlatego nie ma bezpośredniego sprzężenia.
2. Data Coupling: Gdy dane jednego modułu są przekazywane do innego modułu, nazywa się to sprzężeniem danych.
3. Sprzężenie znaczków: Dwa moduły są sprzężone znaczkami, jeśli komunikują się za pomocą złożonych elementów danych, takich jak struktura, obiekty itp. Kiedy moduł przekazuje nieglobalną strukturę danych lub całą strukturę do innego modułu, mówi się, że są one sprzężone stemplem. Na przykład, przekazywanie zmiennej struktury w języku C lub obiekt w języku C++ do modułu.
4. Control Coupling: Control Coupling istnieje między dwoma modułami, jeśli dane z jednego modułu są używane do kierowania strukturą wykonania instrukcji w innym module.
5. Sprzężenie zewnętrzne: External Coupling powstaje, gdy dwa moduły dzielą zewnętrznie narzucony format danych, protokoły komunikacyjne lub interfejs urządzenia. Jest to związane z komunikacją z zewnętrznymi narzędziami i urządzeniami.
6. Wspólne sprzężenie: Dwa moduły są wspólnie sprzężone, jeśli współdzielą informacje poprzez pewne globalne pozycje danych.
7. Content Coupling: Content Coupling istnieje między dwoma modułami, jeśli dzielą one kod, np. gałąź z jednego modułu do innego modułu.
Spójność modułów
W programowaniu komputerowym spójność określa stopień, w jakim elementy modułu należą do siebie. Tak więc, spójność mierzy siłę relacji pomiędzy fragmentami funkcjonalności w ramach danego modułu. Na przykład, w systemach o wysokiej spójności, funkcjonalność jest silnie powiązana.
Spójność jest rzędowym typem pomiaru i jest ogólnie opisywana jako „wysoka spójność” lub „niska spójność.”
Typy spójności modułów
- Spójność funkcjonalna: Mówi się, że spójność funkcjonalna istnieje, jeśli różne elementy modułu, współpracują w celu osiągnięcia jednej funkcji.
- Spójność sekwencyjna: O module mówi się, że posiada spójność sekwencyjną, jeśli elementy modułu tworzą komponenty sekwencji, gdzie wyjście z jednego komponentu sekwencji jest wejściem do następnego.
- Spójność komunikacyjna: O module mówi się, że ma spójność komunikacyjną, jeśli wszystkie zadania modułu odwołują się do lub aktualizują tę samą strukturę danych, np. zbiór funkcji zdefiniowanych na tablicy lub stosie.
- Spójność proceduralna: O module mówi się, że jest spójny proceduralnie, jeśli zbiór celów modułu jest wszystkimi częściami procedury, w której określona sekwencja kroków musi być wykonana dla osiągnięcia celu, np. algorytm dekodowania wiadomości.
- Spójność czasowa: Gdy moduł zawiera funkcje, które są powiązane przez fakt, że wszystkie metody muszą być wykonane w tym samym czasie, mówi się, że moduł wykazuje spójność czasową.
- Spójność logiczna: O module mówi się, że jest spójny logicznie, jeśli wszystkie jego elementy wykonują podobne operacje. Na przykład Obsługa błędów, wprowadzanie i wyprowadzanie danych, itp.
- Spójność koincydentalna: Mówi się, że moduł ma spójność przypadkową, jeśli wykonuje zestaw zadań, które są powiązane ze sobą bardzo luźno, jeśli w ogóle.
Różnicowanie między sprzężeniem a spójnością
Sprzężenie | Spójność |
---|---|
Sprzężenie jest również nazywane wiązaniem międzymodułowym. | Spójność jest również nazywana wiązaniem wewnątrzmodułowym. |
Sprzężenie pokazuje relacje między modułami. | Spójność pokazuje relacje wewnątrz modułu. |
Sprzężenie pokazuje względną niezależność między modułami. | Spójność pokazuje względną siłę funkcjonalną modułu. |
Podczas tworzenia należy dążyć do niskiego sprzężenia, tzn, zależności między modułami powinny być mniejsze. | Podczas tworzenia powinieneś dążyć do wysokiej spójności, tzn. spójny komponent/moduł skupia się na pojedynczej funkcji (tj. jednomyślność) z niewielką interakcją z innymi modułami systemu. |
W sprzężeniu moduły są powiązane z innymi modułami. | W spójności moduł skupia się na pojedynczej rzeczy. |
.