Do zaliczenia przedmiotu należy zaliczyć laboratorium oraz zdać egzamin.
Zaliczenie laboratorium
Na zaliczenie należy wykonać projekt programistyczny, w którym
zasadniczą część stanowi zastosowanie technologii XML-owych.
Zasadniczo projekty powinny być indywidualne, ale w przypadku większych projektów prowadzący może zgodzić się na projekty
dwu- lub trzyosobowe. Należy to uzgodnić już na początku semestru.
Na ocenę wpływ ma zarówno zakres projektu („wielkość” i „trudność”), jak i jakość wykonania.
Projekt
Tematyka projektu jest dowolna i liczymy przede wszystkim na Państwa pomysły.
W razie braku pomysłów podsuwamy kilka standardowych:
- sklep internetowy, biblioteka itp.,
- prosty serwis społecznościowy (najlepiej wyspecjalizowany w czymś, co można reprezentować w XML)
- obsługa formularzy (dokumentów do wypełnienia jak np. zeznanie podatkowe) reprezentowanych w postaci XML,
gdzie znajdą się ułatwienia dla definiowania takich formularzy, zbierania i analizowania danych, a przede wszystkim prezentacja na różne sposoby, w tym PDF za pomocą XSL-FO,
- projekt związany z zaawansowaną obsługą pewnego rodzaju dokumentów, np. tekstów technicznych (instrukcja użytkownika itp.),
aktów prawnych; gdzie występują takie zagadnienia jak tekst warunkowy, nanoszenie zmian, scalanie różnych wersji itp.
Jeśli chodzi o technologię, to wymagamy dwóch rzeczy:
- Należy zdefiniować własne nowe zastosowanie XML i zapisać w postaci
definicji XML Schema (xsd) lub ewentualnie po uzgodnieniu w innej postaci (DTD - tylko jeśli jest to konieczne, RelaxNG).
Należy przy tym użyć przestrzeni nazw XML, zdefiniować właściwe w danej sytuacji więzy integralności
(„klucze i referencje”) i użyć mechanizmów do modularyzacji / strukturalizacji schematu
w celu uniknięcia duplikacji kodu i logiki.
- Należy zaprogramować logikę aplikacji wykorzystującą w sposób istotny XML i standardy z nim powiązane.
Oczekiwane jest zastosowanie standardów do wysokopoziomowego operowania na XML,
takich jak XPath, XQuery i XSLT (niekoniecznie wszystkich na raz),
ale nakład pracy w różnych projektach można rozkładać różnie pomiędzy tymi technologiami
a standardowym programowaniem (w Javie itp.). W „normalnym” kodzie
należy poprawnie korzystać z dostępnych na danej platformie bibliotek/API do operowania na XML.
Przykładowe możliwości realizacji projektu:
- Aplikacja webowa, w której model danych
reprezentowany jest w postaci XML, a warstwa prezentacji oparta o XSL,
- Usługa sieciowa (WebService) w stylu SOAP lub REST, do tego klient (np. mobilny na Androida lub iOS)
- Zastosowanie „XML-owej bazy danych”, np. aplikacja webowa stworzona w oparciu o eXist DB.
Mile widziane zastosowanie XForms i architektury XRX.
- Zestaw poleceń command-line, które w nietrywialny sposób przetwarzają dane XML.
Harmonogram
Aby zaliczyć laboratorium i przedmiot w pierwszym terminie, należy przestrzegać niniejszego harmonogramu
i do wyznaczonych terminów włącznie do prowadzącego swojej grupy na email przysłać:
- 2014-11-05
- definicja zastosowania XML (schemat) (ocena 0-10 punktów) oraz opis planowanej funkcjonalności aplikacji
- 2015-01-07
- działająca aplikacja (ocena 0-20 punktów)
Podane są terminy maksymalne i nie będą przesuwane. Nieoddanie w terminie ozekiwanego elementu skutkuje niezaliczeniem
laboratorium w pierwszym terminie i niedopuszczeniem do egzaminu w pierwszym terminie.
Mamy jednak nadzieję, że wcześniej będą Państwo konsultować swoje tematy oraz informować o postępach w implementacji.
Prowadzący mogą poprosić o prezentację Państwa rozwiązań podczas zajęć lub w wynaczonych terminach.
Odpowiadając z góry na często zadawane pytanie: Można zmienić definicję XML Schema oraz skorygować założenia
projektu podczas drugiej fazy implementacji. Błędy w pierwszej wersji XML Schema decydują o ocenie za ten fragment,
a ocenie w drugiej fazie podlega ostateczna wersja projektu.
Egzamin
Egzamin w formie pisemnej (około 2/3 punktów oceny końcowej), pytania częściowo testowe, częściowo otwarte.
Egzaminy z ubiegłych lat można obejrzeć w poprzednich edycjach.
Za zaliczanie w drugim terminie nie są potrącane żadne karne punkty.