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