ChatBox DSP - softwarové inženýrství

July 16, 2022 · View on GitHub

Úvod

Aplikace bude sloužit ke komunikaci s tzv. Chatbotem skrze webovou aplikaci.

Pojmy

  • Chatbot: program určený k automatizované komunikaci s lidmi. Tato implementace obsahuje již předdefinovanou řadu dotazů a odpovědí na ně
  • SEČ: Středoevropský čas
  • ČNB: Česká národní banka

Popis funkcí

Znázornění Use case diagramu

Slovní popis funkcí

  • Dotaz na čas: zobrazí se aktuální SEČ
  • Dotaz na kurz: zobrazí se aktuální měnový kurz dle ČNB
  • Dotaz na jméno: zobrazí se jméno chatbota

Vstupní data

Výstupní data

  • Standartní výstup webové aplikace

Uživatelské požadavky

Chatbot bude umět odpovídat na následující dotazy v níže specifikovaném formátu:

  • "Jaký je čas?"
  • "Jak se jmenuješ?"
  • "Aktuální kurz EUR vůči CZK?"

Specifikace systému

Od uživatele se předpokládají následující požadavky:

Požadavky na systém uživatele:

  • Operační systém: multiplatformní
  • Připojení k internetu: povinné
  • internetový prohlížeč : povinné

Požadavky na systém programátora:

  • Operační systém: MacOS, Linux, Windows
  • Programovací jazyk: Python verze 3.9
  • Framework pro webovou aplikaci: Flask

Omezení ze strany serveru:

  • 2,000 CPU vteřin
  • Maximální počet dotazů: 100 000 hit/den
  • 1GB místa na disku

Chybové stavy

  • Odpojení od internetu:
    • V průběhu: dojde ke smazání historie s chatbotem
    • Při startu programu: uživatel bude upozorněn na připojení k síti
  • Resetování stránky: dojde ke smazání historie s chatbotem
  • Dotaz mimo specifikaci: uživatel bude botem vyvzván k opravě dotazu
  • Kurz během víkendu a svátků: uživatel dostane informaci o kurzu, který byl posledný aktulizovaný
  • Výpadek serveru ČNB nebo změna formátu kurzu: nezobrazí se aktuální kurz

DSP rozšíření

Rozšiřujicí DSP popisující nové funkcionality dle domluvy.

Slovní popis funkcí

  • Dotaz na historii kurzu: zobrazí se kurz eura za posledních 14 dní
  • Dotaz na doporučení eura: zobrazí se, zda je aktuálně výhodný nákup eura, včetně zdůvodnění

Uživatelské požadavky

Chatbot bude umět odpovídat na následující dotazy v níže specifikovaném formátu:

  • "jaka je historie kurzu eura?"
  • "doporucujes mi euro?"

Dále uvádíme, že maximální odchylka od takto specifikovaných vyhledávaných termínů jsou maximálně dva znaky.

Doporučení eura

Doporučení eura je rozhodnuta dle následujících faktorů:

Kurz je doporučen v případě že:

  • Kurz eura je klesající v průběhu posledních 3 dnů (posledních 3, tedy mimo dnešního dne)
  • Kurz eura nestoupl o více než 10% z průměru za poslední 3 dny

Kurz není doporučen v případě, že nejsou splněny předchozí podmínky

Výstupní formát nové funkcionality

  • Ano, kurz eura je dnes doporucen \ Ne, kurz eura neni dnes doporucovan
  • Dnesni kurz: "aktuální kurz" CZE/EUR
  • Prumer za posledni tři dny: "průměr" CZE/EUR
  • Kurz vzrostl za posledni tri dny o "o kolik" \ Kurz klesl za posledni tri dny o "o kolik" ("o kolik" se rozumí rozdíl mezi 1. a 3. dnem)
  • Kurz posledni tri dny pouze klesá \ Kurz posledni tri dny je nestabilni (pouze neklesá)

Pokud se průměr nezvýšil o více než 10 % z průměru za poslední 3 dny:

  • Kurz se nezvysil o více nez 10 procent z prumeru poslednich tri dni
  • Kurz by se nedal doporucit pokud by vzrostl o %.3f na %.3f CZE/EUR

Pokud se průměr zvýšil o více než 10 % z průměru za poslední 3 dny:

  • Kurz se zvysil o více nez 10 procent z prumeru za posledni tri dny
  • Kurz by se dal doporucit pokud by klesl o "o kolik" na "hranice doporučelnosti z průměru"

Use case diagram rozšíření