Detail předmětu
Praktické aspekty vývoje software
IVS Ak. rok 2021/2022 letní semestr 5 kreditů
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.
Garant předmětu
Koordinátor předmětu
Jazyk výuky
Zakončení
Rozsah
- 26 hod. přednášky
- 26 hod. projekty
Bodové hodnocení
- 30 bodů půlsemestrální test (písemná část)
- 70 bodů projekty
Zajišťuje ústav
Přednášející
Dočekal Martin, Ing. (UPGM)
Dytrych Jaroslav, Ing., Ph.D. (UPGM)
Malík Viktor, Ing., Ph.D. (UITS)
Regéciová Dominika, Ing. (UIFS)
Smrž Pavel, doc. RNDr., Ph.D. (UPGM)
Švec Tomáš, Ing. (UPGM)
Veigend Petr, Ing., Ph.D. (UITS)
Cvičící
Dočekal Martin, Ing. (UPGM)
Doležal Jan, Ing. (UPGM)
Dytrych Jaroslav, Ing., Ph.D. (UPGM)
Fajčík Martin, Ing., Ph.D. (UPGM)
Kadlubiak Kristián, Ing. (UPSY)
Kišš Martin, Ing. (UPGM)
Omachtová Alena, Ing. (CVT)
Ondřej Karel, Ing.
Rydlo Štěpán, Ing. (UITS)
Švec Tomáš, Ing. (UPGM)
Veigend Petr, Ing., Ph.D. (UITS)
Vlnas Michal, Ing. (UPGM)
Stránky předmětu
Získané dovednosti, znalosti a kompetence z 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ů.
Cíle předmětu
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.
Proč je předmět vyučován
Předmět IVS vznikl jako přípravný kurz pro spolupráci studentů na výzkumu na FIT. Studentům poskytne nadhled nad celým procesem vývoje SW od plánování, přes návrh, implementaci a testování až po finální nasazení produktu u zákazníka. Absolvent předmětu bude vědět, co jednotlivé fáze vývoje SW obnášejí a jaké se v nich používají nástroje, což mu mimo jiné umožní lepší orientaci při výběru jeho specializace a dalších volitelných předmětů. Podstatnou součástí předmětu je i příprava studentů k týmové spolupráci na vývoji SW a seznámení s nástroji pro správu verzí, protože to jsou základní znalosti a dovednosti pro vývoj jakéhokoliv většího SW.
Doporučené prerekvizity
- Úvod do softwarového inženýrství (IUS)
- Základy programování (IZP)
Literatura studijní
- Ken Schwaber and Mike Beedle Agile Software Development with Scrum Addision-Wesley, 2002
- 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.
- S. A. Babkin: The Practice of Parallel Programming. Create Space, 2010. https://www.createspace.com/3438465
- 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.
- Dustin Boswell, Trevor Foucher: The Art of Readable Code. O'Reily, 2010. https://www.oreilly.com/library/view/the-art-of/9781449318482/
- Scott Chacon: Pro Git, 2009 http://knihy.nic.cz/files/nic/edice/scott_chacon_pro_git.pdf
- 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
- 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
Osnova přednášek
- Ú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
Osnova ostatní - projekty, práce
- Definice testů (18 bodů)
- Projekt zaměřený na spolupráci v týmu (52 bodů)
Průběžná kontrola studia
- Půlsemestrální písemný test (30 bodů)
- Projekty (celkem 70 bodů)
Podmínky zápočtu
Získání alespoň 50 bodů.
Zařazení předmětu ve studijních plánech