mobil informatikai rendszerekusers.nik.uni-obuda.hu/malk/mobil/2016 ősz/01_-_modern... ·...
TRANSCRIPT
Mobil Informatikai RendszerekModern szoftverfejlesztés a mobil
informatika területén
2016. szeptember 12.
Sicz-Mesziár Jánoss icz -mesz ia r. janos@nik .un i -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 rendszerek társadalmi
szerepe és hatása felértékelődött.
9/12/2016Sicz-Mesziár János 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
9/12/2016Sicz-Mesziár János 3
Felhasználási területek
9/12/2016Sicz-Mesziár János 4
TérinformatikaKommunikáció
Telemedicina
Sport
Munka
Audio, music
Photo, video
Social
…
9/12/2016Sicz-Mesziár János 5
Modern szoftverfejlesztés1. 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
9/12/2016Sicz-Mesziár János 6
Modern szoftverfejlesztés folyamata
Projekt
alapítás
Wireframe
UI UX
Verzió kezelő
rendszer
Build
tool & script
Kód ág
feltöltés
branch
merge
dependencies
Kód
letöltés
Fordítás Teszt Publikálás
Kódírás
alpha,beta
test group
all user
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
9/12/2016Sicz-Mesziár János 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.
9/12/2016Sicz-Mesziár János 8
Scrum Kanban
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)
9/12/2016Sicz-Mesziár János 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
9/12/2016Sicz-Mesziár János 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)
9/12/2016Sicz-Mesziár János 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
9/12/2016Sicz-Mesziár János 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
9/12/2016Sicz-Mesziár János 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
9/12/2016Sicz-Mesziár János 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.
9/12/2016Sicz-Mesziár János 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
9/12/2016Sicz-Mesziár János 16