K-INFO
HU
EN
Belépés

Szoftvertechnikák

Software Techniques
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)
Szoftvertechnikák
Software Techniques
Tantárgykód BMEVIAUAB00
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 0 2
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. Kővári Bence András
beosztás: egyetemi docens
Tantárgyat gondozó oktatási szervezeti egység
Automatizálási és Alkalmazott Informatikai Tanszék
Kar Villamosmérnöki és Informatikai Kar
Tantárgy weboldala
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
Előadás

 1. Felügyelt futtatókörnyezetek, .NET alapok, többkomponensű alkalmazások, külső komponensek használata.

2. Modern nyelvi eszközök .NET környezetben (tulajdonság, metódusreferencia, esemény, attribútum).

3. Modern nyelvi eszközök .NET környezetben: lambda függvények. Érték és referencia típusok. Nem felügyelt objektumok életciklus menedzsmentje alapszinten (destruktor, dispose, using blokk). Async-await alapok.

4. Vastagkliens/desktop alkalmazások fejlesztésének alapjai .NET környezetben (felületobjektumok példányosítása, tartalmazási hierarchia, layout, alapvezérlők, alapesemények).

5. Vastagkliens alkalmazások fejlesztése, folytatás. Adatkötés, MVVM minta.

6. Többszálú alkalmazások fejlesztése .NET környezetben: alapok.

7. Többszálú alkalmazások fejlesztése .NET környezetben: szinkronizációs problémák és megoldásuk (zárolási technikák, események). Threadpool fogalma és használata. Holtpont elkerülésének technikái.

8. Tervezési minták: Áttekintés, szerepük.  Kiterjeszthetőséghez kapcsolódó tervezési minták: Template Method, Strategy.

9. Tervezési minták: Observer. Létrehozási minták: Singleton, Factory Method, Abstract Factory, Dependency Injection.

10. Parancsvégrehajtáshoz kapcsolódó tervezési minták: Command, Command Processor, Memento. Adapter, Composite, Facade.

11. Adatbázisok programozása felügyelt környezetben. Architekturális tervezési minták bevezető.

12. Architekturális tervezési minták.

13. Haladó nyelvi eszközök: TAP, aszinkron programozás, async-await stb.
 
Labor

1. C# alapok. Kódgenerálás modell alapján. Haladó objektumorientált koncepciók gyakorlása: mikor használjunk absztrakt őst, mikor interfészt, a két technika kombinálása.

2. Önálló feladat: gyakorlópéldák C# alapok, Base Class Library, haladó objektumorientált koncepciók témakörben.

3. Tulajdonság, metódusreferencia, esemény, attribútum, lambda függvények

4. Önálló feladat: gyakorlópéldák tulajdonság, metódusreferencia, esemény, attribútum, lambda függvények témakörben.

5. Vastagkliens alkalmazások fejlesztésének alapjai .NET környezetben.

6. Önálló feladat: gyakorlópéldák vastagkliens alkalmazások fejlesztésének alapjai .NET környezetben.

7. Többszálú alkalmazások fejlesztése .NET környezetben. Zárak és események használata. 

8. Önálló feladat: gyakorlópéldák többszálú alkalmazásfejlesztés témakörben.

9. Az MVVM minta alkalmazása.

10. Önálló feladat: az MVVM minta alkalmazása.

11. Tervezési minták.

12. Önálló feladat: tervezési minták alkalmazása.

13. Adatbázisok programozása felügyelt környezetben.

 

14. Önálló feladat: tervezési minták alkalmazása.


A tárgy alapvető célja, hogy elmélyítse a korábbi félévekben megkezdett számítógépes problémamegoldás terén szerzett ismereteket, valamint az objektumorientált paradigmát követve kiszélesítse a szoftverfejlesztés technikáinak spektrumát. A tárgy bemutatja a C# nyelv alapjait, annak korszerű nyelvi eszköztárára fókuszálva (tulajdonságok, eseménykezelés, lambda függvények stb.). A hallgatók elsajátítják a modern eseményvezérelt programozás legfontosabb módszereit, a grafikus felhasználói felület kialakításának struktúráit és programozási alapjait, valamint megismerik a modern felügyelt futtatókörnyezetek és osztálykönyvtárak fontosabb szolgáltatásait (alaposztályok, adatkezelés alapok, párhuzamos feldolgozás, szinkronizációs technikák stb.). Ezen túlmenően a tárgy ismerteti a szoftverrendszerek tervezésének kapcsán a gyakrabban használt architekturális és tervezési mintákat, valamint ezek szerepét a szoftverfejlesztés folyamatában.  A tárgy a minták elméleti ismertetésén túlmenően esettanulmányokon és laborfoglalkozások keretében bemutatja a fontosabb minták gyakorlatban történő alkalmazástechnikáját.   Célkitűzését a tárgy az előző félévekben megszerzett C és C++, Java nyelvi tudásra, valamint az UML nyelv alapjaira építve éri el. A laborok anyaga folyamatosan követi és kiegészíti az előadások tematikáját, azok mélyebb megértését teszi lehetővé.

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

Tanulástámogató anyagok

Online források
Benedek Zoltán: Szoftvertechnikák egyetemi jegyzetek és; diasorok elektronikus formában.; Gamma, Helm, Johnson, Vlissides: Design Patterns,; Addison-Wesley, 1994

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 C++ programozási nyelv, Java és UML alapok ismerete.
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 C++ programozási nyelv, Java és UML alapok ismerete.
Általános szabályok
Követelmények: a. A szorgalmi időszakban:  (1) Az ismeretek alkalmazását és készségszintű megértését a félév során folyamatosan tartott laboratóriumi foglalkozások segítik. A laboratóriumi foglalkozások egy részén kötelező a részvétel, más része önálló feladatmegoldást igényel, melynek eredményét a hallgatóknak a tárgy honlapjára kell feltölteni. (2) Az ismeretek átfogó és részletes áttekintését a szorgalmi időszak alatt egy alkalommal nagy zárthelyivel mérjük.    Az aláírás feltételei: ·        Legalább elégséges szintű zárthelyi eredmény a pótlási héttel bezáróan. ·        A 7 páratlan sorszámú laboratóriumi foglalkozásból 6-on kötelező a jelenlét. A pótlási héten egy laborgyakorlat pótolható. A laborgyakorlatokon végig jelen kell lenni, és az oktatóval együtt kell dolgozni. A 7 páros sorszámú laboratóriumi foglalkozás 7 önálló (melyek között lehetnek összevontak) feladatmegoldást jelent. A hallgatók a feladatokat a félév során folytatólagosan kapják meg. A megoldáshoz igény esetén a laboridőpontokban konzultációs lehetőséget biztosítunk. A feladatok megoldását a megadott határidőn belül fel kell tölteni. Pótbeadásra háromszor van lehetőség. Pótbeadásra akkor van szükség, ha a hallgató az adott feladatot nem adta le határidőre, vagy leadta, de a megoldás minősége nem éri el az elfogadható szintet. b. A vizsgaidőszakban: A vizsga írásbeli. A kreditpont megszerzésének feltétele: legalább elégséges vizsgaosztályzat elérése. Pótlási lehetőségek: A sikertelen zárthelyi a szorgalmi időszakban tartott pótzárthelyi dolgozat legalább elégséges szintű megírásával pótolható. A zárthelyi ezt követően a pótlási héten pótolható a TVSZ szerint (anyaga megegyezik a zárthelyi anyagával). A vizsgák a TVSZ-nek megfelelően pótolhatók.
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: Az emelt szintű ismeretek elsajátítását emelt szintű laboratóriumi foglalkozások és önálló feladatok segítik. Az emelt szintű laboratóriumi foglalkozásokon a gyorsabb haladás több, összetettebb feladat megoldását teszi lehetővé. IMSc pontok: A tárgyból 25 IMSc pont szerezhető.Sikeresen megoldott többletfeladatokkal a nagyzárthelyin 5 pont, a vizsgán 5 pont, önálló feladatok megoldásával 15 pont szerezhető. Adott számonkérés vonatkozásában IMSc pontot az szerezhet, aki a számonkérésen a kitűzött normál feladatok megoldásával a jeles szintet eléri. Az IMSc pontok megszerzése a programban nem résztvevő hallgatók számára is biztosított.
Ajánlott tantárgyak
A tárgyat csak azok vehetik fel, akik teljesítik a következőket: Programozás alapjai 1-2. teljesítése  ÉS Szoftvertechnológia tárgyból aláírás megszerzése
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.