Mobil Informatikai Rendszerek Modern szoftverfejlesztés a mobil informatika területén
2016. szeptember 12.
Sicz-Mesziár János sicz- m e sziar.janos @ nik. u ni - ob u d a.h u
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 rendszerek társadalmi szerepe és hatása felértékelődött.
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 Audio, music Photo, video
Social
Telemedicina
Sicz-Mesziár János
…
Munka
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 Build tool & script
Wireframe
Kód ág feltöltés
Kódírás
UI
UX
branch merge
dependencies
alpha,beta test group
Kód letöltés all user
Fordítás
Sicz-Mesziár János
Teszt
Publikálás
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
Sicz-Mesziár János
Kanban
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