O předmětu

Systémová analýza a návrh se zabývá procesem vývoje informačních systémů — od požadavků přes analýzu až po návrh. Předmět propojuje technické znalosti s pochopením businessu.

Fáze vývoje IS

SDLC (Software Development Lifecycle):

  1. Plánování — rozsah, feasibility, harmonogram
  2. Analýza — co systém dělá (co POTŘEBUJE)
  3. Návrh — jak to bude fungovat (jak to POSTAVÍME)
  4. Implementace — programování
  5. Testování — ověření funkčnosti
  6. Nasazení — spuštění v produkci
  7. Údržba — opravy, aktualizace

Metodiky vývoje

Waterfall (Vodopád):

  • Sekvenční fáze, každá musí být hotova před další
  • Výhody: přesná dokumentace, jasné milníky
  • Nevýhody: špatná reakce na změny, zákazník vidí výsledek pozdě
Agile (SCRUM):
  • Iterativní a inkrementální vývoj
  • Sprint = 2-4 týdny, na konci funkční přírůstek
  • Role: Product Owner, Scrum Master, Development Team
  • Artefakty: Product Backlog, Sprint Backlog, Increment
  • Události: Sprint Planning, Daily Standup, Sprint Review, Retrospektiva
RUP (Rational Unified Process):
  • Fáze: Inception → Elaboration → Construction → Transition
  • Use-case driven, architecture-centric

UML diagramy

Use Case Diagram:

  • Zobrazuje funkce systému z pohledu uživatele
  • Elementy: Actor (uživatel role), Use Case (elipsa), vztahy
  • <<include>> — povinná součást jiného UC
  • <<extend>> — nepovinné rozšíření
Třídní diagram (Class Diagram):
+------------------+
|   Osoba          |  ← název třídy
+------------------+
| - jmeno: String  |  ← atributy (- private, + public, # protected)
| - vek: int       |
+------------------+
| + getJmeno(): String |  ← metody
| + setJmeno(s: String)|
+------------------+

Vztahy:

  • ──────> Asociace (má-vztah)
  • ─────▷ Generalizace/Dědičnost
  • - - -▷ Realizace (implements)
  • ◇── Agregace (celek-část, část může existovat samostatně)
  • ◆── Kompozice (část nemůže existovat bez celku)
Sekvenční diagram:
  • Zobrazuje interakci objektů v čase (vertikální osa = čas)
  • Lifeline = vertikální přerušovaná čára
  • Zpráva = horizontální šipka mezi lifelines
  • Activation bar = obdélník na lifeline (objekt je aktivní)
Diagram aktivit:
  • Flowchart pro business procesy
  • Swimlanes = odpovědnost různých rolí
  • Elementy: startovní uzel (●), akce, rozhodnutí (◇), synchronizace (━━), konec (⊙)
ER Diagram (Entity-Relationship):
  • Entita = obdélník (tabulka)
  • Atribut = elipsa
  • Vztah = kosočtverec
  • Cardinalita: 1:1, 1:N, M:N

Požadavky

Funkční požadavky — CO systém dělá

  • "Systém umožní uživateli přihlášení pomocí emailu a hesla"
  • "Systém zobrazí historii objednávek"
Nefunkční požadavky — JAK dobře to dělá
  • Výkon: "Stránka se načte do 2 sekund"
  • Bezpečnost: "Hesla jsou hashovaná bcrypt"
  • Dostupnost: "99.9% uptime"
  • Škálovatelnost: "Zvládne 10 000 současných uživatelů"
Techniky získávání požadavků:
  • Rozhovory se stakeholdery
  • Dotazníky
  • Pozorování (observation)
  • Prototypování
  • Analýza existujících dokumentů

Datové modelování

Kroky tvorby ER diagramu:

  1. Identifikuj entity (podstatná jména v zadání)
  2. Identifikuj vztahy (slovesa — "student SE ZAPISUJE na předmět")
  3. Urči atributy každé entity
  4. Určit primární klíče
  5. Urči kardinalitu vztahů
  6. Normalizuj (3NF)

Návrhové vzory (Design Patterns)

Creational:

  • Singleton — jediná instance třídy
  • Factory Method — vytváření objektů bez specifikace konkrétní třídy
Structural:
  • Adapter — překlad rozhraní pro kompatibilitu
  • Facade — zjednodušené rozhraní ke komplexnímu podsystému
Behavioral:
  • Observer — notifikace při změně stavu (event listenery)
  • Strategy — zaměnitelné algoritmy za běhu
  • MVC — oddělení dat (Model), zobrazení (View), logiky (Controller)

Tipy pro zkoušku

  • Use Case: actor je VŽDY mimo systém (i jiný systém)
  • Třídní diagram: rozlišuj asociaci a kompozici/agregaci
  • Sekvenční diagram: synchronní zpráva = plná šipka, asynchronní = otevřená
  • Funkční vs nefunkční požadavky — klíčový rozdíl
  • Waterfall vs Agile: Agile lépe zvládá změny, Waterfall lepší pro fixní rozsah

Doporučené zdroje

  • UML distilled — Martin Fowler
  • draw.io — zdarma nástroj pro UML diagramy
  • Kniha: Systems Analysis and Design (Kendall & Kendall)

✏️ Upravit wiki obsah

Používej Markdown: ## Nadpis, **tučně**, `kód`, - odrážky, > citace

Heslo si vyžádej od správce wiki.