Přeskočit na hlavní obsah
Přeskočit hlavičku

Softwarové inženýrství

Typ studia navazující magisterské
Jazyk výuky angličtina
Kód 460-4163/02
Zkratka SWI
Název předmětu česky Softwarové inženýrství
Název předmětu anglicky Software Engineering
Kreditů 4
Garantující katedra Katedra informatiky
Garant předmětu Ing. Svatopluk Štolfa, Ph.D.

Subject syllabus

Předmět je vyučován jako blok přednášek a cvičení s časovou dotací 1,5 hodiny na přednášku a 1,5 hodiny na cvičení. Přednášky poskytují teoretické základy a přehled moderních přístupů softwarového inženýrství, s důrazem na propojení teorie s praxí. Studenti se naučí analyzovat, vysvětlit, aplikovat a hodnotit principy životního cyklu softwaru, diskutovat a navrhovat architektonická řešení a demonstrovat dovednosti v oblasti testování, kvality, bezpečnosti a údržby.

Témata:
• Inženýrství softwarových požadavků: pokročilé techniky sběru a analýzy, formální specifikace, validace a verifikace.
• Softwarová architektura: architektonické styly a vzory, mikroslužby, distribuované systémy, hodnocení a rozhodování.
• Inženýrství řízené modely (MDE): modelování, transformace modelů, generování kódu, UML a další modelovací jazyky.
• Agilní metodiky: Scrum, Kanban, praktiky (TDD, párové programování, CI), škálování agile.
• DevOps a kontinuální dodávka: principy, automatizace buildů, testů a nasazení, nástroje (Jenkins, Docker, Kubernetes).
• Zajištění kvality softwaru: QA role, metriky, techniky zajištění kvality.
• Testování softwaru: jednotkové, integrační, systémové, akceptační testy, testovací frameworky, pokročilé techniky, bezpečnostní a výkonnostní testování.
• Údržba a evoluce softwaru: teorie a praktiky údržby, refaktoring, technický dluh.
• Softwarové metriky a analytika: měření, sběr dat, analýza a využití metrik.
• Bezpečnost ve vývoji softwaru: principy bezpečného vývoje, hrozby, zranitelnosti, bezpečnostní testování.
• Aplikační domény: medicína, automobilový průmysl, finance, herní vývoj.
• Cloud computing, vestavěné systémy a IoT: architektury, vývoj, bezpečnost, RTOS.
• Nové technologie: AI/ML, blockchain, IoT a embedded systémy.

Cvičení jsou zaměřena na praktickou aplikaci znalostí. Studenti budou řešit, demonstrovat a diskutovat úlohy pokrývající jednotlivé fáze životního cyklu softwaru. Součástí může být i týmový semestrální projekt, který umožní integrovat a prezentovat získané poznatky v rámci komplexního scénáře.

E-learning

Literature

Pressman, R. S., Maxim, B. R.: Software Engineering: A Practitioner’s Approach. 9th Edition. McGraw-Hill, 2019.
Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice. 4th Edition. Addison-Wesley, 2021.
Forsgren, N., Humble, J., Kim, G.: Accelerate: The Science of Lean Software and DevOps – Building and Scaling High Performing Technology Organizations. IT Revolution Press, 2018.
ISO/IEC/IEEE 12207: Systems and software engineering – Software life cycle processes. International Organization for Standardization, latest edition.

Advised literature

Sommerville, I.: Software Engineering. 10th Edition. Pearson, 2015.
Fowler, M.: UML Distilled: A Brief Guide to the Standard Object Modeling Language. 3rd Edition. Addison-Wesley, 2004.
Leffingwell, D.: Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the Enterprise. Addison-Wesley, 2011.
Humble, J., Farley, D.: Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation. Addison-Wesley, 2010.
Mens, T., Serebrenik, A., Cleve, A. (eds.): Evolving Software Systems. Springer, 2014.
IEEE Computer Society: Guide to the Software Engineering Body of Knowledge (SWEBOK® Guide V3.0). IEEE, 2014.
Len Bass, Ingo Weber, Liming Zhu: DevOps: A Software Architect’s Perspective. Addison-Wesley, 2015.
Jez Humble, Joanne Molesky, Barry O’Reilly: Lean Enterprise: How High Performance Organizations Innovate at Scale. O’Reilly Media, 2014.