November - 2017
H K S C P S V
  01 02 03 04 05
06 07 08 09 10 11 12
13 14 15 16 17 18 19
20 21 22 24 25 26
27 28 29 30  

Tantárgy adatlap

Szoftver engineering

Tantárgy adatlap letöltése: Letöltés

A tantárgy kódja: 2SZ31NBK02M
A tantárgy megnevezése (magyarul): Szoftver engineering
A tantárgy neve (angolul): Software Engineering
A tanóra száma (Előadás + szeminárium + gyakorlat + egyéb): 2+4
Kreditérték: 5
A tantárgy meghirdetésének gyakorisága: őszi félév
Az oktatás nyelve: magyar
Előtanulmányi kötelezettségek: Informatikai rendszerek fejlesztése BSc
A tantárgy típusa: kötelező
Tantárgyfelelős tanszék: Számítástudományi Tanszék
A tantárgyfelelős neve: Dr. Csetényi Artur

A tantárgy szakmai tartalma: A tantárgy keretében a hallgatók megismerik a szoftver engineering, azaz a szoftverrendszerek fejlesztésének, implementálásának, verifikálásának és validációjának, valamint a fejlesztés menedzselésének legfontosabb kérdéseit, eszközeit, módszereit, technikáit és technológiáit. A félév során a teljes rendszerfejlesztési életciklus tárgyalásra kerül.
Az előadássorozat tárgyalja hogyan lehet nagy komplexitású rendszereket költséghatékony módon fejleszteni úgy, hogy azok egyúttal eleget tesznek az üzembiztonság összetett kritériumának. Részletes tárgyalásra kerülnek a gyors szoftverfejlesztés technikái, az agilis módszerek, az extrém programozás, a szoftver újrafelhasználás és a komponensalapú fejlesztés kérdései, a verifikáció és validáció, a tesztelés és a szoftverevolúció témakörei.
A szemináriumok témái között szerepel az informatikai irányultságú rendszerszervezés, elemzés, tervezés, az előadások témája felöleli az implementáció, validáció és evolúció kérdéseit. A hallgatók megismerkedhetnek a modern szoftver mérnöki tevékenység főbb kihívásaival és az arra adott gyakorlati válaszok előnyeivel és buktatóival. Az üzleti problémák által állított kihívások hatékony megválaszolása érdekében külön hangsúlyt kap az iteratív és prototípus alapú tervezés-fejlesztés módszertana, melyet használati esetekre épített megközelítésben és az objektum-orientált elemzés és tervezés eszköztárát felhasználva ismerhetnek meg a hallgatók.
A tantárgy határozottan épít a BSc-s előismeretekre (Informatikai rendszerek fejlesztése c. tárgy). Az abban megtanult fogalmak, koncepciók, technikák ismerete nélkülözhetetlen a jelen kurzus megértése szempontjából.

Évközi tanulmányi követelmények: Az informatikai rendszerek fejlesztéséhez szükséges készségek csak kitartó gyakorlás és komoly saját munkatapasztalat révén sajátíthatók el. A tanterv szerinti gyakorlat ehhez csak kiindulópontként szolgál, az ezt meghaladó önálló, folyamatos tanulás, gyakorlás elengedhetetlen. A gyakorlatokon való részvétel kötelező! Maximum 25% igazolt hiányzás elfogadható

Vizsgakövetelmény: Gyakorlati jegy.

Az értékelés módszere: Az osztályzat gyakorlati jegy, amely félévközi folyamatos számonkérésen alapul, s az alábbi ponthatár-táblázat szerint kerül kiszámításra:

Ponthatárok érdemjegy
0 50 1 elégtelen
51 63 2 elégséges
64 76 3 közepes
77 89 4 jó
90 100 5 jeles

A félév utolsó óráján lehetőség van hallgatói prezentációk tartására, amelyekkel extra pontokat lehet szerezni.
Az elmaradt ZH-k pótlására a vizsgaidőszak elején egyetlen alkalommal van lehetőség. Mindazok, akik utóvizsgát kényszerülnek tenni, a félév teljes anyagát lefedő írásbeli dolgozatot írhatnak 55 pontért. A 2. és 3. projektfeladatból származó pontokat a hallgató magával viszi az utóvizsgára. Az utóvizsgán az osztályzat szintén a megadott ponthatár-táblázat szerint kerül kiszámításra.
Az elméleti ZH-k írásakor segédeszközök nem használhatók.

Tananyag leírása: Elméleti és gyakorlati tematika témakörei:
1. GYORS SZOFTVERFEJLESZTÉS. Agilis módszerek. Extrém programozás. Scrum. Eldobható és evolúciós szoftverprototípusok készítése. RAD technikák.
SZEMINÁRIUM: Alapfogalmak. A szoftverfejlesztés három alappillére: módszertan, életciklus és projektmenedzsment. Modell, modellezés, diagramok és vizuális kommunikáció a mérnöki munkában: diagram mint nyelv. Feladatkiadás és az 1. feladat elvárásainak tisztázása. A felhasználói elvárásoktól a formális specifikációig: követelményjegyzék a gyakorlatban. A használati eset fogalma és ábrázolása.
2. ÚJRAFELHASZNÁLÁS. Szoftver újrafelhasználás előnyei és problémái. Tervezési minták. Alkalmazási keretrendszerek. COTS-termékek.
SZEMINÁRIUM: Használati esetek és leírásuk (definíciós, rövid és teljes), használati eset diagram (felhasználók mint aktorok, esetek, asszociációk, absztrakciók). A UML alapjai. Az iteratív fejlesztés gyakorlati kérdései. Használati esetek és a felhasználói hozzáférés felületei.
3. KOMPONENSALAPÚ SZOFTVERFEJLESZTÉS.
SZEMINÁRIUM: 1. feladat megbeszélése – 2. feladat elvárásainak tisztázása. Az „objektum” fogalma a szoftver mérnöki munkában és az objektum-orientált módszertan. Objektum és osztály. Tulajdonságok és viselkedés. Objektumok elemei: név, attribútumok, műveletek – és ábrázolásuk. A szoftverfejlesztés mint projekt – ki, mikor(ra), mennyiért.
4. GRAFIKUS FELHASZNÁLÓI FELÜLETEK TERVEZÉSÉNEK ALAPELVEI. Tervezési kérdések. Felhasználói interakciók. Információmegjelenítés. GUI prototípus elkészítése.
SZEMINÁRIUM: A tématerületek (domain) elemzése és az eredmények formális megjelenítése (analízis) osztálydiagramon. Objektumok közötti kapcsolatok: öröklődés, asszociáció, aggregáció (kompozíció, bennfoglalás, és tartalmazás) – és ábrázolásuk. Jacobson tipológiája (tárgyi, interfész és kontrol objektumok).
5. VERIFIKÁCIÓ és VALIDÁCIÓ: Szoftverek átvizsgálása, programátvizsgálási folyamat, automatizált statikus elemzés, Cleanroom-szoftverfejlesztés
SZEMINÁRIUM: 2. feladat megbeszélése – 3. feladat elvárásainak tisztázása. Objektumok és üzenetküldés. Az objektum alapú tervezés alapszabályai. Analízis diagramok transzformációja tervezési diagramokká. Jacobson osztálytípusok megjelenítése a tervezési diagramon. Dinamikus modellek: Szekvenciadiagram (osztályszerep, osztályszerep életvonala, aktivációs életvonal, üzenet) és együttműködési diagram.
6. SZOFTVEREK TESZTELÉSE: Rendszertesztelés, integrációs tesztelés, teljesítménytesztelés, komponenstesztelés, interfésztesztelés. Teszteset-tervezés, partíciós tesztelés, útvonaltesztelés, tesztautomatizálás.
SZEMINÁRIUM: Dinamikus modellek: objektumok állapota és állapotdiagram (object state) – állapotok és átmenetek. Csapatszervezés és vezetés. Szoftver projektek problémái – a fejlesztések sikertelenségének szimptómái, tipikus okai, és megelőzésük.
7. SZOFTVEREVOLÚCIÓ. Szoftverkarbantartás, evolúciós folyamatok, ősrendszerek evolúciója. Lehman-Belady törvények.
SZEMINÁRIUM: Felhasználói felületek tervezése. Megbeszélés a feladattal kapcsolatban - kölcsönös kritikai visszajelzés.
8. SZOFTVERFEJLESZTÉS KÖLTSÉGBECSLÉSE.
SZEMINÁRIUM: A dokumentációval szembeni elvárások. OO tervezési minták a gyakorlatban. Konzultáció a 3. feladattal kapcsolatban. 3. feladat beadási határidő. A tesztelés szerepe az ellenőrzésben, tesztelési módszerek (használati esetekre építve), és tesztelési terv/stratégia. A 3. feladat eredményeinek megbeszélése.

Órarendi beosztás: Neptun szerint.

Kompetencia leírása: A tárgy célkitűzése kettős. Egyrészt, a hallgató a kurzus során elsajátítja azokat az ismereteket, amelyek alkalmassá teszi őt arra, hogy aktív résztvevője legyen közepes- és nagyméretű informatikai rendszerfejlesztési projekteknek, s azokban különböző szerepköröket legyen képes betölteni. A tárgy nem a programozással kapcsolatos kérdésekre fókuszál, hanem a szoftver-újrafelhasználás, a komponensalapú szoftverfejlesztés, a verifikáció és validálás, a tesztelés, a karbantartás és szoftverevolúció, valamint a fejlesztés menedzselésének kérdéseire.
Másrészt, a tantárgy sikeres abszolválása után a hallgatók képesek lesznek:
megvitatni a szoftvermérnöki munka feladatait és a kapcsolódó módszertanokat történeti fejlődésük kontextusában. Megérteni és leírni a tervezési módszertanok, a fejlesztési életciklus modellek, és a szoftver projekt menedzsment fogalmait és kritikai szemmel értékelni ezek szerepét a modern szoftvermérnöki munka eszköztárában. Alkalmazni az entitás-alapú és az objektum orientált elemzés és tervezés módszereit üzleti problémák informatikai megoldásában. Leírni és alkalmazni a felhasználói követelmények összegyűjtésének és elemzésének elveit és főbb módszereit. Dokumentálni a felhasználói elvárásokat egy adott probléma terület (pl. iparág-specifikus feladatok) vonatkozásában. Használati eset diagramot készíteni (UML szabvány szerint) a feltárt elvárások formális és funkcionális megfogalmazása érdekében – az egyes használati esetekhez tartozó részletes leírásokkal együtt. Folyamat térképen, ill. entitás-kapcsolat és objektum-orientált diagramon modellezni a tématerület valóságát. A követelményekhez illeszkedő megoldásokat tervezni és a kapcsolódó mérnöki döntéseket megfelelően kommunikálni. Alkalmazni az SSADM és a UML jelölésrendszerét és e megközelítések alkalmazásával gyakorlati problémákat megoldani. CASE eszközöket alkalmazni a szoftvertervezésben. Kialakítani és végrehajtani tesztelési stratégiát és terveket a különböző tesztelési eljárásokra alapozva. Követni a grafikus felhasználói felület (GUI) tervezés elfogadott irányelveit (és gyakorlatát) a rendszerek használhatósága és a pozitív felhasználói élmény érdekében. Betartani a rendszer dokumentáció legalapvetőbb elvárásait a mind a hatékony projekt kommunikáció mind a hatásos felhasználó-támogatás érdekében. Alkalmazni a megvalósíthatósággal szembeni elvárásokat és a projekt vezetés pragmatikus fogásait

Félévközi ellenőrzések: A hallgatók a félév folyamán két alkalommal elméleti zárthelyi dolgozatot írnak Moodle-ban az addig tárgyalt tananyagból max. 20-20 pontért. Az első ZH időpontja a 7. héten, a másodiké a 13. héten lesz. (Az ütemezéstől kényszerű eltérések elképzelhetők). Igazolt hiányzás esetén a ZH-k a vizsgaidőszak elején pótolhatók. (Az igazolásokat a ZH után 3 napon belül kell bemutatni.)
A szemináriumokon a számonkérés folyamatos, a hallgatók aktív részvétele szükséges és elengedhetetlen. Három projektfeladatot kell beadni az alábbiak szerint (részletes leírás kiadása az első órán):
1. feladat (egyénileg): követelmények és használati esetek egy adott problémára (első iteráció), max. 15 pont - beadás a 4. héten;
2. feladat (csoportban): követelmények és használati esetek egy adott problémára (második iteráció) és objektum orientált elemzés (első iteráció), max. 20 pont - beadás a 8. héten;
3. feladat (átszervezett csoportokban): objektum orientált elemzés (második iteráció) és objektum orientált tervezés beleértve a UI és kontroll objektumokat (első iteráció), max. 25 pont - beadás a 13. héten.
A félév sikeres zárásának feltétele, hogy a két elméleti zárthelyi dolgozat eredménye külön-külön legalább 7 pont legyen, illetve az első projektfeladatra kapott pontszám legalább 5 pont legyen továbbá az egész féléves összpontszám meghaladja az 50%-ot.
Azon hallgatók, akik a félév során nem teljesítik a minimum követelményeket, egy alkalommal összevont vizsgát tehetnek a vizsgaidőszak első hetében, amelyen az elméleti, illetve az 1. (egyéni) feladat gyakorlati ismeretei számonkérésre kerülnek.

A hallgató egyéni munkával megoldandó feladatai: Projektfeladat megoldása a szemináriumvezető instrukcióinak megfelelően.

Szak neve: Gazdaságinformatikus mesterszak (M.Sc)

Irodalomjegyzék:
Kötelező irodalom:

  • Sommerville, I.: Szoftverrendszerek fejlesztése: Software engineering, második, bővített, átdolgozott kiadás, Panem Kiadó, 2007.
  • Csetényi Arthur: Informatikai rendszerek fejlesztése, in: Informatika alapjai, pp. 271-436, Computerbooks, 2001.

Ajánlott irodalom:

  • Lunn, K: Software Development with UML, Palgrave, 2002. (ISBN 9780333985953)
  • Maksimchuk, R.A, and Naiburg, E.J.: UML földi halandóknak, Kiskapu kiadó (Addison Wesley fordítása), 2006 (ISBN 9789639637146)
  • Satzinger, J.W., Jackson, R.B., Burd, S.D: Introduction to Systems Analysis and Design, 6th ed., CENGAGE Learning, 2012. (ISBN-13: 9781111972264 / ISBN-10: 1111972265)
  • Whitten, J.L. and Bentley, L.D.: Systems Analysis and Design Methods, 7th ed., McGraw Hill, 2006. (ISBN: 9780071107662 – international edition)
  • Dennis, A., Wixom, B.H., and Tegarden, D.: Systems Analysis and Design with UML version 2.0, an Object-Oriented Approach, 5th ed., Wiley, 2015. (ISBN-13: 978-1118804674 ISBN-10: 1118804678)
  • Ashrafi, N. and Ashrafi, H.: Object-Oriented Systems Analysis and Design, using the Unified Modelling Language, Pearson Education, 2009. (ISBN-10: 0131824082, ISBN-13: 9780131824089)
  • Bennett, S., McRobb, S., and Farmer, R.: Object-Oriented Systems Analysis and Design Using UML, 4th edition, McGrawHill, 2010. (ISBN-13: 978-007712536-3 ISBN-10: 007712536-3)
Ajánlott irodalmak:
Kötelező irodalmak:
Sommerville: Szoftverrendszerek fejlesztése: Software engineering, második, bővített, átdolgozott kiadás, Panem Kiadó, 2007.
Megtalálható a Központi Könyvtárban
Csetényi Arthur: Informatikai rendszerek fejlesztése, in: Informatika alapjai, pp. 271-436, Computerbooks, 2001.
Megtalálható a Központi Könyvtárban

 
A tantárgy oktatói:

Csáki Csaba, Dr. Csetényi Artur

Utolsó módosítás:

Kurzusok

Kurzus kódTipusFélévOktatói
GGyakorlat2017/18/1Csáki Csaba
EElmélet2017/18/1Dr. Csetényi Artur


A "Tantárgyfelelős tanszék", a tantárgyfelelős neve a tantárgy oktatói és a kurzusinformációk automatikusan frissülnek a tanulmányi rendszerünk alapján.