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: 2014. október 1.

    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
    VIAUMB01 3 2/1/0/v 4  
    3. A tantárgyfelelős személy és tanszék Dr. Forstner Bertalan,
    A tantárgy tanszéki weboldala https://www.aut.bme.hu/Course/VIAUMB01
    4. A tantárgy előadója

    Név:

    Beosztás:

    Tanszék, Int.:

    Dr. Forstner Bertalan

    egyetemi docens

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

    Dr. Ekler Péter

    egyetemi adjunktus

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

    Dr. Kelényi Imre

    egyetemi adjunktus

    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. Mobilszoftver-platformok.

    6. Előtanulmányi rend
    Kötelező:
    NEM
    (TárgyEredmény( "BMEVIAUMA26", "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIAUMA26", "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:

    Kötelező: Mobilszoftver-platformok (BMEVIAUMA05)


    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 tervezésni é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 hasná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 vzsgá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.

     

    14.

    Zárthelyi dolgozat írása

     

     

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

    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.
    13. Jegyzet, tankönyv, felhasználható irodalom
    • Jeff McWherter: Professional Mobile Application Development, 2012.

    • Martin Fowler - Gui Architectures - http://martinfowler.com/eaaDev/uiArchs.html

    • Juhani Lehtimaki: Smashing Android UI, 2012.

    • Jim Webber, Savas Parastatidis, Ian Robinson: REST in Practice: Hypermedia and Systems Architecture, O'Reilly Media, 2010

    • Facebook Developer Site - https://developers.facebook.com/

    • Kris Jamsa: Cloud Computing: SaaS, PaaS, IaaS, Virtualization, Business Models, Mobile, Security and More, 2013.

    • Scott Chaco: Pro Git, http://git-scm.com/book

    • Jon Loeliger, Matthew McCullough: Version Control with Git: Powerful tools and techniques for collaborative software development, O'Reilly Media, 2012

    • Robert C. Martin: Clean Code: A Handbook of Agile Software Craftsmanship, 2008.

    • Jez Humble, David Farley: Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation, 2010.

    • Graham Lee: Test-Driven iOS Development, Addison-Wesley Professional, 2012

    • Diego Torres Milano: Android Application Testing Guide, 2011

    • Jonathan Kohl: Tap Into Mobile Application Testing

    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árthelyire20
    Házi feladat elkészítése0
    Kijelölt írásos tananyag elsajátítása0
    Vizsgafelkészülés44
    Összesen120
    15. A tantárgy tematikáját kidolgozta

    Név:

    Beosztás:

    Tanszék, Int.:

    Dr. Forstner Bertalan

    egyetemi docens

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

    Dr. Ekler Péter

    egyetemi adjunktus

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

    Dr. Kelényi Imre

    egyetemi adjunktus

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