Sylabus predmetu OOA126D - Objektově-orientovaná analýza a návrh IS (VŠPP - ZS 2019/2020)

     Čeština          Angličtina          

Kód předmětu: OOA126D
Název česky: Objektově-orientovaná analýza a návrh IS
Název anglicky: Object-Oriented Analysis and Design
Způsob ukončení a počet kreditů: zkouška (6 kreditů)
Forma výuky: prezenční, 3/2 (počet hodin přednášek týdně / počet hodin cvičení týdně)
kombinovaná, 0/8 (počet hodin přednášek za období / počet hodin cvičení za období)
Jazyk výuky: čeština
Garant předmětu: Ing. Rudolf Pecinovský, CSc.
Vyučující: doc. RNDr. Mikuláš Gangur, Ph.D. (cvičící, zkoušející)
Ing. Josef Myslín (cvičící, zkoušející)
Ing. Rudolf Pecinovský, CSc. (cvičící, garant, přednášející, zkoušející)
Prerekvizity: žádné
Anotace:
Cílem předmětu je seznámit studenty s objektově orientovaným paradigmatem a základními konstrukcemi
používanými při návrhu objektově orientované architektury vyvíjených aplikací.

Integrální součástí tohoto úvodního kurzu bude seznámení se základními návrhovými vzory
a se základy funkcionálního programování pronikajícího do OO programů.

Studenti se naučí aplikovat zásady moderního programování a efektivně vytvářet aplikace,
které budou snadno modifikovatelné a spravovatelné
 
Obsah předmětu:
1.Základní seznámení s OO paradigmatem (dotace 3/2)
 
a.Principy, za nichž je paradigma postaveno
b.Objekty, třídy a další entity OO programů, programování řízené testy
c.Testovací třída, testovací přípravek, návrh testů v interaktivním režimu
d.Princip návrhových vzorů a jejich použití v OO architektuře
e.Návrhové vzory použité ve výchozím projektu
(Třídní metoda, Knihovní třída, Jedináček, Výčtový typ, Multiton)

2.Rozhraní a jeho dědění (dotace 3/2)
 
a.Rozhraní×implementace, signatura×kontrakt, rozhraní×interfejs
b.Plynulý posun -- problémy opakování kódu, suchý princip (DRY),
řešení za pomoci návrhového vzoru Služeník
c.Aplikovatelnost existujícíh meteod na instance doseud neexistujícíh tříd,
třída Multishape a její využití v návrhu
d.Problematika přílišné náročnosti doposud používaného služebníka,
definice jednodušších interfejsů
e.Současné implementace více interfejsů
f.Aplikace dědění a z ní vyplývající zjednodušen projektu
g.Tři typy dědění a jejich uplatnění v sw architektuře

3.Událostmi řízené programy (dotace 3/2)
 
a.Problémy současného řešení
b.Návrhové vzory Prostředník, Inverze závislostí, Pozorovatel;
program řízený událostmi
c.Výměna základního projektu a přizpůsobení návrhu
d.Datové členy (atributy) a jejich význam
e.Definice vlastní třídy v interaktivním režimu

4.Hodnotové a odkazové typy, Přepravky (dotace 3/2)
 
a.Problematika současného vracení více hodnot,
návrhový vzor Přepravka
b.Hodnotové a odkazové typy
c.Problematika porovnání hodnot hodnotových typů
d.Heš-kód objektu a jeho souvislost s hadnotou

5.Jmenné prostory, návrhový vzor Stav (dotace 3/2)
 
a.Jmenné prostory (balíčky), jejich význam a použití v projektech
b.Principy návrhového vzoru Stav, jeho použití v projektu
c.Definice společného rodičovského interfejsu jednostavových tříd
d.Rozdělení funkcioanlity mezi vícestavový objekt a jeho jednostavové podobjekty

6.Kód jako objekt -- lambda-výrazy (dotace 3/2)
 
a.Principy a význam balení kódu do objektu
b.Lambda-výrazy a jejich použití v programu
c.Lambda-výrazy jako parametry zpráv
d.Lambda-výraz jako návratová hodnota
e.Základní principy funkcionálního paradigmatu

7.Kolekce (dotace 3/2)
 
a.Abstraktní třída jako společný předek
b.Kontejnery a jejich dělení
c.Kolekce a jejich klasifikace
d.Generické datové typy a typové parametry
e.Použití kolekcí v programu

8.Procházení kontejnerů, datovody (dotace 0/0)
 
a.Kolekce×pole, kolekce×mapy
b.Návrhový vzor Iterátor a jeho použití
c.Externí a interní iterace
d.Základy datovodů a práce s nimi

9.Pokročilejší práce s datovody (dotace 3/2)
 
a.Princip konstrukce datovodů
b.Definice vlastních datovodů a jejich průběžných a koncových metod
c.Konverze hodnot procházejících datovodem
d.Kolektory a jejich použití

10.Dědění implementace (dotace 3/2)
 
a.Principy dědění implementace
b.Dědění impelemtnace jako speciální případ skládání;
simulace dědění implementace návrhovým vzorem Dekorátor
c.Pasti a propasti dědění implementace
d.Kdy použít dědění a kdy skládání

11.Knihovny a frameworky (dotace 3/2)
 
a.Základní pravidla při návrhu knihoven a frameworků
b.Demonstrace pravidel na frameworku semestrální práce
c.Podrobné seznámení s koncepcí frameworku semestrální práce

12.Současné trendy v návrhu architektury (dotace 3/2)
 
a.Posun preferencí od efektivity směrem k udržovatelnosti
b.Rostoucí úloha zákazníka
c.Návrhové vzory posilující udržovatelnost architektury
(Stav, Strategie, Zástupce, Adapter, Fasada, ...)

13.Historie a budoucnost programování (dotace 3/2)
 
a.Přehled jednostivých historických trendů a nástin dalšího vývoje
b.Důležitost dodržování klíčových zásad (OCP, DRY, SRP, LSP ...)

 
Výstupy z učení:
Odborné znalosti:
- Identifikovat a vysvětlit základní prvky objektového paradigmatu
- Identifikovat a popsat diagramy jazyka UML a principy jazyka UML
- Identifikovat a popsat základní návrhové vzory
- Identifikovat a popsat základní funkcionální konstrukce

Odborné dovednosti:
- Používat jazyk UML pro objektově orientovanou analýzu a návrh IS
- Analyzovat zadání a navrhnout architekturu středně složitého projektu
- Navrhnout architekturu tak, aby minimalizovala náklady na následnou správu projektu

Obecné způsobilosti:
- Provést komplexní analýzu a návrh IS podle objektově-funkcionálního paradigmatu
 
Vstupní znalosti:
Student by měl znát principy procesu vývoje SW
 
Způsob a metody výuky:
Studentům je doporučeno navštěvovat přednášky a dvičení,
na nichž budou vysvětleny jednotlivé pojmy a metody objektové analýzy a návrhu.

V případě nepochopení některých aspektů vyučované problematiky je možné využít konzultací,
a to jak prezenční formou, tak prostřednictvím systému Skype.

Docházka na přednášky a cvičení je ryze dobrovolná, důležité je pochopení problematiky
a odevzdání domácích úkolů, v nichž student pochopení problematiky demonstruje.
Přesto lze docházku doporučit s ohledem na komplikovanost některých pasáží.

K předmětu je k dispozici bohatá série videopřednášek a dalších materiálů
dostupných ze stránky předmětu. Mohou je využít nejenom studenti kombinovaného studia,
ale i ti, kteří nemohli z nejrůznějších důvodů na přednášku či cvičení přijít.

K vypracování semestrální práce a získání zápočtu a zkoušky postačují materiály,
jejichž autorem je vyučující, a které jsou k dispozici v elektronické verzi.
Při vypracování semestrální práce je třeba dbát na to, aby projekt vedle vlastního návrhu
obsahoval i kompletní doprovodnou dokumentaci.
 
Rámcové podmínky zápočtu:
Vyhotovit a obhájit vlastní verzi semestrálního projektu

Informace o požadované semestrální práci včetně podrobného návodu na její vyřešení
najdete v publikaci
OOP a Java 8 - Návrh a vývoj složitějšího projektu vyhovujícího zadanému rámci,
 
Rámcové podmínky zkoušky:
Obhájit semestrální práci a úspěšně absolvovat souhrnný test.
 
Studijní zátěž:
DruhPrezenční studiumKombinované studium
Účast na přednáškách/tutoriálech39 h8 h
Účast na cvičeních26 h0 h
Příprava na přednášky/tutoriály0 h18 h
Příprava na cvičení13 h0 h
Studium e-learningových materiálů0 h52 h
Zpracování dávek13 h13 h
Příprava a prezentace seminární práce/referátu13 h13 h
Příprava na souhrnný zápočtový test13 h13 h
Příprava na zkoušku13 h13 h
Celkem130 h130 h
 
Literatura:
Základní:
RUDOLF PECINOVSKÝ. Java 8 Učebnice objektové architektury pro mírně pokročilé. Grada, 2013.
KANISOVÁ, H A M M. UML srozumitelně. 2. vyd. Brno: Computer Press, 2006. 176 s. ISBN 80-251-1083-4.

Doporučená:
MERUNKA, V. Objektové modelování. ALFA NAKLADATELSTVÍ, s.r.o, 2008. 198 s. ISBN 978-80-87197-04-2.
RUDOLF PECINOVSKÝ. Návrhové vzory - 33 vzorových postupů pro objektové programování. Brno: Computer Press, 2007. ISBN 978-80-251-1582-4.
MARIN FOWLER. UML Distelled - Third Edition. Addison-Wesley, 2003. 175 s. ISBN 978-0321193681.


Poslední změnu provedla Mgr. Nikola Najzarová dne 16. 8. 2019.

Typ výstupu: