PA165

Z FI WIKI
Přejít na: navigace, hledání

This page has restricted access. Only members of PA165 group can edit it.

Kurs PA165 Tvorba programových systémů v jazyce Java se zabývá především vývojem aplikací a informačních systémů na platformě Java EE.

Důležité odkazy:

Vyučující:

Harmonogram podzim 2008

týden začíná témata přednášky náplň cvičení
1. od 15. 9. 2008 Úvod do Java EE, přehled metodologií, nástroje.
(přednáší Petr Adámek)
Cvičení 1: Organizace předmětu, používání nástrojů Subversion, Maven a NetBeans IDE.
2. od 22. 9. 2008 Vrstva persistence dat: JDBC, ORM, Java Persistence API.
(přednáší Petr Adámek)
Cvičení 2: Java Persistence API, JPA v NetBeans 6.0
3. od 29. 9. 2008 Webové aplikace, JavaServlets, JSP, JSTL a EL.
(Přednáší Martin Kuba)
Cvičení 3: Java Persistence API, jednoduché databázové aplikace v prostředí Swing.
4. od 6. 10. 2008 Bezpečnost ve webových aplikacích, Konfigurace webové aplikace, Web Application Frameworks.
(přednáší Martin Kuba)
Cvičení 4: Webové aplikace.
5. od 13. 10. 2008 Zvaná přednáška IBA CZ k mikromanagementu "enterprise" projektů, komplexní nástroje rodiny Rational včetně nové aplikace Rational Team Concert
(přednáší Jan Pavlovič - IBA CZ)
Cvičení 5: Webové aplikace s využitím MVC rámců.
6. od 20. 10. 2008 Podpora aplikační logiky, Spring, AOP, IoC
(přednáší Roman Pichlík - HP)
Cvičení 6: Data binding
7. od 27. 10. 2008 Státní svátek Cvičení 7: Zadání úlohy, viz text níže.
8. od 3. 11. 2008 testování, unit testy
(přednáší Tomáš Pitner, Petr Adámek)
Cvičení 8: Swing GUI pro AddressBook
9. od 10. 11. 2008 Zvaná přednáška "Bohaté internetové aplikace" (RIA),
(přednáší zástupce Sun Microsystems)
Cvičení 9: Cvičení AJAX
10. od 17. 11. 2008 Enterprise JavaBeans (EJB)
(přednáší Petr Adámek)
Cvičení 10: EJB
11. od 24. 11. 2008 Web Services, REST
(přednáší Jan Pavlovič, Pavel Kryl - HP)
Cvičení 11: Web Services
12. od 1. 12. 2008 Aplikační servery, portálové technologie a nástroje
(přednáší Jan Pavlovič)
Cvičení 12: JSF, Oprava domácích úloh.
13. od 8. 12. 2008 SOA, BPEL, ESB, JBI, SCA, SDO
(přednáší Jan Pavlovič - IBA CZ, Martin Hapl - HP)
Cvičení 13: Oprava domacích úloh. JBI Demo, konzultace k projektům
14. od 15. 12. 2008 Nástroje agilního vývoje, Grails. Skriptovací jazyky postavené na Java Platform (Groovy)
(přednáší Tomáš Pitner nebo zástupce Sun Microsystems)
Cvičení 14: Oprava domacích úloh, konzultace k projektům

Úlohy

Vytvořte jednoduchý adresář, který umožní evidovat kontakty a jejich telefonní čísla. Bude obsahovat entity Contact a PhoneNumber, mezi nimiž bude vztah 1:N. Aplikační vrstvu vytvořte s využitím Java Persistence API. Prezentační vrstvu vytvořte jednak jako webovou aplikaci a jednak jako aplikaci pro Swing. PhoneNumber bude mít minimálně dva atributy.

Doporučujeme pro webovou vrstvu použít nějaký vhodný MVC rámec (např. Stripes, Apache Struts, Tapestry nebo JSF). Nezapomeňte definovat vhodné rozhraní mezi aplikační a prezentační vrstvou a obě vrstvy dobře oddělit. To znamená, že prezentační vrstva nesmí obsahovat ani malý kousíček aplikační logiky a aplikační vrstva samozřejmě nesmí záviset na vrstvě prezentační. Obě GUI budou lokalizovány alespoň do dvou jazyků.

Úloha se bude odevzdávat přímo na cvičení, kde se předvede cvičícím.

Create simple addressbook, which will enable store contacts and theirs phone numbers. It will include enities Contact and PhoneNumber, which would be in 1:N relationship. Create aplication layer using Java Persistence API. Presentation layer will include a web application and a aplication for Swing. Phone number must have at least two attributes.

We recommend using a suitable MVC framework for web application(e.g. Apache Struts, Tapestry or JSF). Don't forget to define suitable interface between aplication and presentation layer to divide both layers. It means, that presentation layer mustn't contain no, even tiny, part of aplication logics and aplication layer mustn't depend on the presentation layer. Both GUI will be localized at least into two languages.

The homework will be given to teachers on the exercise by presenting it.

Bodování

Prémiové body:

  • Umělecký dojem +1
  • Použití EJB +1
  • Použití RCP Netbeans Platform (s rozumnou mírou integrace) +1
  • Lokalizace do více než tří jazyků +1

Bodová penalizace:

  • Nedodržení konvencí pro zápis kódu (odsazování, konvence pro pojmenování, čitelnost kódu, intuitivní identifikátory, identifikátory v angličtině apod.)
  • Zbytečný nebo zbytečně složitý kód (např. nepoužití třídy javax.swing.Action tam, kde by se to hodilo; zbytky kódu po předchozích pokusech; apod.)
  • Nemožnost editace jednotlivých telefonních čísel
  • Vyhazované výjimky (např. v logu applikačního serveru)
  • Problémy se souběžným přístupem
  • Nezakázání prvků GUI, které v daném okamžiku není možné použít
  • Nefunkční diakritika
  • GUI není intuitivní
  • Nesplnění zadání
  • Nedostatečná odolnost proti nekorektním nebo neobvyklým vstupům
  • Model nebo aplikační vrstva nejsou dostatečně dobře zapouzdřeny a neskrývají implementační detaily (např. řízení transakcí se provádí až na prezentační vrstvě)
  • Další chyby, na které narazíme při opravování

Bodová penalizace nebude za:

  • Provádění operací ve vklákně Event Dispatcheru
  • Ve webové aplikaci nebude použito dependency injection pro JPA

Loňský běh PA165 (podzim 2007) je na PA165-podzim2007.