- Glavni i pomoćni moduli
- Značajke modularnog programiranja
- modularnost
- Definicija funkcije
- Opseg varijabli
- To je proceduralno
- Primjeri modularnog programiranja
- Modularnost u stvarnom životu
- Funkcije u Javi
- Prednost
- Nezavisno programiranje projekata
- Učinkovit razvoj programa
- Višestruka upotreba modula
- Jednostavnost uklanjanja pogrešaka i izmjena
- Nedostaci
- Prekomjerno objektno orijentirana struktura
- Moduli su premali
- Raskomadajte bez razloga
- Prijave
- C jezik
- Reference
Modularan programski je tehnika koja se koristi za razvoj softvera, gdje se program podijeljen u male blokove ili autonomnih dijelova nazivaju moduli, koji su rukovanje, logično i funkcionalno.
Modul je blok izjava koji rješavaju određeni problem. Svaki modul sadrži sve što je potrebno za ispunjavanje njegovih vlastitih funkcionalnosti i može ga se uređivati ili modificirati bez utjecaja na ostatak projekta.
Primjer rješavanja problema pomoću modula. Izvor: Kayau / CC BY (https://creativecommons.org/licenses/by/3.0)
Ovakav način programiranja postiže se održavanjem trajnog sučelja modula koje koriste ostale softverske komponente kako bi pristupile funkcijama svakog modula.
Moduli nameću logičke granice između komponenti, poboljšavajući održivost. Ugrađeni su kroz sučelja koja su dizajnirana tako da umanjuju ovisnost između različitih modula.
Glavni i pomoćni moduli
Glavni modul i nekoliko sekundarnih modula čine ono modularno programiranje. Iz glavnog modula obavljaju se pozivi prema funkcijama pomoćnih modula.
Ti dodaci postoje kao zasebne izvršne datoteke, koje se učitavaju kada se pokreće glavni modul. Svaki modul ima jedinstveno ime dodijeljeno u izjavi PROGRAM.
Radni timovi mogu zasebno razviti različite module bez potrebe za poznavanjem svih modula sustava. Svaka od modularnih aplikacija povezana je s brojem verzije kako bi programerima bila fleksibilna u održavanju modula.
Značajke modularnog programiranja
modularnost
Računalo ne treba eksplodiranu verziju koda da bi ga pokrenulo. Ljudska kognitivna ograničenja prisiljavaju vas da pišete kôd u manjim dijelovima.
Program može sadržavati i druge funkcije, a može se odnositi i na funkcije koje se nalaze u drugim datotekama. Ove funkcije ili moduli su skup izraza koji se koriste za izvođenje operacije ili izračunavanje vrijednosti.
Da bi se održala jednostavnost i čitljivost u velikim i složenim programima, kratka glavna funkcija koristi se zajedno s drugim funkcijama, a ne dugačka glavna funkcija.
Razdvajanjem programa u grupe modula, svaki će modul biti lakše razumljiv, na taj način u skladu s osnovnim smjernicama strukturiranog programiranja.
Definicija funkcije
Funkcija se sastoji od deklaracije o njenoj definiciji koja slijedi naredbe i izjave. Opći oblik funkcije je:
Naziv funkcije (deklaracija parametra) {
rečenice;
naredbe;
povratni izraz;
}
- Deklaracija parametara predstavlja informacije koje se prenose u funkciju.
- Dodatne varijable koje koristi funkcija posebno definirane su u rečenicama.
- Sve funkcije moraju sadržavati izjavu o povratu.
Opseg varijabli
Varijable koje su deklarirane unutar glavne funkcije ili u funkcijama definiranim od strane korisnika nazivaju se lokalnim varijablama. One imaju vrijednost kada se funkcija izvršava, ali njihova vrijednost ne zadržava se kada se funkcija dovrši.
Promjenjive vrijednosti koje su deklarirane vanjskim glavnim programom ili funkcijama definiranim od strane korisnika nazivaju se globalne varijable. Te se varijable mogu uzeti iz bilo koje funkcije koja se nalazi u programu.
To je proceduralno
Modularno programiranje prilično je proceduralno, jer je potpuno orijentirano na pisanje koda za funkcije, ne uzimajući u obzir podatke.
Primjeri modularnog programiranja
Modularnost u stvarnom životu
Pretpostavimo kuću s strujom, s nekoliko utičnica na zidovima. Ovaj sustav omogućuje vam priključenje raznih električnih uređaja, na primjer, mikrovalna, perilica rublja, sušilica itd.
Ovi su uređaji dizajnirani da izvršavaju svoje specifične zadatke kada su uključeni i uključeni, bez obzira na to gdje se nalaze.
Moduli aplikacije moraju slijediti istu filozofiju. To znači da moraju obavljati samo svoj određeni zadatak bez obzira u kojem su dijelu aplikacije ili čak u kojoj aplikaciji su spojeni.
Također, kao što se električni uređaj može lako isključiti iz utičnice, modul mora biti dizajniran na takav način da se može lako ukloniti iz aplikacije.
Baš kao što uklanjanje električnog uređaja ne utječe na funkcionalnost ostalih povezanih uređaja, uklanjanje modula iz aplikacije ne bi trebalo utjecati na funkcionalnost ostalih modula te aplikacije.
Funkcije u Javi
U Java moduli su zapisani kao neovisne funkcije. Na primjer, možda imate funkciju ili blok koda za izračunavanje studentske ocjene na temelju njihovih ocjena u svim tečajevima koje su pohađali.
Funkcija mora dobiti popis ocjena kao unosa, a zatim vratiti izračunati prosjek ocjena:
Ova se funkcija naziva CalculateAverageNote. Kao ulaz prima popis bilješki, koristeći niz podataka dvostrukih, i vraća izračunati prosjek.
U funkciji se lokalna varijabilna suma inicijalizira na nulu, a zatim se zbrojem dodaju sve kvalifikacije. Na kraju, dobiveni zbroj dijeli se s brojem napomena, vraćajući dobivenu vrijednost.
Ako bi ulazna matrica imala bilješke 3.5, 3.0 i 4.0, nakon dodavanja istih, ona bi zbrojila vrijednost 10,5 i tada bi se podijelila s 3, jer postoje tri note. Funkcija bi vratila vrijednost 3,5.
Prednost
Nezavisno programiranje projekata
Na istom projektu može raditi više programera ako je podijeljen na module. Različiti programeri mogu samostalno dizajnirati različite programske module, što je potrebno za veliki i složeni program.
Učinkovit razvoj programa
Programi se mogu brže razvijati jer je male samostalne module lakše razumjeti, oblikovati i testirati od velikih programa.
Programer može osigurati potreban ulaz i provjeriti je li modul ispravan ispitivanjem njegovog izlaza.
Višestruka upotreba modula
Kôd napisan za jedan program često je koristan u drugima. Modularno programiranje omogućuje spremanje tih odjeljaka za buduću upotrebu. Budući da se kôd može preseliti, spremljeni moduli mogu se povezati s bilo kojim drugim programom koji ispunjava zahtjeve za ulaz i izlaz.
Kod monolitnog programiranja takvi su dijelovi koda ugrađeni u program i nisu dostupni za korištenje u drugim programima.
Jednostavnost uklanjanja pogrešaka i izmjena
Modul je manji od punog programa, pa ga je lakše testirati. Svaki se modul može napisati i testirati odvojeno od ostatka programa. Nakon što je modul testiran, može se koristiti u novom programu bez potrebe za ponovnim testiranjem.
Kad se program mora izmijeniti, modularno programiranje pojednostavljuje posao. Novi ili otklonjeni moduli mogu se povezati s postojećim programom bez promjene ostatka programa.
Nedostaci
Prekomjerno objektno orijentirana struktura
Ovo programiranje koristi sučelja, što je prilično učinkovita ideja. Da biste to iskoristili, neki okviri dolaze s potpunim nizom izmjenjivih klasa. Na primjer, za rukovanje postojanošću može postojati više klasa koje implementiraju sučelje upornosti.
Međutim, integrirana razvojna okruženja (IDE) zbunjuju se zbog toga. Na primjer, mogli biste pokušati pronaći izvor metode, a IDE neće znati koju metodu želite vidjeti, prikazujući tako dugačak popis datoteka u kojima postoji metoda s tim imenom.
Moduli su premali
Postoji puno modula koji sadrže samo vrlo malu funkciju. Svaki modul zahtijeva dodatno vrijeme analize i obrade, uz zaglavlje u kodu.
Stoga će korištenje mnogih malih modula dodati nadzemni sustav kompilacijskom sustavu, povećavajući veličinu paketa.
Raskomadajte bez razloga
Neki se kodovi gotovo nikada ne mijenjaju. U tim slučajevima možda nema smisla pokušati učiniti da on izgleda čišći ili sa apstraktnom logikom, ako samo njegovo korištenje dobro funkcionira.
Postoje kodovi koji ne izgledaju previše lijepo, ali nisu se mnogo promijenili posljednjih godina. Nema razloga za dekompoziciju koda koji se nikad nije promijenio i već dobro funkcionira u module.
Prijave
Modularno programiranje samo je koncept. Njegova praksa može se primijeniti na bilo kojem programskom jeziku, posebice onima proceduralne prirode, koji imaju zasebno sastavljen program.
Biblioteke komponenti izgrađene od zasebno sastavljenih modula mogu se kombinirati u skup pomoću alata za programiranje koji se naziva veznik.
Nazivi funkcija u različitim modulima moraju biti jedinstveni kako bi se olakšao njihov pristup u slučaju da se funkcije koje koristi glavni modul moraju izvoziti.
Među programskim jezicima koji podržavaju koncept modularnog programiranja su C, Ada, PL / I, Erlang, Pascal, Algol, COBOL, RPG, Haskell, Python, HyperTalk, IBM / 360 Assembler, MATLAB, Ruby, IBM RPG, SmallTalk, Morpho, Java (paketi se smatraju modulima), Perl itd.
C jezik
Modularno programiranje može se primijeniti na jeziku C, jer omogućuje uklanjanje velikih poteškoća razdvajanjem u nekoliko modula.
Svaki od ovih modula rješava određeni problem, dok glavni program, koji je skup takvih postupaka, rješava problem u cjelini.
Svaka je funkcija definirana u C-u je po defaultu dostupna globalno. To se može postići uključivanjem zaglavne datoteke u kojoj je definirana implementacija funkcije.
Kao primjer, želimo proglasiti vrstu podataka skupa, kao i da su implementacija i struktura podataka skriveni od korisnika.
To se može postići tako što se prvo definira javna datoteka pod nazivom stack.h, koja će sadržavati generičke podatke s tipom podataka o snopu i funkcijama koje podržavaju tip podataka snopa.
stack.h:
vanjski stack_var1;
extern int stack_do_something (void);
Sada možete stvoriti datoteku koja se zove stack.c koja sadrži implementaciju vrste podataka o stoku:
Reference
- CIO Wiki (2019). Modularno programiranje. Preuzeto sa: cio-wiki.org.
- Definicije informatike (2020). Modularno programiranje. Preuzeto sa: defit.org.
- New Mexico Tech (2020). Modularno programiranje s funkcijama. Preuzeto sa: ee.nmt.edu.
- Christian Maioli (2020). 3 kreativne tehnike pisanja modularnog koda. Tech Beacon. Preuzeto sa: techbeacon.com.
- Geeks za Geeks (2020). Modularni pristup u programiranju. Preuzeto sa: geeksforgeeks.org.
- Studija (2020). Modularno programiranje: definicija i primjena na Javi. Preuzeto sa: study.com.