- Главни и помоћни модули
- Могућности модуларног програмирања
- Модуларност
- Дефиниција функције
- Обим променљивих
- То је процедурално
- Примјери модуларног програмирања
- Модуларност у стварном животу
- Функције на Јави
- Предност
- Независно програмирање пројеката
- Ефикасан развој програма
- Вишеструка употреба модула
- Једноставност уклањања погрешака и модификација
- Недостаци
- Прекомерно објектно оријентисана структура
- Модули су премали
- Раскомадајте без разлога
- Апликације
- Ц језик
- Референце
Модуларни програмирање је техника која се користи за развој софтвера, где је програм подељен у много малих блокова или аутономних компоненте називају модули, који су под контролом, логично и функционалан.
Модул је блок изјава који решава одређени проблем. Сваки модул садржи све што је потребно за испуњавање његових функција и може се уређивати или модификовати без утицаја на остатак пројекта.
Пример решавања проблема помоћу модула. Извор: Каиау / ЦЦ БИ (хттпс://цреативецоммонс.орг/лиценсес/би/3.0)
Овај начин програмирања постиже се одржавањем сталног интерфејса модула који користе остале софтверске компоненте како би се приступило функцијама сваког модула.
Модули намећу логичке границе између компоненти, побољшавајући одрживост. Инкорпорисани су кроз интерфејсе који су дизајнирани тако да умањују зависност између различитих модула.
Главни и помоћни модули
Главни модул и неколико секундарних модула чине оно модуларно програмирање. Из главног модула се упућују позиви према функцијама помоћних модула.
Ови додаци постоје као одвојене извршне датотеке, које се учитавају када се покрене главни модул. Сваки модул има јединствено име додељено у изјави ПРОГРАМ.
Радни тимови могу засебно развити различите модуле без потребе да познају све модуле система. Свака од модуларних апликација повезана је са бројем верзије како би програмерима пружила флексибилност у одржавању модула.
Могућности модуларног програмирања
Модуларност
Рачунару није потребна експлодирана верзија кода да би га покренуо. Људска когнитивна ограничења вас присиљавају да пишете код у мањим комадима.
Програм може да садржи и друге функције, а може се односити и на функције које се налазе у другим датотекама. Ове функције или модули су скуп израза који се користе за извођење операције или израчунавање вриједности.
Да би се одржала једноставност и читљивост у великим и сложеним програмима, користи се кратка главна функција заједно са другим функцијама, а не дугачка главна функција.
Раздвајањем програма у групе модула, сваки модул ће бити лакше разумљив, на тај начин у складу са основним смерницама структурираног програмирања.
Дефиниција функције
Функција се састоји од декларације о њеној дефиницији која је праћена наредбама и изјавама. Општи облик функције је:
Назив функције (декларација параметра) {
реченице;
команде;
повратни израз;
}
- Декларација параметара представља информације које се преносе у функцију.
- Додатне променљиве које функција користи посебно су дефинисане у реченицама.
- Све функције морају садржавати изјаву о поврату.
Обим променљивих
Променљиве варијабле које су декларисане унутар главне функције или у функцијама дефинисаним од стране корисника називају се локалним променљивим. Оне имају вредност када се функција извршава, али њихова вредност се не задржава када се функција доврши.
Променљиве варијабле које су декларисане вањским главним програмом или функцијама које дефинише корисник називају се глобалне променљиве. Ове се променљиве могу узети из било које функције која је унутар програма.
То је процедурално
Модуларно програмирање је прилично процедурално, јер је потпуно оријентисано на писање кода за функције, не узимајући у обзир податке.
Примјери модуларног програмирања
Модуларност у стварном животу
Претпоставимо кућу са струјом, са неколико утичница на зидовима. Овај систем вам омогућава да прикључите разне електричне уређаје, на пример, микроталасну, веш машину, сушилицу итд.
Ови уређаји су дизајнирани да извршавају свој одређени задатак када су укључени и укључени, без обзира на то где се налазе.
Модули апликације морају следити исту филозофију. То значи да морају обављати само свој одређени задатак без обзира у који се дио апликације налазе или чак у којој су апликацији повезани.
Такође, као што се електрични уређај може лако искључити из утичнице, модул мора бити дизајниран тако да се може лако уклонити из апликације.
Баш као што уклањање електричног уређаја не утиче на функционалност осталих повезаних уређаја, уклањање модула из апликације не би требало да утиче на функционалност осталих модула те апликације.
Функције на Јави
У Јава модули се пишу као независне функције. На пример, можда ћете имати функцију или блок кода за израчунавање просечне оцене ученика на основу њихових оцена у свим курсевима које су похађали.
Функција мора добити листу оцјена као уноса и затим вратити израчунати просјек оцјена:
Ова функција се зове ЦалцулатеАверагеНоте. Као улаз прима листу белешки, користећи низ података двоструких, и враћа израчунати просјек.
У функцији се локална варијабилна сума иницијализира на нулу, а затим се помоћу збирке за петљу додају све квалификације. На крају, добијена сума се дели са бројем белешки, враћајући добијену вредност.
Ако би улазна матрица имала белешке 3.5, 3.0 и 4.0, након додавања истих, она би збрајала вредност 10.5, а затим би је поделила са 3, јер постоје три ноте. Функција би вратила вредност 3,5.
Предност
Независно програмирање пројеката
На истом пројекту може радити више програмера ако је подељен на модуле. Различити програмери могу самостално дизајнирати различите програмске модуле, што је потребно за велики и сложени програм.
Ефикасан развој програма
Програми се могу брже развити јер су мали, самостални модули лакши за разумевање, обликовање и тестирање од великих програма.
Програмер може да пружи потребан унос и провери да ли је модул исправан испитивањем резултата.
Вишеструка употреба модула
Код написан за један програм често је користан у другима. Модуларно програмирање омогућава да се ти одељци сачувају за будућу употребу. Будући да се код може преселити, сачувани модули могу се повезати са било којим другим програмом који испуњава захтеве за улазом и излазом.
Код монолитног програмирања такви одељци кода уграђени су у програм и нису доступни за употребу у другим програмима.
Једноставност уклањања погрешака и модификација
Модул је мањи од пуног програма, па је лакше тестирати. Сваки модул се може написати и тестирати одвојено од остатка програма. Након тестирања модула, може се користити у новом програму без поновног тестирања.
Када се програм мора модификовати, модуларно програмирање поједностављује посао. Нови или отклоњени модули могу се повезати с постојећим програмом без промјене остатка програма.
Недостаци
Прекомерно објектно оријентисана структура
Ово програмирање користи интерфејсе, што је прилично ефикасна идеја. Да бисте то искористили, неки оквири долазе са читавим сетом изменљивих класа. На пример, за руковање упорношћу може постојати више класа које имплементирају сучеље упорности.
Међутим, интегрисана развојна окружења (ИДЕ) се због тога збуњују. На пример, могли бисте да покушате да пронађете извор методе, а ИДЕ неће знати коју методу желите да видите, приказујући тако дугу листу датотека где постоји метода с тим именом.
Модули су премали
Постоји пуно модула који садрже само врло малу функцију. Сваки модул захтева додатно време рашчлањивања и обраде, уз заглавље у коду.
Због тога ће употреба многих малих модула додати систем за компилацију повећавајући величину пакета.
Раскомадајте без разлога
Неки се кодови готово никада не мењају. У тим случајевима можда неће имати пуно смисла покушати учинити да он изгледа чишћи или са апстрактном логиком, ако само његово коришћење делује добро.
Постоје кодови који не изгледају прелепо, а ипак се нису много променили последњих година. Не постоји разлог за декомпозицију кода који се никада није променио и који већ добро функционира у модуле.
Апликације
Модуларно програмирање је само концепт. Његова пракса може се применити у било којем програмском језику, посебно процедуралног карактера, који имају посебно састављен програм.
Библиотеке компоненти изграђене од засебно састављених модула могу се комбиновати у скуп користећи програмски алат који се зове везник.
Називи функција у различитим модулима морају бити јединствени како би се олакшао њихов приступ у случају да се функције које користи главни модул морају извозити.
Међу програмским језицима који подржавају концепт модуларног програмирања су Ц, Ада, ПЛ / И, Ерланг, Пасцал, Алгол, ЦОБОЛ, РПГ, Хаскелл, Питхон, ХиперТалк, ИБМ / 360 Ассемблер, МАТЛАБ, Руби, ИБМ РПГ, СмаллТалк, Морпхо, Јава (пакети се сматрају модулима), Перл итд.
Ц језик
Модуларно програмирање може се применити на језику Ц јер омогућава велике поправке раздвајањем у неколико модула.
Сваки од ових модула решава одређени проблем, док главни програм, који је скуп таквих поступака, решава проблем у целини.
Свака функција дефинисана у Ц је подразумевано доступна глобално. То се може постићи укључивањем заглавне датотеке у којој је дефинисана имплементација функције.
Као пример, желимо да прогласимо тип података скупа, као и да су имплементација и структура података сакривени од корисника.
То се може постићи тако што ћете прво дефинисати јавну датотеку под називом стацк.х, која ће садржавати генеричке податке са типом података стака и функције које подржава тип података за слагање.
стацк.х:
ектерн стацк_вар1;
ектерн инт стацк_до_сометхинг (воид);
Сада можете да направите датотеку која се зове стацк.ц која садржи имплементацију типа података о стаку:
Референце
- ЦИО Вики (2019). Модуларно програмирање. Преузето са: цио-вики.орг.
- Дефиниције информационих технологија (2020). Модуларно програмирање. Преузето са: дефит.орг.
- Нев Мекицо Тецх (2020). Модуларно програмирање са функцијама. Преузето са: ее.нмт.еду.
- Цхристиан Маиоли (2020). 3 креативне технике писања модуларног кода. Тецх Беацон. Преузето са: тецхбеацон.цом.
- Геекс за Геекс (2020). Модуларни приступ у програмирању. Преузето са: геексфоргеекс.орг.
- Студија (2020). Модуларно програмирање: дефиниција и примјена на Јави. Преузето са: студи.цом.