Skip to content

☕ STU FIIT VAVA - Vývoj Aplikácií s Viacvrstvovou Architektúrou, Slovenská technická univerzita v Bratislave Fakulta Informatiky a Informačných Technológií STU FIIT v Bratislave

Notifications You must be signed in to change notification settings

miroslav-reiter/VAVA_JAVA

Repository files navigation

☕ VAVA-JAVA

📝 VAVA Cvičenia Testiky

Organizácia predmetu

Prednášky: Každý piatok 12:00-13:50
Cvičenia: Každý piatok 14:00-15:30 formou konzultácii

🔥 Sylabus/Čo nás čaká a neminie...

  1. Úvod do Javy a jazyka ArchiMate
  2. Štruktúra platformy a enteprise architektúry
  3. Vývojové technológie + (biznis vrstva)
  4. Kolekcie + (aplikačná vrstva)
  5. Logovanie
  6. Lokalizácia
  7. JDBC a DBMS + (technologická vrstva)
  8. XML, NIO2
  9. Regulárne výrazy
  10. Prehľad enterprise architektúr + Prezentovanie Projektov
  11. Enteprise Architect + Prezentovanie Projektov
  12. Prehľad JEE + Prezentovanie Projektov - 16.5.2025

Náhrada výučby:
● 12. 05. 2025 (pondelok) výučba ako v pondelok, náhrada 21. 04. 2025
● 13. 05. 2025 (utorok) výučba ako v štvrtok, náhrada 01. 05. 2025
● 14. 05. 2025 (streda) výučba ako v stredu, náhrada 23. 04. 2025
● 15. 05. 2025 (štvrtok) výučba ako v štvrtok, náhrada 08. 05. 2025
● 16. 05. 2025 (piatok) výučba ako v piatok, náhrada 18. 04. 2025

👨‍🏫 Výsledky vzdelávania

  • Získať prehľad o platforme Java SE (Java Standard Edition), jej architektúre, štruktúre a vlastnostiach
  • Zdokonaliť sa vo vývoji programov pre platformu Java (Java Standard Edition)
  • Naučiť sa tvoriť desktopové GUI aplikácie vo SWING/JavaFX
  • Nadobudnúť zručnosti vo využívaní vybraných rozhraní a rozširujúcich knižníc platformy Java (Standard Edition)
  • Pripraviť sa na neskorší vývoj rozsiahlych viacvrstvových enterprise aplikácií
  • Používať jazyk ArchiMate a EA pri modelovaní viacvrstvových aplikácií
  • Zasadenie Java v kontexte JEE technológií

Stručná osnova predmetu:

  1. Štruktúra platformy Java
  2. Java vývojové technológie a štandardy
  3. Vybrané kapitoly/detaily Java Standard Edition API (napr. Collections, Logging, Localization, XML, I/O, Regular Expressions)
  4. Databázy, JDBC, jazyk SQL v Jave
  5. Prehľad JEE technológií
  6. Podniková architektúru a ArchiMate

☕ YouTube video záznamy z prednášok a cvičení Playlist

YouTube kanál IT Academy)

🥇 Podmienky na absolvovanie predmetu

  • 50 % formou tímovej práce - 9 až 10 členov v podobe projektu, implementácie a jednoduchej dokumentácie prototypu postaveného na vybraných technológiách JAVA a DBMS. Tímy si vedú svoje projekty v Jira Software. V prípade, že študent, nechce realizovať projekt tímovou spolupracou alebo mu to okolnosti nedovolujú (individuálny študijný plán, výmenný pobyt, iné okolnosti) môže vypracovať celý projekt samostatne.
  • 20 % formou tímovej práce - 5 až 6 členov v podobe live code session pre príslušnú tému (Kolekcie, Lokalizácia, Logovanie, JDBC, XML, NIO.2), príprava na code session (cvične nahrané video k príslušnej témy, ktorú prezentujete), scenár s praktickými príkladmi s názornými ukážkami a zdrojovými kódmi, následne odprezentovanie na cvičení - témy sa budú losovať. Hodnotí sa a body sa získavajú za prezenčnú live code session. Nahrané video slúži ako príprava a je to povinná nebodovaná súčasť.
  • 30 % skúška podobná oficiálnej Oracle Java certifikačnej skúške OCP (Oracle Certified Professional) Java SE 17 Developer 1Z0-829, alebo absolvovanie oficiálnej certifikačnej skúšky OCP 1Z0-829: https://education.oracle.com/oracle-certified-professional-java-se-11-developer/trackp_OCPJAV11

komunikacia-a-fungovanie

🏆 Skúška

  • Bude realizovaná prezenčne v priestoroch školy (miestnosť podľa podľa rozpisu - ACPU: 02. beh o 10:30-13:15)
  • Bude pripravený test v AISe s uzatvorenými otázkami (closed test).
  • Rozsah: 15 otázok - Časový limit: 30 minút - každá otázka za 2 body
  • Na skúške treba mať so sebou študentský preukaz a zabezpečený prístup do AISu.

Nerešpektovanie pravidiel, narušovanie poriadku na skúške, odpisovanie alebo nečestné konanie bude mať za následok vylúčenie zo skúšky a hodnotenie študenta známkou FX.

Pre získanie zápočtu alebo absolvovanie skúšky nie je stanovený minimálny počet bodov.

❓ FAQ ku skúške

Z čoho bude skúška?
Z odprednášaných tém zameraných hlavne na Javu 67 % (cca 10 otázok) vid. nižšie a 33 % (5 otázok) zameraných na enterprise architektúru a jazyk ArchiMate

  1. OOP Java
  2. Kolekcie
  3. Lokalizácia
  4. Logovanie
  5. NIO.2
  6. JDBC

Z čoho sa máme učiť?
Všetky prezentácie, materiály PDF sú dostupné na Githube na YouTube sú videozáznamy z prednášok. Odporúčam si prejsť testíky, ktoré sa robili na cvičeniach a zdroje k certifikačnej skúške Oracle Java SE 17 Developer 1Z0-829 + ArchiMate a Enterprise Architektúru.

Môžeme používať vlastný PC, notebook, zariadenie?
Nie, budú sa používať zariadenia/počítače školy.

🔥 Hodnotenia, tímový projekt

Vlastný projekt (do 11. cvičenia) – 50 bodov

Vytvoríte tímy o 9-10 členoch
V tíme je 1 vedúci (manažér alebo Scrum master), každá skupina si ho demokraticky zvolí alebo sa sám diktátorsky zvolí. Ďalej každý tím bude mať: IT architekta, 2x SW testerov, administrátora, databázového špecialistu, UX/UI špecialistu/grafika a programátorov. Povinné sú role: Vedúci, IT architekt, tester a programátori. Ostatné sú voliteľné a odporúčané role. Tímy si vedú svoje projekty v Jira Software alebo Jetbrains YouTrack. UML a ArchiMate diagramy modelujú v Enterprise Architecte a odovzdáva sa aj EAP súbor.

A. Projektový zámer a predstavenie tímu s rozdelením úloh a rôl (RACI matica) – 10 bodov – (do 5. cvičenia)
B. Aplikácia, video prezentácia a dokumentácia vrátane UML (class diagram), EA ArchiMate diagramov – 40 bodov – (do 11. cvičenia). Aplikácie je napísaná výhradne v Jave (nie Kotlin, nie Scala, nie Clojure, nie JavaScript).

✔️ Odovzdávané UML diagramy (core funkcionalita a triedy v projekte) v dokumentácii:

  • Tried (class)

✔️ Odovzdávané ArchiMate diagramy (core funkcionalita) v dokumentácii:

  1. Biznis vrstva (Organizačné hľadisko, Hľadisko na spoluprácu medzi podnikovými procesmi, Produktové hľadisko)
  2. Aplikačná vrstva (Hľadisko spolupráce aplikácií) <--> balíčky (packages)
  3. Technologická vrstva (Technologické hľadisko)
  4. Vrstvový model (Vrstvené hľadisko)

‼️ Každý študent odovzdáva v tíme všetky dokumenty a podklady t.j. aj za projektový zámer aj za Live Code Session aj za celkový vypracovaný projekt, aby mohol dostať v AISe hodnotenie za príslušnú časť a bol oznámkovaný.

💡 Námety na projekty

  1. JDownloader v2
  2. muCommander v2
  3. Gannt Project v2
  4. Plánovač Kurzov a Skúšok vid. prílohy
  5. Slovensko.sk Schránky v2 vid. prílohy

Vlastný projekt MUSÍ obsahovať veci z odprednášaných tém a mať:

  1. Kolekcie (treba vybrať vhodné dátové štruktúry podľa povahy/architektúry projektu)
  2. Logovanie (Logovanie biznis logiky aplikácie + Logovanie Exceptions/Errors)
  3. Lokalizácia (Preklady a lokalizácia ENG a SK)
  4. XML (Import a export dát do XML)
  5. Regulárne výrazy (Vyhľadávanie s prepínačmi, filtrovanie)
  6. JDBC (Pripojenie na vybranú databázu Derby/MySQL/PostgreSQL/SQLite/Oracle Database, ukladanie dát do DB), môžu sa použiť aj NoSQL databázy za predpokladu, že použijete JDBC napr. MongoDB Používate výhradne JDBC (žiadne ORMká čiže nie JPA, Hibernate, EclipseLink, MyBatis).
  7. Ošetrenie/validácia vstupov + bezpečnosť (Ochrana voči základným SQL injekciám)
  8. GUI aplikácia (Swing, JavaFX), nie Android aplikácia, nie Spring a Spring boot aplikácia
  9. Aplikácia by mala byť navrhnutá pre 3 rôznych používateľov/aktérov napr. admin, power/super user, používateľ (user)
  10. Dátové zložky musia byť správne zapúzdrené
  11. 5-8 obrazoviek (Odpoveď na otázku: Aká veľká má byť aplikácia?)
  12. Použitie knižnice Lombok pre automatizáciu generovania opakujúceho sa kódu

V projekte treba dodržovať odporúčané postupy (best practices) a konvencie. Využiť objektovo orientované princípy a techniky bez zbytočných duplicít kódu (DRY). Treba myslieť na príjemné používateľské rozhranie na jednej strane a na druhej na dobrý návrh a štruktúru.

Pri projekte sa odovzdávajú zdrojové kódyprojektový súbor spolu so spustiteľným JAR súborom (+ knižnice/y) a dokumentáciou v miestach odovzdania AIS. Dátum a čas odovzdania si študenti a tímy sledujú sami v AISe a sú povinní ho rešpektovať. V prípade neodovzdania projektu do stanoveného času a dátumu sa projekt hodnotí 0 bodmi. Vedúci tímu + jeden z členov tímu nahrá tieto súbory do AISu. Rovnako každý tím nahrá všetky súbory do svojho verejného repozitára na GitHub/Gitlab/Bitbucket, aby bol k dispozícii iným tímom v skupine na hodnotenie. Projektové zadanie aj výsledný projekt a jeho projektovú dokumentáciu odovzdávate ako 1 samostatný PDF dokument, v ktorom je všetko, nie porozdelované po súboroch.

Ďalej tím pripraví video (15-20 minút), kde odprezentuje svoje zadanie. Do popisu v miestach odovzdania zašle odkaz na YouTube/Vimeo video. Video musí byť verejne dostupné cez odkaz v popise miesta odovzdania. V prípade nedostupnosti odkazu na video či nefunkčnosti aplikácie sa projekt hodnotí 0 bodmi.

Najprv vo videu ukážete a demonštrujete, ako sa váš program používa a či má ošetrené vstupy, nepadá, out of memory. V druhej časti otvoríte kód a vysvetlíte dôležité časti logiky. Každý člen tímu vysvetľuje svoju časť, ktorú mal na starosti. V prípade, že použijete súbory a zdrojové kódy z internetu je povinné uvádzať všetky použité zdroje. Študent musí rozumieť každému riadku daného kódu a orientovať sa v ňom.

Video ma odpovedať na otázky:

  1. Ako funguje aplikácia?
  2. Aká je biznis a aplikačná logika/vrstva SW?
  3. Aká je architektúra SW a použité návrhové vzory?
  4. Aké komponenty ste použili a prečo?
  5. Čo ste sa pri tom naučili?
  6. Čo vám robilo problémy (vrásky na tvári)? Ako ste sa s tým vysporiadali?

Berte to ako priateľský rozhovor s potenciálnym technologickým investorom alebo zákazníkom, ktorý je technologicky orientovaný. Video slúži ako vaša príprava na prezenčnú obhajobu projektu.

🏅 Hodnotenie a hodnotiaci kľúč

Video bude súčasťou dokumentácie a projekty sa budú prezentovať a hodnotiť aj priamo na cvičeniach vo forme súťaže medzi jednotlivými tímami. Hodnotí sa systémom peer review s vedúcim, ktorý je vyučujúci a má záverečné slovo pri prideľovanám bodov. Vlastný projekt MUSÍ obsahovať veci z odprednášaných tém vid. zoznam 12 požiadaviek vyššie. Každý študent hodnotí aj iné projekty v rámci cvičenia (kvalita/prevedenie/realizácia/splnenie požiadaviek/GUI) do pripraveného dotazníka na hodnotenie. Študent tak môže ovplyvniť výsledné bodové hodnotenie za projekty v rozsahu (0-15 % hodnotenia, samozrejme v rámci povoleného počtu 40 bodov za projekt). Konečné slovo má pri rozhodovaní a prideľovaní bodov vyučujúci. Hodnotí sa a body sa získavajú za prezenčnú obhajobu. Nahrané video slúži ako príprava a je to povinná nebodovaná súčasť projektu. Nefunkčná, padajúca aplikácia alebo aplikácia obsahujúca zjavné chyby alebo chyby, ktoré spôsobujú pád celej aplikácie sa automaticky hodnotia 0 bodmi alebo minimálnym počtom bodov.

📰 Odporúčane zdroje, knihy, príprava na skúšku

📚 Základné knihy:

  1. BLOCH, J. Effective Java. Boston: Addison - Wesley, 2nd edition, 2008. ISBN 03-213-566-8-3
  2. NAFTALIN, M. -- WADLER, P. Java Generics and Collections. Sebastopol, USA: O'Reilly Media, 1st edition, 2006. 286 s. ISBN 05-965-277-5-6
  3. GAMMA, E. -- HELM, R. -- JOHNSON, R. -- VLISSIDES, J. Design Patterns. Elements of Reusable Object-Oriented Software. Boston : Addison Wesley, 1994. 395 s. ISBN 0-201-63361-2
  4. SIERA, K. Head First Java. O'Reilly. 3nd Edition. 2020. 688 s. ISBN 9780596009205
  5. FREEMAN, E. Head First Design Patterns. 2nd Edition. O'Reilly. 2020. 672 s. ISBN 9781492078005

💼 Príprava na skúšku, certifikačnú skúšku OCP:

  1. BOAYRSKY, J. OCP Oracle Certified Professional Java SE 17 Developer Complete Study Guide. 2022. John Wiley. 1110 s. ISBN 978-1-119-86458-5
  2. BOAYRSKY, J. OCP Oracle Certified Professional Java SE 17 Developer Practice Tests. John Wiley. 2022. 780s. ISBN 978-1-119-86461-5
  3. Oracle Certified Professional, Java SE 17 Developer Certification Overview https://education.oracle.com/java-se-17-developer/pexam_1Z0-829

🌐 Elektronické zdroje:

  1. Oracle Java Dokumentácia: Java Platform, Standard Edition 11 API Specification, 2022
  2. Oracle Blog java
  3. Dzone Java Spotlight
  4. ArchiMate® 3.1 Specification, a Standard of The Open Group

About

☕ STU FIIT VAVA - Vývoj Aplikácií s Viacvrstvovou Architektúrou, Slovenská technická univerzita v Bratislave Fakulta Informatiky a Informačných Technológií STU FIIT v Bratislave

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published