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ó    

    Alkalmazásfejlesztés

    A tantárgy angol neve: Development of Software Applications

    Adatlap utolsó módosítása: 2021. július 15.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar

    Villamosmérnöki szak, MSc képzés       
    Számítógép-alapú rendszerek főspecializáció       

    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIAUMA09 2 2/1/0/v 4  
    3. A tantárgyfelelős személy és tanszék Dr. Csorba Kristóf,
    A tantárgy tanszéki weboldala https://www.aut.bme.hu/Course/VIAUMA09
    4. A tantárgy előadója Dr. Csorba Kristóf, egyetemi docens, Automatizálási és Alkalmazott Informatikai Tanszék
    5. A tantárgy az alábbi témakörök ismeretére épít
    • ·         A tantárgy anyaga épít a BSc képzés Beágyazott operációs rendszerek és kliens alkalmazások (VIAUAC07) tantárgyára, de akik ezt nem hallgatták, azok számára felzárkóztató anyagokat biztosítunk.

      ·         Az objektum orientált szoftverfejlesztési elvek ismerete és alkalmazása.

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

    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ó.

    Ajánlott:

    Ajánlott előtanulmány: Beágyazott operációs rendszerek és kliens alkalmazások (VIAUAC07)

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

    A tantárgy célja megismertetni a hallgatókkal azokat az eszközöket, melyek a programozási alapismereteken túl a nagyobb szoftverfejlesztési projektek esetében szükségesek. Ide tartoznak a magas szintű osztálykönyvtárak, az automatikus tesztelés, a verziókezelés és dokumentációs módszerek. A tantárgy első részében a C# és .NET Core, majd az Universal Windows Platform (UWP) lehetőségeit mutatjuk be, utána pedig a szoftverfejlesztésben széles körben megjelenő tervezési mintákat tekintjük át. Mindezek során a tantárgy kiemelt hangsúlyt fektet a beágyazott rendszerekhez kapcsolódó feladatokra, valamint az ezekből származó speciális környezetekre.

    Megszerezhető készségek, képességek:

    A tantárgy sikeres elvégzése esetén a hallgatók képesek lesznek .NET Core és UWP használatával olyan szoftverek fejlesztésére, melyek rendelkeznek összetett grafikus felhasználó felülettel (GUI) és képesek kommunikálni szerver oldallal vagy beágyazott rendszerekkel is, felépítésükben pedig a tervezési minták és a széles körben használt architeltúrális irányelvek is megjelennek. A fejlesztés során képesek az alapvető fejlesztői eszközök (verziókövető, folyamatos tesztek) használatára. Ezen kívül megismerik a szoftverprojektek tömör és áttekinthető dokumentálásának módszereit, mint a legfontosabb UML diagramokat és a forráskód alapján generálható dokumentációt.

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

     

    Az előadások az alábbi témákat érintik, míg a gyakorlatok célja az előadáson hallottak gyakorlati elmélyítése.

    ·         Bevezető, követelmények ismertetése, demók a később érintett területek érdekességei közül. A tantárgy anyagának elhelyezése a villamosmérnöki szakmán belül.

    ·         Verziókezelés ismétlése: git használata, problémásabb esetek megoldása a repositoryban, merge és rebase alapú fejlesztés, GitFlow, github pull requestek. Dokumentálás: UML alapok, Markdown, dokumentálás a forráskódban

    ·         C# és .NET alapok átismétlése

    ·         További .NET Core technológiák: IEnumerable, Linq, szerializálás, adatperzisztencia, hálózati és soros porti kommunikáció

    ·         XAML alapú UWP felhasználó felületek alapjai

    ·         Adatkötés, MVVM architektúra

    ·         Multithreading (Task osztály, async-await minta)

    ·         Automatikus tesztelési módszerek

    ·         Tervezési architektúrák és minták: céljuk, felismerésük, megvalósítások C# nyelven, „antipatternek”.

    ·         Összetett esettanulmányok


     

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

    Előadás, gyakorlat. A tananyag egy részét a hallgatóknak online elérhető anyagok formájában, otthon kell elsajátítani.

     

    A félév során a tantárgy oktatási módja két fázisra oszlik. Az első részben online anyagok és az azokat kiegészítő kontaktórák formájában lemegy az elméleti anyag. A második rész a házi feladatra fókuszál. Ekkor új anyag már nem hangzik el, a kontaktórákon egyrészt a házi feladattal kapcsolatos konzultáció van, valamint a házi feladathoz (plusz pontért) kérhető, csapatonként személyre szabott visszajelzést adó „code review” általános tapasztalatait beszéljük meg.

    10. Követelmények

    A szorgalmi időszakban:

    A félévközi ismeretek elsajátítását és a gyakorlást egy házi feladat biztosítja, amelynek beadási határideje a 14. oktatási hétre meghirdetett időpont.

    Az aláírás feltételei:

    ·         A házi feladat megfelelő minőségben, határidőre való elkészítése.

     

    A vizsgaidőszakban: írásbeli vizsga.

    A félév elismerését jelentő félév végi jegy megszerzésére akkor van lehetőség, ha a hallgató

    ·         megszerezte az aláírást,

    ·         sikeres vizsgát tett.

     

    A házi feladat 50%-ban, a vizsga 50%-ban számít az érdemjegybe.

    A házi feladathoz kiegészítő, szorgalmi feladatok is tartoznak, melyek kiemelkedő teljesítése esetén a vizsgára plusz pontokat, vagy megajánlott jegyet lehet szerezni.

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

    A házi (otthoni) feladatot a 14. hét végéig be kell adni, annak pótlása a pótlási időszakban lehetséges, de ekkor már a házi feladattal bónusz pont nem szerezhető.

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

    Igény szerint az előadóval egyeztetve.


    13. Jegyzet, tankönyv, felhasználható irodalom
    • ·         Tantárgy weboldalán található oktatási segédanyagok.

      ·         Beágyazott operációs rendszerek és kliens alkalmazások (VIAUAC07) jegyzete elektronikus formában.

      ·         Scott Chacon: Pro Git, Apress, 2009, http://git-scm.com/book

      ·         John Ferguson Smart: Jenkins: The Definitive Guide. O'Reilly Media, 2011

      ·         Robert C. Martin: Clean Code: A Handbook of Agile Software Craftsmanship, Prentice Hall, 2008

      ·         Steve McConnell: Code Complete: A Practical Handbook of Software Construction, Second Edition, Microsoft Press, 2004

      ·         Buschmann et al.: A System of Patterns, Willey, 1996

      ·         Tom Pender, UML Bible, Wiley, 2003


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

    Kontakt óra

    42

    Kiadott tananyagok otthoni elsajátítása

    16

    Felkészülés a vizsgára

    26

    Házi feladat elkészítése

    36

    Összesen

    120


    15. A tantárgy tematikáját kidolgozta Dr. Csorba Kristóf, egyetemi docens, Automatizálási és Alkalmazott Informatikai Tanszék