Vizsga és záróvizsga információk
A vizsga menete:
A vizsgán a tételsor első és második feléből 1-1 tételt kell húzni. Ezek után 30 perc áll rendelkezésre a felkészülésre, amely során ajánlott írott vázlatot készíteni a tételekről. A vázlat alapján a vizsga során elbeszélgetünk az anyagról, és a vizsgajegy "kialakul". Ez azt jelenti, hogy akár más tételek is érintőlegesen terítékre kerülhetnek.
2021-as változások távoktatás miatt:
- A vizsgázókat a Neptun névsor szerinti sorrenben hívom fel én Teams-en (vizsgalapon szereplés sorrendje, ami 99%-ban név szerint van sorba rendbezve). Az @edu.bme.hu azonosítóját mindenkinek tudom a tárgyhoz rendelt MS Teams csoport alapján (legalábbis nagyon remélem). Ha valaki nem volt ott a híváskor, akkor privát üzenetben jelezze, hogy ismét elérhető (ne hívjon vissza, 2-3 perc után belefogok a következő hallgató vizsgáztatásába).
- A vizsga szóbeli, én adok 1-1 tételt, és arról felkészülési idő nélkül kell beszélni. A felelet során nem hosszú részletes ismertetést várok, hanem a tétellel kapcsolatos fontos fogalmak felsorolását, és azoknak a kapcsolódásának a bemutatását (rövid és kompakt válasz). Ez után rákérdezek kisebb részletekre, és azokat kell mélyebben bemutatni, de szintén a fenteknek megfelelően, vázlatosan.
- A vizsga előtt teszteljétek a WEB kamerátokat és a hangrendszert. Lehetőség szerint használjatok fejhallgatót, fülhallgatót.
- Az első tapasztalatok alapján az elektronikus szóbeli kicsit tovább tart, ezért egy vizsgázóra 20 percet, de akár 25 percet is számítani kell, ennek megfelelően becsülhető kb. az az időpont, amikor a névsor alapján sorra kerültök.
A tárgyat záróvizsgaként választók számára is az alábbi a tételsor! A záróvizsgán a tételekből 1-et választ a bizottság, de a keresztkérdések során persze bármelyik téma előkerülhet itt is. A felet során nem hosszú részletes ismertetést várok, hanem a tétellel kapcsolatos fontos fogalmak felsorolását, és azoknak a kapcsolódásának a bemutatását (rövid és kompakt válasz). Ez után rákérdezek kisebb részletekre, és azokat kell mélyebben bemutatni, de szintén a fenteknek megfelelően, vázlatosan.
Nyilván a tételek nem egy az egyben fordíthatók le konkrét diákra (ezért sem adtam meg ilyen infót), de azért konkrét diasorra igen (JAVA és freeRTOS esetén két sorra néha, hiszen ezek a gyakorlatok külön mentek). Minden tételnél egy értelmes gondolatsorba kéne foglalni a mondanivalót az előadás (diák) alapján...
Tételsor:
- Szoftvertechnológia fogalma, humán aspektusok, beágyazott SW speciális tulajdonságai, szoftver minőség
- Komplex SW rendszerek problémái és azok kezelése, előre gyártott elemek a SW fejlesztésben
- Programozási paradigmák és azok fejlődése, strukturáltság, tipikus programozási paradigmák beágyazott rendszerekben
- Programozási nyelv korlátozásának okai, megoldásai, szabályok, a MISRA C alapjai; MISRA C deklaráció és inicializáció
- A MISRA C alapjai, esszenciális típus modell, konverziók, vezérlési szerkezetek, stb.
- Objektum orientált programozás alapjai, osztály és objektum viszonya, objektum részei, hivatkozás, tartalmazás, objektum orientáltság ismérvei, objektum orientáltság a JAVA-ban
- Az objektum orientáltság ismérvei részletesen bemutatva, példákkal. Objektum típusa, a típus által hordozott információ bemutatása, polimorfizmus és a típus kapcsolata
- Objektum részei, állapot, viselkedés, élettartam, interfész, JAVA példák
- Perzisztens objektumok és a velük kapcsolatos technológiák, JAVA példák
- Objektumok és osztályok közötti kapcsolatok, sablonok, JAVA példák
- Párhuzamos eseményvezérelt programozás alapfogalmai és azok kapcsolatai
- Feladat fogalom, feladat állapota, feladat ütemezés, egyszerű ütemezési algoritmusok, freeRTOS elemzése ilyen szempontból
- Összetett ütemezési algoritmusok, idő és kezelése és annak kapcsolata az ütemezéssel
- Operációs rendszer és kapcsolata a HW-vel, HW architektúrák (egyprocesszoros, SMP, NUMA, elosztott rendszer), freeRTOS és Linux elemzése ilyen szempontból
- Feladat megvalósítás/leírása, az egyszerű RR architektúrától (RR, RR+IT, függvénysor) a folyamatokig/szálakig, folyamatok és szálak megvalósításának HW aspektusai, freeRTOS és Linux elemzése ilyen szempontból
- Feladatok együttműködése általában, közös erőforrásra várás megoldása és annak kapcsolata az OS-sel, azon belül részletesen közös memória esetén alkalmazható megoldások
- Feladatok együttműködése általában, közös erőforrásra várás megoldása és annak kapcsolata az OS-sel, azon belül részletesen üzenet alapú kommunikáció (IPC) esetén alkalmazható megoldások
- Tipikus hibák feladatok együttműködése esetén, prioritás inverzió és elkerülése, holtpont, monitor alapötlete és megvalósításai
- Távoli eljárás és metódus hívás (RPC és RMI) alapötletei és megvalósításai részletesen, tipikus elosztott rendszer architektúrák (PubSub, virtuális adatbusz, proxy, bróker).
- Modell alapú szoftverfejlesztés alapötlete, kapcsolata a mérnöki problémamegoldás módszereivel, fejlesztési módszerek és módszertanok, a modell használatának lehetőségei a fejlesztési folyamatban, a közös jelölésrendszer fontossága, UML kialakulása és alapjai, UML profilok, SysML
- UML és a SysML diagramok és azok kapcsolata, az egyes diagramok felhasználása vízesés modell esetén
- UML use-case és osztálydiagram, valamint azok felhasználása
- UML aktivitás és szekvencia diagram, valamint azok felhasználása
- UML állapotdiagram és felhasználása, UML állapotdiagram implementációja, YAKINDU Statechar Tools, egyszerű SW arhitektúrák FSM megvalósítására és azok összehasonlítása