Softwarové inženýrství pro praxi - A4M33SEP

Kredity 6
Semestry zimní
Zakončení zápočet a zkouška
Jazyk výuky čeština
Rozsah výuky 2P+2C
Anotace
V rámci předmětu Softwarové inženýrství pro praxi bude ilustrován běžný projektový život tak, jak jej posluchač předmětu s největší pravděpodobností v blízké budoucnosti zažije a bude po zbytek své praxe prožívat. V průběhu semestru budou probrány jednotlivé oblasti Softwarového inženýrství (od analýzy, architektury, přes konstrukci, testování, dokumentaci, PM, atd.) - vždy s potřebným teoretickým úvodem, ale současně s velkým důrazem na praxi, praktické zkušenosti a s řadou ukázek a příkladů. V rámci cvičení si studenti projdou nejen praktickými cvičeními související s tvorbou software, ale také procesem poptávky, diskuze se zadavatelem a následné tvorby nabídky včetně odhadu pracnosti.
Cíle studia
Předmět si klade za cíl jasně a srozumitelně diskutovat základní aspekty Softwarového inženýrství v praxi, na reálných projektech, ve skutečném životě.
Osnovy přednášek
1. Úvod + proces vývoje software
2. Poptávky, nabídky, odhadování a plánování, historie projektů
3. Analýza a sběr požadavků
4. Softwarová architektura a design + příklady z praxe
5. Konstrukce
6. Zajištění kvality
7. Testování v praxi
8. Dokumentace a konfigurační řízení
9. Release Management a DevOps
10. Údržba a rozvoj
11. Projektové řízení
12. Team leading
13. Shrnutí, příklady, diskuse, literatura, odborné zdroje, příprava na test
Osnovy cvičení
1. Úvodní informace ke cvičením, požadavky na zápočet.
2. Semestrální úloha - zadání (poptávka)
3. Odhady pracnosti
4. Semestrální úloha - představení nabídek.
5. Představení frameworků, které se budou dále používat v rámci cvičení.
6. Vytvoření kostry CRUD aplikace
7. Semestrální úloha - představení specifikací.
8. Automatické testy - seznámení s nástrojem na testování webových aplikací (Selenium). Základy mockování.
9. Configuration management a nástroj Docker.
10. Semestrální úloha - představení aktuálního stavu.
11. Continuous Integration - seznámení s nástrojem Jenkins.
12. Obhajoba semestrálních úloh
13. Opakování, dotazy
Literatura
[1] Pressman R.: Software Engineering: A Practitioner's Approach. 5th ed., McGraw-Hill, 2001.
[2] Dorfman, M. and Thayer, R.: Software Engineering. IEEE Computer Society Press, 2000.
Požadavky
Znalost jazyka Java nebo C# (v případě, že máte zájem o studium tohoto předmětu, ale tento požadavek nesplňujete, kontaktujte vyučujícího a domluvte se na individuálním posouzení).
Požadavky na zápočet: Studenti v rámci tříčlenných týmů postupně vytvoří nabídku na softwarové dílo dle zadání definovaného cvičícím, dále vytvoří specifikaci požadavků, dílo implementují a demonstrují splnění definovaných kvalitativních parametrů. V rámci cvičení průběžně demonstrují svůj postup, přičemž každý z výstupů je hodnocen a toto hodnocení určuje výsledné pořadí týmů (dobré umístění zvýhodňuje členy týmu při písemné části zkoušky). Zápočet je udělen všem členům týmů, u jejichž výstupů nebudou existovat kritické vady či zásadní nevypořádané připomínky (kritičnost vad a připomínek určuje cvičící). Cvičící může, na základě individuálního posouzení, udělit zápočet i při nesplnění výše uvedených podmínek (například když dojde k rozpadu týmu).
Požadavky na zkoušku: písemný test (cca 60 minut) a ústní zkouška (cca 15 až 30 minut). Hodnoceni podle platné klasifikační stupnice ČVUT. Každý člen nejlepšího týmu získá 21% bodů k hodnocení písemné zkoušky, každý člen druhého nejlepšího týmu 14% bodů a každý člen třetího nejlepšího týmu 7% bodů - body se zaokrouhlí na celé číslo podle standardních pravidel zaokrouhlování. V případě existence méně než 4 týmů neobdrží členové posledního týmu žádné body, členové předposledního týmu obdrží 7% bodů a (existují-li) členové třetího týmu od konce 14% bodů k hodnocení písemné zkoušky.