K-INFO
HU
EN
Belépés

Automatizált szoftverfejlesztés

Automated Software Engineering
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
Tantárgy neve (magyarul, angolul)
Automatizált szoftverfejlesztés
Automated Software Engineering
Tantárgykód BMEVIMIAC20
Tantárgyjelleg
Képzési szint
Kurzustípusok és óraszámok (heti/féléves)
Kurzustípus elmélet gyakorlat laboratóriumi gyakorlat
óraszám (heti) 2 2 0
jelleg (kapcsolt/önálló) kapcsolt
Tanulmányi teljesítmény/értékelés típusa vizsga
Tantárgy kreditértéke 5
Tantárgyfelelős
DR. Semeráth Oszkár
beosztás: egyetemi docens
Tantárgyat gondozó oktatási szervezeti egység
Mesterséges Intelligencia és Rendszertervezés Tanszék
Kar Villamosmérnöki és Informatikai Kar
Tantárgy weboldala http://www.mit.bme.hu/oktatas/targyak/VIMIAC20
Tantárgy elsődleges mintatantervi jellege
Közvetlen előkövetelmények – Erős előkövetelmény nincs
Közvetlen előkövetelmények – Gyenge előkövetelmény nincs
Közvetlen előkövetelmények – Párhuzamos előkövetelmény nincs
Közvetlen előkövetelmények – Mérföldkő előkövetelmény nincs
Közvetlen előkövetelmények – Kizáró feltétel nincs

Célkitűzés

Tantárgyprogram

Az előadások és gyakorlatok részletes tematikája

  1. Bevezetés: Automatizálás a szoftverfejlesztésben. Milyen termékek szerepelnek a szoftverfejlesztés különböző fázisaiban, milyen lépések vannak az egyes fázisokban, hogyan támogathatóak vagy automatizálhatóak ezek?
  2. Folytonos integráció és automatizálási lehetőségek. Automatikus fordítási, transzformációs lépések és tesztelés futtatása.
    Gyakorlat: build automatizálás (Gradle) és folytonos integráció (GitHub Actions) használatának gyakorlása.
  3. Nyelvtervezés (language engineering), szakterületspecifikus nyelvek. Modellezés, metamodellezés, gráf alapú modellek a gyakorlatban.
    Gyakorlat: Ecore, EMF példa nyelvtan készítése.
  4. Környezetfüggetlen nyelvtanok. Nyelvtanok fogalma, nyelvtervezés, nyelvtani elemzés.
    Gyakorlat: nyelvtervezés Xtext technológiával.
  5. Szerkesztő funkciók (Editorok), modern fejlesztőeszközök. Milyen funkciókat nyújt egy modern fejlesztőeszköz? Hogyan lehet kiegészíteni, személyre szabni ezeket?
    Gyakorlat: Eclipse plugin, Language Server Protocol és CodeMirror
  6. Kódgenerálás és modelltranszformációk. Kódgenerátorok és fordítóprogramok kapcsolata. Kódgenerálási technológiák. Gráf- és modelltranszformációk.
    Gyakorlat: Kódgenerálás példa.
  7. Szimulációs és hibakeresés (debugging). Modellek interpretálása, modell szemantikák. Megfigyelhetőség és kontrollálhatóság.
    Gyakorlat: Modellek futtatása és értékek megfigyelése.
  8. Programkód reprezentálása modellekkel. Vezérlési folyam (control flow) és adatfolyam (data flow) fogalmai.
    Gyakorlat: Absztrakt szintaxisfa (AST) építése és bejárása.
  9. Modellek és programkód ellenőrzése statikus analízis technikákkal. Mintaalapú statikus ellenőrzési technikák alkalmazása és kiegészítése.
    Gyakorlat: Új szabály készítése statikus analízis eszközhöz (SonarLint).
  10. Tesztelési technikák, fedettségi metrikák. Teszttervezési és generálási módszerek, automatizált tesztelés.
    Gyakorlat: Különböző fedettségmetrikák mérése (JaCoCo).
  11. Karbantartható és hatékony egységtesztelés (unit testing). Tesztelési minták és mit érdemes elkerülni (test smell). Izoláció megvalósítása teszt dublőrök segítségével (stub, mock).
    Gyakorlat: Egységtesztek refaktorlása, izoláció megvalósítása (Mockito).
  12. Teljesítménymérés és metrikák (szoftver komponensek). Teljesítménytesztek tervezése és futtatása, mérési adatok értékelése.
    Gyakorlat: teljesítmény mutatók mérése Java Microbenchmark Harness (JMH) és VisualVM technológiákkal.
  13. Tesztelési és mérési eredmények statisztikai elemzés. Mérési adatok vizualizálása, adatelemzése. Minőségi mutatók elemzése.
    Gyakorlat: szoftvertesztelési és teljesítménymérési adatok elemzése Jupyter Notebook használatával.
  14. Ipari esettanulmány, meghívott előadó.

 

A tantárgy a szoftver nyelvek tervezési folyamatát (software language engineering), a fejlesztőkörnyezetek és szoftverfejlesztés automatizálható funkcióit mutatja be, beleértve a környezetfüggetlen nyelvtanok tervezését, nyelvtani elemzés (parsing) folyamatát, automatizált folytonos integráció (continuous integration) megvalósítását, valamint a különböző tesztelési és teljesítménymérési technikák végrehajtását és statisztikai elemzését. A tantárgy célja, hogy a hallgatók megismerjék és kipróbálják a témában elérhető korszerű technológiákat, és tapasztalatot szerezzenek a nyelvtervezés és fejlesztés automatizálása terén.   A tantárgy tanulási eredményei Előadás A tantárgy követelményeit eredményesen teljesítő hallgató képes lesz (K3) szakterület-specifikus nyelvek tervezésére,(K2) nyelvtani elemzés folyamatának használatára,(K2) tesztelési és teljesítménymérés technikák bemutatására. Gyakorlat A tantárgy követelményeit eredményesen teljesítő hallgató képes lesz (K3) szöveges szintaxisok fejlesztésére,(K3) folytonos integrációs folyamatok konfigurációjára és használatára,(K3) tesztek automatikus futtatására és fedettségi metrikák mérésére, (K3) teljesítménytesztek futtatására és kiértékelésére.  

Tanulmányi eredmények

Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:

Tudás

Nincsenek rögzített tanulási eredmények.

Képességek

Nincsenek rögzített tanulási eredmények.

Attitűd

Nincsenek rögzített tanulási eredmények.

Autonómia és felelősség

Nincsenek rögzített tanulási eredmények.

Oktatási módszertan

Előadás és számítógépes gyakorlat.

Tanulástámogató anyagok

Online források
Előadásfóliák és segédletek a tantárgy; weboldalán.Martin Fowler, Rebecca Parsons, „Domain Specific; Languages", Addison-Wesley, 2010.Anneke G. Kleppe, „Software Language Engineering",; Addison-Wesley, 2008.Gerard Meszaros, „xUnit Test Patterns",; Addison-Wesley, 2007.; Jez Humble, David Farley, „Continuous Delivery", Addison-Wesley,; 2010

A tantárgy teljesítéséhez ajánlott előzetes ismeretek

Tudás típusú kompetenciák
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
A tárgy felvétele előtt a hallgatónak képesnek kell lennie (K2) elmagyarázni az imperatív programozási nyelvek működését,(K3) elkészíteni önállóan egy összetettebb programot magas szintű specifikáció alapján, (K3) struktúramodellekkel szoftvert modellezni.
Képesség típusú kompetenciák
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
A tárgy felvétele előtt a hallgatónak képesnek kell lennie (K2) elmagyarázni az imperatív programozási nyelvek működését,(K3) elkészíteni önállóan egy összetettebb programot magas szintű specifikáció alapján, (K3) struktúramodellekkel szoftvert modellezni.
Általános szabályok
Követelmények: Szorgalmi időszakban A félévvégi aláírás feltétele a tárgy anyagához kapcsolódó önálló otthoni feladat megfelelő színvonalú elkészítése. Vizsgaidőszakban A hallgatók a 15 fő alatti kurzuslétszám esetén szóbeli, egyéb esetben írásbeli vizsgát tesznek. Pótlási lehetőségek: Az otthoni feladat beadható késedelmesen az eredeti határidő utáni legfeljebb egy hétben. Idegen nyelvi részteljesítés követelményei: Angol nyelven elkészített házi feladat és beszámoló: 2 nyelvi kredit.
Teljesítményértékelési módszerek
Szorgalmi időszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Szorgalmi időszakban végzett teljesítményértékelések részaránya

Nincs megadva részarány.

Vizsgaidőszakban végzett teljesítményértékelések részletes leírása

Nincs megadva részletes értékelés.

Vizsgarészek részaránya

Nincs megadva részarány.

Érdemjegy megállapítása

Nincs megadva érdemjegy határ.

Jelenléti és részvételi követelmények

Nincs megadva jelenléti követelmény.

Javítás, ismétlés és pótlás különös szabályai

Nincs megadva.

Rövid leírás

Nincs megadva.

Részletes leírás
IMSc program: A tananyag mélyebb megértésére a házi feladathoz kapcsolódó extra részfeladatok megoldásával nyílik lehetőség. Ezek az extra részfeladatok segítenek jobban megérteni az előadáson kevésbé részletezett ismereteket, valamint elmélyedni egy kapcsolódó problémában. IMSc pontok: IMSc pontokat csak a jelest elért hallgatók szerezhetnek. A tárgyban összesen 25 IMSc pont szerezhető a házi feladat extra részfeladatának megoldásáért. Az IMSc pontok megszerzése a programban nem résztvevő hallgatók számára is biztosított.
Ajánlott tantárgyak

Nincs megadva.

A tantárgy elvégzéséhez szükséges tanulmányi munka

Nincs megadva munkaidő bontás.

Tantárgykövetelmények hatályossága
Tantárgykövetelmények hatályosságának kezdete:
Tantárgykövetelmények hatályosságának vége:
Tantervi elhelyezés

Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.