W oprogramowaniu w jaki sposób odróżnisz komponent od modułu?W projekcie oprogramowania, w jaki sposób wyróżniałbyś komponent z modułu?
Odpowiedz
Powiedziałbym, że odpowiedź zależy od tego, kogo zapytasz.
Myślę, że różnica polega na granulacji i roli. Komponent oprogramowania do mojego zrozumienia jest samodzielnym bytem z dobrze zdefiniowanym (i najlepiej stabilnym) interfejsem, który współdziała z pozostałymi częściami systemu i ma istotne znaczenie z punktu widzenia architektury systemu. Przykładem może być warstwa abstrakcji dostępu do danych.
Moduł do mnie byłby raczej pakietem kodu źródłowego, który może być wykorzystywany, ale nie pełni istotnej roli w systemie (co oznacza, że jego zastąpienie nie wymagałoby zmian w ogólnej architekturze systemu) . Przykładem może być serializator JSON w usłudze sieciowej.
Moduły to możliwości udostępniania nowej funkcji oprogramowania.
Komponenty są elementami
Składnik to tylko inna nazwa modułu, są one tak samo. Zwykle komponent jest terminem, który można znaleźć w książce inżynierii oprogramowania, podczas gdy moduł ma szersze zastosowanie.
Komponenty są ogólnie uważane za samodzielne, możliwe do podłączenia elementy, które są zgodne ze specyfikacją interfejsu oprogramowania. Dobrym przykładem są elementy interfejsu GUI, takie jak ulepszone pola tekstowe i listy rozwijane. Zasadniczo wszystko, co nie jest kompletnym programem, ale które można podłączyć do innego programu w celu zwiększenia jego funkcjonalności.
Moduł słowo w ostatnich kilku latach wypadł z łaski. Moduł jest terminem bardziej ogólnym, ale niektóre języki mają go jako słowo kluczowe, np. Modula 2. VB.NET ma słowo kluczowe Module, ale jest to zwykła klasa ze statycznymi członkami, a moim zdaniem większość programistów VB woli używać słowo kluczowe Class.
składnik: moduł czarnej skrzynki.
Ale nie ma żadnej znaczącej różnicy, naprawdę. Nie próbuj szukać głębokiego znaczenia tutaj.
Generalnie
- składnikiem jest stosunkowo silnie drobnoziarnisty ugrupowanie elementów służyć określonej usługi w roztworze .
- Moduł jest uzbrojony w coursera, a działa jako grupa jednego lub więcej powiązanych usług dostarczanych z oprogramowaniem dostarczanym przez oprogramowanie .
Moduł będzie miał tendencję do korzystania z wielu elementów w celu świadczenia swoich usług, podczas gdy komponent będzie prawdopodobnie zbudowany z kilku klas i innych komponentów.
W każdym razie jest to subiektywne i zależy od skali aplikacji. W przypadku małej aplikacji prawdopodobnie istnieje jeden program (moduł) i wiele komponentów. W aplikacji średniej wielkości może być kilka modułów i wiele komponentów. W dużej aplikacji możesz wprowadzić pojęcie podsystemu, który jest jeszcze grubszy niż moduł!
Interesujące - z mojego doświadczenia wynika, że definicje są dokładnie odwrotne. Standardy rozwoju oprogramowania zwykle używają "testowania modułów" zamiennie, na przykład, z "testowaniem jednostkowym". – JeffP
Komponenty są definiowane na poziomie systemu oprogramowania (jak widać/myślę w czasie wykonywania). Są elementami systemu wykonawczego i razem tworzą większy system. Te komponenty/elementy współdziałają między sobą za pomocą złączy (interfejsów). Wyobraź sobie, że czarne skrzynki komunikują się między sobą, nie zwraca się uwagi na ich implementację/kod źródłowy.
Moduł definiowany jest na poziomie języka programowania (np. Zestaw 5 klas zawiera moduł zapewniający pewną funkcjonalność). Są one zdefiniowane na poziomie kodu źródłowego zgodnie z funkcjonalnością oferowaną przez ten zbiór kodu. (przykład: klasy utrwalania w aplikacji odpowiedzialne za interakcję z bazą danych).
Należy zauważyć, że moduł jest także rodzajem komponentu (przechodzi przez kategoryzację i dzieli powiązanie "is-a" z komponentem).
Reference: Len Bass, Oprogramowanie arch. w praktyce i Dr. Timothy Lethbridge lecture
To nie jest poprawne. Komponent i moduł to nie to samo. Chociaż, często nieprawidłowo używane zamiennie. – iCrus