- Vývoj Aplikácií s Viacvrstvovou Architektúrou (VAVA)
- Slovenská technická univerzita v Bratislave Fakulta Informatiky a Informačných Technológií STU FIIT
- Prednášajúci: RNDr. PhDr. Ing. Mgr. et Mgr. Miroslav Reiter, DiS., MBA, MPA, MSc., DBA, Ing. Paed. IGIP
- Kontakt: [email protected] / [email protected]
- Verzia Javy/JDK: Java SE JDK 17 alebo 21 (min. 17)
- Preferované IDE: Netbeans 20 (alebo podľa preferencií Eclipse/IntelliJ IDEA 2023.3.4 Ultimate)
- Zoznam tímov a projektov + LiveCodeSession: https://docs.google.com/spreadsheets/d/1UCdTJ30tkXzmAsogZB2ZlcoE7kQygvQl/edit?usp=sharing&ouid=100112972226340140004&rtpof=true&sd=true
- Hodnotenie tímu:
- VAVA - Testik 1 - OOP: https://forms.gle/3u3qmfzNiVPcRXJaA
- VAVA - Testík 2 - Kolekcie a Polia: https://forms.gle/RmF5Uo4TvGP1tV7h7
- VAVA - Testík 3 - Výnimky a Logy: https://forms.gle/dJx4BeinXijrGJEVA
- VAVA - Testík 4 - JDBC a DB: https://forms.gle/vr6puPsCidX4ix9S9
- VAVA - Testík 5 - Regexy a Stringy: https://forms.gle/uTn2wVbnWz51rjkT9
- VAVA - Testík 6 - IO, NIO/NIO2, Files: https://forms.gle/2r7tVCZb5W26S8eDA
- VAVA - Testík 7 - Lokalizácia, Bundles: https://forms.gle/M9Sf5sv164kHt4bn6
- VAVA - Testík 8 - Enterprise Architektúra EA: https://forms.gle/5X9tbRrRfeottWo57
Prednášky: Každý piatok 12:00-13:50
Cvičenia: Každý piatok 14:00-15:30 formou konzultácii
- Úvod do Javy a jazyka ArchiMate
- Štruktúra platformy a enteprise architektúry
- Vývojové technológie + (biznis vrstva)
- Kolekcie + (aplikačná vrstva)
- Logovanie
- Lokalizácia
- JDBC a DBMS + (technologická vrstva)
- XML, NIO2
- Regulárne výrazy
- Prehľad enterprise architektúr + Prezentovanie Projektov
- Enteprise Architect + Prezentovanie Projektov
- 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
- 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í
- Štruktúra platformy Java
- Java vývojové technológie a štandardy
- Vybrané kapitoly/detaily Java Standard Edition API (napr. Collections, Logging, Localization, XML, I/O, Regular Expressions)
- Databázy, JDBC, jazyk SQL v Jave
- Prehľad JEE technológií
- Podniková architektúru a ArchiMate
- 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
- 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.
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
- OOP Java
- Kolekcie
- Lokalizácia
- Logovanie
- NIO.2
- 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.
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:
- Biznis vrstva (Organizačné hľadisko, Hľadisko na spoluprácu medzi podnikovými procesmi, Produktové hľadisko)
- Aplikačná vrstva (Hľadisko spolupráce aplikácií) <--> balíčky (packages)
- Technologická vrstva (Technologické hľadisko)
- Vrstvový model (Vrstvené hľadisko)
- JDownloader v2
- muCommander v2
- Gannt Project v2
- Plánovač Kurzov a Skúšok vid. prílohy
- Slovensko.sk Schránky v2 vid. prílohy
Vlastný projekt MUSÍ obsahovať veci z odprednášaných tém a mať:
- Kolekcie (treba vybrať vhodné dátové štruktúry podľa povahy/architektúry projektu)
- Logovanie (Logovanie biznis logiky aplikácie + Logovanie Exceptions/Errors)
- Lokalizácia (Preklady a lokalizácia ENG a SK)
- XML (Import a export dát do XML)
- Regulárne výrazy (Vyhľadávanie s prepínačmi, filtrovanie)
- 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).
- Ošetrenie/validácia vstupov + bezpečnosť (Ochrana voči základným SQL injekciám)
- GUI aplikácia (Swing, JavaFX), nie Android aplikácia, nie Spring a Spring boot aplikácia
- Aplikácia by mala byť navrhnutá pre 3 rôznych používateľov/aktérov napr. admin, power/super user, používateľ (user)
- Dátové zložky musia byť správne zapúzdrené
- 5-8 obrazoviek (Odpoveď na otázku: Aká veľká má byť aplikácia?)
- 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ódy a projektový 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:
- Ako funguje aplikácia?
- Aká je biznis a aplikačná logika/vrstva SW?
- Aká je architektúra SW a použité návrhové vzory?
- Aké komponenty ste použili a prečo?
- Čo ste sa pri tom naučili?
- Č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.
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.
- BLOCH, J. Effective Java. Boston: Addison - Wesley, 2nd edition, 2008. ISBN 03-213-566-8-3
- NAFTALIN, M. -- WADLER, P. Java Generics and Collections. Sebastopol, USA: O'Reilly Media, 1st edition, 2006. 286 s. ISBN 05-965-277-5-6
- 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
- SIERA, K. Head First Java. O'Reilly. 3nd Edition. 2020. 688 s. ISBN 9780596009205
- FREEMAN, E. Head First Design Patterns. 2nd Edition. O'Reilly. 2020. 672 s. ISBN 9781492078005
- BOAYRSKY, J. OCP Oracle Certified Professional Java SE 17 Developer Complete Study Guide. 2022. John Wiley. 1110 s. ISBN 978-1-119-86458-5
- BOAYRSKY, J. OCP Oracle Certified Professional Java SE 17 Developer Practice Tests. John Wiley. 2022. 780s. ISBN 978-1-119-86461-5
- Oracle Certified Professional, Java SE 17 Developer Certification Overview https://education.oracle.com/java-se-17-developer/pexam_1Z0-829