Tantárgy » BMEVIMIAC20
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) |
|
||||||||||||
| 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
elérhetőség:
semerath.oszkar@vik.bme.hu
|
||||||||||||
| 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
- 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?
- 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. - 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. - Környezetfüggetlen nyelvtanok. Nyelvtanok fogalma, nyelvtervezés, nyelvtani elemzés.
Gyakorlat: nyelvtervezés Xtext technológiával. - 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 - 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. - 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. - 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. - 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). - 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). - 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). - 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. - 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. - 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.