В программном обеспечении, как бы вы отличали компонент от модуля?В программном проекте, как бы вы отличали компонент от модуля?
ответ
Я бы сказал, что ответ зависит от того, кого вы спрашиваете.
Я думаю о различии как о гранулярности и роли. Программный компонент для моего понимания - это автономный объект с четко определенным (и предпочтительно стабильным) интерфейсом, который взаимодействует с остальными частями системы и имеет значительное значение с точки зрения системной архитектуры. Примером может служить уровень абстракции доступа к данным.
Модуль для меня скорее будет развертываемым пакетом исходного кода, содержащим код, который имеет общую цель, но не выполняет какой-либо существенной роли в системе (что означает, что замена его не потребует изменений в общей архитектуре системы) , Примером может служить сериализатор JSON в веб-службе.
Модули - это возможность предоставления новой функциональности программного обеспечения.
компоненты являются элементами
Компонент является просто другое название для модуля, они одно и то же. Обычно компонент - это термин, который вы можете найти в книге по разработке программного обеспечения, тогда как модуль имеет более широкое использование.
Компоненты обычно считаются автономными, подключаемыми элементами, которые следуют определенной спецификации интерфейса программного обеспечения. Хорошим примером являются элементы GUI, такие как расширенные текстовые поля и выпадающие меню. В принципе все, что не является полной программой, но которая может быть подключена к другой программе для повышения ее функциональности.
Слово Модуль в последние несколько лет не понравилось. Модуль является более общим термином, но некоторые языки имеют его как ключевое слово, то есть Modula 2. У VB.NET есть ключевое слово Module, но это обычный класс со статическими членами, и я понимаю, что большинство программистов VB предпочитают использовать ключевое слово Class.
Компонент: модуль черного ящика.
Но на самом деле нет существенной разницы. Не пытайтесь искать здесь глубокий смысл.
Вообще говоря,
- компонент представляет собой относительно мелко зернистый группировка элементов, которые служат конкретную услугу в растворе.
- модуль является зерновым зерном и действует как группировка одной или нескольких связанных услуг, предоставляемых программным обеспечением .
Модуль будет иметь тенденцию использовать многие компоненты для предоставления своих услуг, тогда как компонент, скорее всего, будет построен из нескольких классов и других компонентов.
В любом случае его субъективность и зависит от масштаба приложения. Для небольшого приложения, вероятно, будет единственная программа (модуль) и ряд компонентов. В приложении среднего размера может быть несколько модулей и множество компонентов. В большом приложении вы, возможно, захотите ввести термин подсистема, которая еще более зернистая, чем модуль!
Интересно - в моем опыте определения в точности противоположны. Например, стандарты разработки программного обеспечения обычно используют «модульное тестирование» как «единое тестирование». – JeffP
Компоненты определены на уровне программной системы (как видно/думают во время выполнения). Они являются элементами исполняющей системы и вместе составляют более крупную систему. Эти компоненты/элементы взаимодействуют между собой с помощью разъемов (интерфейсов). Представьте, что черные ящики общаются между собой, не заботятся об их реализации/исходном коде.
Модуль определен на уровне языка программирования (например, набор из 5 классов содержит модуль, обеспечивающий некоторую функциональность). Они определяются на уровне исходного кода в соответствии с функциональными возможностями, предоставляемыми этой коллекцией кода. (пример: классы персистентности в вашем приложении, ответственные за взаимодействие с базой данных).
Обратите внимание, что модуль также является типом компонента (происходит путем категоризации и разделяет ассоциацию «is-a» с компонентом).
Ссылка: Len Bass, Software arch. на практике и Dr. Timothy Lethbridge lecture
- 1. Как бы вы определили драгоценные камни в незнакомом проекте Rails?
- 2. В React, как бы вы динамически отображали компонент?
- 3. Как вы сохранили бы ответ от модификации
- 4. Используя a4j, как бы вы перенесли компонент dojo?
- 5. Вы бы использовали архитектуру S # arp в новом коммерческом проекте?
- 6. Как я могу отладить SIGFPE в большом, незнакомом программном проекте?
- 7. Gradle: Могу ли я зависеть от модуля в другом проекте?
- 8. Не могли бы вы использовать компонент, который требует .NET 3.5?
- 9. Как бы вы совмещали фотографии?
- 10. FLVPlayBack компонент, как встроенная скин в проекте?
- 11. Как удалить ссылочный компонент в проекте VB6.0
- 12. Как найти определенный компонент в проекте - Clearcase
- 13. Как вы обмениваете компонент UIPickerView?
- 14. Как бы вы архитекторное приложение
- 15. Как обеспечить флаг модуля в проекте VS2015?
- 16. Как вы создаете компонент в Tapestry 5?
- 17. Настройка зависимости классов тестирования от другого модуля в проекте maven
- 18. Как бы вы построили HttpTraceListener?
- 19. Как бы вы протестировали браузер?
- 20. Как вы бы описали "change"?
- 21. Как вы ссылаетесь на другой проект GWT в своем проекте?
- 22. Apache Shiro: Как бы вы управляли пользователями?
- 23. Symfony 2.8 Валидатор Компонент в автономном проекте
- 24. Как вы определяете программный компонент?
- 25. как бы вы это сделали в Rails?
- 26. Как бы вы написать «конструктор»
- 27. Как бы вы реорганизовать это
- 28. Как бы вы «сжимали» список?
- 29. Как бы вы защитили базу данных ссылок от царапин?
- 30. Как создать компонент из уже импортированного модуля?
Неправильное. Компонент и модуль не совсем то же самое. Хотя, часто неправильно используются взаимозаменяемо. – iCrus