K-INFO
HU
EN
Belépés

Szoftvertervezés

Software Design
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)
Szoftvertervezés
Software Design
Tantárgykód BMEVIIIM110
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 0
jelleg (kapcsolt/önálló)
Tanulmányi teljesítmény/értékelés típusa félévközi érdemjegy
Tantárgy kreditértéke 4
Tantárgyfelelős
DR. Benyó Balázs István
beosztás: egyetemi tanár
Tantárgyat gondozó oktatási szervezeti egység
Irányítástechnika és Informatika Tanszék
Kar Villamosmérnöki és Informatikai Kar
Tantárgy weboldala https://www.iit.bme.hu/szoftvertervez%C3%A9s
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

Bevezetés és áttekintés: Számítógépes rendszerek, a rendszer és környezete, a rendszer különböző modelljei. A rendszer komponensei, azok kapcsolatai. Megvalósítási lehetőségek, hardver és szoftver. A szoftver fejlesztés, mint kihívás. Mikor sikeres egy projekt, és melyek a sikert meghatározó tényezők. A felhasználói igények kielégítése. A szoftver technológia lényege. A szoftver és a technológia definíciója.

A szoftver életciklusa: Az életciklus fázisai, a probléma feltérképezése, megismerése, megoldás kidolgozása, az eredmény megfelelőségének ellenőrzése, vizsgálata, a termék karbantartása. A különböző életciklus modellek és azok összehasonlítása: Fázisos, vízesés, V, evolúciós, spirál, agilis módszerek, XP.

Követelmények kezelése: Követelmények összegyűjtése. Stratégia a megismerendő tényezők meghatározása. Felhasználói követelmények transzformálása rendszer illetve szoftver követelményekké. Funkcionális és nem-funkcionális követelmények. Követelmények menedzselése. A követelmények követése, változások kezelése.

Objektumorientált modellezés: Az UML jelölésrendszer használata. Use-case diagramok. Objektum-modellek. Csomagok, alrendszerek, interakciós diagram. Objektumok és felelősségek. Egységbezárás és interfészek. Szolgáltatások, a szolgáltatás szemantikája. Objektumok implementálása: osztályok. Asszociációk és multiplicitás. Öröklés, aggregáció. Többalakúság és kollekciók.

Az objektumorientált fejlesztés életciklus modellje: Use-case vezéreltség és architektúra-központúság. Iteratív és inkrementális fejlesztés. A rendszer viselkedésének modellezése use-case-zel. Include és extend függőségek. Generalizáció a use-case-eken értelmezve. Use-case-ek finomítása. Az alkalmazói tér objektumainak modellezése. Elemzési osztályok felismerése. Objektum-katalógus építése. A bonyolultság kezelése csomagokkal és alrendszerekkel.

Viselkedési modell építése: A use-case-ek megvalósítása. Szekvencia diagramok, objektumok élettörténete, üzenettípusok. Szekvencia-diagramok finomítása. Állapotgép modell. Állapotok, események, akciók. Skatulyázott és konkurens állapotok. Szekvencia-diagram konvertálása állapotgéppé. Az objektum-modell finomítása az állapotok figyelembe vételével. Az objektumok viselkedésének elemzése. Metódusok leírása aktivitás diagrammal. Sávok, konkurencia és szinkronizáció. A metódusok allokálása, propagálás, delegálás.

Objektumorientált tervezés: Általános tervezési elvek: függőség, kohézió, csatolás, Demeter törvénye. Objektum szintű tervezés. Metódusok konkurenciája. Ütemezés objektumon belül. Összefüggő attribútumok normalizálása. Rendszer szintű tervezés. Telepítés és komponensek. Perzisztencia kezelése. Rendszer szintű ütemezés. Konkurens, elosztott objektumok. Köztesrétegek lényege.

Tervezési minták: Tervezési minták célja, architektúra tisztítása, újrafelhasználhatóság, robusztusság. Fontosabb tervezési minták: Viselkedési és szerkezeti minták. Objektum létrehozásával kapcsolatos minták. Minták kombinálása. Web alkalmazások fejlesztése: Beágyazott alkalmazások (routerek, modemek) web-es felületei. A web-es alkalmazással szembeni követelmények, az alkalmazások többrétegű architektúrái. Szerver oldali szkript technikák: cgi, php, asp.net, asp, servlet, jsp

XML bevezetés: XML kialakulása, szintaktikája. XML sémák. Sémák transzformációja, gráfok újraírása, XSLT.

Servlet-alapú felületfejlesztés: Servlet alapok, J2EE Servlet API alapfogalmai, servletek életciklusa, POST és GET metódusok használata, Request és Response. Területi beállítások. Web-alapú űrlapok kialakítása, konfigurációs fájlok szerkezete, servlet kivételeinek kezelése, servlet-telepítő fájlok felépítése. Java Web alkalmazások állapotai, session-kezelés, cookie-k, Java objektumok tárolása session változókban. Adatbázis elérése servletből JDBC segítségével, JNDI alapok.

Verifikálás és validálás: Statikus verifikáció. Felülvizsgálatok, áttekintések, inspekciók. Dinamikus ellenőrzés. Tesztelés, célja, típusa, módszerei. JUnit.

Konfigurációs menedzsment: Konfigurációs elemek kiválasztása és menedzselése. Változáskezelés, programépítés és változatok menedzselése. CM eszközök: CVS, Subversion, ClearQuest, Ant

Valósidejű rendszerek fejlesztése: Tipikus időbeli követelmények. Időkezelés számítógépes rendszerekben. Méretezési elvek. Megvalósítási kérdések. Valósidejű ütemezés. Fokozott megbízhatósági követelmények. Hibatűrő architektúrák. Elosztott valósidejű rendszerek.

 


A tantárgy célja a szoftverfejlesztés elméleti és gyakorlati vonatkozásainak bemutatása. A fejlesztési folyamat vizsgálatakor mindazon eljárásokat, módszereket, lépéseket, termékeket, dokumentációkat, erőforrásokat, szervezeteket és személyeket számba kell venni, amelyek a termék létrehozásához, üzembe állításához és karbantartásához szükségesek. A tervezés, fejlesztés során látni és ismerni kell a megoldási lehetőségeket – tervezési teret – és döntések sorozatát kell meghozni, amíg eljutunk a kész rendszerig. Az elméletet tekintve a hallgatók megtanulják a szoftvertechnológia alapelveit és korszerű módszereit, kitérve az elosztott és beágyazott rendszerekre is. A hallgatóság egyszerű gyakorlati fejlesztési feladatok megoldásával szerez tapasztalatokat a technológia egyes lépéseinek idő- és erőforráskorlátok közötti precíz végrehajtásában, beleértve a szabványos dokumentálást.

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

Heti 3 óra előadás

Tanulástámogató anyagok

Online források
[1] Sommerville, I. – Szoftver rendszerek fejlesztése 2. bővített kiadás, Panem Kiadó, Debrecen, 2007.; [2] Sommerville, I. - Software Engineering 8th ed., Pearson Education Ltd, 2007, [3] Kondorosi, László, Szirmay-Kalos: Objektum orientált szoftver fejlesztés, Kempelen Farkas Digitális Tankönyvtár, www.hik.hu; [4] Harald Störrle: UML 2, Panem Kiadó, Budapest, 2007 [5] Booch, G., Rumbaugh, J., Jacobson, I. – The Unified Modeling Language User Guide, Addison-Wesley, 1999.; [6] Andersson E., Greenspun P., Grumet A. – Software Engineering for Internet Applications, MIT Press, 2006.  

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)
nincs
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)
nincs
Általános szabályok
Követelmények: a. A szorgalmi időszakban: Egy csoportmunkában készített otthoni házi feladat beadása és egy nagyzárthelyi megírása. A félévközi jegy megszerzésének feltétele a házi feladat elfogadása és legalább elégséges nagyzárthelyi. A félévközi jegy a nagyzárthelyi (60%) és házi feladat (40%) eredménye alapján kerül meghatározásra. b. A vizsgaidőszakban: nincs. Pótlási lehetőségek: A nagyzárthelyi a szorgalmi időszakban és pótlási héten pótolható egy-egy alkalommal, az otthoni házi feladat a pótlási héten különeljárási díj megfizetése mellett pótolható.
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

Nincs megadva.

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.