Warning
This page is located in archive.

3 - Dědičnost, polymorfismus, objektový návrh

Referenční řešení z minulého cvičení

Teorie

  • Dědičnost a polymorfismus
  • Abstraktní třída, abstraktní metoda
  • Rozhraní (Interface), rozdíl mezi abstraktní třídou a rozhraním

Objektový návrh

Popis systému

  • Blog reprezentuje jednoduchou webovou stránku, která umožňuje sdílet články, které se týkají určitého tématu.
  • Pro použití blogu je nutné si nejprve vytvořit uživatelský účet, uživatelský účet může být dvou druhů: Uživatelský a Administrátorský. Uživatelský účet má právo na prohlížení seznamu témat, čtení a komentování článků, Uživatelský účet navíc může být zablokován (v případě nevhodného chování).
  • Administrátorský účet může zobrazovat a vytvářet témata, číst, vytvářet a komentovat články.
  • Před možností provádět výše uvedené akce s účty je nutné se k aplikaci přihlásit pomocí svého uživatelského jména a hesla.
  • Téma má svůj název a stručný popis, pod téma je možné registrovat libovolný počet článků.
  • Článek má svůj název, obsah, autora, datum poslední změny, stav a seznam Témat, pod která byl zařazen.
  • Stavy Článku jsou následující: rozpracovaný, publikovaný, neaktuální. Články lze mezi stavy přesouvat, zobrazit si lze pouze publikované články.
  • Blog má důležitou část Dashboard, který slouží pro zobrazování komponent uživateli. Zobrazovat jdou témata a články. Pro zobrazení na Dashboardu musí komponenty splňovat určité rozhraní.
  • Další částí je Editor, který slouží k úpravě komponenty. Upravovat jdou pouze články. Pro úpravu v Editoru musí komponenty splňovat určité rozhraní.

1. Vytvořte UML Class diagram reprezentující výše popsaný systém.

2. Implementujte následující část systému

  • Vytváření uživatelských účtů: aplikace umožní vytvářet uživatelské a administrátorské účty.
  • Přihlašování se k uživatelským účtům: do aplikace bude možné se přihlásit pomocí uživatelského jména a hesla.
  • Vytváření nových témat: administrátor může vytvářet nová témata.
  • Vytváření nových článků: administrátor může vytvářet nové články.
  • Články lze registrovat pod témata.
  • Uživatel si může přečíst blog: všechen obsah / podle zvoleného tématu. Vždy pouze aktuální články. Pro zobrazení článku je třeba použít již připravenou třídu Dashboard.
  • Implementujte unit testy pro tuto část systému.

Jako usecase používání Blogu můžete využít předpřipravenou třídu Main.

courses/a7b36omo/labs/lab032017.txt · Last modified: 2017/10/17 09:00 by kukacdav