Objektovo-orientované programovanie, ak. rok 2023/24

Projekt


V priebehu obdobia výučby budete pracovať na projekte vývoja programu v Jave na zadanú rámcovú tému. Zadanie je komplexné a vyjadrené celým týmto textom.

Projekt pozostáva z nasledujúcich častí s príslušnou váhou a termínom odovzdania (všetky časti sú povinné):

Základné povinnosti študenta pri realizácii projektu definujú podmienky absolvovania. Pri realizácii projektu zoberte do úvahy nasledujúce poznámky, z ktorých niektoré priamo vyplývajú z podmienok absolvovania:

^


Zámer projektu

Daná je nasledujúca rámcová téma:

Voľby a hlasovanie

Voľby a hlasovanie prebiehajú na najrôznejších úrovniach. Niekedy sa týkajú jednoduchého výberu medzi dvomi alebo viacerými možnosťami, ale často je otázok, o ktorých sa rozhoduje viac. Uplatňujú sa v politických systémoch, ale aj v rámci správy organizácií alebo súťaží. V niektorých spoločenstvách sú prakticky prostriedkom na ich riadenie. Evidencia a súvis predchádzajúcich volieb a hlasovaní môže byť nápomocná pri plánovaní ďalších. Môže tiež pomôcť sledovať obmedzenia dané predpismi.

Vypracujte zámer projektu vývoja softvérového systému, ktorý patrí do oblastí definovanej rámcovou témou. Sústreďte sa na vybraný aspekt (netreba pokryť všetko). Projektu dajte vlastný a výstižný názov. Prípustný je len text v rozsahu do 200 slov – iná forma nemusí byť akceptovaná a môže byť slabšie hodnotená. Zámer projektu musí zodpovedať rámcovej téme, ale nemá ju opakovať.

Aj keď zámer projektu má byť sformulovaný aplikačne, z používateľského hľadiska – t. j. nemali by ste v ňom používať termíny z domény riešenia (objekt, trieda a pod.) – myslite na to ako v projekte využijete objektovo-orientované vlastnosti Javy. Vytvorte si na to dostatočný priestor. Nebojte sa formulovať zámer projektu aj širšie – to neznamená, že všetko budete musieť implementovať.

V programe, ktorý budete tvoriť podľa vášho zámeru, nebude potrebné riešiť sieťové záležitosti alebo súčasné používanie viacerými používateľmi (napr. reálnu komunikáciu viacerých používateľov cez sieť). Tieto činnosti stačí napodobniť (napr. dá sa prihlásiť ako jeden používateľ, a potom ako druhý). Rovnako nie je potrebné riešiť ani bezpečnosť. Sústreďte sa na objektovo-orientovanú modularizáciu.

Zámer projektu ozrejmite iniciálnym diagramom tried (tejto časti sa budete môcť venovať po prvých dvoch prednáškach). Aby ste sa dopracovali k diagramu tried, nakreslite najprv (pre seba) diagram objektov typickej situácie v predpokladanom systéme. Následne ich zovšeobecnite do diagramu tried. Sústreďte sa na niekoľko najdôležitejších objektov a následne ich zovšeobecnite do tried, medzi ktorými určíte najmä vzťahy asociácie (všeobecného súvisu) a dedenia. V triedach identifikujte niekoľko dôležitých atribútov a metód. S jednoduchým a flexibilným nástrojom na kreslenie diagramov sa oboznámite na cvičení 3, ale diagram môže byť nakreslený v čomkoľvek (akceptovateľný je aj sken diagramu nakresleného na papieri). Do zámeru projektu môžete zahrnúť aj diagram objektov.

Svoj zámer včas konzultujte s vyučujúcim na cvičeniach.

Odovzdáva sa: text a diagram vo formáte PDF do AISu

Hodnotenie

Aby zámer projektu mohol byť hodnotený nenulovým počtom bodov, musia byť splnené nasledujúce podmienky:

  1. Zámer projektu musí zodpovedať rámcovej téme.
  2. Projekt musí mať vlastný názov.
  3. Text musí byť sformulovaný zrozumiteľne a v plnohodnotných vetách.

Spôsob hodnotenia je nasledujúci:

^


Pracovná verzia programu

V organizácii práce na projekte vám pomôžu špeciálne úlohy na cvičeniach. Tieto úlohy budú zaradené od tretieho cvičenia. Pri realizácii projektu využite možnosť konzultácií s vyučujúcimi na cvičeniach.

Počas realizácie projektu by mali vzniknúť viaceré pracovné verzie programu. Na ich správu používajte systém GitHub (pokyny na registráciu dostanete). Progres na projekte prezentujte vyučujúcemu na cvičeniach.

Nevyhnutné je, aby ste do termínu odovzdania pracovnej verzie programu odovzdali aspoň jednu funkčnú pracovnú verziu programu pokrývajúcu významnú časť zadania a zámeru projektu.

Najneskôr na 7. alebo 8. cvičení – podľa toho, ako určí vyučujúci – prezentujete svoj program. Pracovná verzia programu tvorí významnú zložku hodnotenia programu. Preto využite možnosť prezentovať pracovnú verziu programu skôr, aby ste sa skôr dozvedeli, čo v programe máte opraviť a zlepšiť.

Odovzdáva sa: program (zdrojový kód) do GitHub classroomu vytvoreného pre tento predmet

Hodnotenie

Aby pracovná verzia programu mohla byť hodnotená nenulovým počtom bodov, musia byť splnené nasledujúce podmienky:

  1. Program musí byť funkčný a pokrývať principiálne časti zadania a zámeru projektu.
  2. Odovzdaný zdrojový kód musí zahŕňať všetky potrebné súbory a musí sa dať preložiť v prostredí Eclipse inštalovanom v učebni, v ktorej sa realizujú cvičenia.
  3. Program bol aspoň raz uspokojivo prezentovaný vyučujúcemu na cvičeniach.

Spôsob hodnotenia je nasledujúci:

^


Program a dokumentácia

Jadrom projektu je objektovo-orientovaný program v programovacom jazyku Java vypracovaný podľa zadania.

Program sprevádza dokumentácia, ktorá pozostáva z dvoch časti:

V správe o realizácii projektu krátko (na niekoľkých stranách) informujete o svojom projekte. V správe uveďte:

Javadoc dokumentácia je dokumentácia generovaná priamo z programu nástrojom javadoc vo formáte HTML. Poskytnite dostatočne jasný komentár v zodpovedajúcej forme pre nástroj javadoc ku všetkým dôležitým prvkom vášho programu.

Odovzdáva sa: program (zdrojový kód) a dokumentácia (správa o realizácii projektu a Javadoc dokumentácia) do GitHub classroomu vytvoreného pre tento predmet

Hodnotenie

Aby program a dokumentácia mohli byť hodnotený nenulovým počtom bodov, musia byť splnené nasledujúce podmienky:

  1. Program musí byť funkčný a zodpovedať zadaniu a zámeru projektu, ktoré schválil vyučujúci, a zásadným požiadavkám vyučujúceho, ktoré vznikli počas realizácie projektu.
  2. Odovzdaný zdrojový kód musí zahŕňať všetky potrebné súbory a musí sa dať preložiť v prostredí Eclipse inštalovanom v učebni, v ktorej sa realizujú cvičenia.
  3. Program musí obsahovať zmysluplné dedenie medzi vlastnými triedami s prekonávaním vlastných metód.
  4. V programe musí byť použité zapuzdrenie.
  5. Program musí obsahovať dostatok komentáru na pochopenie kódu.
  6. Dokumentácia musí zodpovedať programu a musí obsahovať diagram tried.
  7. Pri záverečnej prezentácii študent musí vedieť zodpovedať otázky vyučujúceho v súvislosti s projektom.

Hlavnými kritériami pri hodnotení projektu sú miera splnenia zadania, uplatnenie objektovo-orientovaných mechanizmov v programe (predovšetkým vhodné využitie dedenia, polymorfizmu, zapuzdrenia a agregácie), organizácia kódu a kvalita dokumentácie.

Ďalšie kritériá zahŕňajú:

Spôsob hodnotenia je nasledujúci:

^


Záverečná prezentácia projektu

Súčasťou odovzdania projektu je aj jeho záverečná prezentácia. Neprezentovaný projekt nebude akceptovaný.

Po záverečnej prezentácii vám vyučujúci oznámi orientačné slovné hodnotenie. Definitívne rozhodnutie vrátane toho, či projekt spĺňa podmienky akceptovania, sa dozviete prostredníctvom AISu po detailnom prezretí projektov.

Odovzdáva sa: ústne prednesenie na 11. alebo 12. cvičení podľa pokynov vyučujúceho

Hodnotenie

Spôsob hodnotenia je nasledujúci:

^



Valentino Vranić
vranic at stuba.sk