1 / 55

Vyhledávání softwarových vzorů

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

olwen
Download Presentation

Vyhledávání softwarových vzorů

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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ů

  2. 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 • Spolupráce studentů

  3. Vzory a oblasti, ve kterých se vyskytují • Co jsou to vzory? Kde se vzaly? • Historie • Vzory jsou • Vzory nejsou • Proč používat vzory? • Ve kterých oblastech se vyskytují? • Popis vzoru • Vzor jako slovník

  4. Co jsou to vzory? Kde se vzaly? • V praxi často narážíme na stejný opakující se problém • Existují ověřená řešení • Odborníci z dané oblasti ví jak problém řešit • Každý člověk při práci používá jisté stereotypy • Vzory tyto stereotypy pojmenovávají a formalizují • Je zdůrazněna obecnost a flexibilita použití

  5. Historie • Christopher Alexander formuloval v 70 letech vzory pro řešení úloh v architektuře„Každý vzor je pravidlo, které vyjadřuje vztah mezi jistou souvislostí, problémem a řešením“

  6. Vzory jsou • Popisy osvědčených řešení • Zachycují zkušenost odborníků v určité oblasti • Umožňují jednoduchou komunikaci mezi odborníky (vytváří slovník) • Řeší opakovaně se vyskytující problém

  7. Vzory nejsou • Momentální nápady autora • Nějaké triky • Popisy jediného způsobu řešení • Popisy, které nevnesou shodu mezi odborníky

  8. Proč používat vzory? • … šetří čas a námahu … • Vyzkoušená řešení • Zachycují zkušenosti • Jsou znovupoužitelné • Poskytují slovník • Zmírňují rizika

  9. Ve kterých oblastech se vyskytují? • Seznam oblastí, ve kterých jsou již formulovány vzory, neustále roste. Je jasné, že vzory musí být formulovány specialisty z oblasti, pro kterou jsou vzory určeny. • Vzory bývají objeveny v profesionálních systémech jako obecné ověřené opakující se řešení problému.

  10. Návrhové vzory (Design patterns) • GoF • Nejznámější skupina vzorů • Aplikují se při vytváření návrhu • Zaměřují se na flexibilitu programu • MOTO: • programujeme pro rozhraní, nikoli pro implementaci • objektové skladbě dáváme přednost před třídní dědičností

  11. Analytické vzory • Víceméně nezávislé na problémové doméně • Popisují řešení na konceptuální úrovni • Popisují vztahy mezi klíčovými prvky aplikační logiky systému Vzory pro podniková řešení • Pro vytváření aplikací velkého rozsahu (enterprise applications) • Snaží se popisovat prostředí pro vývoj informačních systémů

  12. Vzory pro integraci • Popisuje mechanizmy pro propojování částí nebo celých informačních systémů na různých úrovních Vzory pro testování • Skupina vzorů pro unit-testing. Vzory pro tvorbu uživatelského rozhraní • Dodržování ergonomických zásad a standardů • Kvalita při komunikaci člověka s počítačem

  13. Vzory pro e-learning • Slouží k popisu vlastností, které jsou očekávány u e-learningového systému a jeho obsahu Pedagogické vzory • Popisuje různé vyučovací metody a problémy • Určeno především pro neučitele, kteří vedou např. školení

  14. Popis vzoru • Existují různé formáty, charakteristiky uvedeny na konferenci PLoP’95 • Název (vystihuje co nejvíce jeho podstatu) • Problém (každý vzor řeší nějaký problém) • Kontext/Podmínky (popis okolností) • Řešení (soubor pravidel a vztahů, instrukce, jak postupovat v řešení problému) • Příklady, Důsledky, Související vzory, Reference

  15. Příklad vzoru - Dekorátor

  16. Příklad vzoru – Data Accessor

  17. Příklad vzoru - Diskuse

  18. Vzor jako dokument • Vzor je strukturovaný dokument • Vzor je formalizované řešení

  19. Vzor jako slovník • Názvy vzorů v katalogu tvoří slovník • Usnadňují pochopení toho, o čem se mluví • Zkracuje dokumentaci. • Př. • Webové vzory: Informace o produktu, Diskuse, Informace o ceně, Možnost nákupu, Login • Popis webové stránky: Stránka o produktu obsahuje Informaci o produktu, Informaci o ceně s Možností nákupu a možností přihlášení přes Login. Ve spodní části je Diskuse.

  20. Jazyk vzorů • Vzory se nepoužívají osamoceně • Vzory mají vztahy s ostatními vzory • Skupina vzorů pro danou problémovou doménu tvoří jazyk

  21. Softwarové vzory • Architektura informačních systémů představuje náročný problém, závisí na ní úspěch celého systému • V současné době nejrychleji rozvíjející se komunita • Každá skupina vzorů má svojí klasifikaci

  22. Návrhové vzory • První a nejznámější je GofDesign Patterns: Elements of Reusable Object-Oriented Software(Návrh programů pomocí vzorů: Stavební kameny objektově orientovaných programů) • Návrhové vzory (Design Patterns) zavádějí obecná řešení stejných situací v OOP. • Klasické problémy: Jak se získá flexibilita v OOP, znovupoužitelnost, zapouzdření stavu objektu, dynamické rozšiřování funkcionality, jeden sdílený objekt, …

  23. Návrhové vzory - klasifikace • Tvořivé vzory – řeší problémy související s vytvářením objektů v systému(FactoryMethod, Builder, Singleton) • Strukturální vzory – zaměřují se na uspořádání jednotlivých tříd a komponent v systému(Adapter, Bridge, Facade) • Vzory chování – všímají si chování systému, spolupráci komponent(Interpreter, Memento, State, Strategy)

  24. Vzory pro rozsáhlá řešení • Martin Fowler • Enterprise aplikace řeší ukládání komplexních dat do relační DB, transakční zpracování, souběžný přístup, obsahují složitou aplikační logiku, řeší uživatelské rozhraní, integrují komponenty třetích stran

  25. Vzory pro rozsáhlá řešení - klasifikace • Vzory pro doménovou logiku • Vzory pro architekturu datových zdrojů • Objektově-relační vzory chování • Objektově-relační strukturální vzory • Objektově-relační mapovací vzory využívající metadata • Vzory pro webovou prezentaci • Vzory pro distribuované prostředí • Vzory pro řešení souběžného přístupu k datům • Vzory pro ukládání stavu během sezení • Základní vzory

  26. Microsoft vzory pro rozsáhlá řešení • Pokrývají proces vývoje software na platformě Microsoft • Obsahuje i implementační vzory • Vzory jsou rozděleny podle úrovně abstrakce do tzv. Organizační tabulky vzorů

  27. MS vzory - klasifikace Skupiny vzorů, úrovně abstrakce, oblasti použití, rámce vzorů

  28. Jak vybírat vzor? • Podle GoF: • Projít účelový oddíl • Prostudovat vzájemné vztahy vzorů • Studium vzorů s podobným účelem • Nastudovat vzory a najít shodu v charakteristikách problému, který se má řešit a který vzor řeší

  29. Problémy, které vidíme „Klasifikace vzorů uvedená v každé knize je užitečná pro samotné studium a pro orientaci v dané problémové oblasti.“ „Existující klasifikace vzorů nepomáhají při hledání neznámého vzoru na daný problém.“ „Žádná existující klasifikace vzorů nedává přehled o tom, jak vzory z různých oblastí souvisí mezi sebou.“

  30. Současné přístupy www.patternshare.org • Autoři jsou členové komunity Microsoft Patterns & Practices • Vychází z klasifikace Microsoftu • Umožňuje zobrazení a procházení Organizační tabulky vzorů • Možnost vkládání nových vzorů • Pouze 3 pevné kategorie

  31. Současné přístupy www.wupatterns.com • Web obsahuje povnou sadu vzorů z oblasti použitelnosti webových stránek (Web usability) • Obsahuje grafické znázornění vztahů mezi vzory • Neumožňuje další klasifikaci ani vyhledávání

  32. Současné přístupy www.patternforge.net • Web vytvořený lidmi zabývající se katalogy vzorů • Byl vytvořen jako výstup skupiny na konferenci EuroPLoP 2007 • Obsahuje články, odkazy o vzorech • Zachycuje činnost komunity

  33. Současné přístupy Pattens Almanac 2000 (http://www.smallmemory.com/almanac/) • Nejrozsáhlejší katalog vzorů • Obsahuje pouze názvy a účel vzoru, publikaci • Jednoduché vyhledávání • Žádná klasifikace

  34. Motivace • Vytvoření vhodné flexibilní klasifikace vzorů • Vystihuje vlastnosti vzorů, otevřenost, … • Vyhledávací aparát • Hledání podle klasifikačních atributů • Navigace v prostoru vzorů • Grafová struktura, shlukovací metody • Webový portál • Komunitně zaměřený katalog vzorů

  35. Vize • Veřejně přístupná aplikace (www.pattron.net) • Komunity pro sdružení lidí se stejným zájmem • Kategorizační atributy pro klasifikaci • Možnost hlasování • Vyhledávání filtrováním atributů • Shluky vzorů na základě příslušnosti k atributům (např. formální konceptuální analýza) • Výchozí místo pro studium vzorů

  36. Shlukování vzorů (FCA)

  37. Návrh systému

  38. PATTRON • Realizovaný experimentální webový portál vzorů • www.pattron.net • Obsahuje přes 300 vzorů a 140 klasifikačních atributů • nalezeno 420 shluků

  39. PATTRON - ukázka vzoru

  40. PATTRON – vyhledávání vzorů

  41. PATTRON – tabulky vzorů

  42. PATTRON – tabulky vzorů (2)

  43. PATTRON – klasifikační atributy

  44. PATTRON – navigace v prostoru vzorů

  45. PATTRON – navigace v prostoru vzorů

  46. PATTRON – navigace v prostoru vzorů

  47. PATTRON – navigace v prostoru vzorů

  48. Konference EuroPLoP 2007 • Nejvýznamnější evropská konference o vzorech • Patří do série PLoP konferencí konaných po celém světě • Schvalování vzorů

  49. Konference EuroPLoP 2007 • Byli jsme účastníci v sekci „pattern repositiries focus group“ • Ostatní řeší • Strukturu,zápis popisu vzorů • Klasifikační metody

  50. Konference EuroPLoP 2007 • Hlavní diskuse na téma pattern repositories • Diskusi ovládl Frank Buschman • Problém vidí v návratnosti investic, protože věc nemá business model

More Related