2009-06-22 1 views

ответ

7

Я бы сказал, что ответ зависит от того, кого вы спрашиваете.

Я думаю о различии как о гранулярности и роли. Программный компонент для моего понимания - это автономный объект с четко определенным (и предпочтительно стабильным) интерфейсом, который взаимодействует с остальными частями системы и имеет значительное значение с точки зрения системной архитектуры. Примером может служить уровень абстракции доступа к данным.

Модуль для меня скорее будет развертываемым пакетом исходного кода, содержащим код, который имеет общую цель, но не выполняет какой-либо существенной роли в системе (что означает, что замена его не потребует изменений в общей архитектуре системы) , Примером может служить сериализатор JSON в веб-службе.

4

Модули - это возможность предоставления новой функциональности программного обеспечения.

компоненты являются элементами

0

Компонент является просто другое название для модуля, они одно и то же. Обычно компонент - это термин, который вы можете найти в книге по разработке программного обеспечения, тогда как модуль имеет более широкое использование.

+0

Неправильное. Компонент и модуль не совсем то же самое. Хотя, часто неправильно используются взаимозаменяемо. – iCrus

2

Компоненты обычно считаются автономными, подключаемыми элементами, которые следуют определенной спецификации интерфейса программного обеспечения. Хорошим примером являются элементы GUI, такие как расширенные текстовые поля и выпадающие меню. В принципе все, что не является полной программой, но которая может быть подключена к другой программе для повышения ее функциональности.

Слово Модуль в последние несколько лет не понравилось. Модуль является более общим термином, но некоторые языки имеют его как ключевое слово, то есть Modula 2. У VB.NET есть ключевое слово Module, но это обычный класс со статическими членами, и я понимаю, что большинство программистов VB предпочитают использовать ключевое слово Class.

1

Компонент: модуль черного ящика.

Но на самом деле нет существенной разницы. Не пытайтесь искать здесь глубокий смысл.

6

Вообще говоря,

  • компонент представляет собой относительно мелко зернистый группировка элементов, которые служат конкретную услугу в растворе.
  • модуль является зерновым зерном и действует как группировка одной или нескольких связанных услуг, предоставляемых программным обеспечением .

Модуль будет иметь тенденцию использовать многие компоненты для предоставления своих услуг, тогда как компонент, скорее всего, будет построен из нескольких классов и других компонентов.

В любом случае его субъективность и зависит от масштаба приложения. Для небольшого приложения, вероятно, будет единственная программа (модуль) и ряд компонентов. В приложении среднего размера может быть несколько модулей и множество компонентов. В большом приложении вы, возможно, захотите ввести термин подсистема, которая еще более зернистая, чем модуль!

+4

Интересно - в моем опыте определения в точности противоположны. Например, стандарты разработки программного обеспечения обычно используют «модульное тестирование» как «единое тестирование». – JeffP

1

Компоненты определены на уровне программной системы (как видно/думают во время выполнения). Они являются элементами исполняющей системы и вместе составляют более крупную систему. Эти компоненты/элементы взаимодействуют между собой с помощью разъемов (интерфейсов). Представьте, что черные ящики общаются между собой, не заботятся об их реализации/исходном коде.

Модуль определен на уровне языка программирования (например, набор из 5 классов содержит модуль, обеспечивающий некоторую функциональность). Они определяются на уровне исходного кода в соответствии с функциональными возможностями, предоставляемыми этой коллекцией кода. (пример: классы персистентности в вашем приложении, ответственные за взаимодействие с базой данных).

Обратите внимание, что модуль также является типом компонента (происходит путем категоризации и разделяет ассоциацию «is-a» с компонентом).

Ссылка: Len Bass, Software arch. на практике и Dr. Timothy Lethbridge lecture

Смежные вопросы