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

     Č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í:
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ěž:
Druh
Prezenční studium
Kombinované studium
Účast na přednáškách/tutoriálech
39 h
8 h
Účast na cvičeních26 h0 h
Příprava na přednášky/tutoriály0 h
18 h
Příprava na cvičení
13 h
0 h
Studium e-learningových materiálů
0 h
52 h
Zpracování dávek
13 h
13 h
Příprava a prezentace seminární práce/referátu
13 h13 h
Příprava na souhrnný zápočtový test13 h
13 h
Příprava na zkoušku13 h
13 h
Celkem130 h
130 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 Lucie Ptáčková, DiS. dne 24. 4. 2019.

Typ výstupu: