1 Zadanie Z komponent popísaných v 2. sekcii vytvorte komponent diagram (ich pospájaním) tak, aby išlo realizovať všetky use casy zo sekcie 3. To znamená, že pokiaľ komponenta potrebuje k vykonaniu funkcionality inú komponentu musí medzi nim existovať odpovedajúci vzťah. Ako počiatočný bod môžete použiť diagram v sekcii 5. 2 Komponenty EmailingService - komponenta zodpovedná za posielanie emailov • void sendEmail(string emailAddress, Body body) RegistrationService - komponenta zodpovedná za prihlasovanie a registráciu užívateľov • void registerUser(string emailAddress, string password) • boolean checkCredentials(string emailAddress, string password) UserDB - databáza v ktorej sú uložené údaje o užívateľoch • void save(User user) • User getById(int userId) GuitarDB - databáza v ktorej sú uložené údaje o gitarách, ktoré sú na predaj a ich počte na sklade. • void save(Guitar guitar) • User getById(int guitarId) OrderService - komponenta je zodpovedná za workflow ohľadom práce s objednávkami. • void newOrder(List productsToBuy, int idOfBuyer) • void expediteOrder(int orderId) OrderDB - databáza v ktorej sú uložené objednávky. • void save(Order order) • Order getById(int orderId) InvoiceCreator - pomocou komponenty sa z objednávky vytvorí faktúra vo formáte špecifikovanom zákonom. • Invoice createInvoice(Order order) 1 3 Dátové typy (objekty) používané v komponentách • Body: Telo emailu v akomkoľvek formáte • User: Reprezentuje uživeteľa, ktorý vykonáva nákupy • Guitar: Drží informácie o gitare na predaj (cena, počet kusov na sklade, ...) • ProductToBuy: Reprezentuje jeden riadok v objednávke vo forme produktu a počtu kusov • Order: Obsahuje všetky informácie o objednávke vrátane produktov (List), užívateľa, ktorý objednávku vytvoril, a či bola objednávka už zaplatená. • Invoice: Vygenerovaná faktúra, pre zjednodušenie napríklad ako string. 4 Use casy Registrovanie užívateľa 1. Užívateľ zadá prihlasovacie údaje (nie je modelované) 2. Nový užívateľ je uložený do databázy 3. Uživateľovi je poslaný email s potvrdením registrácie Nová objednávka 1. Užívateľ vyberie ktoré gitary a aký počet chce kúpiť (nie je modelované) 2. Objednávka je uložená do databázy 3. Vytvorí sa faktúra 4. Faktúra sa pošle emailom užívateľovi Vybavenie (vyexpedovanie) objednávky adminom 1. Admin vyberie objednávku, ktorá sa má expedovať (nie je modelované) 2. Skontroluje sa či objednávka bola zaplatená 3. Ak áno užívateľovi sa pošle email, že jeho objednávka bola vyexpedovaná 4. Na sklade sa zníži počet každého produktu, ktorý bol objednaný Pridanie novej gitary na predaj 1. Admin zadá údaje o novej gitare (nie je modelované) 2. Nová gitara je uložená do databázy 2 5 Prázdny diagram 3