Modelowanie oparte na
scenariuszach
Halina Tańska
Scenariusze
• Scenariusz jest specyfikacją
zachowania, która wyraża proces jako
sekwencję zdarzeń i operacji.
• Scenariusze występują w dwu
kategoriach:
– scenariusz specyficzny
opisujący
przykładowe oddziaływanie z
pojedynczymi obiektami.
– scenariusz ogólny
opisuje oddziaływanie
w kategoriach typów obiektów.
Scenariusz specyficzny
Sklepik uczelniany „Złoty Pelikan” składa
zamówienie na 90 butelek wody mineralnej
niegazowanej, 80 butelek wody mineralnej
gazowanej i 85 butelek soku pomidorowego. W
magazynie jest dostatecznie dużo wody mineralnej
gazowanej i niegazowanej do realizacji zamówienia,
więc przydziela się je do tego zamówienia. Nie ma
jednak wystarczająco dużo soku pomidorowego, tak
więc wstrzymuje się realizacje zamówienia do
przybycia nowej dostawy. Ponieważ zamówienie na
sok pomidorowy zmniejszy liczbę jego butelek
poniżej wymaganego limitu, zamawia się następną
dostawę u dostawcy Kubuś.
Scenariusz ogólny
Klient składa zamówienie obejmujące pewną liczbę
wierszy, z których każdy zawiera produkt i liczbę
sztuk. Następuje sprawdzenie każdego wiersza, czy
w magazynie jest wystarczająco dużo sztuk
zamawianego towaru. Jeśli tak, to towar przydziela
się do zamówienia. Jeśli nie ma odpowiedniej liczby
sztuk, to realizacja zamówienia jest wstrzymywana
w oczekiwaniu na dostawę brakującego produktu do
magazynu. Jeśli skompletowano wszystkie
zamawiane produkty, to można je wysłać do klienta.
Jeśli realizacja zamówienia spowodowała, że liczba
sztuk jakiegoś produktu spadła poniżej wymaganego
limitu, zamawia się nową dostawę od dostawcy.
Scenariusz specyficzny
Scenariusze specyficzne
są
najprostszym sposobem
komunikowania się z użytkownikami
nie mającymi doświadczenia w
modelowaniu. Takie scenariusze
dotyczą bezpośrednio ich
doświadczeń bez wprowadzania
jakiejkolwiek terminologii.
Analiza zachowania
obiektów
• Jednym z popularnych podejść
formalizujących scenariusze specyficzne jest
analiza zachowania obiektów, AZO (object
behavior analysis, OBA) [Rubin 1992].
Scenariusz jest tu reprezentowany jako tabela
zwana skryptem. Każdy krok scenariusza jest
opisany jednym wierszem tabeli. Każdy wiersz
odnosi się do inicjatora jakiegoś zdarzenia.
Operacja jest procesem wyzwalanym tym
zdarzeniem. Uczestnik jest tym, kto bierze
udział w operacji.
Przykład tabeli skryptu dla scenariusza
specyficznego
Inicjator
Zdarzenie
Uczestnik
Operacja
Sklepik
uczelniany
Sklepik
uczelniany
Sklepik
uczelniany
Sklepik
uczelniany
Zamówienie
#123
Zamówienie
#123
Magazyn
Zamówienie
#123
Zamówienie
#123
Magazyn
Magazyn
Zamówienie
#123
Zamówienie
#123
Składa zamówienie
Zamawia 90 but. wody min.
niegaz
Zamawia 80 but. wody min.
gaz
Zamawia 85 but. soku
pomidor
Sprawdza zapas wody
min.niegaz.
Przydziela wodę NG do
wysłania
Sprawdza przekroczenie limitu
Sprawdza zapas wody
min.gaz. Przydziela wodę G do
wysłania
Sprawdza przekroczenie limitu
Zamawia uzupełnienie wody G
Sprawdza zapas soku pomidor.
Wstrzymaj czekając na
dostawę
Zamówienie
#123
Zamówienie
#123
Zamówienie
#123
Zamówienie
#123
Magazyn
Magazyn
Woda
min.niegaz.
Magazyn
Magazyn
Woda
min.gazowa
Kubuś
Magazyn
Zamówienie
#123
Twórz
Dodaj wiersz
Dodaj wiersz
Dodaj wiersz
Sprawdź zapas
Prześlij towar do
wysłania
Sprawdź przekroczenie
limitu zapasu
Sprawdź zapas
Prześlij towar do
wysłania
Sprawdź przekroczenie
limitu zapasu
Złóż zapotrzebowanie
Sprawdź zapas
Wstrzymaj
Opis dwukolumnowy
• Działanie opisano w terminologii użytkownika po
lewej stronie, a odwzorowanie na model po prawej.
• Warto zwrócić uwagę na metodę odwoływania się do
egzemplarzy typów.
• Wiersz zamówienia [#2, zamówienie: #123,
produkt: woda min.niegaz., ilość 90] odnosi się do
jednego egzemplarza Wiersza zamówienia. #2 daje
mu unikatową nazwę na potrzeby opisu scenariusza.
Każde odwzorowanie i odwzorowany obiekt są
potem wymieniane po kolei. Na przykład
odwzorowanie produktu odwzorowywałoby do
egzemplarza produktu o nazwie woda min.niegaz.
Format dwukolumnowy
Opis
Odwzorowanie
Sklepik uczelniany składa zamówienie na
90 butelek wody min.niegaz., 80 butelek
wody min.gaz i 85 butelek soku pomidor.
Jest dostatecznie dużo wody min.niegaz.
W magazynie jest wystarczająco dużo wody
min.gaz., lecz trzeba jeszcze zamówić
więcej
Składa się zamówienie uzupełnienia wody
min.gaz.
Nie ma wystarczająco dużo soku pomidor.
Zamówienie jest wstrzymane aż do
nadejścia dostawy
Tworzy się nowe zamówienie:
Zamówienie[#123, klient: Sklepik
uczelniany]. Zamówienie ma następujące
pozycje: Wiersz zamówienia [#1,
zamówienie: #123, produkt: woda
min.niegaz, ilość:90], Wiersz zamówienia
[#2, zamówienie: #123, produkt: woda
min.gaz, ilość:80], Wiersz zamówienia [#3,
zamówienie: #123, produkt: sok pomidor.,
ilość:85]
sprawdź w Magazynie pozycję (Wiersz
zamówienia #1). Sprawdzanie daje wynik
pozytywny. Warunek dla Zamów
uzupełnienie (woda min.niegaz) jest
fałszywy.
sprawdź w Magazynie pozycję (Wiersz
zamówienia #2). Sprawdzanie daje wynik
pozytywny. Warunek dla Zamów
uzupełnienie (woda min.gaz) jest
prawdziwy.
Zamów uzupełnienie (woda min.gaz)
sprawdź w magazynie pozycję (Wiersz
zamówienia #3). Sprawdzanie daje wynik
negatywny.
Warunek dla Wyślij towary
(Zamówienie#123) jest fałszywy
Scenariusze ogólne – diagramy
oddziaływania
• Diagram oddziaływania reprezentuje
typy obiektowe biorące udział w
scenariuszu za pomocą pionowych
pasków. Ponieważ scenariusz jest
obiektowy, każda operacja jest
związana z jej konkretnym typem
obiektowym. Strzałki między paskami
wskazują sekwencję operacji, które
mają być wywołane.
sd przygotuj zamówienie
klient
zamówienie
(from Dynamic View)
pozycja
zamówienia
(from Dynamic View)
element z
magazynu
(from Dynamic View)
element
realizowanego
zamówienia
(from Dynamic View)
pozycja dostawy
(from Dynamic View)
przygotuj
przygotuj
sprawdz
usun
stwórz
zamów uzupełnienie
Diagram oddziaływania
Dla wszystkich Pozycji zamówienia
sprawdź stan zapasu danego produktu w
magazynie
jeśli wystarczy to
pobierz podaną liczbę sztuk
stwórz element realizowanego zamówienia
jeśli pobrano poniżej wymaganego limitu to
zamów uzupełnienie towaru
koniec jeśli
koniec jeśli
koniec dla