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

4IT353 - zadání druhé semestrální úlohy

4IT353 - zadání druhé semestrální úlohy

Zadání:

Databázovou úlohu mohou studenti řešit sami nebo ve dvojici.

Základ zadání (tj. pro všechny)

Zadání databázové aplikace si studenti vymyslí sami, řešení musí splňovat následující podmínky:

  • Logika aplikace musí mít minimálně 3 entitní třídy, které se ukládají do perzistentní vrstvy (tj. i v databázi musí být minimálně 3 tabulky). Mezi těmito třídami bude nejméně jeden vztah 1:n. Aplikace by měla používat transakce, není potřeba dělat speciální zamykání záznamů v databázi.
  • Aplikace musí mít grafické uživatelské rozhraní (Swing, JavaFX, apod.).
  • Aplikace musí dovolit prohlížení údajů, vkládání nových údajů, jejich aktualizaci a rušení.
  • Aplikace nesmí dovolit porušení integrity dat (je přitom potřeba počítat s tím, že k databázi může přistupovat více uživatelů současně - např. aplikace bude souběžně spuštěná na 2 počítačích, nebo bude za běhu aplikace k databázi připojený také administrátor provádějící datové úpravy).
  • Perzistentní vrstva bude realizována pomocí frameworku pro objektově-relační mapování - nejlépe pomocí specifikace JPA (Java Persistence API) a frameworku, který tuto specifikaci implementuje (Hibernate, EclipseLink, DataNucleus).

Rozšíření zadání pro dvoučlenný tým

  • Aplikace bude obsahovat alespoň 6 entitních tříd.
  • Mezi těmito třídami bude alespoň jeden vztah m:n nebo dědičnost.

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 souborech budou dodrženy základní konvence pro psaní kódu v Javě.
  • Ve zdrojových souborech bude dokumentace ve formě javadocových komentářů (měly by být stručně popsány všechny třídy a všechny metody s vyjímkou primitivních getterů a setterů).
  • Aplikace bude používat logovací framework, např. SLF4J + Logback nebo nějaký podobný.

Body za databázovou úlohu získá student (či dvojice studentů) pokud splní následující podmínky:

  1. Nejpozději do konce kalendářního roku uloží do odevzdávárny v InSISu zadání své úlohy, kde bude:
    • popis zadání úlohy,
    • diagram logických tříd (tj. diagram tříd včetně datových atributů a vazeb),
    • v případě 2-členných týmů rozdělení práce v týmu,
  2. Nejpozději do neděle předposledního týdne zkouškového období uloží do odevzdávárny v InSISu hotovou aplikaci, kde bude:
    • spustitelný JAR archiv,
    • všechny zdrojové soubory, které jsou potřeba pro kompilaci aplikace,
    • SQL skript pro přípravu databáze (založení tabulek a dalších objektů), se kterou bude aplikace pracovat,
    • readme soubor, ve kterém bude stručný popis aplikace, případné odchylky oproti zadání, jméno a kontakt na autora(y) aplikace,
  3. Osobně předvede či předvedou funkci programu v termínech, které budou vypsány prostřednictvím InSISu.

Body se odečítají za následující nedostatky:

NedostatekMožná bodová ztráta
Chybějící komentáře (pro javadoc) u tříd a metod1-10 bodů
Nedodržení konvencí1-10 bodů
Úloha neobsahuje spustitelný archiv10 bodů
Drobné chyby ve funkčnosti1-20 bodů
Neschopnost vysvětlit jakoukoli část kódu1-40 bodů
Aplikace nemá oddělenou databázovou vrstvu20 bodů
Aplikace dovoluje porušit integritu dat10 bodů