Vyhledávání softwarových vzorů

  • Upload
    olwen

  • View
    39

  • Download
    2

Embed Size (px)

DESCRIPTION

Ondřej Lehečka ( ondrej.lehecka @ vsb.cz ), Miloš Kudělka, Václav Snášel TUO-V ŠB Ostrava. Vyhledávání softwarových vzorů. Agenda. Vzory a oblasti, ve kterých se vyskytují Problémy a současná řešení PATTRON - systém pro podporu vyhledávání vzorů Konference EuroPLoP 2007 - PowerPoint PPT Presentation

Citation preview

  • Ondej Leheka ([email protected]), Milo Kudlka, Vclav SnelTUO-VB Ostrava

  • Vzory a oblasti, ve kterch se vyskytujProblmy a souasn eenPATTRON - systm pro podporu vyhledvn vzorKonference EuroPLoP 2007Spoluprce student

  • Co jsou to vzory? Kde se vzaly?HistorieVzory jsouVzory nejsouPro pouvat vzory?Ve kterch oblastech se vyskytuj?Popis vzoruVzor jako slovnk

  • V praxi asto narme na stejn opakujc se problmExistuj oven eenOdbornci z dan oblasti v jak problm eitKad lovk pi prci pouv jist stereotypy Vzory tyto stereotypy pojmenovvaj a formalizujJe zdraznna obecnost a flexibilita pouit

  • Christopher Alexander formuloval v 70 letech vzory pro een loh v architektue Kad vzor je pravidlo, kter vyjaduje vztah mezi jistou souvislost, problmem a eenm

  • Popisy osvdench eenZachycuj zkuenost odbornk v urit oblastiUmouj jednoduchou komunikaci mezi odbornky (vytv slovnk)e opakovan se vyskytujc problm

  • Momentln npady autoraNjak trikyPopisy jedinho zpsobu eenPopisy, kter nevnesou shodu mezi odbornky

  • et as a nmahu

    Vyzkouen eenZachycuj zkuenostiJsou znovupouitelnPoskytuj slovnkZmruj rizika

  • Seznam oblast, ve kterch jsou ji formulovny vzory, neustle roste. Je jasn, e vzory mus bt formulovny specialisty z oblasti, pro kterou jsou vzory ureny.Vzory bvaj objeveny v profesionlnch systmech jako obecn oven opakujc se een problmu.

  • Nvrhov vzory (Design patterns)GoFNejznmj skupina vzorAplikuj se pi vytven nvrhuZamuj se na flexibilitu programuMOTO:programujeme pro rozhran, nikoli pro implementaciobjektov skladb dvme pednost ped tdn ddinost

  • Analytick vzoryVcemn nezvisl na problmov domnPopisuj een na konceptuln rovniPopisuj vztahy mezi klovmi prvky aplikan logiky systmuVzory pro podnikov eenPro vytven aplikac velkho rozsahu (enterprise applications)Sna se popisovat prosted pro vvoj informanch systm

  • Vzory pro integraciPopisuje mechanizmy pro propojovn st nebo celch informanch systm na rznch rovnch

    Vzory pro testovnSkupina vzor pro unit-testing.

    Vzory pro tvorbu uivatelskho rozhranDodrovn ergonomickch zsad a standardKvalita pi komunikaci lovka s potaem

  • Vzory pro e-learningSlou k popisu vlastnost, kter jsou oekvny u e-learningovho systmu a jeho obsahuPedagogick vzoryPopisuje rzn vyuovac metody a problmyUreno pedevm pro neuitele, kte vedou nap. kolen

  • Existuj rzn formty, charakteristiky uvedeny na konferenci PLoP 95Nzev (vystihuje co nejvce jeho podstatu)Problm (kad vzor e njak problm)Kontext/Podmnky (popis okolnost)een (soubor pravidel a vztah, instrukce, jak postupovat v een problmu)Pklady, Dsledky, Souvisejc vzory, Reference

  • Vzor je strukturovan dokumentVzor je formalizovan een

  • Nzvy vzor v katalogu tvo slovnkUsnaduj pochopen toho, o em se mluvZkracuje dokumentaci.P.Webov vzory: Informace o produktu, Diskuse, Informace o cen, Monost nkupu, LoginPopis webov strnky: Strnka o produktu obsahuje Informaci o produktu, Informaci o cen s Monost nkupu a monost pihlen pes Login. Ve spodn sti je Diskuse.

  • Vzory se nepouvaj osamocenVzory maj vztahy s ostatnmi vzorySkupina vzor pro danou problmovou domnu tvo jazyk

  • Architektura informanch systm pedstavuje nron problm, zvis na n spch celho systmuV souasn dob nejrychleji rozvjejc se komunitaKad skupina vzor m svoj klasifikaci

  • Prvn a nejznmj je Gof Design Patterns: Elements of Reusable Object-Oriented Software (Nvrh program pomoc vzor: Stavebn kameny objektov orientovanch program)Nvrhov vzory (Design Patterns) zavdj obecn een stejnch situac v OOP.Klasick problmy: Jak se zsk flexibilita v OOP, znovupouitelnost, zapouzden stavu objektu, dynamick roziovn funkcionality, jeden sdlen objekt,

  • Tvoiv vzory e problmy souvisejc s vytvenm objekt v systmu (Factory Method, Builder, Singleton)Strukturln vzory zamuj se na uspodn jednotlivch td a komponent v systmu (Adapter, Bridge, Facade)Vzory chovn vmaj si chovn systmu, spoluprci komponent (Interpreter, Memento, State, Strategy)

  • Martin FowlerEnterprise aplikace e ukldn komplexnch dat do relan DB, transakn zpracovn, soubn pstup, obsahuj sloitou aplikan logiku, e uivatelsk rozhran, integruj komponenty tetch stran

  • Vzory pro domnovou logikuVzory pro architekturu datovch zdrojObjektov-relan vzory chovnObjektov-relan strukturln vzoryObjektov-relan mapovac vzory vyuvajc metadataVzory pro webovou prezentaciVzory pro distribuovan prostedVzory pro een soubnho pstupu k datmVzory pro ukldn stavu bhem sezenZkladn vzory

  • Pokrvaj proces vvoje software na platform MicrosoftObsahuje i implementan vzoryVzory jsou rozdleny podle rovn abstrakce do tzv. Organizan tabulky vzor

  • Skupiny vzor, rovn abstrakce, oblasti pouit, rmce vzor

  • Podle GoF:Projt elov oddlProstudovat vzjemn vztahy vzorStudium vzor s podobnm elemNastudovat vzory a najt shodu v charakteristikch problmu, kter se m eit a kter vzor e

  • Klasifikace vzor uveden v kad knize je uiten pro samotn studium a pro orientaci v dan problmov oblasti.

    Existujc klasifikace vzor nepomhaj pi hledn neznmho vzoru na dan problm.

    dn existujc klasifikace vzor nedv pehled o tom, jak vzory z rznch oblast souvis mezi sebou.

  • www.patternshare.orgAutoi jsou lenov komunity Microsoft Patterns & PracticesVychz z klasifikace MicrosoftuUmouje zobrazen a prochzen Organizan tabulky vzorMonost vkldn novch vzorPouze 3 pevn kategorie

  • www.wupatterns.comWeb obsahuje povnou sadu vzor z oblasti pouitelnosti webovch strnek (Web usability)Obsahuje grafick znzornn vztah mezi vzoryNeumouje dal klasifikaci ani vyhledvn

  • www.patternforge.netWeb vytvoen lidmi zabvajc se katalogy vzorByl vytvoen jako vstup skupiny na konferenci EuroPLoP 2007Obsahuje lnky, odkazy o vzorechZachycuje innost komunity

  • Pattens Almanac 2000 (http://www.smallmemory.com/almanac/)Nejrozshlej katalog vzorObsahuje pouze nzvy a el vzoru, publikaciJednoduch vyhledvndn klasifikace

  • Vytvoen vhodn flexibiln klasifikace vzorVystihuje vlastnosti vzor, otevenost, Vyhledvac apartHledn podle klasifikanch atributNavigace v prostoru vzorGrafov struktura, shlukovac metodyWebov portlKomunitn zamen katalog vzor

  • Veejn pstupn aplikace (www.pattron.net)Komunity pro sdruen lid se stejnm zjmemKategorizan atributy pro klasifikaciMonost hlasovnVyhledvn filtrovnm atributShluky vzor na zklad pslunosti k atributm (nap. formln konceptuln analza)Vchoz msto pro studium vzor

  • Realizovan experimentln webov portl vzorwww.pattron.netObsahuje pes 300 vzor a 140 klasifikanch atributnalezeno 420 shluk

  • Nejvznamnj evropsk konference o vzorechPat do srie PLoP konferenc konanch po celm svtSchvalovn vzor

  • Byli jsme astnci v sekci pattern repositiries focus groupOstatn eStrukturu,zpis popisu vzorKlasifikan metody

  • Hlavn diskuse na tma pattern repositoriesDiskusi ovldl Frank BuschmanProblm vid v nvratnosti investic, protoe vc nem business model

  • Komunita lid vnujcch se vzorm se neustle roziujeVznikaj jazyky vzor nap. z filmov brane, kuchastvDiskutuje se o tom, jak se vzory zachzetDo klasifikace by se mli zapojit autoi

  • Plnme systm PATTRON dalmi vzoryHledme atributyOhodnocujeme vzoryMme mlo spolench atribut pro vzory z rznch domn

  • V rmci bakalskch a diplomovch prac studujeme vybran knihyHledme nov webov vzoryHodnotme pslunost webovho vzoru na webov strnce

  • **V sedmdestch letech byly architektem Christopherem Alexandrem formulovny vzory pro een loh v architektue (1). Vzor je formulovn nikoli jako npad, jak eit problm, ale jako popis a zobecnn urit zkuenosti, kter vede k postupu, jak problm eit (vchodiskem vzor je praktick zkuenost, nikoli pouh npad, jak problm eit). Nvod een pak mus bt tak prun, aby se vzor dal aplikovat opakovan a aby pitom vsledky nebyly stereotypn. Vzor je strun text, kter popisuje nrt problmu a popis jeho obecnho een v konkrtnch souvislostech. *Pi nvrhu a tvorb aplikac asto narazme opakovan na stejn problm. Kueten asu a nmahy je dobr mt bn problmy a jejich een uloeny. Vnejjednodu podob jsou eenm nvrhov vzory a jejich katalog, Design Pattern Katalog. Nvrhov vzory jsou uloeny v Pattern Templates (ablonch). Pattern Templates obsahuj nzev vzoru, oblasti pouit, bn problmy pi implementaci atd. Spouitm design patterns je nvrh aplikace pehlednj. Vechny nvrhov vzory jsou opakovan pouiteln.

    Byli vyzkoueny. Zobrazuj zkuenosti, znalosti a nadhled vvojovch projektant, kte spn pouili nvrhy pi jejich vlastn prci. Jsou znovupouiteln. Poskytuj pipraven een, kter me bt pouito pi een rznch problm. Jsou vmluvn. Poskytuj bn slovnk, kter me rychle poskytnout een.

    *Vtto oblasti bv zmiovna pedevm kniha [8]. Analytickmi vzory autor rozum takov vzory, kter jsou vcemn nezvisl na problmov domn a popisuj een problm na konceptuln rovni, kter je minimln zvisl na budouc implementaci. Vpodstat vzory popisuj vztahy mezi klovmi byznys prvky systmu. Tato oblast vzor by se vdnm ppad nemla podceovat, protoe dobr analytick nvrh je nutnou podmnkou kvalitn implementace.

    Vzory pro podnikov eenDal oblast pokrvanou vzory, kter je vnovna vposledn dob znan pozornost, a to i ze strany komernch firem, je vytven aplikac velkho rozsahu, napklad na rovni podnikovch informanch systm. Na nvrh takov aplikace se toti meme podvat zrznch hledisek, kter odpovdaj nap. rovni abstrakce pohledu na systm i pohledu na zpsob implementace nkter konkrtn sti systmu.Tento pstup vede ke snaze vmaximln mon me definovat pro vvoj informanch systm prosted, kter na jedn stran poskytne dostatenou flexibilitu a na druh stran zkladn schmata, kter umon pouvat a sdlet zkuenost jako jeden zkladnch prvk efektivnho vvoje. Nejlepmi zdroji pro tuto oblast jsou knihy [9,23].

    *Vzory pro integraciIntegrace systm je jednou zaktulnch loh souasn doby. Ani tto oblasti se nevyhnula snaha o formulovn vzor. Pro tuto problematiku lze doporuit knihu [13], kter tuto oblast popisuje velmi dsledn.

    Vzory pro testovnZajmavm, velmi strunm a itelnm katalogem vzor je [5], kde se autor zabv vzory pro tzv. unit testing. Krom toho vylo nkolik knih zabvajcch se tuto problematikou virm mtku.

    Vzory pro tvorbu uivatelskho rozhranGrafick uivatelsk rozhran je z pohledu uivatele nejdleitjm prvkem aplikace a jako s takovm se s nm mus zachzet. Dleitou vlastnost dobe navrenho uivatelskho rozhran je dodrovn ergonomickch zsad a standard, kter s rozvojem kvality pota pispvaj ke kvalit komunikace lovka s potaem. I zde se d velmi efektivn (a vtomto ppad i velmi efektn) popsat vtina kompozic a akc vbnch systmech a aplikacch prostednictvm vzor [15, 23].

    *Alexander v ALEX79 vymezuje, m je kad nvrhov vzor definovn:

    kad popisovan nvrhov vzor mus bt formulovn ve form pravidel, kter stanovuj vztah mezi kontextem, silami psobcch v tomto kontextu a konfigurac, kter dovoluje tmto silm vyeit vlastn psoben v rmci kontextu

    Alexander doporuuje k objasnn nvrhovch vzor vyuit grafickho zobrazen, kter usnadn vzjemnou komunikaci mezi vysvtlujcm a posluchai, resp. teni. Jsou vyuvny rzn formy popisu nvrhovch vzor (Alexandrv formt, GoF formt a dal). Pi vytven nvrhovho vzoru je nutn, aby zvolen forma poskytovala co mon nejvce relevantn informace a vhodn je uspodvala. Pi popisu nvrhovch vzor plat, e ten by se neml starat o formt vymezen nvrhovho vzoru, ale spe se soustedit na problm jako takov. Proto je vhodn pouvat ustlen nzorn postupy. Kad popis nvrhovho vzoru by ml obsahovat nkolik zkladnch charakteristik, kter byly poprv uvedeny na konferenci PLoP95 viz SANE95:

    Nzev - kad nvrhov vzor by ml mt nzev, kter co mon nejvce vystihuje jeho podstatu. Jednou z pin vyuit nvrhovch vzor je usnadnn komunikace mezi lidmi. Proto nen mon, aby pi pouit nzvu nvrhovho vzoru muselo dojt k dlouhmu vysvtlen, co dan pojem znamen. Nkte autoi k nzvu pipojuj jet jeho klasifikaci. Problm - kad nvrhov vzor e njak problm. Podstatou jeho vzniku je njak konkrtn situace, kter neodpovd poadovanmu stavu. Podmnky - popis vech okolnost a sil, kter mohou ovlivovat pouit danho vzoru. Jsou zahrnuty veker jevy, kter se vyskytuj v danm kontextu a kter mus bt brny v vahu. Nkter sly mohou bt vyuity pi een, jin naopak jsou v konfliktu s danm postupem. Dobr nvrhov vzor obsahuje popis vech okolnost, za kterch je mon ho pout a kter omezuj jeho ivotaschopnost. Obsahuje i popis kontextu, do kterho bude nvrhov vzor aplikovn. Uruje budouc mon pouit nvrhovho vzoru nebo nastaven systmu ped pouitm vzoru. een - soubor pravidel a vztah, kter popisuj jak doshnout poadovanho vsledku. Pedstavuje soubor instrukc, jak postupovat krok po kroku smrem k cli. Nvrhov vzor bv vysvtlovn formou diagram, obrzk, schmat a popis, kter nzorn objasuj zkladn principy vzoru. Nejedn se vtinou o vysvtlen statick struktury nvrhovho vzoru, ale o zachycen dynamiky danho systmu. Prv chovn systmu pi pouit nvrhovho vzoru bv jeho podstatou. een me obsahovat i popis jednotlivch skal a omezen, s ktermi se mus potat pi jeho implementaci. Pklady - kad popis nvrhovho vzoru by ml obsahovat i ukzky jeho praktickho pouit, kter pomou uivateli osvojit si novou mylenku. Pklad by ml obsahovat definici konkrtnho problmu, vstupujc podmnky, popis jak je nvrhov vzor implementovn a vsledek. Pkladem me bt napklad programov kd (pro vzory v oblasti programovn), kter by ml bt co mon nejvce nzorn. Vsledek - stav nebo konfigurace systmu po aplikaci vzoru, zahrnujc vzjemn souvislosti, kter vychzej z implementace vzoru. Ml by obsahovat shrnut problmu, kter byly vyeeny. Aplikac vzoru se mohou vyskytnout urit vedlej efekty, kter nemus odpovdat poadovanmu stavu. Tyto efekty mohou bt eeny nslednmi nvrhovmi vzory, kter by mly bt zmnny. Jeden nvrhov vzor mnohdy nepedstavuje ucelen een sloitjho procesu, ale slou jako jedna z kostek, kter jsou pouity pi hledn vhodnho postupu. Proto vsledek pouit konkrtnho vzoru me tvoit vstupn bod pro aplikaci dalho vzoru. Odvodnn a souvislosti - pedstavuje vysvtlen, pro byl nvrhov vzor pouit a jak jeho implementace vyeila danou situaci. Je vysvtlen zpsob prce s nvrhovm vzorem v praxi. Tato st popisu nvrhovho vzoru me ukazovat i na zejm vsledky, ale pedevm by se mla soustedit na objasnn principu fungovn vzoru do vt hloubky. Souvisejc vzory - jak u bylo popsno ve nepedstavuje pouit jednoho vzoru vtinou ucelen een. Mnohdy jsou vstupn podmnky pro pouit popisovanho vzoru vsledkem aplikace pedchozho a na druh stran vstupn kontext pedstavuje vstupn bod pro jin nvrhov vzor. Tento etzec potom dv konen een, kterm je mon doshnout poadovanho cle. Popisovan zpsob een danho problmu, ale nemus bt jedin a v praxi ani vtinou nebv. Dobr popis, by ml proto obsahovat i jin zpsoby, ktermi je mon se dobrat vytenho stavu. Prospn je i zmnit okolnosti, na jejich zklad je mon provst vbr mezi navrhovanmi postupy. Posledn monost, jak vzor me souviset s ostatnmi, je nutnost souasn aplikace s jinm vzorem. Jedn se o situaci, kdy samostatn pouit popisovanho vzoru je bu pln nebo skoro neefektivn. Pro jeho sprvnou aplikaci mus bt pouit jeden nebo i vce podprnch vzor, kter zajiuj jeho pln vyuit. Reference - popisuj situace, kdy byl pattern ji pouit na existujcch systmech. Zvyuje dvryhodnost schopnosti navrhovanho een. Pouit nvrhovho vzoru me slouit i jako ilustrativn pklad (viz Pklady).

    *DescriptionContextApplicabilityStructureInteractionsConsequencesStrategiesSample CodeRelated Patterns and Technology

    *Vzory jako slovnkMon nejdleitj vlastnost vzor je to, e se pro jejich pojmenovn pouvaj vrazy, kter vstin charakterizuj, o co se ve vzoru jedn. Pouitm tchto vraz vkomunikaci pak velmi usnadn vzjemn pochopen toho, o em se mluv. Mnohdy ani lovk nemus mt detailn pedstavu o tom, co pesn vzor pi realizaci pin za problmy, ale na komunikan rovni to postauje.

    *Architektura tchto systm pedstavuje pomrn nron problm a na jejm sprvnm navren vtinou zvis spch celho systmu. Architektura mus bt jasn a srozumiteln sdlen, jakm zpsobem budou realizovny poadavky od zadavatel systmu. Jasn mus bt nejen pro uivatele, ale hlavn pro cel vvojov tm. Je urit zajmav a uiten pi jejm nvrhu a tvorb vyuvat standardnch postup, kter ji zpehleduj a usnaduj jej implementaci.

    V praxi analza systmu pli asto kon u pochopen zkladnch princip novho systmu a nen dle rozvjena, aby pln pokryla vechny sti navrhovanho systmu. Analytici pop pouze jaksi obal systmu, kter nco vykonv. Potom dochz k rychlmu nvrhu datovho modelu systmu a zane se s implementac. S dokonovnm systmu zanaj na povrch vystupovat problmy, o kterch ped tm nikdo neuvaoval, a tm ani neeil. Je to jako kdyby prvn architekt (analytik) navrhl dm. Zkaznkovi by vysvtlil, e kdy oto kohoutkem, potee voda. Na druh stran by nkdo navrhl loit vody, ale ji nikdo neprovedl krok k propojen tchto dvou pstup. *Na potku devadestch let minulho stolet se zaal utvet Gang of Four (GoF), kter tvoili pnov Erich Gamma, Richard Helm, Ralph Johnson a John Vlissides. Ji v roce 1991 na ECOOP91 pedstavil Gamma a Helm nkolik nvrhovch vzor (Composite, Decider, Observer atd.) Vznamn byly i konference na OOPSLA v roce 1991 a 1992, kter se uskutenily pod ztitou Bruce Andersena. Tto konference se zastnili i mnoz z budouc Hillside Group.

    Jak se zsk flexibilita een v OOP, Jak se zsk znovupouitelnost een v OOP, Jak se zbavit nepjemnho efektu "namnoen td" pi tvorb strom ddinosti, Jak se zbavit sloitosti formul a maximln je zprhlednit, Jak vytvoit "Undo efekt" s nvratem objekt k pvodnmu stavu ve va aplikaci, Jak vyeit situaci, kdy je teba poslat poadavek objektu ani bychom dopedu znali konkrtn operaci, kter m bt vyvolna (dynamick menu apod.) Jak vytvoit funkcionalitu u mnoiny objekt, kter mus reagovat na zmnu stavu jinho objektu, Jak flexibiln rozit funkcionalitu tdy a pitom nezasahovat do jejho kdu, Jak zvolit tdu na zklad dat, napklad obsluha vybere v menu poloku a vy muste vytvoit podle toho objekt z dan tdy, Jak zabezpeit, aby z dan tdy vznikl pouze jeden a sdlen objekt (napklad spooler tiskrny, datov objekt, konekt apod.), Jak zavst kompatibilitu mezi dvma jinak nekompatibilnmi interfacy, Jak zvit flexibilitu tdy pomoc dynamicky pilinkovanch objekt jako alternativn een k ddinosti, Jak zabezpeit, aby libovoln objekt z dan rodiny "uml" danou funkcionalitu na dan dotaz, tj. klient se me dotzat libovolnho z tchto objektl a dostane sprvnou a relevantn odpov (napklad dotaz v helpu apod.), Jak ukldat objekty do relan databze, a dal...

    *Creational Patterns e problmy souvisejc s vytvenm objekt v systmu. Snahou tchto nvrhovch vzor je popsat postup vbru tdy novho objektu a zajitn sprvnho potu tchto objekt. Vtinou se jedn o dynamick rozhodnut uinn za bhu programu. Mezi tyto nvrhov vzory pat:

    *Klasikace vzor podle Martina Fowlera vychz z knihy [5]. Tato kniha pedstavujevzory, kter se pouvaj pi realizaci velmi rozshlch aplikac. Rozshlaplikace (a mnostv dotench softwarovch odvtv pi vvojisoftwaru. Enterprise aenterprise applications) pat k tm nejnronjm aplikacm, co sete sloitosti architektury plikace zpravidla e ukldn komplexnch dat do relandatabze, transakn zpracovn, soubn pstup k datm, obsahuj sloitouaplikan logiku, nabz uivatelsk rozhran, poskytuj podporu pro ovldn zevzdlen aplikace, asto vyuvaj dal aplikace tetch stran, vyaduj vysokoubezpenost, robustnost, klovatelnost apod.Vzory v tto publikaci jsou ureny pro programtory, nvrhe a architekty.*Vzory pro domnovou logiku (Domain Logic Patterns) popisuj, jak rozdlit aplikacido vrstev, dle popisuj architekturu v rmci vrstvy aplikan logiky.Tyto vzory e problmy, kter se tkaj rozdlen sloitosti eenho problm do sady objekt aplikan logiky.Vzory pro architekturu datovch zdroj (Data Source Architectural Patterns)popisuj, jakm zpsobem komunikuje aplikan logika s databz. Umstitdo aplikan logiky kd pro komunikaci s databz m spoustu nevhod,tyto vzory popisuj, jak tento problm eit.Objektov-relan vzory chovn (Object-Relational Behavioral Patterns) ezpsob ukldn zmnnch dat do databze. Pi sloitjm vpotu me12bt obtn uhldat, kter data byla modikovna a mus bt uloena dodatabze. Tyto vzory pichzej v vahu, pokud mme vt mnostv z-znam, nad ktermi se pracuje.Objektov-relan strukturln vzory (Object-Relational Structural Patterns) eproblmy s odlinou reprezentac vazeb mezi entitami v objektovm prosted a v relan databzi. V objektov prosted se vazba realizuje referencnebo ukazatelem na objekt. V relan databzi se vazba realizuje uloenmkle v jin tabulce.Objektov-relan mapovac vzory vyuvajc metadata (Object-Relational MetadataMapping Patterns)Vzory pro webovou prezentaci (Web Presentation Patterns) jsou vzory, ktere architekturu webov prezentan vrstvy.Vzory pro distribuovan prosted (Distribution Patterns) popisuj een problm bn se vyskytujcch v distribuovanm prosted, jako jsou tvorbarozhran pro vzdlen voln, zpsob vmny dat apod.Vzory pro een soubnho pstupu k datm (Oine Concurrency Patterns)Vzory pro uloen stavu bhem sezen (Session State Patterns) { tyto vzory eproblm uloen stavu buto na klientskou stranu, na stranu servetu nebouloenm stavu do databze.Zkladn vzory (Base Patterns) je skupina elementrnch vzor, kter jsou pou-iteln v irm kontextu.*m cel proces vvoje software na platform Microsoft. st vzor jsoutzv. implementan vzory, popisuj praktick zkuenosti autor pi pouit danho vzoru na platform Microsoft. V knize je obsaena kla vzor od nvrhovch, implementanch a po vzory infrastruktury a nasazen. Dle jsou zde vzoryrozdleny podle rovn abstrakce. Na zklad tohoto rozdlen autoi vytvoiliorganizan tabulku vzor, kter organizuje vzory podle nkolika pohled.*Na zklad rznch oblast pouit meme vzory sdruovat, m vytvomeskupiny vzor pro njakou oblast pouit, nap. skupiny vzor pro prezentanvrstvu webov aplikac. Tm se nm prostor vzor rozdl do dalch logickchjednotek.

    Rozdlen vzor na skupiny umouje lpe se je nauit a lpe s nimi pracovat.Dle si musme uvdomit, e se vzory pracuj rzn lid v rznch rolch pi vvojisoftware. Proto autoi rozdluj vzory podle rzn rovn abstrakce.Vzory pro architekturu (Architecture Patterns) popisuj, jak strukturovat aplikacena nejvy rovni. Pesn denice vzor pro architekturu je k nalezenv [16].Nvrhov vzory (Design Patterns) jsou tyt vzory se stejnou denic, jak bylouvedeno v pedel kapitole.Implementan vzory (Implementation Patterns) jsou nzkorovov vzory z-visl na SW a HW platform, pop. na pouitm programovacm jazyku.Popisuj, jak implementovat rzn aspekty komponent na dan platform.

    Jeliko softwarov proces pokrv vce innost, ne jen kdovn, autoi serozhodli kategorizovat vzory podle oblasti pouit.*V katalogu s vce ne 20ti vzory na vbr me bt obtn najt takov, jen e urit problm, zvlt kdy je pro ns katalog nov a neznm. Uvdm nkolik rznch pstup, jak najt vhodn vzor pro n problm.

    Abychom nali jeden nebo vce vzor, kter se zdaj bt relevantn pro n problm, peteme si jejich ely. Hledn zme pomoc klasifikanho schmatu, kter je uvedeno v dan publikaci.

    Studium grafu vztah ns me nasmrovat na sprvn vzor nebo skupinu vzor.

    *Kad autor knihy o vzorech se sna rozdlit mnoinu vzor, ktermi sezabv, do nkolika td. Tyto tdy neboli kategorie vzor jsou zvisl na pohleduautora na oblast, kterou vzory e. Takov kategorizace vzor umouje leporientaci v dan oblasti a tak v knize, kter popisuje vzory pro danou oblast.Pokud se nap. zabvme vzory pro integraci, je velice uiten rozdlit integranvzory podle toho, jestli e komunikaci mezi aplikacemi, topologii, spojovnsystm apod. Na zklad tto kategorizace se meme velice rychle orientovatve vzorech tkajcch se problmu integrace systm.

    Problm nastv v tom, e pokud lovk nezn vzory pro danou problmovoudomnu, existujc klasikace vzor mu nen npomocna. Pokud neznm danvzory ani orientan, tko mohu vdt, jak maj bt nebo do jak kategorie20maj patit. V takovm ppad mohu spe popsat svj problm na zklad jehovlastnost. Pokud napklad vm, e hledm vzor pro zven nezvislosti vpotuna pouitm algoritmu v mm programu a neznm nvrhov vzory, konkrtnteba vzor Strategy, jen velmi mlo mi pome informace, e vzor pat do skupinyvzor chovn.

    Pokud se lovk vnuje studiu vzor del dobu, tak za njakou dobu si uv-dom, e existuj vztahy mezi rznmi vzory z rznch domnovch oblast. V posledn dob vznikaj nov publikace, kter dvaj dohromady vzory z rznch oblast pro een njak rozshlej lohy. Kupkladu kniha [10] se vnuje problematicewebovch prezentac z pohledu pouitelnosti, obsahu, navigace a estetiky.Pedstavuje tm 80 vzor pro nvrh webu. Problematikou nvrhu a tvorbuweb se zabv i kniha [11], kter tak spojuje vzory z vce oblast.*Vytvoen vhodn exibiln klasikace vzor. Tato klasikace by mla vystihnoutvlastnosti, kter dan vzor svm eenm poskytuje. Klasikace musbt oteven a exibiln tak, aby se mohla pizpsobit novm pohledm anovm klasikacm vzor.

    Vyhledvac apart. Vyhledvn by mlo umonit najt vzory podle ohodnocenklasikanmi atributy. Tm se zsk zkladn mnoina vzor splujc danvlastnosti.

    Navigace v prostoru vzor. V prostoru vzor by mla existovat navigan strukturatypu graf. Ta by mla umonit sluovn vzor s podobnmi vlastnostmido uzl a pohyb mezi uzly. Tm se uivatel me donavigovat donjakho uzlu, resp. do njak konkrtn mnoiny vzor, kter e danproblm v danm kontextu.

    Webov portl. Cle tto prce by mla naplovat aplikace dostupn vem potencionlnm uivatelm. Tato aplikace bude pipraven pro oekvanouclovou skupinu uivatel, tzn. pro lidi zabvajc se softwarovmi eenmi.Tato aplikace by mla bt komunit zamen a mla by slouit jako po-ten msto pro nalezen vzor, nikoli pro detailn studium vzor.

    *Vznikne nov webov aplikace s nzvem Portl vzor. Tato aplikace budeveejn pstupn vem uivatelm na internetu. Aplikace bude mt charakterportlu s komunitami.Komunity budou logick celky, kter budou sdruovat uivatele se stejnou oblast zjmu, stejnm pohledem na vzory apod. Veker innosti se budou odehr-vat v rmci komunity. Rzn editan a vkldac akce v systmu budou provdnypouze leny komunity. Komunita bude mt svoje administrtory, kte potvrzujeditan akce ostatnch len komunity.Kad komunita me pracovat s jinou mnoinou kategorizanch atribut,popisnch informac o vzoru, uivatelsky denovanch pohled na vzory a ablonpro vytven vzor. Kad len komunity se me vyjdit, jestli je dan entitapro nj v dan komunit uiten nebo ne. K vsledkm hlasovn m pstupkad uivatel systmu.*Behavioral patterns Design patterns Patterns applied to objects proper for - Intermediate resolve coupling resolve coupling comunication between objects resolve flexibility resolve flexibility algorithm independence resolve flexibility modification of class / interface resolve flexibility tightness of coupling

    **