Vývoj softwaru

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Vývoj softwaru je proces koncipování, popisu, specifikace, návrhu, programování, dokumentace, testování a oprav chyb používaný při vytváření a údržbě aplikací, frameworků a jiných softwarových komponent. Jádrem vývoje softwaru je „programování“ - proces vytváření a údržby zdrojových kódů, ale v širším smyslu zahrnuje vše, co se používá od návrhu koncepce požadovaného softwaru až po jeho konečné nasazení, obvykle v plánovaném a strukturovaném procesu. Vývoj softwaru tak může zahrnovat výzkum, nový vývoj, prototypování, úpravy, znovupoužití, re-engineering, údržbu a všechny další činnosti, které přispívají k vytvoření softwarového produktu.

Účely vývoje software

Software se vyvíjí pro různé účely; třemi nejobvyklejší jsou:

* Má splňovat specifické potřeby určitého zákazníka nebo firmy (v případě zakázkového softwaru). * Má uspokojovat vnímanou potřebu nějaké skupiny potenciálních uživatelů (v případě komerčního softwaru a softwaru s otevřeným zdrojovým textem). +more * Je určený pro vlastní použití (například vědec může vytvořit software pro automatizaci svých rutinních úkolů).

Řízení procesu vývoje software

Potřeba lepšího řízení kvality procesu vývoje softwaru vedla k rozvoji softwarového inženýrství, které na proces vývoje softwaru aplikuje systematický přístup, jež je základem inženýrského paradigmatu.

Existují různé přístupy k řízení softwarových projektů známých jako modely životního cyklu vývoje softwaru, metodologie, procesy nebo modely. Tradičním přístupem je vodopádový model, který je protikladem mnoha novějších metodik agilního vývoje softwaru.

Vývoj softwaru se též liší dle toho, zda se jedná o vývoj vestavěného softwaru, tj. vývoj softwaru pro vestavěné systémy, a systémového software. +more Zatímco první se používá například pro řízení elektronických výrobků, a tak vyžaduje, aby byl vývojový proces integrován s vývojem příslušného fyzického výrobku, druhý vytváří prostředí pro běh aplikací a často i pro samotný proces programování, a proto se obvykle vyvíjí odděleně.

Metodologie vývoje softwaru

Proces vývoje softwaru (známý také jako metodika, model nebo životní cyklus vývoje softwaru) je rámec používaný pro strukturování, plánování a řízení procesu vývoje informačních systémů. V průběhu let bylo vyvinuto množství metodik, z nichž každá má své silné a slabé stránky. +more Žádná metodika vývoje softwaru nemusí být vhodná pro použití ve všech druzích projektů.

Většina metodologií však sdílí nějaké kombinace následujících fází vývoje softwaru: * Analýza problému * Průzkum trhu * Získávání požadavků pro navrhované obchodní řešení * Vytvoření plánu nebo návrhu softwarového řešení (Objektově orientovaná analýza a design) * Implementace softwaru (programování/kódování, ladění * Testování software * Nasazení softwaru (Instalace, Release management) * Údržba softwaru a oprava chyb

Tyto fáze se často souhrnně označují jako životní cyklus vývoje softwaru nebo SDLC.

Různé přístupy k vývoji softwaru mohou provádět tyto fáze v různém pořadí a věnovat různým fázím více nebo méně času. Také podrobnost dokumentace vytvářené v každé fázi vývoje softwaru se mění.

Vodopádový přístup

U vodopádového a od něj odvozených přístupů jsou všechny fáze vývoje prováděný postupně. Vývojáři, popř. +more zadavatelé softwaru se snaží posoudit všechna rizika vývoje a vytvořit si podrobný plán softwaru ještě před zahájením samotné implementace (kódování). Tím vším se snaží vyhnout jakékoliv rozsáhle změně návrhu a opakovanému kódování v pozdějších fázích plánování životního cyklu vývoje softwaru. Rizikem zde však je, že se v průběhu vývoje software objeví nedomyšlené detaily nebo se nějak zásadně změní situace na trhu či trendy v oboru. Na takové situace obvykle tento přístup nedokáže pružně reagovat. Ilustruje to i fakt, že statisticky pouhých 15 % takto řízených projektů je dokončeno bez zdražení, včas a s udržením požadované kvality a funkcionality.

Agilní přístup

U agilního přístupu a jeho variant jsou všechny fáze prováděny opakovaně v každém cyklu nebo iteraci vývoje produktu. Méně času se zpočátku tráví na plánování a dokumentaci a více času na kódování a vývoj automatizovaných testů. +more Součástí agilního přístupu je průběžné testování v celém vývojovém životním cyklu.

Vývojáři zde tedy obvykle rozdělují vývoj aplikace či softwaru do jednotlivých cyklů (sprintů), během kterých je vždy zhotovena nějaká funkcionalita produktu. První cíl vývoje bývá obvykle tzv. +more minimum viable produkt (minimální životaschopný produkt), který se zaměřuje na základní problém, kvůli kterému je software vyvíjen. Na konci každého cyklu je vždy produkt s danou funkcionalitou ukázán klientovi a při dosažení fáze MVP je obvykle předán k otestování zákazníkům, popř. rovnou uveden na trh. Podle zpětné vazby klienta a zákazníků je produkt dále rozvíjen, mění se designově, jsou přidaný žádané funkcionality apod. Agilní přístup tedy zahrnuje aktivní začlenění klienta i zákazníků již do raných fází vývoje produktu. Výhodou je, že se software už od samého počátku vyvíjí přesně podle představ klienta i cílové skupiny. Nic se nevyvíjí zbytečně a vývoj pružněji reaguje na reálné potřeby zákazníků i změny na trhu.

Volba přístupu

Různé metodologie mají významné výhody a nevýhody a nejlepší přístup k řešení problému pomocí softwaru bude často záviset na typu problému. Pokud je problém dobře pochopen a řešení lze efektivně předem naplánovat, klasický „vodopádový přístup“ může fungovat nejlépe. +more Tento přístup se proto volí častěji u neinovativních softwarů. Pokud je naopak problém nejednoznačný, jde o inovativní software, který reaguje na dosud neuchopené problémy, a strukturu softwarového řešení si nelze snadno představit, pak může být mnohem vhodnější agilní přístup.

Odkazy

Reference

Související články

Průběžná integrace * DevOps * Proces vývoje softwaru * Programátor * Životní cyklus informačního systému * Proces vývoje softwaru

Specifické aplikace

Produkce počítačové hry * Vývoj mobilních aplikací

Externí odkazy

[url=https://synetech.cz/cs/blog/zadani-pro-vyvoj-mobilni-aplikace]Vývoj software - článek[/url]

Literatura

John W. Horch (2005). „Two Orientations On How To Work With Objects“ in: IEEE Software. vol. 12, čís. 2, stránky 117-118, Mar., 1995. * * *

Kategorie:Programování Kategorie:Řízení softwarových projektů

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top