4IT353 - zadání první semestrální úlohy
Zadání:
Jako první semestrální úlohu studenti v dvojčlenných týmech vytvoří síťovou aplikaci implementující nějakou hru, např. piškvorky, pexeso, lodě, člověče nezlob se.
Programy budou splňovat následující podmínky:
- architektura klient-server, hru hrají hráči připojení prostřednictvím klienta (tj. ne jednotlivý hráči proti počítači)
- k serveru se může připojit (přihlásit) větší počet klientů, tj. pokud jsou hrou piškvorky pro dva, server umí párot hráče pro hru a najednou může hrát třeba 10 hráčů (5 her) a jeden čekat na protihráče.
- uživatelé v klientovi se k serveru přihlašují uživatelským jménem a případně heslem, hesla se mohou posílat nezašifrovaně,
- loguje se provoz na serveru a to do konzole a do souboru,
- klient má grafické uživatelské rozhraní,
- server umí vyřešit situaci, kdy se stejný uživatel hlásí podruhé,
- server a klient komunikují buď prostřednictvím textového protokolu, který si studenti sami navrhnou (kódování musí být univerzální tj. UTF-8, druhou variantou je využití serializace objektů.
Hodnocení úlohy:
Body za semestrální úlohu získají studenti, pokud splní následující podmínky:
- Do konce sedmého týdne semestru odevzdá každá dvojice popis aplikace (základní funkce, návrh obrazovek), návrh síťového protokolu jejich aplikace a návrh rozdělení práce v týmu a popis struktury úložiště. Součástí protokolu musí být i způsob ohlašování chyb. Zadání se odevzdává do odevzdávárny v InSISu.
- Nejpozději 3 dny před termínem obhajoby odevzdá tým hotovou aplikaci do odevzdávárny v InSISu.
- Tým předvede funkci programu v termínech vypsaných prostřednictvím InSISu.
Náležitosti, které musejí být součástí odevzdání:
- Adresář se všemi zdrojovými kódy (ideálně projekt sestavovaný pomocí nástrojů Maven nebo Gradle)
- Adresář s připravenou aplikací serveru (buď tzv. fat-JAR, nebo běžný spustitelný JAR archiv společně s dalšími knihovnami, které aplikace potřebuje)
- Adresář s připravenou aplikací klienta (buď tzv. fat-JAR, nebo běžný spustitelný JAR archiv společně s dalšími knihovnami, které aplikace potřebuje)
- Uživatelskou dokumentaci obou aplikací
- Readme soubor se základním popisem projektu, především:
- Jakou hru projekt představuje
- Jakým způsobem ho lze zkompilovat a sestavit
- Jaké problémy v projektu nejsou dořešené
- Jaké jsou odchylky oproti zadání
Další podmínky:
Předpokládá se, že aplikace bude splňovat typické podmínky, které studenti znají z povinných kurzů zaměřených na vývoj aplikací v Javě, především:
- Ve zdrojových kódech budou dodržovány základní konvence pro psaní kódu v Javě.
- Ve zdrojových kódech bude dokumentace ve formě javadocových komentářů (měly by být stručně popsány všechny nesoukromé třídy, metody, konstruktory a atributy).
- Zdrojové kódy budou zkontrolované pomocí vhodného nástroje pro statickou analýzu kódu (Checkstyle, PMD, FindBugs apod.) a před odevzdáním budou opraveny relevantní nálezy.
Body se odečítají za následující nedostatky:
Nedostatek | Možná bodová ztráta |
Zpoždění při odevzdání popisu protokolu | 3 body za každý započatý týden zpoždění |
Zpoždění při odevzdání úlohy | 3 body za každý započatý týden zpoždění |
Chybějící komentáře (pro javadoc) u tříd a metod | 1-10 bodů |
Nedodržení konvencí | 1-10 bodů |
Klienta nebo server nelze spustit | 10 bodů |
Chybí uživatelská příručka serveru nebo klienta | 10 bodů |
Aplikace nesplňuje podmínky specifikované v obecném zadání | 5 bodů za každou nesplněnou podmínku |
Neschopnost vysvětlit jakoukoli část kódu | 1-40 bodů |
Aplikace nemá logování | 15 bodů |