Vývoj softwaru

Z Wikipedie, otevřené encyklopedie
Skočit na navigaci Skočit na vyhledávání

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.[1] 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.[2]

Software se vyvíjí pro různé účely; třemi nejobvyklejšími je, aby splňoval specifické potřeby určitého zákazníka nebo firmy (v případě zakázkového softwaru), aby uspokojoval 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) nebo pro vlastní použití (například vědec může vytvořit software pro automatizaci svých rutinních úkolů). Vývoj vestavěného softwaru, tj. vývoj softwaru pro vestavěné systémy, který se používá například pro řízení elektronických výrobků, vyžaduje, aby byl vývojový proces integrován s vývojem příslušného fyzického výrobku. Naproti tomu systémový software, který vytváří prostředí pro běh aplikací a často i pro samotný proces programování, se obvykle vyvíjí odděleně.

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.

Metodologie[editovat | editovat zdroj]

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. Existuje více přístupů k vývoji softwaru. Některé využívají strukturovanější přístup pro vývoj obchodních řešení, zatímco jiné využívají spíše inkrementální přístup, při kterém je software vyvíjen postupně po částech. Žádná metodika vývoje softwaru nemusí být vhodná pro použití ve všech druzích projektů. Každá z dostupných metodik se hodí pro určitý druh projektů podle technických, organizačních, projektových a týmových kritérií a hledisek.[3]

Většina metodologií sdílí nějaké kombinace následujících fází vývoje softwaru:

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í. Tyto fáze mohou být také prováděny postupně (u postupů vycházejících z „vodopádového“ přístupu) nebo mohou být opakovány v různých cyklech nebo iteracích (u „extrémnějších“ postupů). Extrémnější postupy obvykle tráví méně času na plánování a dokumentaci a více času na kódování a vývoj automatizovaných testů. „Extrémnější“ přístupy také prosazují průběžné testování v celém vývojovém životním cyklu, a vždy mají fungující produkt. Postupy strukturovanější nebo založené na na „vodopádovém modelu“ se pokoušejí posoudit většinu rizik a vytvořit podrobný plán softwaru před zahájením implementace (kódování) a vyhýbat se rozsáhlým změnám návrhu a opakovanému kódování v pozdějších fázích plánování životního cyklu vývoje softwaru.

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. Pokud je naopak problém jednoznačný (alespoň pro vývojový tým) a strukturu softwarového řešení si nelze snadno představit, pak „extrémnější“ inkrementální přístup může fungovat nejlépe.

Odkazy[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Software development na anglické Wikipedii.

  1. Application Development (AppDev) Defined and Explained [online]. Bestpricecomputers.co.uk, 2007-08-13 [cit. 2012-08-05]. Dostupné online. 
  2. DRM Associates. New Product Development Glossary [online]. 2002 [cit. 2006-10-29]. Dostupné online. 
  3. System Development Methodologies for Web-Enabled E-Business: A Customization Framework Linda V. Knight (DePaul University, USA), Theresa A. Steinbach (DePaul University, USA) a Vince Kellen (Blue Wolf, USA)

Související články[editovat | editovat zdroj]

Specifické aplikace[editovat | editovat zdroj]

Literatura[editovat | editovat zdroj]

  • KIT, Edward. Software Testing in The Real World. [s.l.]: Addison-Wesley Professional, 1992. Dostupné online. ISBN 0201877562. 
  • MCCARTHY, Jim. Dynamics of Software Development. [s.l.]: Microsoft Press, 1995. Dostupné online. ISBN 1556158238. 
  • CONDE, Dan. Software Product Management: Managing Software Development from Idea to Product to Marketing to Sales. [s.l.]: Aspatore Books, 2002. ISBN 1587622025. 
  • DAVIS, A. M. Just enough requirements management: Where software development meets marketing. [s.l.]: Dorset House Publishing Company, Incorporated, 2005. ISBN 0932633641. 
  • HASTED, Edward. Software That Sells: A Practical Guide to Developing and Marketing Your Software Project. [s.l.]: Wiley Publishing, 2005. ISBN 0764597833. 
  • HOHMANN, Luke. Beyond Software Architecture: Creating and Sustaining Winning Solutions. [s.l.]: Addison-Wesley Professional, 2003. ISBN 0201775948. 
  • 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.
  • RITTINGHOUSE, John. Managing Software Deliverables: A Software Development Management Methodology. [s.l.]: Digitální Press, 2003. ISBN 155558313X. 
  • WIEGERS, Karl E. More About Software Requirements: Thorny Issues and Practical Advice. [s.l.]: Microsoft Press, 2005. ISBN 0735622671. 
  • WYSOCKI, Robert K. Effective Software Project Management. [s.l.]: Wiley, 2006. ISBN 0764596365.