Nové předměty z oblasti softwarového vývoje na FIM UHK Tomáš Kozel Katedra informatiky a kvantitativních metod Fakulta informatiky a managementu Univerzity Hradec Králové
[email protected]
Abstrakt V rámci navazujícího magisterského studia v oboru Aplikovaná informatika jsou vyučovány dva nové předměty z oblasti vývoje softwaru. První z nich - Pokročilé programování - je věnován vývoji rozsáhlých systémů na bázi Enterprise technologií Javy. Druhý z nich - Mobilní technologie - seznamuje studenty se specifiky vývoje softwaru pro mobilní zařízení, zejména s přihlédnutím k možnostem mobilního přístupu do IS. Příspěvek představí základní náplň a koncepci obou předmětů.
Klíčová slova: Programování, Java, Spring, Java EE, mobilní technologie, Java ME, výuka
1 Úvod Na fakultě informatiky a managementu byl v loňském roce otevřen nový navazující magisterský program - Aplikovaná informatika. Toto studium umožňuje absolventům bakalářského studia aplikované informatiky (nebo i příbuzného oboru informační management) pokračovat další dva roky a dosáhnout až na inženýrský diplom. Při vytváření studijních plánů a sylabů nových předmětů tohoto programu se logicky v řadě oblastí zvolila forma prohlubování znalostí studentů získaných během bakalářského stupně studia, v některých případech byly zavedeny předměty zcela nové a některé z předmětů jsou společné s již dříve akreditovaným oborem Informační management. Pro oblast tvorby softwaru byly připraveny dva zcela nové předměty – Pokročilé programování a Mobilní technologie. Cílem obou předmětů je seznámit studenty s aktuálními trendy v oblasti softwarového vývoje. Lze tedy předpokládat, že jejich náplň se bude vcelku velmi rychle obměňovat. Během bakalářského studia se již řada studentů zapojí do práce v nějaké softwarové firmě a setká se s množstvím různorodých technologií. Jedním
z nejtěžších úkolů tedy bylo vybrat úvodní náplň předmětů tak, aby byla dostatečně aktuální, co možná nejtrvalejší, obecněji aplikovatelná, přitom dostatečně atraktivní pro studenty a velmi dobře uplatnitelná v praxi. V následujícím textu bude popsán obsah obou zmíněných předmětů, přístup k jejich výuce a jejich návaznost na předcházející předměty bakalářského studia.
2 Výuka programování na FIM Výše zmíněné předměty jsou vystavěny tak, aby mohly v maximální možné míře navázat na znalosti studentů získané v úvodních předmětech z oblasti programování v rámci jejich bakalářského studia na FIM. V bakalářském stupni aplikované informatiky je ve výuce programování využíván přístup Object-First [1] a jako základní jazyk je zvolena Java. Do programování se však studenti ponoří až ve chvíli, kdy projdou paralelními jednosemestrálními kurzy algoritmizace (ALGDS) a úvodu do objektového modelování (UOMO). Tyto předměty mají za úkol nastavit základní rámec a poskytnout základní metody pro uplatnění objektového přístupu v programování. Ve druhém semestru studia se pak studenti učí synteticky zužitkovat poznatky z obou předmětů při programování. Základní kurz programování je pak rozložen do dvou semestrů a je zakončen praktickou zkouškou. Volitelně lze tento kurz doplnit ještě předmětem Programování III (PRO3), který seznamuje studenty s pokročilejšími technologiemi na bázi Javy. Podrobněji již bylo v rámci této konference o koncepci výuky na FIM UHK referováno více v [2] a [3].
3
Nové předměty
Objektové paradigma, Java a její navazující technologie dávají dostatečný prostor pro rozvinutí a výuku dalších přístupů, modelů a technologií z oblasti vývoje softwaru, z čehož právě nově zavedené předměty těží. 3.1
Předmět Pokročilé programování
Předmět pokročilé programování je zařazen hned do prvního semestru navazujícího studia. Předpokladem pro vstup do předmětu je absolvovaný základní kurz objektového programování a kurz databázových systémů. Cílem předmětu je seznámit studenty s novými enterprise technologiemi, primárně na bázi Javy. Význam vykládaných přístupů je však mnohem širší a jejich
uplatnění je možné i v jiných prostředích. Předmět je vyučován ve struktuře – 2 h přednáška, 2 h cvičení + 1 h samostatná práce. Sylabus předmětu obsahuje tyto základní okruhy: 1) Úvod do XML a jeho zpracování (dotace 2/4 h) Pro řadu dále používaných technologií je XML základním konfiguračním jazykem. Studenti se naučí či si zopakují, jak vytvářet XML dokumenty, jak používat DTD, XSD. Dále se naučí používat základní parsery XML (SAX, StAX) a dokumentní modely (JDOM, DOM4J). Částečně poznají technologie pro mapování objektů na XML (JAXB, JiBX, Castor). 2) Obecný úvod do komponentních technologií (2/0) Obecný úvod – pojmy, principy, výhody/nevýhody, historie - krátké seznámení s technologiemi COM, DCOM, CORBA 3) Java Enterprise Edition (4/4) Opakovací modul zejména pro studenty bez absolvovaného PRO3. Webové technologie JEE (JSP, Servlet), Návrhový vzor MVC2 – Apache Struts. Úvod do EJB 3. 4) Spring Framework (4/4) Přístupy Inversion of Control, Dependency Injection, konfigurace a použití komponentního modelu Spring kontejneru, aplikační kontext 5) Úvod do aspektově orientovaného programování (2/2) Základní pojmy a principy AOP – aspekt, advice, joinpoint, pointcut. Použití Spring AOP (různé typy konfigurace – XML, anotace) 6) Objektově relační mapování (4/4) Principy, problémy, základní nástroje v Javě – Hibernate, JPA 7) Integrace datové vrstvy do Spring (2/2) Spring ORM (JDBC, Hibernate, JPA) – šablony, DAO Support, podpora transakčního zpracování (programově, deklarativní, AOP). 8) Spring Web MVC Framework (2/4) Ukázka integrace modulů Springu na webové aplikaci 9) Úvod do servisně orientovaných architektur (2/0) 10) Webové služby (2/2) Základní standardy, SOAP, WSDL, nástroje (Axis, Metro, XFire/CXF), integrace do Springu.
Uvedený sylabus postihuje poměrně široký okruh různých moderních přístupů k tvorbě softwaru, zejména založeného na vícevrstvé architektuře. Je zřejmé, že není možné prozkoumat během jednoho semestru všechny okruhy do hloubky. Cílem předmětu není donutit studenty dokonale zvládnout použité technologie, ale demonstrovat na nich aktuální trendy, rozšířit jim obzory a motivovat je k případnému dalšímu samostudiu ve vybraných oblastech. V rámci samostatné práce a případně s využitím možnosti konzultací na cvičeních mají studenti za úkol vytvořit ve dvou až tříčlenných týmech projekt zahrnující použití některých prezentovaných a procvičených technologií. Předmět je pak zakončen zkouškou skládající se z obhajoby projektu a zodpovězení jedné teoretické otázky. Praktická cvičení lze kompletně realizovat s použitím vývojového prostředí Eclipse [4], ve verzi určené pro Java EE a doplněné o Spring Framework [5] a SpringIDE plugin [6]. 3.2
Předmět Mobilní technologie
Tento předmět uzavírá studijní plán navazujícího oboru aplikovaná informatika. Je zařazen až do posledního semestru studia. Jeho cílem je nabídnout studentům komplexní pohled na mobilní zařízení (PDA, Smartphones, mobilní telefony) a seznámit je s možnostmi jejich využití jako klientů informačních systémů. Jen málokterý vlastník chytrého mobilního telefonu či PDA využívá všech jeho možností vyplývajících z možností konektivity do sítě (vrcholem je prohlížení webu a přístup k poště). V souvislosti s rozšiřováním servisně orientovaných architektur se ale nabízí mnohem více příležitostí využití mobilního zařízení, například právě jako klienta nějaké vzdálené služby. V předmětu je věnována pozornost základním softwarovým platformám chytrých mobilních zařízení (Java ME, Windows Mobile/.NET Compact Framework, Symbian, BlackBerry) – zejména pak možnostem tvorby aplikačního softwaru. Vzhledem k poměrně rychlému vývoji a tím i rychlému stárnutí těchto technologií se prozatím neuvažuje o vybavení laboratoře mobilních technologií. Výuka může být plně pokryta prostřednictvím využití softwarových emulátorů jednotlivých platforem. Do sylabu předmětu je zařazen i okruh týkající se tvorby mobilních softwarových komponent (objektů) a jejich porovnání s přístupem distribuovaným. Ukázka aktuálního sylabu předmětu: 1) Typy mobilních zařízení (PDA, MDA, mobilní telefon). 2) Služby a technologie poskytující mobilním zařízením konektivitu.
3) Využití mobilních zařízení – typy použití, skupiny aplikačního softwaru. 4) Operační systémy mobilních zařízení • Palm OS • Symbian • Pocket PC / Windows Mobile 5) Programování mobilních zařízení v závislosti na použité platformě – programovací jazyky a nástroje • Programování PDA (C, C++, VB, pJava, SuperWaba) • Programování aplikací pro mobilní telefony (J2ME) 6) Ladění mobilních aplikací – emulátory a jejich využití. 7) Mobilní zařízení jako tenký klient distribuovaných aplikací. 8) Zabezpečení mobilních aplikací. 9) Mobilita aplikací – mobilní objekty, mobilní vs. distribuované objekty, porovnání, implementace.
4 Výsledky Z výše zmíněných dvou předmětů byl prozatím odučen pouze první zmíněný – tj. pokročilé technologie. Praxe ukázala, že program předmětu je vcelku nabitý a budeme muset poupravit dotace jednotlivých celků. Příznivě se projevilo zařazení předmětu do navazujícího studia. Studenti, kteří na tento obor po absolvování svého bakalářského studia přicházejí, mají jinou motivaci ke studiu, než většina těch, kteří studují celých 5 let v kuse. Lze konstatovat, že volba témat předmětu byla vcelku šťastná, protože jednak nebylo příliš studentů, kteří by se s probíranými přístupy a technologiemi již setkali, a dále většina studentů měla zájem se s těmito „novinkami“ seznámit. Trochu komplikací v počátcích přinášela univerzální konfigurace prostředí Eclipse na učebnách, což bude napříště vyřešeno určením specializované učebny pro tento předmět. Předmět mobilní technologie první realizace teprve čeká, ale už nyní je zřejmé, že ještě před jeho začátkem bude muset dojít k modifikaci obsahu tak, aby odrážel nejaktuálnější trendy v oblasti (nástup Windows Mobile 6, nástup Linuxových platforem apod.).
5 Závěr Fakulta informatiky a managementu je nyní schopna svým absolventům bakalářského studia aplikované informatiky nabídnout navazující magisterský studijní program. V jeho rámci se například oproti více manažersky laděnému oboru informační management podařilo nabídnout více prostoru informačním technologiím – zejména pak těm z oblasti vývoje softwaru. Vedle výše zmíněných dvou předmětů studenti absolvují například předměty z oblasti distribuovaných a objektově relačních databází a systémového programování. Vzhledem prozatím nepříliš velké mohutnosti studijní skupiny oboru a docela příznivé motivaci jejích členů je výuka softwarových technologií vcelku příjemná a oboustranně obohacující.
Reference 1. Barnes, D., Kölling, M. Objects First with Java. Prentice Hall / Pearson Education, 2006. ISBN 013-197-629X. 2. Kozel, Tomáš. Java ve výuce programování, In Informatika XVIII/2006, stránky 97-102. Konvoj Brno, 2006. ISBN 80-7302-111-0. 3. Milková, Eva a Kozel, Tomáš. Od algoritmizace k programování, In INFORMATIKA XX/2007. stránky 69-75, Konvoj Brno, 2007. ISBN: 978-80-7302-134-4. 4. Eclipse. [Online] http://www.eclipse.org/. 5. Spring Framework. [Online] SpringSource. http://www.springframework.org/. 6. SpringIDE. [Online] http://www.springide.org.