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. Těžiště techniky modulárního programování spočívá především v oblasti návrhu programu, který se provádí podle kritérií:

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í.