2009-06-22 5 views

Odpowiedz

7

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.

4

Moduły to możliwości udostępniania nowej funkcji oprogramowania.

Komponenty są elementami

0

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.

+0

To nie jest poprawne. Komponent i moduł to nie to samo. Chociaż, często nieprawidłowo używane zamiennie. – iCrus

2

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.

1

składnik: moduł czarnej skrzynki.

Ale nie ma żadnej znaczącej różnicy, naprawdę. Nie próbuj szukać głębokiego znaczenia tutaj.

6

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ł!

+4

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

1

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

Powiązane problemy