Technika modulárního programování
Modularita
Modularita
je chápána obvykle jako konstrukce programového celku vytvořeného z malých
úseků - podprogramů ( funkcí, procedur), které jsou autonomní, koherentní
a organizované v robustní struktuře.
a) modulární dekompozice
b) modulární kompozice
c) srozumitelnosti funkce modulů
d) modulární spojitosti
e) modulární ochrany
Technika modulární dekompozice
Dekompozice
je odvozování programových prvků na základě jejich specifikace. Úloha se
rozdělí na několik dílčích problémů, které je možné samostatně řešit.
Tento proces je rekurzivní (dílčí problém lze rozdělit na dílčí problémy).
Typický postup dekompozice je shora dolů. Tento postup však vede ke tvorbě
modulů, které řeší požadavky nadřízeného problému a proto jsou zřídka
znovu použitelné. Při dekompozici nutno vycházet proto spíše ze
specifikace typických problémů.
Technika
dekompozice vytváří moduly, které jsou otevřené nebo uzavřené. Otevřené
moduly dovolují rozšiřování datových struktur o nové položky nebo funkce
modulu o nové funkce. Uzavřené moduly jsou dobře a úplně definované.
Moduly je vhodné (v každém prostředí) uchovávat v knihovně podprogramů
(procedur).
Technika modulární kompozice
Kompozice
zajišťuje slučování existujících elementů do nového systému
(programu). Slučování se často provádí bez ohledu na prostředí, ve kterém
byly moduly vyvinuty (například ve FoxPro v 2.0 se s oblibou používají
moduly vytvořené ve jazyku symbolických adres nebo v prostředí podporujícího
jazyk C nebo v jiném prostředí). Kompozice je úzce spojena se znovu použitím.
Cílem je navrhnout dobře definované programové úseky, které by bylo možno
použít v různých situacích.
Příkladem
kompozice je spojovací konvence MS-DOS nebo UNIX, která zápisem A|B
reprezentuje programový celek, který zpracuje vstup modulu A a jeho výstup
uloží na vstup modulu B. Kompozice je nezávislá na dekompozici a často je
ve svých důsledcích s ní v přímém rozporu.
Technika srozumitelnost funkce modulů
Funkce
modulu musí být zřejmá ze samotného modulu. Nesmí předpokládat studium
dalších modulů. Nesrozumitelná je taková funkce, která závisí na pořadí
aktivace jiných modulů.
Technika modulární spojitosti
Malá
změna v problému nesmí vyžadovat provedení velkých změn v modulech
(podpora modifikovatelnosti). Rozhodně by malá změna problému neměla
postihnout architekturu programu. Modulární spojitost se zajišťuje například
důsledným oddělením údajů od programu. Triviálním příkladem je však i
použití symbolických konstant.
Technika modulární ochrany
Výskyt
nenormální situace (havárie programu) či chyby se musí omezit na jeden
modul (výjimečně na sousední moduly). Nejde zde o zabránění vzniku chyby
či zotavení se z chyby, ale o zabránění jejího šíření.