Témakörök részletezése és felkészülést segítő források

Szoftvertechnikák

Témakörök Jegyzet, tankönyv oldalszáma
1. Felügyelt futtatókörnyezetek,  .NET alapok: Felügyelt futtatókörnyezetek jellemzői, felügyelt kód és adat, garbage collector, CLR, fordítás és futtatás folyamata .NET környezetben, assembly (fogalma, privát/azonosított, DLL hell) [1]
2. Modern nyelvi eszközök C# nyelven: property, delegate, event, .NET attribute, illetve ezek gyakorlati alkalmazása (kódrészletekkel illusztrálása és/vagy konkrét feladat megoldása) [1]
3. Többszálú alkalmazások fejlesztése .NET környezetben; folyamat (fogalma, jellemzői, programozása), szálkezelés alapjai (fogalma, ütemezése), többszálú alkalmazások előnyei (részletes magyarázattal), szálak és folyamatok összehasonlítása, szálak indítása, előtér és háttérszálak, szálkezeléshez kapcsolódó műveletek és tulajdonságok, szálak prioritása, a kölcsönös kizárás problémájának ismertetése páldákkal, .NET zárolási konstrukciók áttekintése, a lock használata, jellemzői, alkamazása példákban, volatile, szálak kiléptetése, Thread.Join, jelzésre alkalmas szinkronizációs konstrukciók (WaitHandle, ManualResetEvent és AutoResetEvent) részletes ismertetése, alkalmazása példákban, szálak és Windows Forms kapcsolata (Control.Invoke művelet), thread-pool fogalma, előnyei és használata, többszálú alkalmazások hátrányai, holtpont elkerülésének/kezelésének technikái [1]
4. Szoftverarchitektúrák; Dokumentum-nézet (Document-View): koncepció, előnyök, osztály és szekvenciadiagram magyarázattal. Csővezeték (Pipes and Filters) architektúra: fogalmak, forgatókönyvek ismertetése peszeudókóddal és szekvenciadiagrammal, előnyök és hátrányok. [1]
5. Információs rendszerek többrétegű architektúrái; Két- és háromrétegű architektúra részletes ismertetése; ábrákkal, előnyök és hátrányok bemutatása [2] 239-245
6. Tervezési minták; A tervezési minták lényege, használata, a leírás szempontjai. Adott minta részletes ismertetése: Abstract Factory (Elvont gyár), Factory Method (Gyártófüggvény), Singleton (Egyke), Adapter (Illesztő), Composite (Összetett), Proxy (Helyettes), Memento (Emlékeztető), Observer (Megfigyelő), Strategy (Stratégia) [3] 3-32, 86-95, 106-116, 128-135, 141-153, 165-175, 210-220, 287-295, 296-306, 317-326

Felkészülést segítő források

  1. Letölthető segédletek, https://www.aut.bme.hu/Upload/Course/VIAUAB00/publikus_anyagok/SZT%20felvi.zip
  2. Martin Fowler: Analysis Patterns: Reusable Object Models, Addison-Wesley, 2001
  3. E. Gamma, R. Johnson, R. Helm, J. Vlissides: Programtervezési minták, Kiskapu Könyvkiadó, 2004

Szoftvertechnológia

Témakörök Jegyzet, tankönyv oldalszáma
A szoftverfejlesztési folyamat és modelljei (vízesés, spirális, az iteratív és inkrementális modellek, agilis megközelítés) [1] 4. és 17. fejezet (64-90, 395-416)
Követelmények kezelése és specifikálás [1] 6. fejezet (119-141)
Architekturális és részletes tervezés [1] 11. fejezet (245-266)

Objektumorientált modellezés és tervezés.
Diagramok UML jelölésrendszerrel: use-case diagram, osztálydiagram, kommunikációs diagramok (kollaboráció és szekvencia), állapotdiagram, aktivitás-diagram

[1] 8. és 14. fejezet (173-190, 317-339).
[2] 4. fejezet (16-25),  6. és 7. fejezet (38-54), 11. fejezet (84-97), 8. fejezet (55-66), 5. fejezet (26-37)

Verifikáció és validáció, tesztelés [1] 22. fejezet (523-542), 23. fejezet (546-571)
Projektek menedzselése , minőségmenedzsment, konfigurációmenedzsment. [1] 5. fejezet (94-109), 27. fejezet (651-674), 29. fejezet (698-710)
Folyamatok fejlesztése [1] 28. fejezet. (675-695)

Felkészülést segítő források

  1. Ian Sommerville: Szoftverrendszerek fejlesztése - Software Engineering, 2. kiadás, Panem Kiadó, 2007
  2. Tarczali Tünde: UML diagramok a gyakorlatban, Typotex Kiadó, 2011, http://www.tankonyvtar.hu/hu/tartalom/tamop425/0008_tarcali/Tarczali_UML_diagramok_1_1.html

Adatbázisok

Témakörök Jegyzet, tankönyv oldalszáma
1. Adatbáziskezelő rendszerek feladatai, felépítése; Elvi felépítés, háromrétegű modell; Járulékos feladatok: integritás, szinkronizálás, adatbiztonság [1] 11-18
2. Fizikai adatszervezés módszerei; Heap szervezés; Hash-állományok; Indexelt állományok (ritka egyszintű, ritka többszintű, sűrű); Invertálás, változó hosszúságú rekordok kezelése [1] 22-38
3. ER modell és diagram; Egyedhalmazok, tulajdonsághalmazok, Specializáció/általánosítás, gyenge egyedhalmazok [1] 39-47
4. Relációs adatmodell; Az adatok strukturálása; Relációalgebra, illesztések [1] 48-56
5. Relációs sématervezés ER diagramból [1] 122-124
6. Normál formák; Adatbázis kényszerek, funkcionális függések, redundancia, reláció redundanciája, 0NF, 1NF,2NF,3NF, BCNF [1] 125-146 kivéve: függéshalmazok ekvivalenciája, minimális függéshalmaz
7. SQL nyelv; Táblák, nézetek létrehozása, lekérdezések, táblák módosítása, adatok módosítása, adatelérések szabályozása, kényszerek kezelése [1] 68-85
8. Relációs lekérdezések optimalizálása; Heurisztikus optimalizálás, ekvivalens kifejezések; Költség alapú optimalizálás, költségbecslések [1] 86-102
9. Tranzakciókezelés; Ütemezések, tranzakciókezelés zárakkal, 2PL, hierarchikus adategységek zárolása, szigorú protokollok, helyreállítás rendszerhibák után, időbélyeges tranzakciókezelés, verziókezelés alapú tranzakciókezelés [1] 163-198

Felkészülést segítő források

  1. Gajdos: Adatbázisok, A-SzínVonal Kft. 2015, 2016, 2017, ISBN 978-963-313-195-4
    https://db.bme.hu/~gajdos/Adatbazisok2019.pdf

Algoritmusok

Témakörök Jegyzet, tankönyv oldalszáma
1. Lineáris és bináris keresés; Buborék-, beszúrásos, összefésüléses rendezés, gyorsrendezés, alsó becslés az összehasonlítások számára, ládarendezés, radix rendezés [1] 2.2.1-2.2.4, 2.2.6, 2.3, 29-37, 42-44, 46-48. old.
2. Alapvető adatszerkezetek és elemzésük; Bináris keresőfa, 2-3 fa, B-fa, hash-tábla. [1] 3.1-3.4, 4, 51-71, 86-101. old.
3. Gráfalgoritmusok; Szélességi és mélységi bejárás, alkalmazások (összefüggőség, aciklikusság, topologikus sorrend meghatározása), maximális párosítás páros gráfban (magyar módszer), Kruskal-algoritmus minimális költségű feszítőfa meghatározására, Dijksra-, Bellman-Ford-, Floyd-algoritmus legrövidebb utak meghatározására. [1] 6.5, 6.4.1, 6.4.2, 6.4.4, 6.7, 127-141, 144-150, 167-171. old. [2] 2.2, 2.8, 24-28, 52-56. old.
4. A bonyolultságelmélet elemei; P és NP  problémaosztályok, NP-teljesség, visszavezetések, nevezetes NP-teljes problémák. [1] 8.3-8.5, 8.7, 257-271-275-296. old. [2] 3.5, 96-104. old.
5. Általános algoritmustervezési módszerek; Oszd meg és uralkodj, elágazás és korlátozás, dinamikus programozás. [1] 9.1, 9.2, 297-305. old.
6. Egyszerű közelítő algoritmusok ; Független élek, ládapakolás feladat, utazóügynök-probléma. [1] 9.3, 305-309. old.

Felkészülést segítő források

  1. Rónyai, Ivanyos, Szabó R.: Algoritmusok, Typotex Kiadó, 2005
  2. Katona, Recski, Szabó Cs.: A számítástudomány alapjai, Typotex Kiadó, 2003