Mobil Informatikai Rendszerek Modern szoftverfejlesztés a mobil informatika területén 2016. szeptember 12. Sicz-Mesziár János sicz- m e s z i a r. j a n o s @ nik.uni - obuda.hu
Mi az a mobil informatikai rendszer? A mobil informatikai rendszerek célja, hogy olyan instant megoldásokat adjon, amely a felhasználás helyétől és idejétől független. Jellemző, hogy valamilyen vezeték nélküli informatikai hálózatot, mint erőforrást használ, és a mobilitás érdekében (véges mennyiségű) energiaforrásról üzemel. Manapság már a digitális jel átvitel jellemzi az adatkommunikációt. Mobil hálózatok terjedésének köszönhetően pedig az offline feldolgozás mellett az állandó online kapcsolat kezd előtérbe kerülni. Általában valamilyen adott célból kialakított rendszer ezért kezelésük, használatuk egyszerű és letisztult. Napjainkra a mobil informatikai szerepe és hatása felértékelődött. rendszerek társadalmi Sicz-Mesziár János 9/12/2016 2
Miben más egy mobil informatikai rendszer? Független energiaforrásról üzemel, pl.: akkumulátor Vezeték nélküli hálózati kommunikációval rendelkezik Hordozható, mobilis Optimalizált szoftver-hardver megoldások Kevesebb funkció Kötegelt és ütemezett feldolgozás Célhardverek (heterogén csatolt CPU, specializált feldolgozók) Biztonsági kérdések eltérő jellege Elhagyott eszközök kérdése (BYOD és MDM megoldások) Vezeték nélküli hálózati kommunikáció lehallgathatósága Disztribúciós jelleg Sicz-Mesziár János 9/12/2016 3
Felhasználási területek Kommunikáció Térinformatika Sport Telemedicina Munka Audio, music Photo, video Social Sicz-Mesziár János 9/12/2016 4
Modern szoftverfejlesztés 1. Projekt alapítás Módszertan választás Projekt menedzsment eszköz választás 2. Felhasználói felület Wireframe, prototípus gyártás UI, UX 3. Fejlesztés Veruió kezelő Build tool & build script Kódírás 4. Continuous Integration Automata teszt Automata verzió publikálás 5. Utóélet Visszajelzések, Hiba követés Analitika Sicz-Mesziár János 9/12/2016 5
Modern szoftverfejlesztés folyamata Projekt alapítás Verzió kezelő rendszer Wireframe Build tool & script Kódírás Kód ág feltöltés UI UX dependencies branch merge Kód letöltés Fordítás Teszt Publikálás alpha,beta test group all user Sicz-Mesziár János 9/12/2016 6
Projekt alapítás A projekt céljának és/vagy irányának meghatározása, előkészítése, reális megtervezése amely projektmenedzsment feladat. Általában valamilyen specifikáció vagy user story áll rendelkezésre. Eredmény terméke a Projekt Alapító Dokumentum (PAD) Projekt célja (mire ad megoldás, 1-2 mondat) Projekt célközönsége (kor, nem, terület) Ütemterv (mérföldkövek) Eredmény termékei (időközi verziók, tesztelési eredmények, stb ) Erőforrások (fejlesztői kapacitás, külső erőforrások, határidő, budget) Felelősségi körök, szerepkörök (ki mit tehet) Kockázatok Sicz-Mesziár János 9/12/2016 7
Módszertan választás Mai modern szoftverfejlesztésben az agilis módszertanok a preferáltak. Adaptív szoftver-hardver fejlesztést takar, amely flexibilisen tud alkalmazkodni a menet közbeni igény változásokra. Jól fókuszált erőforrás felhasználás. Scrum Kanban Sicz-Mesziár János 9/12/2016 8
Projekt menedzsment eszköz választás Célja, hogy a projekt irányítását egy kézbe, azaz egyetlen eszközbe terelje. Követhető legyen a projekt fejlesztés folyamata. Mindenki számára egyértelműsítse a feladatokat. Az akadályok jól felismerhetőek legyenek. (blokkolódás) Sicz-Mesziár János 9/12/2016 9
Wireframe, mockup, prototype Koncepció, drótváz rajz készítése Elképzelések egyeztetésére jól használható (ugyanazt képzeljük alatta?) UX előteszt (hibás koncepció korrigálása implementáció előtt) Számtalan eszköz van már rá Sketch, WireframeSketcher, Pencil, MockFlow, Gliffy, AxureRP, Balsamiq, JustInMind Sicz-Mesziár János 9/12/2016 10
UI, UX Célja, hogy a szoftver használata minél gördülékenyebb legyen. Manapság a fő irány elvek: Letisztultság Kényelem (egy kattintásos megoldás, pl.: FB, G+ OAuth login Minél kevesebb zavaró tényező (amit tudunk oldjunk meg a felhasználó nélkül) Minimális színválaszték Koherencia és egységesség Visszajelzés az interakciókra Elfogadjuk, hogy nem tudjuk (teljesen) mi a jó a felhasználónak. (felhasználó reakciója a szoftverre) Sicz-Mesziár János 9/12/2016 11
Verzió kezelő rendszer A forrás kód karbantartása és magas szintű kezelése. Csapat munka összehangolása. Elágazások, alternatív implementációk támogatása. Successful Git branching model Master Release Develop Feature branch Sicz-Mesziár János 9/12/2016 12
Build tool & script Build automatizáló rendszer, melynek célja, hogy a szoftvercsomag előállításához szükséges folyamatokat összefogja. Karmester szerep, mindent tud ami az előállításhoz kell Így is ismert: One click build Az alábbi feladatokat szokta ellátni: Függőség kezelés (felhasznált library-k begyűjtése, központi repository-kból) Forrás optimalizálás Alternatív verziók kezelése Sicz-Mesziár János 9/12/2016 13
CI automata teszt & deploy Célja, hogy a verziókövető rendszerből letöltse az aktuális kódot, majd a build script(ek) segítségével előállítsa a kívánt szoftvercsomagot. Szoftver csomag elkészülte után, futtathat: Automatikus teszteket Publikációs folyamatokat Kiküldés szűk tesztcsoportnak (e-mail, weboldal), Közzététel mindenki felé (Play Store, AppStore publikáció), Kitelepítés a szerverre Sicz-Mesziár János 9/12/2016 14
Crash report Célja, hogy visszajelzést kapjunk a nem megfelelő működésről. Általában egy olyan automatikus reportot jelent, amely az esetleges programhibáknál (expcetion) elküldi egy központi szerverre. Lehetőségünk van kielemezni a hibát, készüléktől és felhasználótól függően. Sicz-Mesziár János 9/12/2016 15
Analitika Az analitika célja, hogy ne repüljünk vakon. A kiadott disztributív alkalmazásokat nyomon tudjuk követni. Megismerjük általa a szoftverünk felhasználóit Mérni tudjuk döntéseinket. (A/B test) Platformok közötti összehasonlítás Sicz-Mesziár János 9/12/2016 16