Modulární programování
Modulární programování je technika návrhu softwaru, která zdůrazňuje rozdělení funkčnosti programu na nezávislé, zaměnitelné moduly, z nichž každý obsahuje vše nezbytné pro jediný aspekt požadované funkcionality[1]. Koncepčně moduly představují oddělení zodpovědností a zlepšují udržovatelnost softwaru explicitním vyjádřením logických hranic mezi komponenty. Při vytváření většího množství softwarových projektů přinášejí koncept znovupoužitelnosti, umožňující moduly vytvořené v jednom projektu používat i v projektech jiných.
Moduly se obvykle začleňují do programů pomocí rozhraní[2]. Rozhraní modulu popisuje, které prvky jsou modulem poskytovány a které jsou modulem vyžadovány. Prvky definované v rozhraní jsou přístupné z ostatních modulů. Implementační část obsahuje konkrétní implementaci kódu, typů a dalších prvků, které odpovídají prvkům deklarovaným v části rozhraní.
Modulární programování spolu se strukturovaným programováním a objektově orientovaným programováním představují různé aspekty návrhu a vytváření softwaru metodou „shora-dolů“ (anglicky top-down design) „postupným zjemňováním“ (anglicky stepwise refinement), které vznikaly v šedesátých letech 20. století, a jejichž společným cílem je usnadnit konstrukci rozsáhlých softwarových programů a systémů rozkladem na menší části. Zatímco modulární programování se zabývá strukturou programu na nejvyšší úrovni (skupiny funkcí), strukturované programování se vztahuje na používání řídicích struktur na úrovni jednotlivých funkcí a v rámci funkcí; objektově orientované programování pak na využívání datových objektů jako speciálního nástroje pro vytváření datových struktur.
Související články
Reference
V tomto článku byl použit překlad textu z článku Modular programming na anglické Wikipedii.
- Jürgen Haas. Modular programming [online]. http://www.about.com/: About.com [cit. 2010-03-08]. (anglicky)
- Seif Haridi, Nils Franzén. 7. Modules and Interfaces [online]. http://www.mozart-oz.org/documentation/index.html: Mozart Documentation [cit. 2010-03-08]. (anglicky)