По словам Стивена Шаха, «Классическая и объектно-ориентированная программная инженерия», глава 6:
модуль состоит из одного блока кода, который может быть вызван так, как вызывается процедура, функция или метод
Это кажется очень расплывчатым и широким. Так может ли кто-нибудь объяснить это ясно и показать некоторые реальные примеры того, как разбить требование на модули? Благодарю.
Модуль может быть перегруженным термином, настолько, что Википедия описывает его под термином « Модульное программирование» при обсуждении его использования относительно программного обеспечения. Они обсуждают это с точки зрения структурированного программирования, основанного на подходе проектирования сверху вниз. Основные характеристики модульности, связанные с использованием низкого сцепления и высокой когезии .
Я использовал, что на языке, таком как C или даже C ++, модуль связан с определением отдельно скомпилированного модуля из исходного файла (.c или .cpp) и, как правило, одного связанного заголовочного файла (.h). Другие языки используют модуль в качестве описания, а язык Modula-2 помещает структурирование вокруг модулей спереди и по центру в его названии и подходе.
Исторически, модуль имеет некоторые другие последствия, которые были описаны в статье Д.Л. Парнаса «О критериях, которые должны использоваться при декомпозиции программного обеспечения на модули» . Он в первую очередь занимается обсуждением преимуществ замены функциональной декомпозиции на ориентированную на данные декомпозицию, что стало большим шагом к нашему современному состоянию, которое представляет собой объектно-ориентированная декомпозиция.
Объектно-ориентированные языки организованы вокруг классов, поэтому, возможно, термин модуль менее важен и менее точен в этом контексте.
источник
Не существует формального определения модуля, и то, что модуль (или не является) в контексте вашего проекта, в значительной степени зависит от характера и дизайна проекта.
Вообще говоря, модуль - это отдельный фрагмент кода, который обеспечивает специфическую и тесно связанную функциональность, модули определяют и обеспечивают логические границы в вашем коде.
источник