Vyučující
|
-
Hrdý Radek, doc. Ing. Ph.D.
|
Obsah předmětu
|
1. Obsah pojmu architektura software, význam architektury, vztah architektury a kvalitativních charakteristik software. 2. Výchozí principy: Modularita software, skrývání informace, open/closed, kontrakt, význam rozhraní modulu, koncept softwarových komponent. Realizace v monolitických, modulárních, komponentových jazycích/prostředcích. Vícenásobná použitelnost modulů (reuse), návrh s ohledem na ni. 3. Závislosti mezi moduly, principy vyhledání závislostí (dependency lookup) a vkládání závislostí (dependency injection). Příklady realizace v konkrétních technologiích. 4. Vazby a komunikace mezi moduly a jejich abstrakce, koncept konektoru. Typy konektorů pro komunikaci a pro integraci modulů; příklady realizace. 5. Architektonické styly (n-tier, stream/pipe, blackboard, monolit, component, service-oriented, cloud), příklady aplikací. 6. Podrobnosti o vícevrstvých a servisně-orientovaných architekturách. Produktové řady, variabilita software na úrovni architektury. 7. Způsoby dokumentace architektury -- UML, ADL (Architecture Description Languages), různé pohledy na architekturu, ad-hoc diagramy. Dokumentace API. Standardy v oblasti softwarových architektur. 8. Vztah architektury a disciplín v rámci vývoje software. Získání a analýza požadavků na architekturu, role architektury při návrhu a ověřování kvality software. Význam pro integraci, provoz a údržbu systémů. Přístup k tvorbě architektury v různých modelech vývoje software (sekvenční, řízený riziky, agilní). Role architekta v softwarovém týmu. 9. Postupy tvorby software a nástroje pro řízení vývoje s vazbou na architekturu (konfigurační řízení, správa sestavení). Ověření kvality architektury, výkonové apod. testování, přístup "executable architecture". 10. Analýza architektury software, metriky a kvalitativní charakteristiky architektur (výkonnost, spolehlivost, udržovatelnost). Nástroje pro analýzu, měření a vizualizace architektur software. Výběr architektury vzhledem k účelu software, design tradeoffs. 11. Vývoj software řízený návrhem (MDA, Model Driven Architectures), význam a použití modelů, PIM a PSM úrovně návrhu. 12. Prostor pro zvanou přednášku -- příklady z praxe / technologie pro efektivní návrh software / aktuální výzkum v oboru.
|
Studijní aktivity a metody výuky
|
Přednáška s aktivizací, Projektová výuka, Demonstrace dovedností, Studium metodou řešení problémů, Samostatná práce studentů, Samostudium literatury, Přednáška, Přednáška s demonstrací, Cvičení
- Příprava na zkoušku [10-60]
- 20 hodin za semestr
- Projekt individuální [40]
- 20 hodin za semestr
- Příprava prezentace (referátu) [3-8]
- 5 hodin za semestr
- Kontaktní výuka
- 40 hodin za semestr
- Projekt týmový [20-60 / počet studentů]
- 75 hodin za semestr
|
Předpoklady |
---|
Odborné znalosti |
---|
rozumět principům objektově orientovaného programování |
orientovat se v principech návrhu a implementace webových aplikací |
rozumět principům architektury softwarových aplikací |
orientovat se v základech UML |
popsat základní postupy vývoje software |
Odborné dovednosti |
---|
vytvářet počítačové programy v objektově orientovaném jazyce (např. C++ / Java / .NET) |
vytvářet webové aplikace s využitím webových technologií (např. Spring MVC, .NET WPF) |
vytvářet moderní aplikace s využitím základních návrhových vzorů (např. MVC, MVVM) |
posuzovat a používat vhodný postup při vývoji software |
Obecné způsobilosti |
---|
mgr. studium: používají své odborné znalosti, odborné dovednosti a obecné způsobilosti alespoň v jednom cizím jazyce, |
mgr. studium: dle rámcového zadání a přidělených zdrojů koordinují činnost týmu, nesou odpovědnost za jeho výsledky, |
Výsledky učení |
---|
Odborné znalosti |
---|
popsat různé druhy architektur softwarových systémů a orientovat se v nich |
rozumět principům modularity a skrývání informace |
popsat a interpretovat architektonické návrhy software grafickými notacemi, zejména s použitím UML |
vysvětlit kritéria vhodnosti a kvality návrhu rozsáhlého softwarového systému |
vysvětlit jak se lze orientovat se i v rozsáhlém programu a analyzovat jeho vlastnosti |
Odborné dovednosti |
---|
porozumět architektuře rozsáhlých softwarových systémů |
navrhnout architekturu rozsáhlého softwarového systému s využitím modelů a grafických notací |
posoudit kvalitu a vhodnost architektonického návrhu rozsáhlého softwarového systému |
použít vhodné technologie při vytváření rozsáhlých softwarových celků |
aktivně používat moderní technologie a nástroje pro vývoj rozsáhlých programových systémů |
Obecné způsobilosti |
---|
mgr. studium: dle vyvíjejících se souvislostí a dostupných zdrojů vymezí zadání pro odborné činnosti, koordinují je a nesou konečnou odpovědnost za jejich výsledky, |
dokáží zodpovědně pracovat jako členové, případně vedoucí, menšího odborného týmu, a srozumitelně shrnout názory ostatních členů týmu |
Vyučovací metody |
---|
Odborné znalosti |
---|
Projektová výuka, |
Přednáška s aktivizací studentů, |
Samostudium, |
Přednáška založená na výkladu, |
Přednáška s demonstrací, |
Odborné dovednosti |
---|
Cvičení (praktické činnosti), |
Demonstrace dovedností, |
Samostatná práce studentů, |
Řešení problémů, |
Obecné způsobilosti |
---|
Přednáška s aktivizací studentů, |
Hodnotící metody |
---|
Odborné znalosti |
---|
Kombinovaná zkouška, |
Test, |
Skupinová prezentace, |
Odborné dovednosti |
---|
Demonstrace dovedností (praktická činnost), |
Individuální prezentace, |
Výstupní projekt, |
Skupinová prezentace, |
Obecné způsobilosti |
---|
Skupinová prezentace, |
Demonstrace dovedností (praktická činnost), |
Doporučená literatura
|
-
Bass, Len; et al. Software Architecture in Practice. 3rd Edition. Addison-Wesley, 2012. ISBN 978-0321815736.
-
Clements, Paul. Documenting Software Architectures: Views and Beyond. 2nd Edition. Addison-Wesley, 2010. ISBN 978-0321552686.
-
Fairbanks, George. Just Enough Software Architecture: A Risk-Driven Approach. Marshall and Brainerd, 2010. ISBN 978-0984618101.
-
Gamma; et al. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994. ISBN 978-0201633610.
-
Gomaa, Hassan. Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures. Cambridge Univeristy Press, 2011. ISBN 978-0521764148.
-
Taylor; et al. Software Architecture: Foundations, Theory, and Practice. Wiley, 2009. ISBN 978-0470167748.
|