При этом функция — это то, что делает модуль, а не то, как он это делает. А вот логика характеризует, как модуль выполняет свои функции. Контекст описывает конкретное применение.
Например: модуль с функцией “удалить пробелы из литерной строки” может использоваться в контексте “сжать сообщение для телеобработки”.
Или модуль, вычисляющий сумму:
может использоваться в контекстах “вычисление зарплаты всех сотрудников” или “определение пробега всех автомобилей”. В этом случае содержательный смысл слагаемых ai различный.
Основная причина по которой разрабатываемое ПО разбивается на модули — борьба со сложностью ПО.
Принципы модульного программирования позволяют получать программные комплексы минимальной сложности. Эти принципы следующие:
а) усиление внутренних связей в каждом модуле (иначе принцип называется повышением прочности модуля);
б) ослабление взаимосвязи между модулями (иначе этот принцип называется ослаблением сцепления модулей).
Если рассматривать программу как набор предложений, связанных между собой некоторыми отношениями (как по выполняемым функциям, так и по обрабатываемым данным), то применение принципов модульного программирования означает, что необходимо распределить предложения программы по отдельным модулям так, чтобы предложения внутри каждого модуля были тесно связаны, а связь между любыми двумя модулями была минимальной.
Для качественной характеристики модулей введены 7 классов прочности модулей и 5 видов сцепления модулей. Класс прочности является мерой связи предложений внутри модуля. Сцепление модулей — это мера зависимости между модулями.
Классы прочности модулей
Назовем эти классы в порядке возрастания прочности. Вы должны понимать, что чем к большему по номеру классу относится конкретный программный модуль, тем он “доброкачественнее”.
Чтобы отнести модуль к тому или иному классу, нужно проанализировать выполняемую им функцию (или функции).