4it353»4IT353 - zadání první semestrální úlohy

4IT353 - zadání první semestrální úlohy

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:

  1. 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.
  2. Nejpozději 3 dny před termínem obhajoby odevzdá tým hotovou aplikaci do odevzdávárny v InSISu.
  3. 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:

NedostatekMožná bodová ztráta
Zpoždění při odevzdání popisu protokolu3 body za každý započatý týden zpoždění
Zpoždění při odevzdání úlohy3 body za každý započatý týden zpoždění
Chybějící komentáře (pro javadoc) u tříd a metod1-10 bodů
Nedodržení konvencí1-10 bodů
Klienta nebo server nelze spustit10 bodů
Chybí uživatelská příručka serveru nebo klienta10 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ódu1-40 bodů
Aplikace nemá logování15 bodů