NFR: 12 kľúčových aspektov pre vývoj mobilných aplikácií

Categories: ArchitektúraMobilitaTechnology

Keď koncipujeme nový softvér, zvyčajne sa sústredíme na jeho funkcie a vplyv na spoločnosť a jej príjmy. Funkcionalitu členíme na požiadavky, prvky, užívateľské príbehy a integrácie. Keď však dôjde na samotný vývoj daného softvéru, premýšľame inak. Vývojár sa najčastejšie zameriava na inú otázku: „Aké sú tu nefunkčné požiadavky?“.

Nefunkčné požiadavky (NFR) sú kritériá alebo parametre, ktoré zaistia, že produkt spĺňa prevádzkové požiadavky ako je napr. rýchlosť, kompatibilita, lokalizácia či kapacita. Zatiaľ čo funkčné požiadavky definujú, čo by aplikácia mala robiť, NFR definujú, ako dobre by mala fungovať a napĺňať očakávania užívateľov.

Význam NFR 

NFR sú základným aspektom vývoja softvéru a slúžia ako základné požiadavky formujúce dizajn architektúry navrhovaného systému. Architektúra systému navrhnutá na základe dobre stanovených NFR vytvára plán návrhu softvéru, jeho implementáciu, nasadenie aj následnú údržbu a aktualizácie.

Mnohé známe NFR boli definované ešte pred vývojom prvej mobilnej aplikácie, preto je nevyhnutné, aby ste tieto NFR vnímali v súvislostiach z hľadiska mobilného vývoja. Ktoré z týchto nefunkčných požiadaviek sa však vzťahujú na vývoj mobilných aplikácií a na čo je treba pamätať pri plánovaní vlastnej mobilnej aplikácie?

V tomto článku si priblížime, ako NFR ovplyvňujú dizajn, vývoj a podporu mobilných aplikácií, pričom sa postupne pozrieme na každú požiadavku a na to, čo zahŕňa.

NFR z hľadiska vývoja mobilných aplikácií

Pri vývoji mobilných aplikácií je potrebné zohľadniť nasledujúce nefunkčné požiadavky, pričom niektoré z nich sa vzťahujú výhradne na mobilné zariadenia a iné sa od NFR pre vývoj webových aplikácií líšia len nepatrne.

Prístupnosť (Accessibility)

Prístupnosť v úlohe NFR hovorí o tom, ako aplikácia podporuje užívateľov so špeciálnymi potrebami alebo ako funguje za špecifických okolností, napríklad pre užívateľov so zrakovým hendikepom (User with Low Vision). Pri návrhu mobilnej aplikácie je potrebné splniť mnoho požiadaviek na prístupnosť, no používanie hlasových pokynov na ovládanie a navigáciu v aplikácii je obzvlášť dôležitou nefunkčnou požiadavkou. Prístupnosť možno tiež zvýšiť pridaním špeciálnych gest, ako je dvojité ťuknutie a aktivácia základných funkcií dlhým stlačením.

Adaptabilita (Adaptability)

V kontexte vývoja mobilných aplikácií platí, že ak aplikácia spĺňa všetky funkčné požiadavky pri dodržaní nasledujúcich podmienok, spĺňa nefunkčnú požiadavku adaptability:

  • Podpora širokého spektra rozlíšení obrazovky.
  • Podpora širokého portfólia výrobcov (v systéme Android).
  • Podpora maximálnej možnej spätnej kompatibility verzií OS.

Adaptabilita môže byť aj nefunkčnou požiadavkou na zabezpečenie bezproblémového chodu aplikácie pri pomalom internete.

Odporúčané čítanie: Selecting a Cross-Platform Solution for Mobile Application Development

Dostupnosť (Availability)

Ak je sú mobilná aplikácia a jej funkcie priamo závislé od backendového API a backendových služieb, jej dostupnosť závisí od dostupnosti týchto služieb. V kontexte mobilnej aplikácie sa však dostupnosť ako NFR týka využívania možných funkcií, aj keď backendové API nie je dostupné. Môže, napríklad, užívateľ vykonať operáciu, ktorá sa synchronizuje neskôr, keď budú služby opäť online?

Súlad (Compliance) 

Súlad sa v mobilných aplikáciách do veľkej miery týka ochrany a súkromia údajov užívateľov, pričom požiadavky na súlad stanovujú a presadzujú nariadenia HIPAA, GDPR, a pod. Ak NFR ochrany súkromia a bezpečnosti spĺňa backend aj mobilná aplikácia, vo väčšine prípadov to znamená aj dosiahnutie súladu (ak v tejto oblasti neexistujú osobité požiadavky).

Integrita dát (Data Integrity) 

Integrita dát v mobilných aplikáciách zahŕňa obnovu údajov na bezproblémové fungovanie aplikácie. Očakáva sa, že aplikácia bez problému obnoví a zachová údaje aj keď užívateľ zmení zariadenie, nainštaluje si novú verziu aplikácie alebo ak niečo vykoná v offline režime.

Uchovávanie údajov (Data Retention) 

Pri mobilných aplikáciách sa predpokladá synchronizácia údajov s backendovými službami, a preto sa vo všeobecnosti neodporúča uchovávať na lokálnom úložisku veľké súbory trvalých údajov. NFR „No data retention“ (Neuchovávanie dát) sa vzťahuje na mobilné aplikácie. Ak je však potrebné lokálnom úložisku trvalo uchovávať veľké množstvo údajov, riadiacim faktorom nefunkčnej požiadavky uchovávania údajov má byť ich objem, nie dĺžka ich uchovávania.

Nasadenie (Deployment) 

Nasadenie mobilných aplikácií prebieha zväčša prostredníctvom obchodov s aplikáciami pre systémy Android či od spoločnosti Apple. Obchody majú na sprístupňovanie aplikácií vlastné pravidlá a koncoví užívatelia preto nemajú okamžite k dispozícii aktualizácie. Nasadenie ako NFR v kontexte mobility sa (okrem jej základných špecifikácií) zameriava na informovanie užívateľov o dostupnosti nových verzií a na zastavenie používania aplikácie v prípade, ak nie sú nainštalované povinné aktualizácie. Obchody App Store aj Play Store poskytujú konfigurácie na prioritizáciu povinných aktualizácií, no systém možno aj napriek tomu navrhnúť tak, aby si bezproblémové používanie aplikácie koncovými užívateľmi vynútil povinnými aktualizáciami.

Účinnosť (Efficiency) 

Mobilné aplikácie bežia na mobilných zariadeniach, preto môžu na rozdiel od webových či backendových aplikácií využívať iba obmedzené zdroje, ako napríklad pamäť. Mobilné zariadenia sú napájané z batérie, účinnosť je dôležitou NFR. Je nevyhnutné, aby mobilná aplikácia bežala efektívne, mala nízku pamäťovú stopu a nízku spotrebu energie.

Súkromie (Privacy) 

Súkromie je ďalším dôležitým aspektom mobilných aplikácií. Z pohľadu nefunkčných požiadaviek v oblasti súkromia je dôležité nasledovné:

  • Mediálne súbory obsahujúce údaje špecifické pre užívateľa by mali byť uložené v súkromnom úložisku aplikácie a mali by byť zašifrované.
  • Mediálne súbory získané z aplikácie by sa nemali zdieľať priamo.
  • Nemalo by byť povolené kopírovanie textu z aplikácie.
  • Nemalo by byť povolené vytvárať snímky obrazovky.

Reportovanie a monitorovanie (Reporting and Monitoring) 

Reportovacie a monitorovacie NFR sú kľúčové z hľadiska podpory a údržby. Keďže mobilné aplikácie sú nainštalované na zariadeniach užívateľov, pracovníci podpory s nimi len ťažko dokážu priamo interagovať, zdieľať ich obrazovku alebo pristupovať k súborom s miestnymi záznamami. Preto sú potrebné riešenia na vzdialené zaznamenávanie a analýzu, ako sú napr. Firebase alebo Countly. Tieto riešenia dokážu zachytávať udalosti, akcie užívateľov ako aj výnimky, a môžu pomôcť analyzovať spôsob používania aplikácie.

Bezpečnosť (Security) 

Súkromie a bezpečnosť sú navzájom prepojené a z pohľadu bezpečnostných NFR je dôležité nasledovné:

  • Aplikácia by mala byť podpísaná vhodnými certifikátmi súkromnosti. Ukladanie a používanie certifikátov by mala riadiť politika.
  • Aplikáciu by nemalo byť možné nainštalovať na verzie operačných systémov (OS) vyrobené tretími stranami alebo na falšované verzie OS.
  • Údaje by mali byť šifrované v zariadení aj počas prenosu.
  • Prístup iných aplikácií by mal byť predvolene zakázaný.
  • Mali by byť dodržané všetky ostatné bezpečnostné pokyny špecifické pre danú platformu.

Použiteľnosť (Usability) 

Vzhľadom na malý rozmer je použiteľnosť dôležitou nefunkčnou požiadavkou. Všeobecne platí, že užívatelia by mali dokázať ľahko prechádzať aplikáciami a pristupovať k dôležitým funkciám najčastejšie ovládaným jednou rukou. Návrh dizajnu UX by mal aj minimálny posun obrazovky alebo vyhľadávanie v posúvateľnom obsahu a rýchly prístup k dôležitým funkciám.

Hlavné ponaučenia

Riešenie nefunkčných požiadaviek si vyžaduje proaktívny a komplexný prístup vývojárov mobilných aplikácií. Na začiatku je dôkladné plánovanie a analýza s cieľom identifikovať konkrétne NFR relevantné pre projekt. Následne je pre každú požiadavku potrebné stanoviť jasné a merateľné ciele, aby aplikácia splnila očakávania svojich užívateľov.

Na nefunkčné požiadavky myslite v každej fáze vývojového procesu. Vývojári by mali priebežne vyhodnocovať výkonnosť aplikácie, bezpečnostné opatrenia či použiteľnosť a tiež realizovať potrebné úpravy a optimalizáciu, aby dosiahli želané výsledky. Na efektívne vyriešenie NFR a vytvorenie vysoko kvalitnej mobilnej aplikácie je potrebná úzka spolupráca vývojárov, dizajnérov, testerov a ďalších zainteresovaných strán.

Prísne testovacie metodiky, ako je napríklad testovanie výkonu, bezpečnosti alebo testovanie kompatibility, pomôžu overiť, či aplikácia spĺňa definované NFR. Automatizované testovacie nástroje a rámce môžu prispieť k zvýšeniu efektivity testovacieho procesu a identifikácii prípadných prekážok, bezpečnostnej zraniteľnosti či problémov s kompatibilitou.

Nezabúdajme, že nefunkčné požiadavky nie sú jednorazovou záležitosťou. Vývoj technológií so sebou prináša aj zmeny v očakávaniach užívateľov a nové výzvy. Vývojári mobilných aplikácií musia neustále sledovať nové trendy a prispôsobovať sa novým technológiám, aby zaistili, že ich aplikácie budú spĺňať neustále sa vyvíjajúce nefunkčné požiadavky.

Prioritizácia nefunkčných požiadaviek a ich integrácia do procesu vývoja pomôže vášmu tímu tvoriť mobilné aplikácie, ktoré nespĺňajú len funkčné požiadavky, ale vynikajú aj v oblasti výkonu, bezpečnosti, použiteľnosti, kompatibility a škálovateľnosti. Takéto aplikácie majú väčšiu šancu uspieť na vysoko konkurenčnom trhu mobilných aplikácií, potešiť užívateľov a vytvoriť dobré meno vývojárskeho tímu, ktorý za nimi stojí.

Ďalšie užitočné zdroje:

Author

Abhiishek-Gedam

Autor

Abhishek Gedam

Principal Architect,Technology

Pozrieť všetky články

Top Insights

Spolupráca GL a SPŠT v Bardejove na ročníkovom projekte

Spolupráca GL a SPŠT v Bardejove na ročníkovom...

AgileProjektový manažmentWork-life
Automatizované testovanie mobilných a webových aplikácií

Automatizované testovanie mobilných a webových aplikácií

Technický článokTesting a QATechnology
Bezpečný softvér agilným vývojom

Bezpečný softvér agilným vývojom

AgileArchitektúraTechnický článokNezaradené

Populárni autori

Dr Maria Aretoulaki

Dr Maria Aretoulaki

Lead Conversational & Generative AI Design

Abhishek Gedam

Abhishek Gedam

Principal Architect,Technology

Denys Balatsko

Denys Balatsko

Senior Vice President, Engineering GlobalLogic

Anna Grominová

Anna Grominová

HR Business Partner

Ďalšie kategórie článkov

  • URL copied!