K-INFO
HU
EN
Belépés

Szoftvertechnológia

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)
Szoftvertechnológia
Software Engineering
Tantárgykód BMEVIMIAB04
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) 3 0 1
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. Micskei Zoltán Imre
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/VIMIAB04
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 részletes tematikája

1. Bevezetés. A szoftverről és a szoftverfejlesztésről. Különbözik-e a szoftverfejlesztés más mérnöki területektől? Miben több a szoftvertechnológia, mint a programozás? Példák komplex szoftverekre és szoftverprojektekre. Mi kell egy sikeres szoftverfejlesztéshez?

Szoftverfejlesztési gyakorlatok

2. Verziókezelés alapelvek. Központosított és elosztott verziókezelés. Tipikus munkafolyamatok és minták (GitHub Flow, Mainline...).

3. Követelmények kezelése: A követelmények fontossága. Követelmények felmérése, elemzése, priorizálása. Követelmények típusai: funkcionális és nemfunkcionális követelmények. Kétirányú követhetőség. Követelmények változásának kezelése.
4. Tervezés és architektúra: Tervezési alapelvek (absztrakció, modularizáció). Szoftver architektúra elemei. Tervezési minták (design patterns). Tervek dokumentálása.
5. Forráskód kezelése: jó forráskód tulajdonságai. Kódolási ajánlások és szabványok alkalmazása. Kód felülvizsgálat (code review). Statikus analízis eszközök használata.
6. Tesztelés I: tesztelési alapfogalmak és célok. Tesztelés folyamata. Tesztelési szintek. Kockázatalapú tesztelés.
7. Tesztelés II: teszttervezési technikák (specifikáció és struktúra alapján).

Szoftver modellezése és UML

8. Szoftver modellezése: Miért modellezünk? Mit lehet modellezni? A Unified Modeling Language (UML) modellezési nyelvcsalád. Struktúra modellezése: osztálydiagram, példányok kezelése, csomagdiagram, komponensdiagram.
9. UML viselkedés modellezése I: használati eset (use case), aktivitásdiagram, szekvenciadiagram.
10. UML viselkedés modellezése II: állapotgép diagram, különböző nézőpontok összekapcsolása. Kitekintés.

Szoftverfejlesztési folyamatok

11. Szoftver életciklus lépései és termékei. Népszerű életciklus modellek (vízesés, V-modell, iteratív, inkrementális...).
12. Hagyományos és agilis szoftverfejlesztés. Agilis és Lean alapelvek. Példák: Scrum, XP.

Projekt- és people-menedzsment

13. A szoftver projektek irányítási vonatkozásai. Becslés, tervezés, követés, vezérlés. Agilis projektmenedzsment technikák és eszközök.
14. Mérés és elemzés a szoftverfejlesztésben. Folyamatok definiálása és követése.

 

A gyakorlatok/laborok részletes tematikája

1.     Szoftverfejlesztési munkafolyamatok, komplex szoftverek kezelése

2.     Verziókezelő eszköz használata (git), automatikus fordítás, folytonos integráció (GitHub)

3.     Kód stílus ellenőrzése, kód felülvizsgálat, statikus analízis eszköz használata

4.     Teszttervezés és implementálás, kódfedettség mérése 

5.     UML modellező eszköz használata alapvető diagramok segítségével

6.     UML-alapú objektumorientált tervezés gyakorlása

A tantárgy szoftver rendszerek tervezésének, fejlesztésének, karbantartásának tanítását tűzi ki célul, bemutatva a szoftver, mint termék előállításához szükséges mérnöki, támogató és menedzsment tevékenységeket, ezek néhány alapvető technikáját és módszerét. A tantárgy fő célja, hogy a hallgatók átfogó képpel rendelkezzenek a teljes szoftverfejlesztési folyamatról, beleértve a fejlesztési-, projektmenedzsment- és támogató folyamatokat.  Tudást szereznek az alapvető életciklus modellekről, folyamatfejlesztési modellekről és szabványokról. A tantárgyban megismert technikákat és módszereket tovább mélyítik a hallgatók a következő félévben a Szoftver projekt laboratórium c. tárgy (VIIIAB11) keretében projektszerű keretekben. A tantárgy sikeres teljesítése után a hallgató képes lesz (K2) elmagyarázni a szoftverfejlesztés tipikus lépéseit és módszertanait, (K3) verziókezelő és szoftverfejlesztést támogató eszközöket alapvető szinten használni, (K3) alapvető teszteket tervezni követelmények és kód struktúra alapján, (K3) egyszerűbb struktúra és viselkedési UML modelleket készíteni.  

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 laboratórium.

Tanulástámogató anyagok

Online források
Előadásfóliák és segédanyagok a tantárgy; weboldalán.Ian Sommerville: Szoftverrendszerek fejlesztése [Software; Engineering], 2. kiadás, Panem Kiadó, 2007Harald Störrle: Unified Modeling Language - UML; 2, Panem, 2007Robert C. Martin: Tiszta kód - Az agilis; szoftverfejlesztés kézikönyve, Kiskapu Kft., 2010Dorothy Graham et al.: A szoftvertesztelés; alapjai, Alvicom Kft., 2010; Titus Winters et al.: Software Engineering at Google, O'Reilly,; 2020

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) megoldani modellezési problémákat egyszerűbb modellezési nyelvek használatával (pl. állapotgépek vagy objektumorientált modellek).
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) megoldani modellezési problémákat egyszerűbb modellezési nyelvek használatával (pl. állapotgépek vagy objektumorientált modellek).
Általános szabályok
Követelmények: Szorgalmi időszakban: A laborokon való jelenlét a TVSZ szerinti mértékben kötelező.A laborok elkezdéséhez szintfelmérő értékelés sikeres teljesítése szükséges. Az aláírás megszerzéséhez a labor szintfelmérők 2/3-ának sikeres teljesítése szükséges. Az első 3 laborhoz tartozó szintfelmérőből legalább 2, a második 3 laborhoz tartozó szintfelmérőből szintén legalább 2 teljesítése kötelező.Két darab otthoni feladat megoldása. Az aláírás megszerzésének feltétele mindkét otthoni feladat megoldásának elfogadása. Vizsgaidőszakban: Az írásbeli vizsga két részből áll. Az elégséges vizsgához mindkét rész külön-külön min. 50%-os teljesítése szükséges. Az otthoni feladatok összesített értékelése 20%-os súllyal számít bele a végső érdemjegybe.   Pótlási lehetőségek: A laboralkalmak nem pótolhatók, valamint nem javíthatók.Mindkét otthoni feladat beadható késedelmesen az eredeti határidő utáni egy hétben.
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: Egyrészt az előadások tartalmaznak kiegészítő anyagrészeket, amik a tantárgy anyagrészeinek matematikai, algoritmikus alapozásait ismertetik meg az érdeklődő hallgatókkal. Másrészt 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: A tárgyban összesen 25 IMSc pont szerezhető: Maximum 5 pont a laborfoglalkozásokon megoldott extra feladatokra.Maximum 10 pont a vizsga IMSc feladata. Maximum 15 pont a házi feladat extra részéért. Az IMSc pontok megszerzése a programban nem résztvevő hallgatók számára is biztosított.
Ajánlott tantárgyak
- Kötelező: A programozás alapjai 2
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.