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