Vzory pro vývojáře

Patterny (vzory, předlohy) v sobě spojují zkušenosti za zhruba 15 let programování softwaru. Zatímco zpočátku byla ta...


Patterny (vzory, předlohy) v sobě spojují zkušenosti za zhruba 15 let
programování softwaru. Zatímco zpočátku byla tato dokumentovaná vzorová řešení
pro opakující se vývojové projekty pouze něčím pro specialisty, dnes jsou
mnohem více rozšířena a stala se neodmyslitelnou součástí vývoje.
Předpoklady pro efektivní opakované použití softwaru jsou společný slovník a
společná řeč, s nimiž mohou být realizovány koncepty a stanoveny jejich vztahy.
Přesně k tomu by měly sloužit patterny a patternové jazyky (pattern languages).
Jejich cílem je nabídnout připravená řešení pro opakující se problémy ve všech
fázích životního cyklu softwaru. Obecně je pattern představován určitou
zachycenou odbornou vědomostí, týkající se nějakého okruhu problémů je tedy
zobecněným popisem jak v podobné formě se vyskytujícího problému, tak jeho
řešení. Především díky abstrakci nejsou patterny pouze jednoduchými popisy a
lze je použít opakovaně. V oblasti softwarového vývoje byla definice patternu
převzata od Christophera Alexandera. Podle ní je pattern pravidlem sestávajícím
ze tří částí, které vyjadřuje vztah mezi určitým kontextem, problémem a jeho
řešením. Patterny slouží pro lepší komunikaci a dokumentaci. Kromě toho mají
svoji funkci také jako učební pomůcka. Popisem systému pomocí používaných
patternů je jeho funkce rychleji a snadněji pochopitelná.

Vývoj patternů
V rané fázi uplatnění patternů při vývoji softwaru se jednalo o tzv. design
patterns. Populárními se staly v roce 1994 s vydáním knihy "gangu čtyř" (Gang
of Four) Ericha Gammy, Richarda Helma, Ralpha Johsona a Johna Vlissidese:
"Design Patterns: Elements of Reusable Object-Oriented Software". Design
patterns popisují opakující se problémy návrhu a schémata pro jejich řešení.
Dva roky nato "strana pěti" (Party of Five) položila druhý milník: Frank
Buschman, Regine Meunier, Hans Rohnert, Peter Sommeland a Michael Stal
publikovali knihu "Pattern of Software Architecture". Architecture patterns
popisují strukturu softwarových systémů jsou definovány subsystémy a
specifikovány jejich úlohy i vztahy. V roce 1997 se pak objevila kniha Martina
Fowlera "Analysis Patterns: Reusable Object Models", která zavedla další
kategorii analysis patterns jsou konceptuální modely částí aplikací.
Dnes nabízí oblast patternů pestrý obraz: Patterny našly uplatnění ve všech
fázích a úlohách softwarového vývoje, jako jsou např. plánování projektů,
organizace a řízení požadavků, konfigurace i procesů nebo testování. S příští
generací patternů bude tato různorodost dále růst a zároveň poroste jejich
diferenciace pro všechny fáze životního cyklu softwaru a oblasti jeho nasazení.
Středem pozornosti jsou témata jako bezpečnost, správa zdrojů a optimalizace
softwarových systémů, aplikovaná softwarová architektura ve vývoji, real-time a
embedded systémy, peer-to-peer, XML nebo webové služby.

Sbírky patternů
Zatímco dosud byly středem pozornosti jednotlivé patterny a jejich dokumentace,
nyní se vše ubírá směrem ke vzájemnému spojení a provázanosti. K tomu slouží
zejména patternové jazyky (pattern languages) a frameworky. Patternový jazyk
nepředstavuje nic jiného než sbírku patternů, které řeší vývojové problémy na
různých úrovních ohraničené oblasti. Patternové jazyky přitom dokumentují nejen
patterny, ale také vztahy mezi nimi to znamená, že vysvětlují pravidla a
směrnice, kdy a kde by měly být patterny nasazeny. V současnosti jsou patterny
vyvíjeny pro bezpečnostní modely, výkonné či embedded systémy.
Zatímco patterny shrnují abstraktní znalosti a zkušenosti se softwarem,
frameworky představují proveditelný software. Přesněji řečeno, framework je
opakovaně použitelná, napůl hotová aplikace, která implementuje obecná řešení
pro množství podobných problémů, a tak automatizuje vývoj aplikací pro určitou
oblast použití. K tomu framework zajišťuje připravenou infrastrukturu a
koncepty patterny, které jsou používány pro design a dokumentaci.
Dnes jsou frameworky spojeny zejména s objektově orientovaným programováním.
Softwarové komponenty sestávají z konkrétních a abstraktních tříd vývojář
doplňuje abstraktní třídy a implementuje funkce pro požadovanou část systému.
Na základě použití frameworků vznikají např. interaktivní internetové aplikace
jako účetní systémy, bankovní aplikace, nákupní systémy či hry. K tomu pak
frameworky dovolují využití komplexního know-how. Takto např. umožňuje tzv.
persistence framework objektově orientovaný pohled na databázi. Programátoři se
nemusejí zdržovat se sestavami výsledků, sloupci a záznamy, neboť framework
poskytuje možnost ukládat, skladovat a cíleně vyhledávat objekty a sítě objektů
v relační databázi.
Navíc je v současnosti společné nasazení objektově orientovaného programování,
patternů a frameworků uplatňováno v oblasti komplexního paralelního
programování.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.