Opis scenariusza
Nowy czytelnik (student lub członek) odwiedza portal biblioteki online, aby utworzyć konto. Podaje dane osobowe (imię, e-mail, hasło), system sprawdza unikalność (np. e-mail nie jest już zarejestrowany), tworzy konto w bazie danych i wysyła e-mail powitalny/aktywacyjny. Po pomyślnej rejestracji użytkownik wyszukuje książkę po tytule/autorze, sprawdza jej dostępność i rezerwuje ją, jeśli jest dostępna (ustawia zatrzymanie). Jeśli książka jest niedostępna, system oferuje powiadomienie, gdy stanie się dostępna. Proces kończy się wyświetlaniem potwierdzenia na interfejsie użytkownika.
Ten przepływ jest typowy dla systemów bibliotek uniwersyteckich i publicznych i ilustruje wdrażanie użytkownika oraz interakcję z podstawowymi zasobami.
Kluczowe koncepcje diagramów sekwencji UML (Relevantne dla tego przykładu)
Linia życia — Pionista linia przerywana dla uczestników (np. :Użytkownik, :Przeglądarka, :AplikacjaBiblioteczna).
Komunikat — Strzałki dla wywołań: synchroniczne (pełna z wypełnionym głowieniem →), odpowiedź (przerywana <–), tworzenie obiektu (przerywana strzałka do nowej linii życia z «create»).
Pasek aktywacji — Pokazuje, kiedy obiekt jest w trakcie przetwarzania (aktywacja/dezaktywacja).
Fragment alt — Logika warunkowa (np. [rejestracja udana] vs [e-mail już istnieje]).
Fragment opt — Opcjonalne zachowanie (np. [użytkownik decyduje się od razu zarezerwować]).
Pętla — Do działań iteracyjnych (np. dopasowanie wyszukiwania, jeśli nie ma wyników).
Aktora — Użytkownik ludzki (figura kredkowa).
Komunikaty zwrotne — Przerywane strzałki przekazujące wyniki z powrotem.
Czas płynie z góry na dół.
Uczestnicy (linie życia):
Czytelnik (aktor)
Przeglądarka (frontend/UI)
AplikacjaBiblioteczna (warstwa aplikacji/kontroler)
BazaDanychUżytkowników (baza danych dla kont)
BookCatalog (Baza danych/usługa dla książek i rezerwacji)
EmailService (Zewnętrzna usługa powiadomień)
Ten skrypt PlantUML w pełni przedstawia studium przypadku. Zawiera tworzenie konta, weryfikację, wysyłanie e-maila, wyszukiwanie/rezerwację książki po rejestracji z alternatywą dla dostępności oraz opcję powiadomienia.
@startuml
tytuł Online Library – Diagram sekwencji rejestracji nowego użytkownika i rezerwacji książki
skinparam monochrome true
skinparam shadowing false
skinparam sequenceMessageAlign center
autonumber “[0]”
aktor Patron
uczestnik „Przeglądarka” jako UI
uczestnik „LibraryApp” jako App
uczestnik „UserDB” jako UserDB
uczestnik „BookCatalog” jako Catalog
uczestnik „EmailService” jako Email
Patron -> UI: Dostęp do strony rejestracji
aktywuj UI
UI -> App: submitRegistration(imie, email, hasło)
aktywuj App
App -> UserDB: checkEmailExists(email)
aktywuj UserDB
UserDB –> App: istnieje = fałsz / prawda
deaktywuj UserDB
jeśli e-mail już istnieje
App –> UI: returnError(„E-mail jest już zarejestrowany. Zaloguj się lub użyj innego e-maila.”)
UI –> Patron: Wyświetl komunikat o błędzie
‘ Usunięto: destroy App → niepotrzebne + powodowało błąd parsera w gałęzi alt
inaczej Rejestracja poprawna
App -> UserDB: createUserAccount(imie, email, hashowaneHaslo)
aktywuj UserDB
UserDB –> App: userId, kontoUtworzono
dezaktywuj UserDB
App -> Email: sendWelcomeEmail(userId, email, linkAktywacyjny)
aktywuj Email
Email –> App: emailWysłany
dezaktywuj Email
App -> UI: returnSuccess(„Konto utworzone! Sprawdź email, aby aktywować.”, userId)
UI –> Czytelnik: Pokaż sukces i przekieruj do logowania/dashtabu
‘ Po rejestracji: Przepływ rezerwacji książki
opt Użytkownik przechodzi do rezerwacji książki
Czytelnik -> UI: Szukaj książki (tytuł lub autor)
UI -> App: searchBooks(zapytanie)
aktywuj App
App -> Katalog: queryBooks(zapytanie)
aktywuj Katalog
Katalog --> App: listaKsiazek (z dostępnością)
dezaktywuj Katalog
alt Znalezione książki
pętla Ulepsz wyszukiwanie, jeśli konieczne
App --> UI: displayResults(listaKsiazek)
UI --> Czytelnik: Pokaż listę książek
Czytelnik -> UI: Wybierz książkę i poproś o rezerwację
UI -> App: reserveBook(idKsiazki, userId)
koniec
App -> Katalog: checkAvailability(idKsiazki)
Katalog --> App: dostępna = true/false
alt Dostępna
App -> Katalog: placeHold(idKsiazki, userId, dataRezerwacji)
aktywuj Katalog
Katalog --> App: holdPlaced, idRezerwacji
dezaktywuj Katalog
App --> UI: displayConfirmation("Książka zarezerwowana! Pobierz, gdy będzie dostępna.")
UI --> Czytelnik: Pokaż komunikat sukcesu
inaczej Nie dostępna
App --> UI: offerNotification("Książka niedostępna. Powiadom, gdy będzie gotowa?")
Czytelnik -> UI: Potwierdź powiadomienie
UI -> App: subscribeNotification(idKsiazki, userId)
App -> Katalog: addToWaitlist(idKsiazki, userId)
Katalog --> App: waitlistAdded
App --> UI: confirm("Powiadomienie ustawione.")
koniec
inaczej Brak książek
App --> UI: displayNoResults("Brak pasujących wyników. Spróbuj innych słów kluczowych.")
koniec
dezaktywuj App
koniec
koniec
dezaktywuj UI
@enduml
Jak używać tego kodu PlantUML
Wklej do https://www.plantuml.com/plantuml/uml/ do natychmiastowego renderowania.
W Visual Paradigm Desktop: Nowy diagram sekwencji → Narzędzia → Importuj → PlantUML → wklej → wygeneruj i edytuj wizualnie.
W VP Online lub AI Chatbot: Użyj jako podstawy w promptach lub zaimportuj do poprawy przez AI.
Dostosuj: Dodaj kolory (skinparam sequenceArrowThickness 2), stereotypy uczestników (<<baza danych>>), lub usunięcie monochromatyczny dla sformatowanego wyjścia.

Przejdź do chat.visual-paradigm.com.
Użyj szczegółowego promptu (lub wklej kod PlantUML powyżej jako punkt wyjścia):
Wygeneruj diagram sekwencji UML dla biblioteki online: nowy użytkownik rejestruje się za pomocą imienia/emaila/hasła, system sprawdza unikalność adresu email, tworzy konto w bazie danych i wysyła e-mail powitalny. Następnie użytkownik wyszukuje/rezerwuje książkę – jeśli dostępna, umieszcza rezerwację, w przeciwnym razie oferuje powiadomienie o kolejce oczekujących. Uwzględnij alt dla powtarzającego się adresu email, opcję rezerwacji po rejestracji, pętlę do dopasowania wyszukiwania.
AI generuje diagram wizualny + kod PlantUML. Iteruj:
„Dodaj paski aktywacji i notatki dla operacji na bazie danych.”
„Zrób BookCatalog zewnętrzny serwis z użyciem stereotypu.”
Eksportuj PlantUML do kolejnych kroków.
Uruchom Visual Paradigm Desktop.
Utwórz/importuj diagram sekwencji (wklej PlantUML → wygeneruj).
Narzędzia > Aplikacje > Narzędzie doskonalenia diagramu sekwencji.
Prompt/doskonal: „Doskonal ten proces rejestracji/rezerwacji biblioteki w architekturze warstwowej: oddziel warstwy UI/View, Controller, Service (np. UserService, ReservationService), warstwy Repository/DB.”
AI rozszerza linie życia (np. LibraryApp → RegistrationController → UserService → UserRepository; dodaje szczegółowe wywołania takie jak hashPassword(), validateInput()).
Edytuj: dodaj notatki, stereotypy (<>, <>), dostosuj fragmenty.
Dostęp online.visual-paradigm.com → Utwórz stronę OpenDocs („System biblioteczny – proces onboardingu i rezerwacji”).
Wstaw diagram: użyj generowania za pomocą AI lub zaimportuj wersję PlantUML/uzupełnioną.
Zagnieżdż: dodaj sekcje tekstowe (opis przypadku użycia, warunki wstępne, np. „użytkownik niezalogowany”, warunki końcowe „konto aktywne + rezerwacja złożona”).
Udostępnij: zaprosz team do komentowania, śledź wersje.
W wersji stacjonarnej: dopracuj układ (wyrównanie automatyczne), włącz numerację hierarchiczną, dodaj typy zwracane (np. :User user).
Łącz modele: śledź do diagramu przypadków użycia („Zarejestruj nowego czytelnika”, „Zarezerwuj książkę”).
Eksport: PNG/PDF do dokumentacji, plik .vpp do kontroli wersji.
Nowy przypadek badawczy oferuje świeży, skoncentrowany na edukacji przykład, jednocześnie prezentując narzędzia AI w Visual Paradigm do szybkiego i dokładnego modelowania UML. Wyrenderuj kod PlantUML, aby od razu zobaczyć model – jeśli chcesz wersje alternatywne (np. dodaj krok zatwierdzenia przez bibliotekarza), po prostu poproś!
