\


 Friday, 27 August 2004
Podílejte se na rychlém konci éry bastlířů softwaru. Objektovými principy a návrhovými vzory řízený design a vývoj kvalitních aplikací.

Ve spotu z minulého týdne jsem sliboval překvapení pro příznivce OOP, UML a návrhových vzorů a hlavně pro ty, kdo mi psali, že by ode mě chtěli konzultaci nebo školení v designu aplikací. I když někteří z vás nabízeli opravdu zajímavé podmínky, musel jsem vždy odepsat, že žádné školení ani konzultaci neposkytuji. Důvody byly stále stejné. Mám dostatek vlastní práce a k courání po externích firmách nemám důvod. Žádostí ale bylo čím dál tím více, takže jsem se rozhodl s naším školícím střediskem  připravit cyklus přednášek  o OOP, UML a návrhových vzorech doprovázený  podrobnými praktickými příklady kódovanými v jazyce C#.

Orientační program kurzu:

1. den

  1. Přivítání účastníků kurzu.
  2. Úvodní informace o zaměření a organizaci kurzu.
  3. Základní pojmy OOP a UML..
  4. Mýty o OOP a UML.
  5. Vysvětlení rozdílů mezi business analýzou, systémovým designem a implementací aplikace na konkrétní platformě.
    1. Světlo v temnotách – Model Driven Architecture (MDA)
  6. Základní architektura a rozvrstvení aplikace.
  7. Statický pohled na systém – vytváříme základní diagram tříd a ověřujeme, že jsou v něm zaneseny všechny informace, jež jsou nám známy z případů užití.
    1. Zvolení složitosti diagramu tříd. Potřebujeme vždy flexibilní doménový model?
    2. Zapouzdření objektů, polymorfismus, návrh metod.

                                                               i.      Důležitost principů kovariance a kontravariance.

                                                             ii.      Různé typy soudržnosti metod.

                                                            iii.      Rozhodnutí o typu viditelnosti u každého člena třídy.

                                                           iv.      Jaké konstruktory by měl nabízet každý objekt z problémové domény? Jak určit vlastnosti pouze pro čtení.

                                                             v.      Ověření bezpečného chování třídy vůči potenciálním klientům.

    1. Precizní definice vztahů mezi třídami. Asociace, kompozice, agregace, závislost, realizace, generalizace.
    2. Vysvětlení rozdílů mezi abstraktní třídou a rozhraním (interface).

                                                               i.      Vztah mezi typem a podtypem.

                                                             ii.      Rozpoznání primárního účelu (hlavního smyslu) třídy i jejich sekundárních odpovědností vynucených vztahy s objekty z různých vrstev.

  1. Praktický příklad - ukázka implementace vzorových vztahů mezi objekty, perzistence objektů z problémové domény a zobrazování dat.  (jazyk C#)
    1. Separace kódu pro ukládání a obnovení objektů z perzistentního úložiště v samostatné vrstvě.
    2. Jak zajistíme, že v paměti počítače existuje nanejvýš jedna instance objektu se stejnou identitou.
    3. Ukázky různých způsobů mapování agregace, kompozice, generalizace a asociace do databáze.
    4. Zajištění existence maximálně jedné instance objektu v systému.
    5. Efektivní ukládání a nahrávání kolekcí.
    6. Jak se slučuje objektový přístup a přímé použití DataSetu (recordsetu) v uživatelském rozhraní?
  2. Odpovědi na dotazy frekventantů kurzu.

2. den

  1. Vysvětlení pojmu návrhový vzor.
  2. Kdy byste měli používat návrhové vzory?
  3. Základní vzory (GoF vzory)
    1. Vzory pro řízení vzniku objektů.
    2. Strukturální vzory.
    3. Vzory pro chování objektů.
  4. Začlenění návrhového vzoru do designu aplikace. Kreativní aplikace vzorů.
  5. Kompozice vzorů do vyšších sémantických celků.
  6. Příklady odvozených návrhových vzorů často používaných při designu informačního systému.
  7. Kdy byste neměli používat návrhové vzory?
  8. Příklad - ukázky implementace složitějších vzorů. (jazyk C#).
  9. Odpovědi na dotazy frekventantů kurzu.

3. den

  1. Typické problémy při modelování informačního systému a jejich řešení.
  2. Modelování  složitých organizačních struktur.
  3. Výhody vytváření fasád (Facade) pro aplikace s více než jedním typem uživatelského rozhraní (lehký klient, těžký klient).
  4. Evidence kompletní historie objektu.
  5. Aplikační role a práva uživatelů.
  6. Modelování toku peněz (zboží) v systému.
  7. Vytvoření flexibilního systému, jehož chování je změněno bez rekompilace aplikace.
  8. Příklad – ukázky řešení problémů při modelování informačního systému. (jazyk C#).
  9. Odpovědi na dotazy frekventantů kurzu.
  10. Ukončení kurzu.

Kurz se koná 3.11 - 5.11 2004 a jeho lektorem je samozřejmě moje maličkost. Jestliže vás program kurz zaujal, podívejte se prosím na jeho oficiální stránku, na které se můžete přihlásit. A pokud si stejně jako já myslíte, že zlatokopeckou dobu vývoje softwaru, kdy neznalý zákazník byl ochoten platit za zpatlanou aplikaci jakémukoli bastlíři, který za svoje excelentní know how považuje znalost syntaxe nějakého triviálního programovacího jazyka, halí opar blížícího se "fin de siecle”  a že v nové éře musí  kódování předcházet kvalitní návrh, jemuž rozumí všichni vývojáři, tak je kurz určen právě vám. Máte-li nějaké dotazy, napište je prosím do diskuze.

Aktualizace: Kurz je již obsazen (takový zájem mě opravdu těší), ale právě dohadujeme další termíny, aby se dostalo na všechny zájemce ;)



Friday, 27 August 2004 16:08:00 (Central Europe Standard Time, UTC+01:00)       
Comments [12]  Kurzy UML a OOP | UML