A tantárgyleírás hatályossága
| 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) |
|
||||||||||||
| 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
elérhetőség:
benyo.balazs@vik.bme.hu
|
||||||||||||
| 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
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.
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
Tanulástámogató anyagok
Online források
A tantárgy teljesítéséhez ajánlott előzetes ismeretek
Általános szabályok
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
Tantervi elhelyezés
Nincsenek rögzített tantervi elhelyezések ehhez a tárgyverzióhoz.