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
- 1. W jaki sposób tworzysz komponent wielokrotnego użytku z Flask-SQLAlchemy?
- 2. Osadzanie modułu Grpcio Pythona w projekcie Bazel
- 3. W Pythonie, w jaki sposób uzyskać dostęp do przestrzeni nazw modułu głównego z zaimportowanego modułu?
- 4. W jaki sposób CDI usuwa stanowy komponent bean sesji?
- 5. Czy dobrze jest mieć klasę "Utils" w swoim projekcie oprogramowania?
- 6. Łatwy sposób uruchomieniem NHibernate w projekcie WCF
- 7. Najlepsza praktyka odwoływania się do zewnętrznego modułu w projekcie Java
- 8. Jaki jest właściwy sposób napisania metody finalizacji modułu w Julii?
- 9. W jaki sposób można wyświetlić okno dialogowe modułu jquery?
- 10. W jaki sposób Zend Framework 2 renderuje cząstki wewnątrz modułu?
- 11. Jaki jest zalecany sposób postępowania z zależnościami modułu prywatnego node.js?
- 12. [kąt2] [ngModuły] jak wywołać komponent z innego modułu?
- 13. Czy istnieje programowy sposób sprawdzania, w jaki sposób został utworzony komponent Spring bean?
- 14. W jaki sposób uzyskać nazwę modułu definicji klasy obiektu zamiast nazwy modułu procesu tworzenia obiektu?
- 15. Wzorzec modułu JavaScript: w jaki sposób metody prywatne mają dostęp do zakresu modułu?
- 16. jaki jest właściwy sposób opublikowania modułu komponentu React w NPM bez zewnętrznych zależności wewnątrz?
- 17. W jaki sposób komponent złożony ustawia właściwość w komponencie bean klienta?
- 18. Pobierz komponent z JScrollPane
- 19. Zakres funkcji oprogramowania pośredniego w pliku express.js
- 20. Jak to Capybara do modułu w projekcie Ogórek
- 21. Oprogramowanie: w jaki sposób oprogramowanie rozpoznaje utwór?
- 22. W jaki sposób należy obsługiwać tajne wartości w projekcie w kontroli źródła?
- 23. Optymalizacja pakietów w rozproszonej architekturze oprogramowania
- 24. W jaki sposób współdziałać Konsola fasoli sprężynowej
- 25. W jaki sposób nadal rozwijasz duże (długoterminowe) systemy oprogramowania ze starszym i nowym kodem?
- 26. W jaki sposób Linux Kernel wie, gdzie szukać oprogramowania układowego sterownika?
- 27. Jaki jest cel modułu ładującego klasy Java?
- 28. Jaki jest poprawny sposób organizowania ViewControllers w projekcie Monotouch w MonoDevelop?
- 29. W jaki sposób używasz architektury gry jako biblioteki, w projekcie scala
- 30. W jaki sposób organizujesz swoje moduły NInject?
To nie jest poprawne. Komponent i moduł to nie to samo. Chociaż, często nieprawidłowo używane zamiennie. – iCrus