Detail předmětu
Praktické aspekty vývoje software
FIT-IVSAk. rok: 2021/2022
Základní koncepty použití unixové filosofie při vlastním programování, role testování kódu a vývoj řízený testy, vytváření komponentově orientovaného kódu, odhalování výkonnostních problémů, distribuovaná správa verzí, možnosti paralelizace výpočtů, zpracování velkých objemů dat, praktické zkušenosti vývojářů z firem.
Jazyk výuky
čeština, angličtina
Počet kreditů
5
Garant předmětu
Zajišťuje ústav
Výsledky učení předmětu
Studenti se seznámí s moderními přístupy k vývoji software, po úspěšném zvládnutí předmětu se budou lépe schopni začlenit do týmů pracujících nad společným kódem, budou moci demonstrovat znalosti nástrojů usnadňujících vznik výkonného a správně dokumentovaného kódu, stejně jako aplikací, které budou odpovídat potřebám koncových uživatelů.
Studenti se naučí řešit projekty. Zdokonalí se v praktickém užívání programátorských nástrojů, které se používají v reálném prostředí softwarových týmů.
Studenti se naučí řešit projekty. Zdokonalí se v praktickém užívání programátorských nástrojů, které se používají v reálném prostředí softwarových týmů.
Způsob a kritéria hodnocení
- Půlsemestrální písemný test (30 bodů)
- Projekty (celkem 70 bodů)
Učební cíle
Poznat praktické aspekty vývoje programového vybavení v týmu, porozumět principům aplikací, které usnadňují vytváření a dokumentování projektů skládajících se z komponent, seznámit se možnostmi snadného prototypování grafických uživatelských rozhraní, pochopit předpoklady vzniku úspěšného svobodného software a měření upotřebitelnosti.
Prerekvizity a korekvizity
- doporučená prerekvizita
Úvod do softwarového inženýrství - doporučená prerekvizita
Základy programování
Doporučená literatura
BATH, Graham a Judy MCKAY. The software test engineer's handbook. Santa Barbara: Rocky Nook, 2008, xviii, 397 s. ISBN 978-1-933952-24-6.
Baumann, H.; Grässle, P.; Baumann, P.: UML 2.0 in Action: A project-based tutorial. Birmingham: Packt Publishing, Prosinec 2009, ISBN 1-904811-55-8. Download
Dustin Boswell, Trevor Foucher: The Art of Readable Code. O'Reily, 2010. https://www.oreilly.com/library/view/the-art-of/9781449318482/
Fowler, M.: Refactoring: Improving the Design of Existing Code (2nd Edition), 2018.
J. Pérez López, L. Ribas i Xirgo: Introduction to Software development, 2010. http://ftacademy.org/sites/ftacademy.org/files/materials/fta-m7-fs_development.pdf
Ken Schwaber and Mike Beedle Agile Software Development with Scrum Addision-Wesley, 2002
S. A. Babkin: The Practice of Parallel Programming. Create Space, 2010. https://www.createspace.com/3438465
Scott Chacon: Pro Git, 2009 http://knihy.nic.cz/files/nic/edice/scott_chacon_pro_git.pdf
STEPHENS, Matt a Doug, ROSENBERG. Testování softwaru řízené návrhem. Brno: Computer Press, 2011, 336 s. : il., portréty. ISBN 978-80-251-3607-2.
Baumann, H.; Grässle, P.; Baumann, P.: UML 2.0 in Action: A project-based tutorial. Birmingham: Packt Publishing, Prosinec 2009, ISBN 1-904811-55-8. Download
Dustin Boswell, Trevor Foucher: The Art of Readable Code. O'Reily, 2010. https://www.oreilly.com/library/view/the-art-of/9781449318482/
Fowler, M.: Refactoring: Improving the Design of Existing Code (2nd Edition), 2018.
J. Pérez López, L. Ribas i Xirgo: Introduction to Software development, 2010. http://ftacademy.org/sites/ftacademy.org/files/materials/fta-m7-fs_development.pdf
Ken Schwaber and Mike Beedle Agile Software Development with Scrum Addision-Wesley, 2002
S. A. Babkin: The Practice of Parallel Programming. Create Space, 2010. https://www.createspace.com/3438465
Scott Chacon: Pro Git, 2009 http://knihy.nic.cz/files/nic/edice/scott_chacon_pro_git.pdf
STEPHENS, Matt a Doug, ROSENBERG. Testování softwaru řízené návrhem. Brno: Computer Press, 2011, 336 s. : il., portréty. ISBN 978-80-251-3607-2.
Zařazení předmětu ve studijních plánech
Typ (způsob) výuky
Přednáška
26 hod., nepovinná
Vyučující / Lektor
Osnova
- Úvod, praktická pravidla pro psaní udržovatelného kódu, refaktorizace a efektivní využití IDE
- Testování software, TDD (Test-Driven Development) a jeho použití při vývoji v týmu
- Týmová spolupráce, komunikace, sdílení dat v týmu, základy návrhu a plánování projektu
- Systémy pro distribuovanou správu verzí, GIT
- Typy dokumentace, generování programové dokumentace z kódu, identifikace existujících komponent a využívání knihoven dostupných na různých platformách
- Sestavení programů, Make, Cmake a Qmake
- Uživatelská rozhraní
- Debugging, bugtracking a QA
- Půlsemestrální test
- Nasazení programů
- Urychlování výpočtů, možnosti paralelizace a profiling
- Programovací jazyky a paradigmata, SWIG a práce se starším kódem
- Přednáška pozvaných expertů z firemní praxe
Projekt
26 hod., povinná
Vyučující / Lektor
Osnova
- Definice testů (18 bodů)
- Projekt zaměřený na spolupráci v týmu (52 bodů)