- Hlavní a pomocné moduly
- Modulární funkce programování
- Modularita
- Definice funkce
- Rozsah proměnných
- Je to procedurální
- Příklady modulárního programování
- Modularita v reálném životě
- Funkce v Javě
- Výhoda
- Nezávislé programování projektu
- Efektivní vývoj programu
- Více použití modulů
- Snadné ladění a úpravy
- Nevýhody
- Příliš objektově orientovaná struktura
- Moduly jsou příliš malé
- Rozložte se bez důvodu
- Aplikace
- Jazyk C
- Reference
Modulární programování je technika používaná pro vývoj softwaru, kde je program rozdělen do mnoha malých bloků nebo autonomních komponent zvaných moduly, které jsou zvládnutelné, logické a funkční.
Modul je blok příkazů, který řeší konkrétní problém. Každý modul obsahuje vše potřebné pro splnění jeho vlastní funkčnosti a lze jej upravit nebo upravit, aniž by to ovlivnilo zbytek projektu.
Příklad řešení problému pomocí modulů. Zdroj: Kayau / CC BY (https://creativecommons.org/licenses/by/3.0)
Tento způsob programování je dosažen udržováním trvalého rozhraní modulu, které používají ostatní softwarové komponenty pro přístup k funkcím každého modulu.
Moduly ukládají logické hranice mezi komponenty a zlepšují tak udržovatelnost. Jsou začleněny prostřednictvím rozhraní, která jsou navržena tak, aby minimalizovala závislost mezi různými moduly.
Hlavní a pomocné moduly
Modulární programování tvoří hlavní modul a několik sekundárních modulů. Z hlavního modulu jsou volána funkce pomocných modulů.
Tyto moduly plug-in existují jako samostatné spustitelné soubory, které se načítají při spuštění hlavního modulu. Každý modul má v příkazu PROGRAM přiřazen jedinečný název.
Pracovní týmy mohou vyvíjet různé moduly samostatně, aniž by musely znát všechny moduly systému. Každá z modulárních aplikací je spojena s číslem verze, které vývojářům poskytuje flexibilitu při údržbě modulu.
Modulární funkce programování
Modularita
Počítač nepotřebuje k jeho spuštění rozloženou verzi kódu. Je to lidská kognitivní omezení, která vás nutí psát kód v menších kouscích.
Program může obsahovat další funkce a může také odkazovat na funkce, které jsou v jiných souborech. Tyto funkce nebo moduly jsou sady příkazů, které se používají k provedení operace nebo výpočtu hodnoty.
Aby byla zachována jednoduchost a čitelnost ve velkých a složitých programech, používá se krátká hlavní funkce ve spojení s jinými funkcemi, nikoli dlouhá hlavní funkce.
Rozdělením programu do skupin modulů bude každý modul srozumitelnější, a bude tak splňovat základní pokyny strukturovaného programování.
Definice funkce
Funkce sestává z deklarace její definice následované příkazy a příkazy. Obecná forma funkce je:
Function_name (deklarace parametru) {
věty;
příkazy;
návratový výraz;
}
- Deklarace parametrů představuje informaci, která je předávána funkci.
- Ve větách jsou definovány další proměnné používané konkrétně funkcí.
- Všechny funkce musí obsahovat příkaz návratu.
Rozsah proměnných
Proměnné, které jsou deklarovány v rámci hlavní funkce nebo v uživatelsky definovaných funkcích, se nazývají lokální proměnné. Mají hodnotu při spuštění funkce, ale jejich hodnota není zachována, když je funkce dokončena.
Proměnné, které jsou deklarovány externě pro hlavní program nebo pro uživatelem definované funkce, se nazývají globální proměnné. Tyto proměnné lze převzít z jakékoli funkce, která je uvnitř programu.
Je to procedurální
Modulární programování je poměrně procedurální, protože je zcela orientováno na psaní kódu pro funkce, aniž by byla brána v úvahu data.
Příklady modulárního programování
Modularita v reálném životě
Předpokládejme dům, který má elektřinu, s několika vývody na stěnách. Tento systém umožňuje připojit různá elektrická zařízení, například mikrovlnnou troubu, pračku, sušičku atd.
Tato zařízení jsou navržena tak, aby plnila svůj konkrétní úkol, když byla připojena a zapnuta, bez ohledu na to, kde jsou umístěna.
Moduly aplikace musí dodržovat stejnou filozofii. To znamená, že musí vykonávat pouze svůj konkrétní úkol bez ohledu na to, v jaké části aplikace jsou, nebo dokonce s jakou aplikací jsou připojeni.
Stejně tak, jako může být elektrické zařízení snadno odpojeno ze zásuvky, musí být modul navržen tak, aby jej bylo možné z aplikace snadno odstranit.
Stejně jako odebrání elektrického zařízení nemá vliv na funkčnost ostatních připojených zařízení, nemělo by odebrání modulů z aplikace ovlivnit funkčnost ostatních modulů této aplikace.
Funkce v Javě
V Javě jsou moduly psány jako nezávislé funkce. Například můžete mít funkční nebo kódový blok pro výpočet GPA studenta na základě jeho známek ve všech kurzech, které absolvovali.
Funkce musí získat seznam známek jako vstup a pak vrátit vypočítaný průměr známek:
Tato funkce se nazývá CalculateA BeverNote. Přijme jako vstup seznam poznámek, pomocí pole dvojitého typu dat a vrátí vypočtený průměr.
Ve funkci je součet lokálních proměnných inicializován na nulu a poté pomocí smyčky for for se všechny součty přidají k součtu. Nakonec je získaná částka vydělena počtem bankovek a vrací výslednou hodnotu.
Pokud by vstupní matice měla poznámky 3.5, 3.0 a 4.0, po jejich přidání by měla součet hodnotu 10,5 a pak by byla vydělena 3, protože existují tři noty. Funkce vrátí hodnotu 3.5.
Výhoda
Nezávislé programování projektu
Na stejném projektu může pracovat více programátorů, pokud je rozdělen do modulů. Různí programátoři mohou nezávisle navrhovat různé programové moduly, které jsou potřebné pro velký a složitý program.
Efektivní vývoj programu
Programy lze vyvíjet rychleji, protože malé samostatné moduly jsou snáze pochopitelné, designové a testovací než velké programy.
Programátor může poskytnout potřebný vstup a ověřit správnost modulu kontrolou jeho výstupu.
Více použití modulů
Kód napsaný pro jeden program je často užitečný v jiných. Modulární programování umožňuje tyto sekce uložit pro budoucí použití. Protože je kód přemístitelný, lze uložené moduly propojit s jakýmkoli jiným programem, který splňuje požadavky na vstup a výstup.
U monolitického programování jsou takové části kódu zabudovány do programu a nejsou k dispozici pro použití jinými programy.
Snadné ladění a úpravy
Modul je menší než celý program, takže je snazší testovat. Každý modul lze psát a testovat odděleně od zbytku programu. Poté, co byl modul otestován, lze jej použít v novém programu, aniž byste jej museli znovu testovat.
Když je třeba program upravit, modulární programování úlohu zjednoduší. Nové nebo laděné moduly lze propojit s existujícím programem, aniž by se změnil zbytek programu.
Nevýhody
Příliš objektově orientovaná struktura
Toto programování používá rozhraní, což je docela efektivní nápad. Abychom toho mohli využít, některé rámce přicházejí s celou sadou zaměnitelných tříd. Například za účelem vytrvalosti může existovat více tříd, které implementují rozhraní vytrvalosti.
Integrovaná vývojová prostředí (IDE) se však v tom zmatená. Mohli byste se například pokusit najít zdroj metody a IDE nebude vědět, kterou metodu chcete vidět, a tak zobrazit dlouhý seznam souborů, kde existuje metoda s tímto názvem.
Moduly jsou příliš malé
Existuje mnoho modulů, které obsahují pouze velmi malou funkci. Každý modul vyžaduje kromě nadpisu v kódu další čas analýzy a zpracování.
Použití mnoha malých modulů proto přidá režijní náklady do kompilačního systému, čímž se zvětší velikost balíčku.
Rozložte se bez důvodu
Některé kódy se téměř nikdy nezmění. V takových případech nemusí mít velký smysl pokusit se o to, aby to vypadalo čistěji nebo s abstraktní logikou, i když pouhé použití funguje dobře.
Existují kódy, které nevypadají příliš hezky, přesto se v posledních letech příliš nezměnily. Neexistuje žádný důvod rozkládat kód, který se nikdy nezměnil a již funguje dobře na moduly.
Aplikace
Modulární programování je jen koncept. Jeho praxi lze uplatnit v jakémkoli programovacím jazyce, zejména v těch procedurálních, které mají samostatně sestavený program.
Knihovny komponent vytvořené ze samostatně kompilovaných modulů lze kombinovat do sady pomocí programovacího nástroje zvaného linker.
Názvy funkcí v různých modulech musí být jedinečné, aby se usnadnil jejich přístup v případě, že musí být exportovány funkce používané hlavním modulem.
Mezi programovací jazyky, které podporují koncept modulárního programování, patří C, Ada, PL / I, Erlang, Pascal, Algol, COBOL, RPG, Haskell, Python, HyperTalk, IBM / 360 Assembler, MATLAB, Ruby, IBM RPG, SmallTalk, Morpho, Java (balíčky jsou považovány za moduly), Perl atd.
Jazyk C
Modulární programování lze použít v jazyce C, protože umožňuje odstranit velké potíže tím, že se rozdělí na několik modulů.
Každý z těchto modulů řeší konkrétní problém, zatímco hlavní program, který je souborem těchto postupů, řeší problém jako celek.
Každá funkce definovaná v C je standardně přístupná globálně. To lze provést zahrnutím souboru záhlaví, kde je definována implementace funkce.
Jako příklad chceme deklarovat typ dat zásobníku a také to, že implementace a struktura dat je před uživateli skryta.
To lze provést nejprve definováním veřejného souboru nazvaného stack.h, který bude obsahovat obecná data s typem zásobníku a funkce podporované typem zásobníku.
stack.h:
extern stack_var1;
extern int stack_do_something (void);
Nyní můžete vytvořit soubor s názvem stack.c, který obsahuje implementaci datového typu zásobníku:
Reference
- CIO Wiki (2019). Modulární programování. Převzato z: cio-wiki.org.
- Definice IT (2020). Modulární programování. Převzato z: defit.org.
- New Mexico Tech (2020). Modulární programování s funkcemi. Převzato z: ee.nmt.edu.
- Christian Maioli (2020). 3 kreativní techniky pro psaní modulárního kódu. Tech Beacon. Převzato z: techbeacon.com.
- Geeks for Geeks (2020). Modulární přístup v programování. Převzato z: geeksforgeeks.org.
- Studie (2020). Modulární programování: Definice a aplikace v Javě. Převzato z: study.com.