Etapy životního cyklu softwaru

Poznámky ze školy k vývoji softwaru, konkrétně o jednotlivých etapách v životním cyklu softwaru.

Osnova aneb co nás čeká

  1. Analýza a specifikace
  2. Návrh
    • Architektonický návrh
    • Podrobný návrh
  3. Implementace
  4. Testování
  5. Provoz a údržba

Analýza a specifikace

    Cíle:
  • Zisk požadavků a jejich transformace do strukturovné podoby, vymezení funkcionality
  • Studie vhodnosti - odhad zd je možné software vyvinout za daných podmínek
  • Analýza rizik - jsme schopni vytvořit produkt v požadované době a za předpokládanou cenu?
  • Plán akceptačního testování - jaké testy se provedou při předávání softwaru zákazníkovi
    Požadavky nejsou vždy jen funkční. Zákazník může mít i další typy požadavků:
  • Provozní - za jakých podmínek bude aplikace pracovat, správná doba odezvy, počet uživatelů systému zaráz
  • Systémové - stanovují například operační systém, na kterém aplikace poběží, vybavení počítače, nároky na pamět, bezpečnost atd.
  • Na rozhraní - jaké rozhraní bude systém používat a to nejen uživatelské(User Interface), ale i administrátorské apod. Rozhraní může být webové(jako www stránka), přenositelné dobře vypadající GUI...
  • Vývojového procesu - zákazník může požadovat vývoj na určité platformě či dodržování norem vývoje.
  • Legislativní - povinnosti ochrany osobních údajů nebo etické požadavky
    Problémy se získáváním požadavků
  • Vyřazení - s odstupem času se mění náhled na důležitost věcí, některé požadavky důležitosti nabydou, jiné ji ztratí
  • Zkreslení (deformace) - výklad informace může být zavádějící
  • Zobecnění - příliš dlouhé věty se mohou zdát nepravdivé

Metody používané RUP

Specifikace

RUP (Rational Unified Process) používá pro určení funkčních požadavků na systém Use Case Diagramy (Diagramy případů užití) a spolu s nimy také jednotlivé detaily případů užití.

Analýza

    Používají se tyto typy diagramů
  • Analytické třídy - pouze identifikují entity a vztahy
  • Objektové diagramy - zachycují konkrétní vztahy instancí tříd
  • Analytické balíčky - návrhová dekompozice systému
  • Diagramy interakce - vztahy tříd nebo jejich instancí
  • Sekvenční diagramy - časová posloupnost předávání zpráv

Analýza dat

Data Flow Diagram (DFD)

Na první pohled vypadá jako Use Case Diagram, ovšem jedná se o strukturální návrh zachycující také data, která proudí v jednotlivých funkcích. DFD je hiearchický návrh a může tedy zobrazovat více vrstev systému, například interakci uživatele, ale i jednotlivé funkce strukturálního programování.

Entity Relationship Diagram (ERD)

Modeluje data v klidu, tedy ta, která jsou v systému uložena když se systém nepoužívá nebo je úplně vypnut. Skládá se z entitních a vztahových množin, určitými formamy abstrakce dat. Každá entita z entitní množiny je určena atributy. Atributy jsou vlastnosti, které nás v daném kontextu entity zajímají. Každá entitní množina má speciální atribut zvaný primární klíč, který od sebe jednoznačně odlišuje entity a který je v rámci entitní množiny jedinečný. Mezi entitními množinami vznikají vztahy (unární, binární, ...), kde každá entita může figurovat 0-krát až N-krát. Potom minimální počet entit ve vztahu nazýváme členstvím a maximální počet entit ve vztahu kardinalitou.