Tvorba software

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Kompletní přepracování - fáze 1)
(Fáze projektu: Doplněno více o nasazení a údržbě.)
 
(Není zobrazeno 6 mezilehlých verzí od 1 uživatele.)
Řádka 23: Řádka 23:
 
Viz také: [[Algoritmus]].
 
Viz také: [[Algoritmus]].
 
-->
 
-->
 +
  
  
Řádka 32: Řádka 33:
 
* Z tohoto popisu vychází analýza, zadání se při ní dále zpřesňuje.
 
* Z tohoto popisu vychází analýza, zadání se při ní dále zpřesňuje.
 
* Formuluje zákazník nebo jiný zadavatel.
 
* Formuluje zákazník nebo jiný zadavatel.
 +
* Požadavky:
 +
** Jednoznačnost popisu.
 +
** Přesný výčet funkcí, které má systém plnit. S jakými dalšími navazujícími systémy má interagovat, jací uživatelé s ním budou pracovat,...
 +
** Ověřitelnost požadavků zadání (!)
  
 
=== Analýza ===
 
=== Analýza ===
Řádka 44: Řádka 49:
 
* Jaké výstupy budeme po systému požadovat?
 
* Jaké výstupy budeme po systému požadovat?
 
* S jakými dalšími systémy má náš systém spolupracovat?
 
* S jakými dalšími systémy má náš systém spolupracovat?
 +
* Jaká legislativa se týká naší oblasti a jaká zákonná omezení proto musíme zohlednit?
 
; Testujeme:
 
; Testujeme:
 
* Soulad se slovním zadáním.
 
* Soulad se slovním zadáním.
Řádka 81: Řádka 87:
 
**Výsledek: Zdrojový kód
 
**Výsledek: Zdrojový kód
 
*Píšeme kód, který realizuje algoritmus.
 
*Píšeme kód, který realizuje algoritmus.
 +
 
=== Nasazení ===
 
=== Nasazení ===
* Instalujeme u zákazníka.
+
* Instalujeme u zákazníka (deployment).
 
* Zaškolíme obsluhu.
 
* Zaškolíme obsluhu.
 +
* Sběr zpětné vazby.
 +
 
=== Údržba ===
 
=== Údržba ===
*aktualizace
+
* Aktualizace, záplaty, opravy.
*úpravy
+
* Úpravy v důsledku změn požadavků či legislativy.
 +
* Migrace dat mezi verzemi.
 +
 
 
=== Vyřazení z provozu ===
 
=== Vyřazení z provozu ===
 +
* Vytvořený systém je vyřazen z provozu a dále se již nepoužívá.
 +
 +
== Testování ==
 +
* Testování probíhá ve všech fázích počínaje analýzou a poté při každé úpravě.
 +
* V počátečních fázích (analýza, návrh) testujeme soulad jednotlivých částí dokumentace a návaznosti mezi jednotlivými fázemi.
 +
* Ve fázích implementace a údržby už probíhá klasické testování kódu (black-box testy, uživatelské testování,...), ale i zde zároveň testujeme soulad s návrhovou dokumentací a požadavky analýzy, případně aktualizujeme dokumenty vzniklé v předchozích fázích, pokud se mezitím požadavky upravily.
 +
* Testování proto neuvádíme jako samostatnou fázi. Jedná se o souvislý proces, který se prolíná všemi fázemi.
  
  
 
== Profese ==
 
== Profese ==
*Informatik
+
* Ne v každém týmu se vyskytují všechny role.
**vědec
+
* Některé role může zastřešovat jedna osoba.
**zabývá se algoritmy (například: řadícími algoritmy,...)
+
* Názvy a konkrétní náplň práce rolí se v jednotlivých firmách může lišit.
**převody algoritmů, vztahy mezi nimi
+
 
**složitost algoritmů,...
+
* Každý se může svými vlastnostmi více hodit do některých rolí a pro některé může mít předpokladů méně.
*Softwarový inženýr (vývojář) ~ analytik
+
 
** Provádí analýzu úlohy.
+
; Informatik
** Komunikuje se zákazníkem.
+
*vědec
** Řídí spolupráci v týmu
+
*zabývá se algoritmy (například: řadícími algoritmy,...)
*Kodér ~ programátor
+
*převody algoritmů, vztahy mezi nimi
**aplikuje obecné algoritmy na konkrétní úlohu
+
*složitost algoritmů,...
**zapisuje v programovacím jazyce  
+
* Dále dělíme na:
*Tester
+
** Základní výzkum: snaží se objevit souvislosti mezi jevy, prozkoumat pravidla.
** Po '''celou''' dobu projektu ověřuje správnost vytvořených materiálů.
+
** Aplikovaný výzkum: aplikuje nejnovější vědecké poznatky na praktické úlohy s využitím v průmyslu a firmách.
 +
 
 +
; Softwarový inženýr
 +
* Odborník zaměřený na tvorbu rozsáhlých aplikací.
 +
* Zná doporučení pro práci v týmu, účel a smysl jednotlivých fází vývojového cyklu.
 +
* Analyzuje zadání, navrhuje řešení, zná metodiky vývoje software.
 +
 
 +
; Analytik
 +
* Musí být odborník v oblasti, ve které má výsledný produkt fungovat. 
 +
*: ''Například při tvorbě účetní aplikace musí rozumět účetnictví.''
 +
* Komunikuje se zákazníkem a specifikuje požadavky.
 +
* Kontroluje správnost produktu v rámci dané cílové domény (oboru).
 +
 
 +
; (Softwarový) architekt
 +
* Navrhuje rozdělení aplikace na mikroslužby, nasazení na servery.
 +
* Volí vhodné technologie: programovací jazyk, frameworky, databázové systémy, konfiguraci serverů, kontejnerizaci, ...
 +
* Navrhuje strukturu API.
 +
* Jedná se o zkušeného vývojáře s praxí.
 +
* V řešení zohledňuje požadavky na: výkon, škálovatelnost (budoucí rozšiřitelnost), bezpečnost, snadnost údržby.
 +
* Komunikuje s vývojáři a kontroluje dodržení architektonických požadavků.
 +
 
 +
; Kodér ~ programátor
 +
* Aplikuje obecné algoritmy na konkrétní úlohu.
 +
* Zapisuje algoritmus v programovacím jazyce.
 +
* Tyto úkoly často postupně přebírají AI agenti.
 +
 
 +
; Deployment/DevOps
 +
* Zabývá se nasazením hotového systému na servery.
 +
* Řeší kontejnerizaci, konfiguraci serverů.
 +
* Automatizaci nasazení (CI/CD).
 +
 
 +
; Tester
 +
* Po '''celou''' dobu projektu ověřuje správnost vytvořených materiálů.
 +
* Podle povahy cílové aplikace se zaměřuje na různé oblasti:
 +
** výkonové testy u aplikací kritických na výkon
 +
** penetrační testování u aplikací kritických na bezpečnost.
 +
** ...
 +
* Připravuje testy.
 +
* Zabývá se automatizací testování.
 +
 
 +
; Projektový manažer
 +
* Dohlíží na činnost týmu, kontroluje termíny.
 +
* Komunikuje se zákazníkem a předává požadavky týmu.
 +
 
 +
; UX specialista
 +
* Navrhuje uživatelské rozhraní aplikace/produktu tak, aby bylo uživatelsky přívětivé.
 +
 
 +
; Grafik
 +
* Vytváří vizuální podobu produktu.
  
 +
; Kreativec
 +
* Přináší nové pohledy na věc. Jeho úkolem primárně není řešit technické provedení.
  
 
== Proč začínat na papíře/obrázku? ==
 
== Proč začínat na papíře/obrázku? ==

Aktuální verze z 23. 7. 2026, 14:56



Obsah

Fáze projektu

Formulace slovního zadání

Analýza

Charakteristika
Řešíme
Testujeme

V rámci analýzy řešíme věci a akce z reálného světa, tomu odpovídá i terminologie. Minimálně používáme specializované pojmy ze světa IT, výstupům by měl rozumět i zákazník.

Zatím se NEbavíme o:

  • softwarovém či hardwarovém způsobu řešení,
  • algoritmech,
  • způsobu ukládání dat,...

Návrh

Implementace

Nasazení

Údržba

Vyřazení z provozu

Testování


Profese

Informatik
Softwarový inženýr
Analytik
(Softwarový) architekt
Kodér ~ programátor
Deployment/DevOps
Tester
Projektový manažer
UX specialista
Grafik
Kreativec

Proč začínat na papíře/obrázku?


Pojmy

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje