Předmět: Architektury softwarových systémů

« Zpět
Název předmětu Architektury softwarových systémů
Kód předmětu KIV/SAR
Organizační forma výuky Přednáška + Cvičení
Úroveň předmětu Magisterský
Rok studia nespecifikován
Semestr Zimní
Počet ECTS kreditů 6
Vyučovací jazyk Čeština
Statut předmětu nespecifikováno
Způsob výuky Kontaktní
Studijní praxe Nejedná se o pracovní stáž
Doporučené volitelné součásti programu Není
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.


Studijní plány, ve kterých se předmět nachází
Fakulta Studijní plán (Verze) Kategorie studijního oboru/specializace Doporučený ročník Doporučený semestr