- Fő és kiegészítő modulok
- Moduláris programozási szolgáltatások
- A modularitás
- Funkció meghatározása
- A változók hatóköre
- Ez eljárási
- Moduláris programozási példák
- Modularitás a valós életben
- Funkciók a Java-ban
- Előny
- Független projektprogramozás
- Hatékony programfejlesztés
- A modulok többszörös használata
- Könnyű hibakeresés és módosítás
- hátrányok
- Túl objektum-orientált struktúra
- Túl kicsi a modulok
- Bomlás nélkül
- Alkalmazások
- C nyelv
- Irodalom
A moduláris programozás a szoftverfejlesztés során alkalmazott technika, ahol a program sok kisméretű blokkra vagy autonóm komponensre van felosztva, moduloknak nevezett, amelyek kezelhetőek, logikusak és funkcionálisak.
A modul egy mondatblokk, amely egy adott problémát megold. Minden modul tartalmaz mindent, ami a saját funkcionalitásának teljesítéséhez szükséges, és szerkeszthető vagy módosítható a projekt többi részének befolyásolása nélkül.

Példa egy probléma megoldására modulok segítségével. Forrás: Kayau / CC BY (https://creativecommons.org/licenses/by/3.0)
A programozás ilyen módon úgy érhető el, hogy állandó modul interfészt tart fenn, amelyet a többi szoftver alkotóelem használ az egyes modulok funkcióinak elérése érdekében.
A modulok logikai határokat határoznak meg az összetevők között, javítva a karbantarthatóságot. Beépítésre kerülnek olyan interfészek révén, amelyeket úgy alakítottak ki, hogy minimalizálják a különböző modulok közötti függőséget.
Fő és kiegészítő modulok
A fő modul és több másodlagos modul képezi a moduláris programozást. A főmodultól felhívják a segédmodulok funkcióit.
Ezek a plug-inek külön futtatható fájlokként léteznek, amelyeket a fő modul futtatásakor tölt be. Minden modulnak egyedi neve van a PROGRAM utasításban.
A munkacsoportok külön modulokat fejleszthetnek külön, anélkül, hogy ismernék a rendszer összes modulját. Az egyes moduláris alkalmazások verziószámmal vannak társítva, hogy rugalmasságot biztosítsanak a fejlesztők számára a modul karbantartása során.
Moduláris programozási szolgáltatások
A modularitás
A számítógép futtatásához nincs szükség a kód robbantott verziójára. Az emberi kognitív korlátozások kényszerítik a kódot kisebb darabokban írni.
A program tartalmazhat más funkciókat, és hivatkozhat más fájlokban található funkciókra is. Ezek a funkciók vagy modulok olyan utasításkészletek, amelyeket egy művelet végrehajtására vagy az érték kiszámítására használnak.
Az egyszerűség és az olvashatóság fenntartása érdekében a nagy és összetett programokban a hosszú fő funkció helyett egy rövid fő funkciót használnak együtt más funkciókkal.
Ha egy programot modulcsoportokra osztunk, az egyes modulok könnyebben megérthetők lesznek, így megfelelnek a strukturált programozás alapvető irányelveinek.
Funkció meghatározása
A funkció egy definíciójának deklarációjából áll, amelyet parancsok és utasítások követnek. A függvény általános formája:
Funkció_neve (paraméter deklaráció) {
mondat;
parancsokat;
visszatérő kifejezés;
}
- A paraméterek deklarálása azt az információt képviseli, amelyet továbbítanak a funkcióhoz.
- A kifejezés által a függvény által használt kiegészítő változókat a mondatok határozzák meg.
- Minden funkciónak tartalmaznia kell egy visszatérési nyilatkozatot.
A változók hatóköre
A fő funkcióban vagy a felhasználó által definiált függvényekben deklarált változókat helyi változóknak nevezzük. Ezeknek értéke van, amikor a függvény végrehajtódik, de értékük nem marad meg, amikor a funkció befejeződik.
A főprogramtól vagy a felhasználó által definiált függvényektől külsőnek nyilvánított változókat globális változóknak nevezzük. Ezeket a változókat bármilyen funkcióból ki lehet venni, amely a programon belül található.
Ez eljárási
A moduláris programozás meglehetősen procedurális, mivel teljes mértékben arra irányul, hogy a funkciók kódját írja, az adatok figyelembevétele nélkül.
Moduláris programozási példák
Modularitás a valós életben
Tegyük fel, hogy van egy ház, amely villamos energiával rendelkezik, és több fala van a falon. Ez a rendszer lehetővé teszi különféle elektromos eszközök csatlakoztatását, például mikrohullámú sütő, mosógép, szárító stb.
Ezeket az eszközöket arra tervezték, hogy a csatlakoztatáskor és bekapcsoláskor elvégezzék a feladatukat, függetlenül attól, hogy hol vannak.
Az alkalmazás moduljainak ugyanazt a filozófiát kell követniük. Ez azt jelenti, hogy csak az adott feladatot kell elvégezniük, függetlenül attól, hogy az alkalmazás melyik részében vannak, vagy akár az alkalmazáshoz kapcsolódnak.
Ugyanígy, ahogy az elektromos készüléket könnyen ki lehet húzni a konnektorból, a modult úgy kell megtervezni, hogy könnyen eltávolítható legyen az alkalmazásból.
Ugyanúgy, mint egy elektromos eszköz eltávolítása nem befolyásolja a többi csatlakoztatott eszköz funkcionalitását, a modulok eltávolítása az alkalmazásból nem befolyásolhatja az alkalmazás többi moduljának a működését.
Funkciók a Java-ban
A Java-ban a modulok önálló függvényekként vannak írva. Például lehet, hogy van egy funkciója vagy kódblokkja a hallgató GPA kiszámításához az általuk elvégzett kurzusok osztályainak alapján.
A függvénynek be kell szereznie a besorolások listáját bemenőként, majd vissza kell állítania a kiszámított besorolási átlagot:

Ezt a funkciót CalculateAverageNote néven hívják. Bemenetként megjegyzések listáját veszi fel, dupla adattípus tömb felhasználásával, és visszatér a kiszámított átlaghoz.
A függvényben a helyi változó összege nullára inicializálódik, majd a for hurok használatával az összes képesítés összeadódik. Végül a kapott összeget el kell osztani a bankjegyek számával, visszatérve az eredményül kapott értéket.
Ha a bemeneti mátrixnak 3.5, 3.0 és 4.0 megjegyzése van, a hozzáadásuk után 10,5-nek lenne az összegük, és azt 3-val osztják, mivel három jegyzet létezik. A függvény a 3.5 értéket adja vissza.
Előny
Független projektprogramozás
Több programozó dolgozhat ugyanazon a projekten, ha azt modulokra osztják. Különböző programozók önállóan megtervezhetnek különféle programmodulokat, ami egy nagy és összetett programhoz szükséges.
Hatékony programfejlesztés
A programokat gyorsabban lehet kifejleszteni, mivel a kicsi, önálló modulokat könnyebben meg lehet érteni, megtervezni és tesztelni, mint a nagy programokat.
A programozó megadhatja a szükséges bemenetet, és kimenete megvizsgálásával ellenőrizheti, hogy a modul helyes-e.
A modulok többszörös használata
Az egyik programhoz írt kód gyakran hasznos a többi programban. A moduláris programozás lehetővé teszi ezeknek a szakaszoknak a mentését későbbi felhasználás céljából. Mivel a kód áthelyezhető, a mentett modulok összekapcsolhatók bármilyen más programmal, amely megfelel a bemeneti és kimeneti követelményeknek.
Monolitos programozás esetén a kód ilyen szakaszai be vannak ágyazva a programba, és más programok számára nem állnak rendelkezésre.
Könnyű hibakeresés és módosítás
Egy modul kisebb, mint egy teljes program, tehát könnyebb tesztelni. Minden modul írható és tesztelhető a program többi részétől külön. A modul tesztelése után egy új programban használható, anélkül, hogy újra meg kellene vizsgálnia.
Amikor egy programot módosítani kell, a moduláris programozás leegyszerűsíti a munkát. Az új vagy hibakeresett modulok összekapcsolhatók egy meglévő programmal a program többi részének megváltoztatása nélkül.
hátrányok
Túl objektum-orientált struktúra
Ez a programozás interfészeket használ, ami nagyon hatékony ötlet. Ennek kihasználása érdekében néhány keretrendszer teljes cserélhető osztályokkal rendelkezik. Például a perzisztencia kezelésére több osztály is létezhet, amely megvalósítja a perzisztencia felületet.
Az integrált fejlesztési környezetek (IDE-k) azonban összezavarodnak ebben. Megpróbálhatja például megkeresni egy módszer forrását, és az IDE nem fogja tudni, hogy melyik módszert szeretné látni, így egy hosszú fájlok listáját jeleníti meg, ahol létezik egy ilyen névvel rendelkező módszer.
Túl kicsi a modulok
Sok olyan modul van, amelyek csak nagyon kis funkciót tartalmaznak. Minden modulhoz további elemzési és feldolgozási idő szükséges, a kód címsorán túl.
Ezért sok apró modul használata fölöslegesen növeli a fordítási rendszert, növelve ezzel a csomag méretét.
Bomlás nélkül
Néhány kód szinte soha nem változik. Ezekben az esetekben lehet, hogy nincs sok értelme megkísérelni tisztábbnak vagy elvont logikával való megjelenést tenni, ha csak a használata jól működik.
Vannak olyan kódok, amelyek nem tűnnek túl szépnek, ám az utóbbi években nem változtak sokat. Nincs ok a soha nem megváltozott és már modulokká működő kódok bontására.
Alkalmazások
A moduláris programozás csak egy koncepció. Gyakorlata bármilyen programozási nyelven alkalmazható, különösen az eljárási jellegű nyelveken, amelyek külön összeállított programmal rendelkeznek.
A külön összeállított modulokból épített összetevő könyvtárak összekapcsolhatók egy csoportba, egy linkernek nevezett programozó eszköz segítségével.
A különféle modulok funkcióinak nevének egyedinek kell lennie, hogy megkönnyítsék azok elérését abban az esetben, ha a fő modul által használt funkciókat exportálni kell.
A moduláris programozás fogalmát támogató programozási nyelvek között szerepel a C, Ada, PL / I, Erlang, Pascal, Algol, COBOL, RPG, Haskell, Python, HyperTalk, IBM / 360 Assembler, MATLAB, Ruby, IBM RPG, SmallTalk, Morpho, Java (a csomagokat moduloknak tekintjük), Perl stb.
C nyelv
A moduláris programozás alkalmazható C nyelven, mivel lehetővé teszi a nagy nehézségek kiküszöbölését, ha több modulra osztják.
Ezek a modulok mindegyike egy-egy problémát old meg, míg a fő program, amely az ilyen eljárások halmaza, a problémát egészében oldja meg.
A C-ben definiált minden funkció alapértelmezés szerint globálisan elérhető. Ezt fejlécfájl beillesztésével lehet megtenni, ahol a funkció végrehajtása meg van határozva.
Példaként szeretnénk deklarálni a verem adattípusát, és azt is, hogy a megvalósítás és az adatszerkezet rejtett a felhasználóktól.
Ezt úgy lehet elvégezni, hogy először meghatározza a stack.h nevű nyilvános fájlt, amely tartalmazza az általános adatokat a verem adattípusával és a verem adattípus által támogatott funkciókkal.
stack.h:
extern stack_var1;
extern int stack_do_something (érvénytelen);
Most létrehozhat egy stack.c nevű fájlt, amely tartalmazza a verem adattípusának megvalósítását:

Irodalom
- CIO Wiki (2019). Moduláris programozás. Készült: cio-wiki.org.
- IT meghatározások (2020). Moduláris programozás. Feltöltve: defit.org.
- New Mexico Tech (2020). Moduláris programozás funkciókkal. Forrás: ee.nmt.edu.
- Christian Maioli (2020). 3 kreatív technika a moduláris kód írására. Tech Beacon. Forrás: techbeacon.com.
- Geeks Geeks számára (2020). Moduláris megközelítés a programozásban. Feltöltve: geeksforgeeks.org.
- Tanulmány (2020). Moduláris programozás: meghatározás és alkalmazás Java-ban. Forrás: study.com.
