- Pagrindiniai ir pagalbiniai moduliai
- Modulinio programavimo ypatybės
- Moduliškumas
- Funkcijos apibrėžimas
- Kintamųjų apimtis
- Tai procedūrinis
- Modulinio programavimo pavyzdžiai
- Moduliškumas realiame gyvenime
- „Java“ funkcijos
- Privalumas
- Savarankiškas projekto programavimas
- Efektyvus programos kūrimas
- Daugkartinis modulių naudojimas
- Lengva derinti ir modifikuoti
- Trūkumai
- Pernelyg objektyvi struktūra
- Moduliai per maži
- Skilimas be jokios priežasties
- Programos
- C kalba
- Nuorodos
Modulinė programavimo yra technika naudojama programinės įrangos kūrimo, kur programa yra suskirstyta į daug mažų blokų arba autonominių komponentų, vadinamų modulių, kurie yra valdomas, logiška ir funkcionalus.
Modulis yra teiginių blokas, kuris išsprendžia tam tikrą problemą. Kiekviename modulyje yra viskas, kas būtina jo paties funkcionalumui įgyvendinti, ir jį galima redaguoti ar modifikuoti nepažeidžiant likusio projekto.
Problemos sprendimo naudojant modulius pavyzdys. Šaltinis: Kayau / CC BY (https://creativecommons.org/licenses/by/3.0)
Šis programavimo būdas pasiekiamas išlaikant nuolatinę modulio sąsają, kurią naudoja kiti programinės įrangos komponentai, kad būtų galima naudotis kiekvieno modulio funkcijomis.
Moduliai nustato logines ribas tarp komponentų, pagerindami jų priežiūrą. Jie sujungiami per sąsajas, kurios yra suprojektuotos taip, kad būtų kuo mažesnė priklausomybė tarp skirtingų modulių.
Pagrindiniai ir pagalbiniai moduliai
Pagrindinis modulis ir keli antriniai moduliai sudaro modulinį programavimą. Iš pagrindinio modulio skambinama pagalbinių modulių funkcijoms.
Šie papildiniai egzistuoja kaip atskiri vykdomieji failai, kurie įkeliami, kai veikia pagrindinis modulis. Kiekvienas modulis turi unikalų pavadinimą, priskirtą PROGRAM teiginyje.
Darbo grupės gali kurti skirtingus modulius atskirai, nežinodamos visų sistemos modulių. Kiekviena modulinė programa yra susieta su versijos numeriu, kad kūrėjai galėtų lanksčiau prižiūrėti modulį.
Modulinio programavimo ypatybės
Moduliškumas
Kompiuteriui nereikia eksploatuojamos kodo versijos, kad jį paleistų. Žmogaus pažinimo apribojimai verčia rašyti kodą mažesnėmis dalimis.
Programoje gali būti ir kitų funkcijų, taip pat gali būti nuorodos į funkcijas, esančias kituose failuose. Šios funkcijos arba moduliai yra teiginių rinkiniai, naudojami operacijai atlikti arba vertei apskaičiuoti.
Siekiant išlaikyti paprastumą ir aiškumą didelėse ir sudėtingose programose, naudojama trumpa pagrindinė funkcija kartu su kitomis funkcijomis, o ne ilga pagrindinė funkcija.
Suskirstant programą į modulių grupes, kiekvieną modulį bus lengviau suprasti, taigi jis atitiks pagrindines struktūrinio programavimo gaires.
Funkcijos apibrėžimas
Funkciją sudaro jos apibrėžimo deklaracija, po kurios eina komandos ir sakiniai. Bendroji funkcijos forma yra:
Funkcijos_pavadinimas (parametro deklaracija) {
sakiniai;
komandos;
grąžinimo išraiška;
}
- Parametrų deklaracija parodo funkcijai perduodamą informaciją.
- Papildomi kintamieji, kuriuos konkrečiai naudoja funkcija, yra apibrėžti sakiniuose.
- Visos funkcijos turi apimti grąžinimo pareiškimą.
Kintamųjų apimtis
Kintamieji, kurie deklaruojami pagrindinėje funkcijoje arba vartotojo apibrėžtose funkcijose, vadinami vietiniais kintamaisiais. Jie turi vertę, kai funkcija vykdoma, tačiau jų vertė neišlieka, kai funkcija baigiama.
Kintamieji, paskelbti išoriniais pagrindinei programai ar vartotojo apibrėžtoms funkcijoms, vadinami globaliaisiais kintamaisiais. Šiuos kintamuosius galima paimti iš bet kurios funkcijos, esančios programos viduje.
Tai procedūrinis
Modulinis programavimas yra gana procedūrinis, nes yra visiškai orientuotas į funkcijų kodo rašymą, neatsižvelgiant į duomenis.
Modulinio programavimo pavyzdžiai
Moduliškumas realiame gyvenime
Tarkime, namas, kuriame yra elektra, su keliomis išėjimo angomis ant sienų. Ši sistema leidžia prijungti įvairius elektros prietaisus, pavyzdžiui, mikrobangų krosnelę, skalbimo mašiną, džiovintuvą ir kt.
Šie įrenginiai yra skirti atlikti tam tikras užduotis, kai jie yra prijungti ir įjungti, nepriklausomai nuo to, kur jie yra.
Programos moduliai turi atitikti tą pačią filosofiją. Tai reiškia, kad jie turi atlikti tik savo specifinę užduotį, nesvarbu, kurioje programos vietoje jie yra, ar net prie kurios programos jie yra prisijungę.
Taip pat, kaip elektrinį prietaisą, kurį galima lengvai atjungti nuo lizdo, modulis turi būti suprojektuotas taip, kad jį būtų galima lengvai pašalinti iš programos.
Elektros prietaiso pašalinimas neturi įtakos kitų prijungtų įrenginių funkcionalumui, modulių pašalinimas iš programos neturėtų paveikti kitų tos programos modulių.
„Java“ funkcijos
„Java“ moduliai rašomi kaip savarankiškos funkcijos. Pvz., Galbūt turite funkciją ar kodo bloką, kad apskaičiuotumėte studento GPA pagal jo pažymius visuose jų lankomuose kursuose.
Funkcija turi gauti pažymų sąrašą kaip įvestį ir tada pateikti apskaičiuotą pažymių vidurkį:
Ši funkcija vadinama „CalculateAverageNote“. Kaip įvestį jis gauna užrašų sąrašą, naudodamas dvigubą duomenų tipo masyvą, ir grąžina apskaičiuotą vidurkį.
Funkcijoje vietinio kintamojo suma yra inicializuojama iki nulio, o paskui, naudojant kilpą, visos kvalifikacijos pridedamos prie sumos. Galiausiai gauta suma padalinta iš banknotų skaičiaus ir grąžina gautą vertę.
Jei įvesties matricoje būtų užrašai 3.5, 3.0 ir 4.0, jas pridėjus, suma būtų lygi 10.5 ir tada ji būtų padalinta iš 3, nes yra trys užrašai. Funkcija grąžins 3.5 vertę.
Privalumas
Savarankiškas projekto programavimas
Prie to paties projekto gali dirbti keli programuotojai, jei jis yra padalytas į modulius. Skirtingi programuotojai gali savarankiškai suprojektuoti skirtingus programos modulius, kurių reikia didelei ir sudėtingai programai.
Efektyvus programos kūrimas
Programos gali būti kuriamos greičiau, nes mažus atskirus modulius lengviau suprasti, projektuoti ir išbandyti nei dideles programas.
Programuotojas gali pateikti reikiamą įvestį ir patikrinti, ar modulis yra teisingas, ištyręs jo išvestį.
Daugkartinis modulių naudojimas
Vienai programai parašytas kodas dažnai naudingas kitoms. Modulinis programavimas leidžia išsaugoti šias dalis ateityje. Kadangi kodas yra perkeliamas, išsaugotus modulius galima susieti su bet kuria kita programa, kuri atitinka įvesties ir išvesties reikalavimus.
Naudojant monolitinį programavimą, tokios kodo sekcijos yra įterptos į programą ir nėra prieinamos kitoms programoms.
Lengva derinti ir modifikuoti
Modulis yra mažesnis nei visa programa, todėl jį lengviau išbandyti. Kiekvienas modulis gali būti parašytas ir išbandytas atskirai nuo likusios programos. Po to, kai modulis buvo išbandytas, jį galima naudoti naujoje programoje nereikia jo dar kartą išbandyti.
Kai programą reikia modifikuoti, modulinis programavimas palengvina darbą. Nauji arba suderinti moduliai gali būti susieti su esama programa, nekeičiant likusios programos.
Trūkumai
Pernelyg objektyvi struktūra
Šis programavimas naudoja sąsajas, o tai yra gana efektyvi idėja. Kad tuo pasinaudotumėte, kai kuriose sistemose yra visas keičiamų klasių rinkinys. Pvz., Norint valdyti patvarumą, gali būti kelios klasės, įgyvendinančios patvarumo sąsają.
Tačiau integruotos kūrimo aplinkos (IDE) dėl to susipainioja. Pvz., Galite pabandyti surasti metodo šaltinį, o IDE nežinos, kurį metodą norite pamatyti, taigi parodysite ilgą failų sąrašą, kur yra metodas tokiu pavadinimu.
Moduliai per maži
Yra daugybė modulių, kuriuose yra tik labai maža funkcija. Kiekvienam moduliui, be jo antraštės kode, reikalingas papildomas analizės ir apdorojimo laikas.
Todėl, naudojant daug mažų modulių, kompiliavimo sistema padidins pridėtines išlaidas ir padidins paketo dydį.
Skilimas be jokios priežasties
Kai kurie kodai beveik niekada nesikeičia. Tokiais atvejais gali būti ne visai prasminga stengtis, kad jis atrodytų švaresnis arba su abstrakčia logika, jei tik jo naudojimas veikia gerai.
Kai kurie kodai neatrodo labai gražiai, tačiau pastaraisiais metais jie beveik nepasikeitė. Nėra priežasties skaidyti kodą, kuris niekada nepasikeitė ir jau gerai veikia į modulius.
Programos
Modulinis programavimas yra tik koncepcija. Jos praktika gali būti taikoma bet kuria programavimo kalba, ypač procedūrinio pobūdžio kalbomis, turinčiomis atskirai sudarytą programą.
Komponentų bibliotekas, pastatytas iš atskirai sudarytų modulių, galima sujungti į rinkinį, naudojant programavimo įrankį, vadinamą „linker“.
Skirtingų modulių funkcijų pavadinimai turi būti unikalūs, kad būtų lengviau naudotis jais tuo atveju, jei pagrindinio modulio naudojamos funkcijos turi būti eksportuotos.
Tarp programavimo kalbų, palaikančių modulinio programavimo sąvoką, yra C, Ada, PL / I, Erlang, Pascal, Algol, COBOL, RPG, Haskell, Python, HyperTalk, IBM / 360 Assembler, MATLAB, Ruby, IBM RPG, „SmallTalk“, „Morpho“, „Java“ (paketai laikomi moduliais), „Perl“ ir kt.
C kalba
Modulinį programavimą galima pritaikyti C kalba, nes tai leidžia išspręsti pagrindinius sunkumus, padalinant jį į kelis modulius.
Kiekvienas iš šių modulių išsprendžia tam tikrą problemą, o pagrindinė programa, kuri yra tokių procedūrų rinkinys, išsprendžia visą problemą.
Kiekviena C apibrėžta funkcija pagal nutylėjimą pasiekiama visame pasaulyje. Tai galima padaryti įtraukiant antraštės failą, kuriame apibrėžtas funkcijos įgyvendinimas.
Kaip pavyzdį norime paskelbti duomenų krūvos tipą ir tai, kad diegimas ir duomenų struktūra yra paslėpti nuo vartotojų.
Tai gali būti padaryta pirmiausia apibrėžus viešą failą pavadinimu stack.h, kuriame bus bendrieji duomenys su rietuvės duomenų tipu ir funkcijos, palaikomos rietuvės duomenų tipu.
stack.h:
extern stack_var1;
extern int stack_do_something (void);
Dabar galite sukurti failą, vadinamą stack.c, kuriame pateiktas krūvos duomenų tipo įgyvendinimas:
Nuorodos
- CIO Wiki (2019). Modulinis programavimas. Paimta iš: cio-wiki.org.
- IT apibrėžimai (2020 m.). Modulinis programavimas. Paimta iš: defit.org.
- „New Mexico Tech“ (2020). Modulinis programavimas su funkcijomis. Paimta iš: ee.nmt.edu.
- Christianas Maioli (2020). 3 kūrybinės modulinio kodo rašymo technikos. „Tech Beacon“. Paimta iš: techbeacon.com.
- Geeks už Geeksą (2020). Modulinis požiūris į programavimą. Paimta iš: geeksforgeeks.org.
- Tyrimas (2020). Modulinis programavimas: apibrėžimas ir taikymas „Java“. Paimta iš: study.com.