Základní modely životního cyklu software, softwarový proces, metodika. 

Základní modely životního cyklu software, softwarový proces, metodika.

Konkrétní proces, má stanovené fáze, milníky, artefakty…

Základní modely životního cyklu software

Životní cyklus = proces od zahájení vývoje až po vyřazení z provozu

Sekvenční -> velký třesk

Waterfall = vodopádový model, fáze jdou postupně od inception, elaboration, implementation, transition. Na konci je tzv. velký třesk, předání zákazníkovi – může dopadnout špatně, výsledek se nemusí shodovat s tím, co zákazník chtěl

Cyklický -> přírůstky/evoluce

Pracuje se postupně v iteracích, na konci každé iterace je funkční produkt, jednotlivé iterace jsou jako samostatné malé projekty, které sestávají z několika fází

RUP – rational unified proces – od IBM, je to Framework, složitá implementace, častou chybou je, že se společnost rozhodne implementovat ten Framework celý – to je ale šatně, společnost by si měla vybrat jen to, co se jí hodí

OpenUP – částečně postaven na RUP, bere si z něj ale jen to nejnutnější pro vývoj software, je open source, distribuce formou wiki

SCRUM – daily standups, sprinty (30 dní), iterativní a inkrementální, plánuje jen následující iteraci, není předem jisté kdy projekt skončí

Softwarový process je systematická série aktivit, artefaktů a souvisejících rolí vedoucí k vyšší pravděpodobnosti úspěšného dokončení výroby software.

Aktivity (Technické – modelování, programování, nasazení…, Komunikační – analýza, specifikace, …)

Artefakty (Dokument specifikace, Test protocol…)

Role (Technické = analytik, team leader, developer, architect…, Manažerské = CEO, CIO…, Podpůrné = poradce, lektor…)

Řízené plánem – RUP

Řízené riziky – prototypování

Řízené změnou – SCRUM

Proces – systematická série akcí vedoucí k určitému výsledku

Životní cyklus (meta proces?) – proces od zahájení vývoje až po vyřazení z provozu

definovaný proces pro konkrétní účel, tj. fáze, aktivity, role, artefakty, milníky atd. jsou dobře popsány (z přednášky)

souhrn doporučených praktik a postupů, pokrývajících celý životní cyklus vytvářené aplikace

…

systematická série fází a aktivit, souvisejících rolí a artefaktů vedoucí k vyšší pravděpodobnosti úspěšného vytvoření potřebného software.

Členění: fáze, aktivity

Podpůrné aktivity: řízení, kontrola kvality, správa konfigurace, dokumentace

Komunikační: specifikace, plán

Obchodní: plán, rozpočet, produkt

Činitelé: role

Technické role: analytik, architekt, vývojář, tester, databázista, ...

Manažerské role: team leader, šéf vývojářů, šéf projektů, CEO, CIO, ...

Podpůrné role: poradce, lektor, uživ. podpora, dokumentace, ...

Varianty SW procesu (modely životního cyklu software):

Varianty a příklady procesů:

Společná snaha = snížení rizika chaotického postupu

Řízené plánem (sledovat plán – hra na jistotu)

Kontext neměnný, zadání a technologie zřejmé, rozsah malý

Řízené riziky (omezovat rizika)

Průzkumník/prototypování, Spirálový model

Kontext zřejmý, zadání a/nebo technologie nejasné

Řízené změnou (adaptace na změnu)

Iterativní – RUP, agilní – SCRUM

Kontext proměnlivý, zadání a/nebo technologie nejasné

Základní modely životního cyklu

Sekvenční - velký třesk (vztažené na celý produkt, naplánované pro celý projekt, oddělené meziprodukty)

Cyklický - opakování technických aktivit, přírůstky (roste znalost, funkcionalita, kvalita, …)

Inkrementální (přírůstek je nějaká část (funkcionalita) produktu, produkt je funkční až na konci vývoje)

Iterativní (na konci každé iterace je funkční produkt, např. Na počátku jen se základní funkcionalitou, ale v dalších iteracích se funkcionalita postupně rozšiřuje)

Důraz na manifest:

Jednotlivci a interakce před procesy a nástroji

Fungující software před vyčerpávající dokumentací

Spolupráce se zákazníkem před vyjednáváním o smlouvě

Reagování na změny před dodržováním plánu
