Modularno programiranje je vrsta kodiranja in razvoja programske opreme, ki vključuje razbijanje podatkov v manjše pakete ali “module”. V večini primerov te module lažje absorbirajo večji procesni sistemi, kar jih lahko naredi hitrejši in učinkovitejši na strani uporabnika; Morda pa je pri kodiranju še pomembneje, da manjša velikost paketov pomeni, da jih je mogoče posamično testirati, razvijati in izpopolnjevati. Razbijanje programov na manjše kose je v mnogih pogledih naredilo razvoj veliko bolj temeljitega in natančnega ter odprlo tudi številna vrata inovacijam. Vendar pa razdeljevanje programov običajno ni tako preprosto kot preprosto risanje črt. Večino časa so moduli razdeljeni na podlagi njihovih osrednjih skupnih lastnosti in z namenom zmanjšanja prekrivajočih se odvisnosti, ki bi jih lahko imele komponente. Končni cilj je običajno razdeliti program tako, da ga je mogoče hitro in natančno razviti v eno brezhibno celoto z minimalnim naporom ali prekrivajočimi se pregledi.
Osnovni koncept in glavne prednosti
Programiranje in kodiranje programske opreme sta na voljo v različnih oblikah in imata lahko številne diskretne cilje. Ker operacije postajajo vse bolj zapletene, je lahko proces ustvarjanja, odpravljanja napak in izvajanja vseh posameznih komponent, ki skupaj tvorijo večji program, veliko delo – v nekaterih primerih tako veliko, da so se stvari že spremenile v začetnih fazah pred zadnji kosi so dokončani. Eden najučinkovitejših načinov za reševanje težav in povečanje učinkovitosti pri gradnji je razbijanje kode na module, kar je postalo standardni način kodiranja na večini področij. Med drugim je to proces, ki na splošno pomaga skrajšati čas razvoja in preprečiti podvajanje kode
Prepoznavanje skupnih točk
Prepoznavanje skupnih lastnosti v programski opremi je temelj modularnega programiranja. Z združevanjem podobnih objektov in procesov skupaj in zagotavljanjem, da vsak nastali modul dobro deluje, se izboljša pravilno delovanje celotnega sistema. To pomeni, da če moduli dobro delujejo glede na to, kaj ta modul počne, je bolj verjetno, da bodo dobro delovali, če so združeni.
Pomen minimalnih odvisnosti
Druga ključna značilnost je minimalna odvisnost med moduli. V bistvu minimalne odvisnosti pomenijo, da lahko obstaja veliko odnosov med objekti znotraj modula in malo razmerij med objekti v ločenih modulih. Za oceno stopnje odvisnosti znotraj programa razvijalci programske opreme uporabljajo postopek merjenja, znan kot spajanje. Nekaj povezovanja je potrebno, da moduli delujejo skupaj pri doseganju cilja programskega programa kot celote, vendar je za zmanjšanje možnosti napake z vidika modularnega programiranja najboljša majhna povezava.
Skrivanje informacij
Skrivanje informacij, še en vidik, ki se pogosto uporablja v tem bolj razdrobljenem pristopu k programiranju, prav tako pomaga poenostaviti stvari ter zmanjšati napake in odvečne vrednosti. V bistvu ta funkcija omejuje količino posredovanih informacij samo na tiste, ki so potrebne. Dodatne, čeprav morda povezane, informacije se ne posredujejo uporabniku programske opreme ali programskega modula, ki zahteva informacije od drugega modula znotraj programa.
Vloga knjižnice kod
Modularno programiranje običajno uporablja eno prevedeno knjižnico kod, ki izvaja doslednost v kodiranju ali programiranju vsakega modula. Če je program sestavljen iz modula A, modula B in modula C, bodo vsi ti moduli poganjali en sam kodni vir, ki ga je mogoče ponovno uporabiti v vseh modulih. Pomanjkanje ponavljanja za vsak modul izboljša zmogljivost sistema in zmanjša možnost človeške napake pri kodiranju.
Potencial za nadgradnjo
Koncept delitve naredi vsak modul in tisto, kar ga sestavlja, neodvisen drug od drugega, vendar je vsak modul še vedno odvisen od iste osnovne kode. Ekskluzivnost med moduli omogoča razvijalcu, da naenkrat zamenja ali nadgradi posamezne dele programske opreme. Bolj razdrobljen pristop omogoča razvijalcu, da po potrebi naloži zahtevane dele programa. Možnost enostavnega dodajanja ali spreminjanja programske opreme brez potrebe po spreminjanju osnovnega programa razvijalcem omogoča tudi izdajo več različic programske aplikacije, ki imajo prilagodljive komponente.