Модулно програмиране
Материал от PIE.Wiki
Същността на модулното програмиране е да се раздели сложен проблем на няколко по-прости подзадачи и да се напишат програми, които да ги решават напълно независимо една от друга. Модулността е един от основните принципи при изграждането на софтуерни проекти. В общия случай модулът е отделна функционално завършена програмна единица, идентифицирана по някакъв начин и комбинирана с други, средство за определяне на логически свързан набор от обекти, средство за техния избор и изолиране. Модулът е средство за декомпозиция не само на контролни структури, но и на структури от данни. Това беше до голяма степен улеснено от развитието на концепцията за "тип данни".
Модулът е единица за компилиране, съхранение, както и единица за проектиране и отделна разработка на софтуерен проект от екип от разработчици. По този начин модулът се разбира като средство за дефиниране на логически свързан набор от обекти, средство за техния избор и изолиране.
Създаването на модули и използването на техните обекти в програми е един от методите наикономичното програмиране, което се дължи на следните обстоятелства.
Първо, модулът обикновено дефинира обекти, които са носители на основните понятия на някаква "предметна" област, така че модулът задава контекста на тази предметна област. Следователно програмите, които ще изпълняват различни алгоритми за обработка в тази област, ще могат да използват готови и, което е важно, същите дефиниции на основни обекти.
Второ, както модулите, така и програмите, които ги използват, се компилиратнезависимо(модулът трябва да бъде компилиран преди програмата, която го използва). Поради това времето за компилиране на голяма програма, използваща готови модули, е значително намалено,което е важно при отстраняване на грешки в програми, когато трябва да ги компилирате много пъти.
Третото важно свойство на модула е, че той скрива, "капсулира" представянето и имплементацията на обектите, които експортира, така че евентуалните им промени в модула (когато той е конфигуриран или адаптиран към нови хардуерни възможности) не изискват промени в потребителските програми.
Всички модули използват мнемонични имена за дефинираните от тях обекти (константи, променливи, типове и подпрограми), което улеснява разбирането и запомнянето им и удовлетворява изискването завидимост на текстана програмите.
Езиците за програмиране, които поддържат модулен подход, описват модула като софтуерна единица, състояща се от две основни части - спецификация (интерфейс) и реализация. Спецификацията предоставя такива характеристики на обектите на модула, които са необходими и достатъчни за използването на тези обекти в други модули и програми. Това позволява обектите на модула да се използват само въз основа на информация за техния интерфейс (без да се чака пълното им описание). Частта за изпълнение на модула описва представянето и алгоритмите за обработка, свързани с определени обекти на модула.
Модулът е един от инструментите, които улесняват проверката на програмата. Модулът, като средство за създаване на абстракция, подчертава спецификацията и локализира информацията за изпълнението.
Модулите също служат за целите на създаване на специфичен за домейн контекст и локализиране на машинни зависимости.
Концепцията за модулно програмиране
Концепцията за модулно програмиране може да бъде формулирана под формата на няколко концепции и разпоредби: