Popište proces vývoje softwaru, jeho jednotlivé fáze a charakterizujte profese, které se na něm podílejí. Odlište vodopádový a spirálový styl vývoje. Vysvětlete, jak se typicky označují jednotlivé verze
Software (dále jen SW), neboli programové vybavení počítače, které provádí nějakou činnost. Jedná se o nehmotnou část počítače, tedy opak hardwaru.
Obsah
Vývoj software
Metodika vývoje
Metodika vývoje softwaru je souhrn různých postupů, plánování a řízení vývoje a zároveň také samostatný obor zabývající se vytvářením, prováděním a ovlivňováním jednotlivých metodik vývoje SW. Metodikou se také může chápat využití určitého frameworku a dalších postupů. Dříve se používaly tradiční metodiky vývoje, které se ale nakonec neujaly, kvůli velké byrokratické zátěži a přešlo se k agilním metodám.
Fáze vývoje
Profese podílející se na vývoji
Na projektu vývoje SW pracuje celý tým specialistů. V týmu je důležité aby měl každý jasně dané své kompetence, pracovní náplň a věděl co co má jak a kdy přesně dělat. Nepostradatelná jen tedy koordinace všech činností a jednotlivců jako celku. Složení týmu nemusí být vždy stejné, záleží na použité metodice vývoje, fázi nebo etapě ve které se projekt zrovna nachází.
<ref>Martinů Jiří, Čermák, Petr. Metodiky vývoje software
Každý tým při vývoji SW podléhá určité organizaci a určitému dělení. Jednou z takových organizací
může být např. rozdělení:
řízení projektů vývoje IS:
- zabývá se organizační a ekonomickou stránkou vývoje IS
- odpovědný projektový manažer (PM)
- PM má k dispozici řídicí a realizační tým pracovníků – odborníků
projektování IS:
- vývojáři IS - součástí projektového týmu,
- odpovědný hlavní řešitel (hlavní analytik),
- specifikace zadání, analýza, návrh, implementace, testování, zavádění do provozu.
Týmy je možné rozdělit rovněž podle druhu přístupu. Nejčastějším rozdělením podle přístupu je dělení na týmy:
- strukturované – práce je dělena podle profese
- „chirurgický tým“
- „tým hlavního programátora“
- „agilní skupina“, atd.
- nestrukturované – práce je dělena podle objemu
- samostatní pracovníci („osaměli vlci“)
- „horda“
- „demokratická skupina“, atd.
Chybná citace: Otvírací značka <ref>
je chybná nebo má špatný název
Manažer projektu
Vedoucí týmu
Analytik
SW architekt
Návrhář (GUI, API...)
Vývojář
Tester =
Manažer jakosti
Dokumentarista
Správce (sítě, databáze)
Redaktor obsahu
vodopádový X spirálovitý styl vývoje
Vodopádový (Watterfall)
Framework - lineární nebo také tzv. sekvenční typ
Vodopádový styl vývoje SW je považován za první kompletní metodiku vývoje SW. Vývoj je v tomto modelu vyobrazen jako neustále se svažující tok činností. Postup je přesně daný, jde od první fáze k další přísně sekvenčním způsobem. Fáze jdou za sebou bez iterací a po každé fázi následuje schvalovací proces, kterým musí projit také veškerá dokumentace. Bez tohoto procesu schválení není možné pokračovat a začít další fázi vývoje. Pokud se i přes schválení najde v další fázi chyba, je nutné se vrátit zpět do fáze předchozí.
Klady
- jednoduchost - jednoduchý na pochopení, práci i jeho řízení.
- přehlednost - je snadno zjistitelné v jaké fázi se projekt právě nachází, co už je splněno a kde nastala chyba, pokud se tak stane.
Zápory
- stáří - změna postoje společnosti na vývoj SW od jeho zavedení.
- není flexibilní - pokud se během vývoje objeví nový požadavek na SW, musí se celý proces začít znovu od začátku.
- zákazník vidí až konečný výsledek - není možné během vývoje prezentovat zákazníkovi jak bude vypadat výsledek, jelikož jsou hotové jen určité fáze vývoje. Konečný výsledek, tedy nemusí být pro zákazníka uspokojivý.
Spirálovitý
Framework - kombinace sekvenčního a iterativního typu.
Novější metodika, než watterfall. Je výsledkem snahy napravit nedostatky předchozího modelu. Vznikl v roce 1958 z iniciativy Barryho Boehma. Tento model se dá označit spíše za model životního cyklu SW než metodiky vývoje jelikož je v něm vyobrazeno cyklické opakování jednotlivých kroků vývoje (tzv. iterace).
Vychází z předchozího modelu, ale přináší novinky:
- interaktivní přístup
- podrobná analýza rizik
Klady
- vhodné i pro velké projekty - nezávislost na metodice, která se při samotném vývoji použije.
Zápory
- komplikovaný
- zákazník vidí až konečný výsledek
Ani jeden z modelů se dnes už nepoužívá ve velkých projektech. Dnes jsou využívané agilní metodiky.
Reference
<reference />