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ó    

    Mobilszoftver-rendszerek fejlesztése

    A tantárgy angol neve: Mobile Software System Development 

    Adatlap utolsó módosítása: 2023. január 11.

    Budapesti Műszaki és Gazdaságtudományi Egyetem
    Villamosmérnöki és Informatikai Kar
    Mérnökinformatikus MSc szak
    Mobilszoftver-fejlesztés mellékspecializáció
    Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
    VIAUMA26   2/1/0/v 5  
    3. A tantárgyfelelős személy és tanszék Dr. Forstner Bertalan,
    A tantárgy tanszéki weboldala https://portal.vik.bme.hu/kepzes/targyak/VIAUMB01/
    4. A tantárgy előadója

    Dr. Forstner Bertalan, egyetemi docens, AUT

    Dr. Ekler Péter, egyetemi docens, AUT

    Dr. Blázovics László, egyetemi docens, AUT
    5. A tantárgy az alábbi témakörök ismeretére épít Objektumorientált programozási ismeretek. Mobilszoftver-platformok.
    6. Előtanulmányi rend
    Kötelező:
    NEM
    (TárgyEredmény( "BMEVIAUMB01", "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIAUMB01", "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:

    Mobil- és webes szoftverek (https://www.aut.bme.hu/Course/mobilesweb)

    Mobilszoftver-platformok. 

    7. A tantárgy célkitűzése A tantárgy célja a mobilszoftver-tervezés és fejlesztés általánosan érvényes irányelveinek bemutatása, valamint mérnöki szemlélet kialakítása a területen.
    8. A tantárgy részletes tematikája

     

    Előadás anyaga

    1.

    Az előadáson a bevezetés után a mobilszoftver-specifikáció kérdéseinek és platformválasztásnak a körüljárása történik. A formális specifikáció elkészítése mellett megvizsgáljuk a platformfüggetlen, illetve hordozható részek kiemelését. Átnézzük, milyen szempontokat kell figyelembe venni mobil alkalmazás tervezésénél.

    2.

    A felhasználói felület kapcsán kitérünk a képernyőképek tervezésére, illetve a fragmentációra való felkészülésre. A csak tablet- illetve csak mobiltelefon-felület tervezésének különbségeit is vizsgáljuk. Bemutatjuk a platformspecifikus vs. generikus felhasználói felület közti különbségeket. Körüljárjuk a mock alkalmazások készítésének lehetőségét. Feltárjuk, milyen felhasználói élmény emelésére alkalmas szempontokra kell figyelni.

    3.

    Az előadáson körbejárjuk az adatréteg tervezés kérdéseit, az adattárolás helyét, illetve a backenddel való szinkronizáció lehetőségeit, típusait. Bemutatunk elterjedt mobilos ORM megoldásokat.

    4.

    A tanóra témája a Kommunikációs réteg tervezése. Bemutatjuk, hogyan kell egyedi kommunikációs protokoll tervezni és leírni, megvalósítani. Átvesszük az kapcsolódó eljárásokat és technikákat (mint a REST, az XML vs. JSON, illetve különböző, ezt támogató kódkönyvtárak). Megvizsgáljuk a Push üzenetek szerepét és használatát. Megvizsgáljuk a kommunikációs réteg tesztelésének módjait, illetve további stratégiákat (pl. Cache, hálózat elérhetősége).

    5.

    A mobil alkalmazások kapcsán vizsgáljuk a közösségi rendszerekkel való integráció lehetőségét. Ennek kapcsán részletesebben nézzük az OAuth megvalósítását. Áttekintjük a gyakori közösségi site-ok szolgáltatásait és integrációjukat.

    6.

    Az óra tematikája a „Backend as a service” koncepció bemutatása, elemzése, illetve használata. Ennek kapcsán megvizsgálunk több BaaS típust és képességeiket.

    7.

    Az előadáson a csapatban történő mobilszoftver fejlesztés kihívásaival foglalkozunk. Ennek részeként áttekintjük a verziókövetés, build szerverek, continuous integration, illetve a kódmetrika és automatikus kódmetrika report készítésének lehetőségeit.

    8.

    Az előadás témája a külső (vezetéknélküli) eszközök integrálása. Megvizsgáljuk a korszerű technológiákat (BLE, NFC, Zigbee/Z-Wave). Emellett szintén az óra anyaga a hordható informatika és integrációja (Google wear, okosszemüveg, orvosi eszközök stb.)

    9.

    Az óra keretein belül megismerkedünk a mobilszoftverek tesztelési kérdéseivel, illetve a TDD, BDD módszertanokkal.

    10.

    A tesztelési kérdések kapcsán ezen az előadáson a felhasználói felület tesztekkel, automatizált UI teszteléssel foglalkozunk.

    11.

    A tanóra anyaga az analitikai és loggolási funkciók beépítése, illetve ezekhez külső szolgáltatások integrációja. Az óra bemutatja a crash reporting megoldásokat és jelentőségüket. Az analitika egy területeként kitérünk a felhasználói felület használatának mérésére, hőtérkép készítésére, illetve az A/B tesztelésre.

    12.

    Bemutatjuk a mobil piacterekre lépés feladatait, az alkalmazás publikálás elemeit. Az előadás bemutatja, hogyan tervezzük meg a mobil alkalmazásunk béta-programját.

    13.

    Áttekintjük az elterjedt alkalmazás-finanszírozási modelleket, úgymint: paid, ad-supported, freemium, in-app purchase, enterprise, illetve ezek szoftveres támogatását. Szintén elemezzük a szoftver életciklus kezelés és frissítés módjait.

     

     

     

     

    Gyakorlat anyaga

    1.

    A gyakorlat során konkrét, informális funkcionális specifikációból kiindulva készítünk formális funkcionális specifikációt mobilszoftverhez.  gyakorlat része a képernyőterveknek az elméletben megismert eszközökkel való megtervezése is.

    2.

    Az előző gyakorlaton specifikált alkalmazáshoz adatréteget, illetve kommunikációs protokollt tervezünk. Emellett a gyakorlatban kipróbálunk különböző szinkronizációs modelleket.

    3.

    A gyakorlat során megvizsgáljuk, hogyan lehet kiváltani egyes funkciókat konkrét Backend-as-a-Service használatával.

    4.

    A gyakorlat során a konkrét példán keresztül nézzük meg a verziókövetés és build szerver használatát, illetve a continouos integration szerver működését.

    5.

    Ezen a gyakorlaton a konkrét példa kiegészítésével a felahsználói felület tesztelésének módszereit próbáljuk ki.

    6.

    A gyakorlat folyamán az alkalmazáshoz konkrét analitika és crash reporting kódkönyvtárat választunk és építünk be.

    7.

    A gyakorlat célja az A/B tesztelés beépítése az eddig megvalósított alkalmazásba. Ezután a piactérre lépés folyamatát egy adott piactéren próbáljuk ki.

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

    Előadás és gyakorlat.

    A technológia fejlődéséből adódó újdonságokat előadáson bemutatjuk, és otthoni feldolgozásra további online anyagokat írunk elő.

    10. Követelmények

    Szorgalmi időszakban

    1 db Nagyzárthelyi teljesítése legalább 40% eredménnyel

    Vizsgaidőszakban

    Írásbeli vizsga teljesítése legalább 40% eredménnyel.

    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
    Apple Inc.: The Swift Programming Language, https://itunes.apple.com/us/book/swift-programming-language/id881256329, 2014
    raywenderlich.com Team, Matthijs Hollemans, Fahim Farook: iOS Apprentice Sixth Edition: Beginning iOS development with Swift 4, 2017
    Reto Meier: Professional Android 4 Application Development, 2012.
    Bill Phillips, Brian Hardy: Android Programming: The Big Nerd Ranch Guide 3rd edition, 2017.
    Greg Nudelman: Android Design Patterns: Interaction Design Solutions for Developers, 2017.
    Android Developer Training, online: http://developer.android.com/training/index.html
    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ákra12
    Felkészülés zárthelyire28
    Házi feladat elkészítése
    Kijelölt írásos tananyag elsajátítása40
    Vizsgafelkészülés28
    Összesen150
    15. A tantárgy tematikáját kidolgozta

    Dr. Forstner Bertalan, egyetemi docens, AUT

    Dr. Ekler Péter, egyetemi docens, AUT

    Dr. Blázovics László, egyetemi docens, AUT