Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Szoftvertechnológia és -technikák

    A tantárgy angol neve: Software Technology and Techniques

    Adatlap utolsó módosítása: 2020. június 26.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar
    Üzemmérnök-informatikus szak, BProf képzés
    közös tárgy
    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIAUBB02 3 2/0/4/v 7  
    3. A tantárgyfelelős személy és tanszék Dr. Charaf Hassan,
    4. A tantárgy előadója

    Név

    Beosztás

    Tanszék

    Dr. Charaf Hassan

    Egyetemi tanár

    Automatizálás és Alkalmazott Informatikai Tanszék

    Dr. Mezei Gergely

    Egyetemi docens

    Automatizálás és Alkalmazott Informatikai Tanszék

    Benedek Zoltán

    Egyetemi tanársegéd

    Automatizálás és Alkalmazott Informatikai Tanszék

    5. A tantárgy az alábbi témakörök ismeretére épít

    ·       Objektumorientált programozás

    6. Előtanulmányi rend
    Kötelező:
    Training.Code=("5N-A9") ÉS

    [ HA
    EgyenCsoportTagja("BPROF - 2022 - MINTATANTERV HALLGATÓI")
    AKKOR
    TárgyTeljesítve_Képzésen("BMEVIIIBA02")

    EGYÉBKÉNT
    (TárgyEredmény("BMEVIIIBA02", "FELVETEL", _) > 0
    VAGY
    TárgyEredmény( "BMEVIIIBA02" , "jegy" , _ ) >= 2 ) ]

    A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

    A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

    7. A tantárgy célkitűzése

    A tárgy célja a készség szintű tudás átadás a szoftverfejlesztés folyamata, támogató eszközei és módszertana területén, ami alkalmassá teszi a tárgyat sikeresen elvégzőket a fejlesztő műhelyek munkájába való zökkenőmentes bekapcsolódásra.

    A tárgy főbb témakörei a következők:

    ·       A szoftverfejlesztés folyamata, a fejlesztés lépései (megértés szint: magyarázatok, összefüggések ismerete, esetek felismerése, besorolása - K2)

    ·       A SOLID elvek a programozásban (alkalmazás szint (problémamegoldás ismeretek alkalmazásával, példák, feladatok önálló megoldása - K3)

    ·       Az UML jelölésrendszer (osztály-, szekvencia-, használati eset-, állapotdiagram) (K3)

    ·       Tervezési minták (K3)

    ·       Architektúrák, architektúrális tervezési minták (K2)

    Fejlesztési módszertanok (vízesés, RUP, agilis) (K2)

    8. A tantárgy részletes tematikája

    Az előadások tematikája:

    Előadás

    Előadás anyaga

    1.

    Bevezetés, a félév áttekintés, a szoftverfejlesztés alapjai. A SOLID elvek

    2.

    Bevezetés az UML világába. Osztálydiagram.

    3.

    Osztálydiagram és szekvencia diagram.

    4.

    Állapotdiagram és aktivitás diagram

    5.

    Használati eset diagram

    6.

    UML összefoglalás és kitekintés. UML Profile.

    7.

    Tervezési minták – bevezetés (Singleton, Factory method, Prototype)

    8.

    Tervezési minták – Observer, Memento, Bridge, Adapter, Iterator, Template method, Command

    9.

    Architektúrális tervezési minták. Document-View. Model-View-Controller. MVVM. Pipes & filters. Több rétegű arhictektúrák.

    10.

    A szoftverfejlesztési fázisai, dokumentáció, tesztelés alapjai

    11.

    A vízesés és a RUP módszertan

    12.

    Agilis fejlesztés, Scrum

    13.

    Continous integration. Continous development. DevOps

    14.

    Kitekintés, tartalék

    A gyakorlatok (laborok) tematikája:

    Gyakorlat

    Gyakorlat anyaga

    1.

    Bevezetés, követelmények ismertetése. Objektumorientált programozás ismétlése Java alapon.

    2.

    Kódelemzés, a SOLID elvek vizsgálata egy meglévő kódon.

    3.

    Java kódból osztálydiagram készítése, osztálydiagramból Java kód készítése.

    4.

    Java kódból osztálydiagram készítése, osztálydiagramból Java kód készítése.

    5.

    C# és Java kód összehasonlítása, osztálydiagram készítése kódból és visszafelé.

    6.

    C# és Java kód összehasonlítása, osztálydiagram készítése kódból és visszafelé.

    7.

    Szekvencia diagram készítése forráskód alapján.

    8.

    Szekvencia diagram készítése forráskód alapján, a szekvencia-, és osztálydiagram kombinálása.

    9.

    Állapotgép forráskód készítés modell alapján

    10.

    Kódkészítés modell alapján, modellkészítés kód alapján.

    11.

    Specifikációból modell, majd forráskód készítés

    12.

    Specifikációból modell, majd forráskód készítés, gyakorlás

    13.

    Tervezési minták felismerése, kiegészítése

    11.

    Tervezési minták és implementálásuk (Singleton, Factory Method)

    12.

    Tervezési minták (Memento, Command)

    13.

    Tervezési minták (Observer, Bridge, Iterator)

    14.

    Tervezési minták – gyakorlás, összetett példák

    15.

    A Document- View és MVVM megközelítés a gyakorlatban

    16.

    A Document- View és MVVM megközelítés a gyakorlatban

    17.

    Architektúra és tervezés gyakorlat

    18.

    Szoftverfejlesztési módszertanok a gyakorlatban

    19.

    Szoftverfejlesztési módszertanok a gyakorlatban

    20.

    Tesztelés alapok a gyakorlatban

    21.

    Tesztelés alapok a gyakorlatban

    22.

    Házi feladat beadása

    23.

    Tartalék az elmaradó órákhoz, kitekintés

    24.

    Tartalék az elmaradó órákhoz, kitekintés

    9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

    Előadás: a szoftverfejlesztési technológiák és technikák ismertetése, az elméleti, általános alapok az egyes témakörökhöz kapcsolódóan. Az előadás célja, hogy a hallgatók megismerjék a fogalmakat, a jelölésrendszert, amik használatát a laborok segítségével a gyakorlatban is elsajátíthatják később.

    Labor: számítógépes labor, ahol az egyes témakörökbe előbb a laborvezető segítségével betekintést nyernek, majd az elsajátított ismereteket a gyakorlatban is alkalmazzák önálló munkavégzés formájában.

    10. Követelmények

     

    A szorgalmi időszakban:

    Két kis házi feladat (részteljesítmény értékelés) és egy zárthelyi dolgozat (összegző értékelés). Az első házi feladat a hatodik héten kerül kiosztásra és a tizedik hétig kell beadni. A második feladat a tizenegyedik héten kerül kiosztásra és a szorgalom időszak végén megjelölt laboron kell beadni. A zárthelyik a nyolcadik-tizedik hét közt írják a féléves kari ZH tervnek megfelelően.

    A félév végi aláírás feltételei:

    A zárthelyi dolgozat és mindkét házi feladat legalább elégséges szintű teljesítése (az elérhető pontszám legalább felét kell megszerezni mindhárom esetben külön-külön).

    A vizsgaidőszakban:
    A vizsga sikeres teljesítése.

    Az osztályzat megállapításának módja:

    A vizsga 90 pontos. A vizsgán van beugró, amin legalább 50%-ot, valamint a teljes vizsgán is a pontszám legalább 50%-át el kell érni, különben a vizsga sikertelen.

    Mindkét házi feladat alapján 0-10 pont, a zárthelyi dolgozat alapján 0-40 pont adható, így összesen 150 pont szerezhető. Az év végi osztályzat ponthatárai 85% (jeles), 70% (jó), 60% (közepes), 50% (elégséges).

     

    11. Pótlási lehetőségek

     

    A két házi feladat közül az egyik (tetszőleges, de csak az egyik a kettő közül) pótolható a pótlási héten megadott időpontban. A zárthelyi dolgozat egy alkalommal pótzárthelyi dolgozattal pótolható.


     

    12. Konzultációs lehetőségek

    Igény szerint.

    13. Jegyzet, tankönyv, felhasználható irodalom

    Sommerville, I. – Szoftver rendszerek fejlesztése 2. bővített kiadás, Panem Kiadó, 2007

    Benedek Z., Levendovszky T.: Szoftvertechnikák (egyetemi jegyzet), BME, 2006
    Gamma, Helm, Johnson, Vlissides: Design Patterns, Addison-Wesley, 1994

    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka

    Kontaktóra

    84

    Készülés előadásokra

    6

    Készülés laborra

    28

    Készülés zárthelyire

    21

    Házi feladat elkészítése

    15

    Vizsgafelkészülés

    56

    Összesen

    210

    15. A tantárgy tematikáját kidolgozta

    Név:

    Beosztás:

    Tanszék, Int.:

    Dr. Mezei Gergely

    Egyetemi docens

    Automatizálás és Alkalmazott Informatikai Tanszék

    Dr. Kővári Bence

    Egyetemi docens

    Automatizálás és Alkalmazott Informatikai Tanszék

    Bendedek Zoltán

    Tanársegéd

    Automatizálás és Alkalmazott Informatikai Tanszék