Szoftverfejlesztési projektmunka a gyakorlatban (PGY2) -
A Programozás Technológiai Eszközei
tantárgyismertető -- 2012 tavaszi félév
1. Órarend:
- 2010 febrár 14- május 15, keddenként 12:00 - 13:30, (a helyszín tisztázás alatt).
- Nincs óra április 3-án és 10-én
2. Kreditérték: 2
Értékelés: gyakorlati jegy
3. Oktatók:
dr. Bakay Árpád, NETvisor Zrt.
arpad.bakay@netvisor.huaz email subject feltétlenül a 'PGY2' szóval kezdődjön!!
+36 30 3851711 (kizárólag szükséghelyzetben!!)
4. Konzultációs lehetőség:
csak: előzetes egyeztetés alapján,
preferrált időpont: (B.Á.) péntek 14-15h
preferrált helyszín: NETvisor (XI. Petzvál J. u. 56)
5. Weblap:
http://telco.ikkk.inf.elte.hu/twiki/bin/view/Main/WebHomePGY2
A hirdetmények itt jelennek meg, és ez minden esetben hivatalos értesítésnek minősül!
6. Kötelező tanulmányi előzmények:
Programozási technológia I
A szoftverfejlesztés módszertana (SME)
Projekt- és vállalatirányítás az informatikában (PVE)
Szoftverfejlesztési projektmunka a gyakorlatban I. (PGY1)
7. A tantárgyról
A tantárgy célja olyan ismeretek megszerzése és gyakorlása, amelyek -az alkalmazott programozási technológiák ismerete mellett- szükségesek egy bonyolultabb alkalmazásnak sokszereplős együttműködés (azaz szoftverfejlesztési projekt) keretében történő kifejlesztéséhez.
Ez a tantárgy elsősorban olyan szoftver eszközöket ismertet, amelyek a gyakorlatban támogatják az előző félévben a „A szoftverfejlesztés módszertana” c. tantárgy során megismert tervezési, tesztelési és dokumentációs technikákat.
A tantárgy elméleti anyagát egyetlen példa egészíti ki, amely nyomon követi egy kisebb, de modern architektúrájú (Java) alkalmazás teljes kialakulását, a kezdeti specifikációtól kezdve egészen az alkalmazás teszteléséig. A kurzus során a szükséges mértékig bemutatásra kerül a Java Enterprise Edition technológia is
Az alkalmazást úgy választjuk ki, hogy modern, többrétegű, komponens-alapú architektúrája is tanulságos legyen a hallgatók számára.
A tantárgyat sikeresen elvégzők –az elengedhetetlen gyakorlatot leszámítva- birtokában lesznek a legfontosabb technológiai ismereteknek, amely nagy és korszerű üzleti alkalmazások fejlesztésére irányuló projektekben való hatékony részvételhez szükséges.
8. Számonkérés
Kis ZH-k
A félév során 6 alkalommal, (az gyakorlatok első 10 percében), az előző órákon kiemelt legfontosabb fogalmakból. A kis ZH-kat %-ban osztályozzuk.
A kis ZH-k -amellett, hogy befolyásolják a gyakorlati jegyet- a jegyszerzés tiltófeltételeként is funkcionálnak: Nem szerez félévi jegyet az, akinek nincs 4 sikeres (>=50% eredményű) kisZH-ja, vagy akinél a legjobban sikerült 4 kis-ZH eredményének átlaga nem éri el a 60%-ot. A nem megírt kis ZH-k 0%-ot érnek. (A fenti tiltás szempontjából egyetlen hiányzó kis ZH pótolható a 'Desszert feladat' [ld. alább] elvégzésével.)
Aki nem volt ott az órán, az max. 168 órán belül pótolhatja a kis-ZH-ját, előzetes egyedi egyeztetés alapján, rendszerint a Netvisor Zrt irodájában (XI. ker. Petzvál J. u 56). A pótlásra való jelentkezés természetesen a hallgató felelőssége (kérem, akár többször is írjon ez ügyben mailt-t), mint ahogy az is, hogy végül egy időpont sikeresen egyeztetve legyen. Arról, hogy egy adott héten volt-e kis-ZH, kérdezzék meg kollégáikat!
A pótlás lehetőségével alapesetben minden hallgató kétszer élhet. Ha előreláthatólag többször lesz erre szüksége, akkor Önnek a távoktatási formára kell jelentkezni, a 11. pontnál leírtak szerint.
Külföldön tanuló hallgatókkal Skype-on keresztül íratjuk meg a kis-ZH-kat, szintén a 168-órás időlimiten belül (ld. alább is).
A pót-kis-ZH-k kb. 20%-al magasabb követelményeket támasztanak az órákon megíratott kis ZH-knál.
Az órákon megírt kis ZH csak akkor lesz értékelve, ha a hallgató végig részt vesz az órán. Aki az óra vége előtt kényszerül vagy szeretne elmenni, éljen a fentiek szerinti pótlás lehetőségével!
A számonkérések alapjául szolgáló anyagok legkésőbb az előző szombaton felkerülnek a tantárgyi weblapra.
Vizsga-ZH
Laborban megírandó, egyszerű programozási feladat, amely során az órákon megtanult eszközöket és technológiát kell használni (4 óra)
Nagy házifeladat:
Az órákon tárgyalt példaalkalmazással párhuzamosan a hallgatók 2 beadandó fázisban megoldanak egy hasonló, de egyszerűbb feladatot.
Csak az kaphat gyakorlati jegyet, aki a házi feladatának minden beadandó fázisát egyenként legalább 50% eredménnyel megoldotta. (Késési szankciókat ld. lent!)
Desszertfeladat:
A desszert feladat testreszabott extra feladat, amelyet akár az eredményes vizsga ZH után is házi feladatként el lehet végezni, és az alábbi két cél egyikét szolgálhatja:
A kis ZH-kkal kapcsolatos tiltófeltétel számításánál egyetlen hiányzó kis ZH pótlására
Max. kb. 5%-nyi extra pont szerzésére a gyakorlati jegy javítása céljából
9. Értékelés, érdemjegyek
Az összesített értékelés (ÖÉ) az alábbi súlyozással történik:
kis ZH-k átlageredménye: 15%
vizsga ZH: 43%
házi feladat: 40%
hozzáállás (pl. az anyaggal v. a feladatokkal kapcsolatos értelmes kérdések és kommentek) : 2%
jegy-javítási céllal elvégzett 'desszert feladat' max. +5%
A gyakorlati jegy százalékos küszöbértékei:
jeles: ÖÉ > 90%
jó: ÖÉ > 80 %
közepes: ÖÉ >70%
elégséges: ÖÉ > 50%
10. Szankciók hiányzás, késedelem ill. csalás esetén:
Csalás a vizsgán, házi feladatoknál, ill. ZH-kon: - 30-80% (az adott dolgozat eredményéből). Tapasztalat szerint a csalás legjellemzőbb esete a más (akár korábbi) hallgatók munkájának forrásmegjelölés nélküli felhasználása (részben vagy egészben történő másolása), amelyet különféle tudományos és heurisztikus eszközökkel igyekszünk felderíteni.
Házi feladatok késedelme esetén érvényes szabályok: -3% / nap, az adott fázis értékeléséből. Figyelembe véve a házi feladatokra vonatkozó fázisonkénti 40%-os küszöbszintet, 20 nap késéssel a hallgató végérvényesen elesik a gyakorlati jegytől!
Kedvezőbb elbánás (1,5% / nap) alá esik az a késedelem, amelyről előre tájékoztatja a "üzleti partnereit" , azaz amelyet jelez az oktatónak az alábbiak szerint:
A késedelem jelzésénél a rövid indoklás mellett jelezni kell a teljesítés javasolt új határidejét is.
A vállalt új határidő már nem módosítható.
Ha a vállalt határidő a jelzéstől számítva több mint egy hét, akkor legalább hetenként "előrehaladási jelentést" kell automatikusan küldeni. Ellenkező esetben a mérsékelt szankcióra való jogosultság megszűnik.
Mivel az új határidővel Ön jelzi, hogy munkájára ne számítsanak hamarabb, a mérsékelt szankció egészen az újonnan megjelölt határidőig felszámításra kerül, függetlenül egy esetleges korábbi teljesítéstől.
A hiányzást nem szakcionáljuk, azonban azoknál a hallgatóknál, akik az órai kis-ZH-k nagy részét nem írták meg, fokozottan elvárjuk a követelmények maradéktalan teljesítését, és abszolút következetesen alkalmazzuk a késési és egyéb szankciókat!
Az órákat látogatni nem képes (pl. dolgozó, órarendi ütközéses v. külföldi ösztöndíjas) hallgatók számára követendő szabályok:
Mint ahogy a korábbi években, továbbra is lehetséges a tárgyat lényegében távoktatás mellett végezni, az alábbi feltételekkel:
Erre a kedvezményes oktatási formára egy emeailben be kell jelentkezni, legfeljebb az 1. oktatási hét végégéig.
A hallgatók a kisZH-kat a NETvisorban, vagy (külföldi tartózkodás esetén) kamerás Skype kapcsolat mellett írják meg.
A házi feladatoknál a megengedett késedelem a normál esetnél jóval szigorúbb, max. 3 nap. Ezután a hallgató automatikusan „Nem vizsgázhat” státuszba kerül.
A VizsgaZH-n mindenképpen személyesen kell megjelenni.
Ez a forma csak olyan hallgatókat illet meg, akik önmaguktól is képesek magas színvonalon megtanulni a kurzus témáját. Ennek megfeleleően a kurzust ebben a formában csak legalább 4-es végosztályzattal lehet sikeresen elvégezni. Aki ezt nem éri el, az automatikusan „Nem vizsgázhat” státuszba kerül.
12. Érintett témák
1. A szoftver projektekről röviden: fázisok, szereplők, termékek, dokumentumok. A tantárgy során követett fejlesztési projekt ívének ismertetése. Projekt tervező és követő eszközök.
2. A követelmény-specifikáció, használati esetek és egyéb követelmény-ábrázolási technikák. Egy követelmény-analízis eszköz bemutatása. Teszt esetek.
3. A OO tervezési fázis. A modellezés jelentősége. Modellek és diagramok. Használati esetek felhasználása és kifejtése a modellezésnél.
4. A modellezés gyakorlati ismeretei. Osztály-diagrammok, elkészítésük. Adatmodellezés. További diagram típusok. Kód generálás bemutatása.
5. A példaalkalmazásnál felhasználható ill. felhasználandó technológiák (Java EE, Spring, adatbázisok, user interfész technológiák, stb.) átismétlése, áttekintése.
6. A példaalkalmazás architektúra tervezése. A komponensek és az egyes komponenseknél alkalmazandó technológiák meghatározása. Architektúra leírása komponens és interakciós diagramokkal.
7. A modellek pontosítása, mélyítése. Osztály- és objektumdiagramok, állapot- és szekvencia diagramok készítése a konkrét funkciókra. A kód generálás lehetőségei és korlátai. Néhány tervezési minta kiemelése, elemzése. Teszt-esetek generálása.
8. Az implementációs folyamat és támogató eszközei. A fejlesztői környezet szolgáltatásai és használata.
9. A kész alkalmazás áttekintése a fejlesztői környezetben. A kódolás formai szabályai és „best practices”. Kódolvasás és -véleményezés, mint minőségbiztosítási technika.
10. Tesztelés: unit testek készitese. Integrációs tesztek, teszt reportok. Teszt frameworkok. A teszt hatékonyságának, lefedettségének mérése.
11. Csoportmunka. Kód repository, felépítése, működése, és használata. Feladat- és problémakövetés eszközei, használata, kapcsolata a konfiguráció menedzsmenttel.
13. Javasolt irodalom:
egyik sem kötelező!!
(ld. még a tantárgyi website-on is)
Angolul:
Steve McConnell: Code Complete, Microsoft Press
Booch, Rumbaugh, Jacobson: The Unified Modeling Language User Guide, Addison Wesley
UML Distilled, Addison Wesley
Magyarul:
Sommerville: Szofver rendszerek fejlesztése, Panem kiadó
Nyéki Judit et al (ELTE): J2EE útikalauz Java Programozóknak
Varga L., Sike S.: Objektum elvű modellalkotás UML-ben
Hans Bergsten:Java Server Pages: A kiszolgálóoldali Java-fejlesztők kézikönyve (O’Reilly / Kossuth)
Jason Hunter: Java Szervletek Programozása (O’Reilly / Kossuth)
Online:
http://java.sun.com/learning/tutorial/index.html