20. července 2017 | Anonymní
Metody vývoje aplikací ilustrace

Metody vývoje aplikací. RAD, Agile, Iterative model, Spiral

Existuje několik osvědčených metod pro vývoj software, tzv. best practices. Volba konkrétní metody závisí na specifikaci projektu, rozpočtu, subjektivní preferenci a dokonce i temperamentu vedoucího. V tomto článku krátce popíšeme základní metody vývoje webových a mobilních aplikací.

1. RAD Model (rapid application development)

RAD Model ilustrace

RAD model je druh inkrementálního modelu. V tomto modelu jsou komponenty nebo funkce vyvíjeny několika vysoce kvalifikovanými týmy paralelně, jako kdyby v několika mini projektech. Časové rámce jednoho cyklu jsou značně omezené. Vytvořené moduly jsou pak integrovány do jednoho pracovního prototypu.

RAD model zahrnuje následující fáze:

  • Obchodní modelování
  • Modelování dat
  • Modelování procesů
  • Sestavení aplikace
  • Testování

Kdy použít RAD model?

Může být použit pouze v přítomnosti vysoce kvalifikovaných a specializovaných architektů. Rozpočet projektu má být dostatečně velký. RAD model může být zvolen při jisté znalosti cílového podnikání a nezbytnosti okamžité realizace systému během 2-3 měsíců.

2. Agile Model (agilní vývoj)

Agile Model ilustrace

V agilním vývoji dochází k rozdělení vývoje do 1-2týdenních etap, ve kterých se vždy hodnotí a okomentuje hotová funkcionalita a definuje se další vývoj. Zákazník tak může sledovat, zda se vývoj ubíhá požadovaným směrem, a v případě potřeby jej může upravit. Nevýhodou agilního vývoje je, že je velmi těžké odhadnout celkové náklady a potřebný čas.

Způsob návrhu a vývoje

  • Před programováním vzniká méně detailní projekt.
  • Orientačně se naceňují a načasují jednotlivé moduly systému.
  • Implementace začíná velmi rychle a brzy je vidět první funkcionalita systému.
  • Na pravidelných schůzkách se prezentuje vytvořená funkcionalita a domlouvá další postup.
  • Průběžně se porovnává již strávený čas s původním odhadem.
  • První verze jsou jednoduché, ale pokrývají maximum funkcionality typu must have.
  • V dalších kolech dochází k realizaci nice to have vlastností.
  • Fakturace probíhá dle detailně vykázaného času vývojářů.

Kdy použít agilní vývoj?

  • Když se často mění potřeby uživatele nebo zákazníka.
  • Pro zahájení projektu není potřeba detailního projektu jako u modelu vodopádu.

3. Iterative Model (iterativní model)

Iterativní model ilustrace

Vývoj prostřednictvím iterativního modelu nevyžaduje na začátku detailní zpracování projektu. Místo toho se na začátku vytvoří základní verze, která tvoří základ pro budoucí požadavky. Tento proces se opakuje. Tato verze může být neideální, hlavní je, aby fungovala. Po pochopení konečného cíle se vývojáři snaží, aby byl každý jejich krok produktivní a každá verze byla funkční.

Kdy použít iterativní model?

  • Požadavky k cílovému systému jsou předem jasně definované a srozumitelné.
  • Projekt je velký nebo velmi rozsáhlý.
  • Hlavní úkol je stanoven, ale jednotlivé detaily se mohou vyvíjet v průběhu času.

4. Spiral Model (spirálový model)

Spirálový model ilustrace

Spirálový model se podobá inkrementálnímu modelu, ale s důrazem na analýzu rizik. Funguje dobře pro řešení kriticky důležitých obchodních úkolů, kdy neúspěch je neslučitelný s činností společnosti, například v rámci výroby nových produktových řad nebo v případě potřeby výzkumu a praktického testování.

Spirálový model zahrnuje 4 kroky pro každé kolo:

  1. Plánování
  2. Analýza rizik
  3. Výstavba
  4. Hodnocení výsledků a při uspokojivé kvalitě přechod k novému kolu

Tento model není vhodný pro malé projekty, je vhodný pouze pro složitější a dražší projekty.

V moderní praxi je více možných modelů pro vývoj software. Neexistuje jediný správný model pro všechny projekty. I tak oblíbený agilní vývoj nejde použít všude kvůli nepřipravenosti některých zákazníků nebo nemožnosti flexibilního financování. Metodiky se částečně překrývají v nástrojích pro vývoj a jsou vzájemně podobné.

V iQuestu tvoříme systémy buď na základě metody vodopádu, kdy předem známe veškeré požadavky, nebo formou agilního vývoje, kdy zákazník upravuje zadání v průběhu prací.