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ó    

    Szoftverfejlesztési módszerek és paradigmák

    A tantárgy angol neve: Software Development Methods and Paradigms

    Adatlap utolsó módosítása: 2014. október 3.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar
    Mérnökinformatikus MSc szak
    Alkalmazott Informatika főspecializáció
    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIAUMA00 1 2/1/0/v 4  
    3. A tantárgyfelelős személy és tanszék Dr. Lengyel László, Automatizálási és Alkalmazott Informatikai Tanszék
    4. A tantárgy előadója

    Dr. Lengyel László

    egyetemi docens

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

    Albert István

    mérnöktanár

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

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

    Objektumorientált programozási ismeretek. Szoftvertechnikák.

    6. Előtanulmányi rend
    Kötelező:
    NEM ( TárgyEredmény( "BMEVIAUM126" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény( "BMEVITMMA01" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIAUM126", "FELVETEL", AktualisFelev()) > 0
    VAGY
    TárgyEredmény("BMEVITMMA01", "FELVETEL", AktualisFelev()) > 0)

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

    A kötelező előtanulmányi rendek grafikus formában itt láthatók.

    Ajánlott:

    Nincs

    7. A tantárgy célkitűzése
    A tárgy célja, hogy a hallgatók megismerjék a szoftverfejlesztési módszertanokat, azok alkalmazási lehetőségeit és feltételeit, a tervezési és fejlesztés módszerek által igényelt és előnyben részesített gyakorlatokat és eszközöket. Cél, hogy a tárgy elvégzésével a hallgatók jártasak legyenek a szoftverrendszerekkel kapcsolatos gyakori architekturális kérdések kezelésében és a követendő módszerek és megoldások területén is.
    A tárgy a szoftverfejlesztési módszertanokat, a módszertanokat és fejlesztési folyamatokat támogató technikákat és gyakorlatokat, valamint a szoftverrendszerekkel kapcsolatos architekturális elvárásokat és a megoldásokat tárgyalja. A tárgy központ eleme a következő gondolatsor: a megfelelő módszertan kiválasztása a megrendelői igények, az üzleti és technológiai környezet alapján történik, a módszertan elvárásokat és ajánlásokat fogalmaz meg a fejlesztési módszerrel szemben, ami pedig architekturális követelményeket támaszthat.

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

     

    Előadás anyaga

    1.

    Fejlesztő eszközök hatékony használata, legjobb gyakorlatok megismerése, a különböző eszközök felépítésének, főbb fejlesztési, debuggolási, tesztelési folyamatainak feltérképezése.

    2.

    A fejlesztési és projektkezelési módszertanok által tipikusan megfogalmazott architekturális elvárások és a lehetséges megoldások áttekintése, bemutatva az egyes irányok előnyeit és nehézségeit.

    3.

    Az alkalmazás manuális tesztelési folyamatának, módszereinek, néhány eszköznek bemutatása. Egység tesztek készítésének irányelvei, alkalmazásának feltételei, előnyei és hátrányai.

    4.

    Forráskód kezelési módszerek, elterjedt forráskód kezelő eszközök bemutatása, elágaztatási stratégiák, legjobb gyakorlatok bemutatása, a hatékony csoportmunka irányelvei.

    5.

    Specifikációs módszerek és üzleti elemzés: Structured Systems Analysis And Design Method (SSADM), követelményelemzés, követelményspecifikáció, logikai és fizikai tervezés, követelmények típusai, mérhető célok, prototípusok, üzleti elemzési technikák, üzleti folyamatok, követelmények dokumentálása

    6.

    Szoftvertervezési módszerek: szoftvertervezés, UML, UML profile, felhasználói követelmények leírása és kommunikálása, architektúra tervezés, szakterület-vezérelt tervezés (Domain Driven Design), modellvezérelt fejlesztés (Model Driven Development)

    7.

    A felhasználói élmény (User experience) tervezése, a folyamat tipikus lépései és legjobb gyakorlatai, helye a szoftverfejlesztési folyamatban, a felhasználói tesztelés módszerei.

    8.

    Módszertanok, klasszikus módszertanok: a szoftverfejlesztés folyamata, szoftverfejlesztési modellek, Rational Unified Process (RUP), Capability Maturity Model Integration (CMMI)

    9.

    Agilis fejlesztési módszerek 1 (agilis értékek és elvek) Miért van szükség módszertanokra?, a szoftver iparban a változások kezelése, agilis módszer, értékek, elvek, agilis kiáltvány, agilis gyakorlatok összefoglalása

    10.

    Agilis fejlesztési módszerek 2 (a megvalósítást támogató gyakorlatok): agilis tervezés, a tervezés célja, a tervezés szintjei, vízió, kiadás tervezés, iteráció tervezés, stand-up.  Felhasználói sztorik, becslés, iteráció, „kész, kész” (done, done), agilis modellezés

    11.

    Agilis fejlesztési módszerek 3 (elterjedt agilis módszertenok): eXtreme Programming (XP), Scrum, Microsoft Solution Framework (MSF), a módszertanok jellemzői, használatuk a mindennapokban

    12.

    Projektmenedzsment módszerek és eszközök 1: általános projekt menedzsment alapelvek, kényszerek, erőforrás és kompetencia mátrixok, feladatok, függőségek. Általános projekttervező eszköz bemutatása.

    13.

    Projektmenedzsment módszerek és eszközök 2: IT specifikus projektek jellemzői, klasszikus és agilis módszertanok tervezésének, erőforrás- és feladatkezelésének, monitorozásának eszköztámogatása.

    14.

    Esettanulmányok: konkrét esettanulmányok felhasználásával kerül szemléltetésre a fejlesztő eszközök hatékony használata, a tesztelés, a forráskód kezelési módszerek, a csoportmunka eszközök. Az egyes projektekben használt módszerek, a tapasztalatok, legjobb gyakorlatok.

     

     

    Gyakorlat anyaga

    1.

    Unit tesztelés a gyakorlatban: egyszerű egység tesztek készítése, állapottal rendelkező alkalmazások tesztelése, mockolás, hibakezelés.

    2.

    Forráskód kezelési módszerek 1: A Microsoft Team Foundation Server és a GIT használata, check-in/check-out, pull/push, merge, branching, offline forráskód kezelés.

    3.

    Forráskód kezelési módszerek 2: Build automation, folyamatos integráció, egység tesztek automatikus indítása, config-release eszközök, metrikák​ készítése.

    4.

    Specifikáció és tervezés: gyakorlati példák kidolgozása SSADM segítségével, CMMI a gyakorlatban, példák követelményelemzésre, követelményspecifikációra és üzleti elemzésre

    5.

    Agilis tervezés: gyakorlati példán keresztül elsajátítani a vízió, kiadás tervezés, iteráció tervezés részleteit

    6.

    Agilis eszközök: gyakorlati példákon keresztül megismerkedi az elterjedt agilis gyakorlatokkal (testvezérelt fejlesztés, folyamatos integráció, refaktorálás)

    7.

    Projektmenedzsment eszközök a gyakorlatban: a tervezéstől az erőforrás kezelésen át a scrum meetingek, sprintek, product backlogok kezeléséig.

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

    Előadás és gyakorlat.

    10. Követelmények
    a. A szorgalmi időszakban: egy zárthelyi 
    b. A vizsgaidőszakban: írásbeli vizsga
    c. Elővizsga: igény szerint
       
    Az aláírás megszerzésének feltétele a zárthelyi elfogadható (legalább elégséges szintű) megoldása. A vizsgára bocsátás feltétele az aláírás megléte.
     
    A jegy kialakítása: ZH 40%, vizsga 60%.  
    11. Pótlási lehetőségek A zárthelyihez a TVSZ előírásai szerint mind a szorgalmi, mind a pótlási időszakban 1-1 pótlási lehetőséget biztosítunk.
    12. Konzultációs lehetőségek A tárgy előadójával történt egyeztetés szerint.
    13. Jegyzet, tankönyv, felhasználható irodalom
    James Shore: The Art of Agile Development, O'Reilly Media, 2007.
    Martin Fowler with Kent Beck, John Brant, William Opdyke, and Don Roberts: Refactoring (Improving the Design of Existing Code), Addison-Wesley, 1999.
    Kent Beck et al.: Manifesto for Agile Software Development, Agile Alliance, 2001. 
    Kent Beck: Test Driven Development: By Example, Addison-Wesley, 2003.
    Martin Fowler: Domain-Specific Languages, Addison-Wesley Professional, 2010.
    Martin Fowler: Using an Agile Software Process with Offshore Development, Martinfowler.com
    James Shore: The Art of Agile Development: Refactoring.

    14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
    Kontakt óra42
    Félévközi készülés órákra14
    Felkészülés zárthelyire16
    Házi feladat elkészítése0
    Kijelölt írásos tananyag elsajátítása0
    Vizsgafelkészülés48
    Összesen120
    15. A tantárgy tematikáját kidolgozta

    Név:

    Beosztás:

    Tanszék, Int.:

    Dr. Lengyel László

    egyetemi docens

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

    Albert István

    mérnöktanár

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

    Dr. Charaf Hassan

    egyetemi docens

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