A tantárgy adatlapja
1. A képzési program adatai
1.1 Felsőoktatási intézmény	Babeș–Bolyai Tudományegyetem	
1.2 Kar 	Matematika és Informatika Kar	
1.3  Intézet	Magyar Matematika és Informatika Intézet	
1.4 Szakterület	Informatika	
1.5 Képzési szint	Magiszteri	
1.6 Szak / Képesítés	Informatikai rendszerek optimalizálása	

2. A tantárgy adatai
2.1 A tantárgy neve	Java alapú vállalati szoftverrendszerek fejlesztése	
2.2 Az előadásért felelős tanár neve	dr. Simon Károly	
2.3 A szemináriumért felelős tanár neve	dr. Simon Károly	
2.4 Tanulmányi év	2	2.5 Félév	1	2.6. Értékelés módja	kollokvium	2.7 Tantárgy típusa	opcionális – szak	

3. Teljes becsült idő (az oktatási tevékenység féléves óraszáma)
3.1 Heti óraszám	3	melyből: 3.2 előadás	2	3.3 szeminárium/labor	1/0	
3.4 Tantervben szereplő össz-óraszám	42	melyből: 3.5 előadás	28	3.6 szeminárium/labor	14/0	
A tanulmányi idő elosztása:	Óra	
A tankönyv, a jegyzet, a szakirodalom vagy saját jegyzetek tanulmányozása	24	
Könyvtárban, elektronikus adatbázisokban vagy terepen való további tájékozódás	24	
Szemináriumok / laborok, házi feladatok, portofóliók, referátumok, esszék kidolgozása	56	
Egyéni készségfejlesztés (tutorálás)	0	
Vizsgák	4	
Más tevékenységek: ..................	0	
3.7 Egyéni munka össz-óraszáma	108	
3.8 A félév össz-óraszáma	150	
3.9 Kreditszám	6	

4. Előfeltételek (ha vannak)
4.1 Tantervi	•	Nincs	
4.2 Kompetenciabeli	•	Fejlett programozási módszerek és környezetek, Java SE, web programozás, tervezési minták, software engineering	
5. Feltételek (ha vannak)
5.1 Az előadás lebonyolításának feltételei	•	Videoprojektorral és táblával felszerelt előadóterem	
5.2 A szeminárium / labor lebonyolításának feltételei	•	Projektorral felszerelt szemináriumi terem. Hozzáférés a megfelelő szerverekhez (Java alkalmazásszerver, verziókövető, projekt menedzsment, stb.) 	

6. Elsajátítandó jellemző kompetenciák
Szakmai kompetenciák	•	A nagyméretű, osztott vállalati szoftverrendszerek fejlesztésénél alkalmazott módszerek, stratégiák ismerete
•	Fejlesztők és fejlesztői csapatok munkáját és együttműködését támogató eszközök ismerete
•	A vállalati rendszerek fejlesztését támogató Java technológiák, keretrendszerek ismerete
•	A Java EE platform, valamint az EJB használatának elsajátítása, gyakorlása
•	Vállalati rendszerek fejlesztését támogató más Java platformok (pl. Spring) szerkezetével kapcsolatos alapismeretek	
Transzverzális kompetenciák 	•	Önálló tanulás, kritikus gondolkodás, problémabeazonosítás és feladatmegoldás
•	Összetettebb projekteknél (pl. vállalati alkalmazások) alkalmazott módszerek, stratégiák, technológiák elsajátítása	

7. A tantárgy célkitűzései (az elsajátítandó jellemző kompetenciák alapján)
7.1 A tantárgy általános célkitűzése	•	A nagyméretű, osztott vállalati szoftverrendszerek fejlesztésénél alkalmazott módszerek, stratégiák elsajátítása
•	Fejlesztők és fejlesztői csapatok munkáját és együttműködését támogató eszközök megismerése
•	A vállalati rendszerek fejlesztését támogató Java technológiák, keretrendszerek bemutatása
•	A Java EE platform, valamint az EJB használatának elsajátítása, gyakorlása
•	Betekintés vállalati rendszerek fejlesztését támogató más Java platformok (pl. Spring) szerkezetébe	
7.2 A tantárgy sajátos célkitűzései

	•	A vállalati rendszerek fejlesztésénél érvényesülő általános alapelvek, alkalmazott stratégiák és felhasznált eszközök általános áttekintése
•	Az előzőekben megismert Java technológiákkal, keretrendszerekkel kapcsolatos ismeretek felfrissítése
•	A Java EE platform bemutatása
•	Az EJB komponens modell bemutatása
•	Alkalmazásszerverekkel, szolgáltatásokkal és erőforrás menedzsmenttel kapcsolatos témakörök bemutatása
•	Perzisztenciával kapcsolatos haladó szintű technológiák ismertetése (JPA)
•	Alapvető szolgáltatások megismerése: tranzakciók menedzsmentje, biztonság, időzített szolgáltatások, interceptorok stb.
•	Webes technológiák, keretrendszerek használata, webszolgáltatások létrehozása
•	A Java EE platform és a Spring keretrendszer összehasonlítása
•	Projekt fejlesztése az elsajátított technológiák alkalmazásával	

8. A tantárgy tartalma
8.1 Előadás	Didaktikai módszerek	Megjegyzések	
1.	Ismeretfelmérő és ismétlés
-	Az előzőekben elsajátított Java technológiákkal kapcsolatos ismereteket felmérő teszt
-	Java SE ismétlés	Teszt, magyarázat, vetítés, konverzáció, példák		
2.	Ismétlés
-	Az előzőekben elsajátított Java technológiák és keretrendszerek ismétlése (a felmérő eredményeinek alapján összeállított anyagnak megfelelően)	magyarázat, vetítés, konverzáció, példák		
3.	Vállalati rendszerek – általános bevezető
-	Vállalati rendszerek fejlesztésénél alkalmazott módszerek, stratégiák, eszközök	magyarázat, vetítés, konverzáció, példák		
4.	Java EE és alkalmazásszerverek
-	A Java EE platform általános bemutatása
-	Java alkalmazásszerverek, alapvető szolgáltatások áttekintése
-	A Glassfish bemutatása	magyarázat, vetítés, konverzáció, példák		
5.	Az EJB komponensmodell
-	Az EJB komponensmodell ismertetése, a kapcsolódó szolgáltatások áttekintése
-	Entitások (Entity Bean-ek)
-	Szerver oldali komponensmodell (állapotnélküli, állapottal rendelkező és singleton Session Bean-ek, Message-Driven Bean-ek)	magyarázat, vetítés, konverzáció, példák		
6.	Erőforrások menedzsmentje, elérése és használata
-	Erőforrások menedzsmentje az EJB konténeren belül
-	JNDI
-	Injection	magyarázat, vetítés, konverzáció, példák		
7.	EJB – példa
-	Egy egyszerű EJB alkalmazás fejlesztésének lépései – példa, gyakorlati bemutató	magyarázat, vetítés, konverzáció, példák		
8.	Perzisztencia
-	JPA alapok, entitások menedzsmentje
-	ORM leképezések megvalósítása	magyarázat, vetítés, konverzáció, példák		
9.	Perzisztencia – folytatás
-	Entitások közötti kapcsolatok
-	Entitások közötti öröklődési viszony, osztályhierarchia leképezése
-	Az Entity Callback mechanizmus és figyelők alkalmazása	magyarázat, vetítés, konverzáció, példák		
10.	Perzisztencia – folytatás
-	A JPA QL	magyarázat, vetítés, konverzáció, példák		
11.	Tranzakciók menedzsmentje
-	Deklaratív tranzakció-menedzsment
-	Tranzakciók és perzisztencia
-	JTA	magyarázat, vetítés, konverzáció, példák		
12.	Biztonság
-	A Java EE biztonsági mechanizmusa, jogosultsági körök menedzsmentje	magyarázat, vetítés, konverzáció, példák		
13.	Egyéb alapvető szolgáltatások
-	Időzített szolgáltatások, a Timer Service szolgáltatás
-	Aspektusorientált megközelítés, Interceptorok	magyarázat, vetítés, konverzáció, példák		
14.	Összefoglaló, ismétlés, ismeretek felmérése	magyarázat, vetítés, konverzáció, példák, teszt		
Könyvészet
1.	Simon K., Kenyerünk Java, Egyetemi Kiadó, Kolozsvár, 2010.
2.	Rubinger A.L., Burke B., Enterprise Java Beans 3.1, 6th edition, O’Reilly, 2010.
3.	***, Java EE 6 Tutorial, Sun Microsystems, http://download.oracle.com/javaee/6/tutorial/doc/
4.	 Fowler, M., Patterns of Enterprise Application Architecture, Addison-Wesley, 2002.
5.	Craig Walls, Spring in Action, 3rd Edition, Manning Publications, 2011.	
8.2 Szeminárium / Labor	Didaktikai módszerek	Megjegyzések	
Szeminárium:			
1.	hét: projekttel és szemináriumi bemutatókkal kapcsolatos megbeszélés
2.	hét: projekt specifikációjának elkészítése, fejlesztői csoportok, feladatkörök meghatározása, szemináriumi bemutatók elosztása és ütemezése
3.	hét: a projekt fejlesztése során felhasznált, a fejlesztési folyamatot és csapatmunkát támogató eszközök bemutatása
4.	hét: a projekt fejlesztéséhez használt eszközök konfigurálása, a fejlesztői környezet előkészítése
5.	hét: a projekt tervének elkészítése
6.	hét – 13. hét: a projekt fejlesztése, ezzel kapcsolatos megbeszélések, szemináriumi bemutatók
14.	hét: projekt bemutatása	Egyéni bemutatók, bemutatók megbeszélése és kiértékelése, csoportos feladatmegoldás		
Labor + projekt:			
-	tantervben szereplő laboróra nincs, a projekt fejlesztése az egyéni feladatköröknek megfelelően otthon történik, a közös megbeszélésekre a szemináriumok adnak keretet			
Könyvészet	
1.	***, The Java Tutorial, Sun Microsystems, Inc, 2004. http://java.sun.com/docs/books/tutorial/index.html
2.	***, Java EE 6 Tutorial, Sun Microsystems, 
http://download.oracle.com/javaee/6/tutorial/doc/
3.	***, CORBA/IIOP Specifications, OMG, http://www.omg.org/technology/documents/corba_spec_catalog.htm
4.	***, RMI Tutorial, Sun Microsystems, 2008.
http://java.sun.com/docs/books/tutorial/rmi/index.html
5.	***, Java Servlet Technology Documentation, Sun Microsystems,
http://java.sun.com/products/servlet/docs.html
6.	***, JSP Documentation
http://www.oracle.com/technetwork/java/javaee/jsp/index.html
7.	***, JSF Documentation
http://www.oracle.com/technetwork/java/javaee/javaserverfaces-139869.html
6.	***, Hibernate Documentation, http://www.hibernate.org/5.html
7.	***, AspectJ Documentation, Eclipse Foundation, 
http://www.eclipse.org/aspectj/docs.php	

9. Az episztemikus közösségek képviselői, a szakmai egyesületek és a szakterület reprezentatív munkáltatói elvárásainak összhangba hozása a tantárgy tartalmával.
•	A tantárgy tematikája nagy átfedést mutat az egyetemi oktatásban a fontosabb egyetemeken oktatott hasonló tematikájú tantárgyak tartalmával.
•	A tananyagok kidolgozása nemzetközileg elismert szerzők munkái alapján történt, az ajánlott könyvészet szintén a terület releváns munkái alapján van összeállítva.
•	A tantárgy keretein belül oktatott témák szükségesek a szoftverfejlesztői iparban történő elhelyezkedéshez, a cégek elvárják az ilyen jellegű ismereteket.	

10. Értékelés
Tevékenység típusa	10.1 Értékelési kritériumok	10.2 Értékelési módszerek	10.3 Aránya a végső jegyben	
10.4 Előadás 	Vizsgafeladatok, bemutatott fogalmak és módszerek ismerete	Írásbeli vizsga	40%	
				
10.5 Szeminárium / Labor	Évközi tevékenység, szemináriumi bemutatók 	Szemináriumi bemutatók pontozása, a projektben és közös évközi tevékenységben valós részvétel/hozzájárulás értékelése	30%	
	Projekt	A projekt pontozása, az egyéni hozzájárulások figyelembevételével	30%	
10.6 A teljesítmény minimumkövetelményei	
Az átmenő jegy feltételei:
•	A végső jegyet meghatározó minden komponens esetén kötelező az átmenő jegy (min. 5-ös).
•	A végső jegy minimálisan 5-ös.	
Kitöltés dátuma			Előadás felelőse			Szeminárium felelőse
2012.09.25				dr. Simon Károly			dr. Simon Károly
Az intézeti jóváhagyás dátuma				Intézetigazgató	
..........................						dr. Szenkovits Ferenc